1

ユーザーがメモを含むスプレッドシートのセルから値を削除すると、UiApp を表示したいと考えています。

onEdit トリガーは、次の関数に設定されます。

function showDialogue() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var r = ss.getActiveCell();
  if (r.getValue() != '') return;
  if (r.getValue() == '' &&  r.getComment() != '') {
    var app = UiApp.createApplication();

    var label = app.createLabel('If you can see this, it has worked correctly.');
    app.add(label);

    var button = app.createButton('Click to Close');
    app.add(button);

    var handler = app.createServerHandler('myClickHandler');
    handler.addCallbackElement(label);
    button.addClickHandler(handler);

    r.setValue(r.getRow());

    ss.show(app);
  }

}

function myClickHandler(e) {
  var app = UiApp.getActiveApplication();
  app.close();
  return app;
}

私が実行すると正常に動作しますが、別のユーザーがスプレッドシートを開いていると、UiApp が正しく表示されません。UiApp ウィンドウは開きますが、ウィジェットは表示されず、[名前を付けて保存] ダイアログ ボックスが開き、userAppPanel を保存するようにユーザーに促します。

この単純化されたスプレッドシートで問題を再現しました。このスプレッドシートは、リンクを知っている人なら誰とでも共有できます (編集可能)。

4

0 に答える 0