-
GASのonOpenでException: Cannot call SpreadsheetApp.getUi() from this contextのエラーが出る時の対処法
2023年5月15日
GASのonOpen関数でスプレッドシートにカスタムメニューを追加しようとしたところ、エラーが出て表示されなかったので解決策を書いときます。
今回実装しようとしたメニューがこちら。
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('メール');
menu.addItem('送信実行', 'sendMail');
menu.addToUi();
}
sendMailという関数を自作して、スプレッドシートからメールを送信させるカスタムメニューです。
Exception: Cannot call SpreadsheetApp.getUi() from this contextのエラーがでる
これで一見、問題なさそうですがいざ実行しようとすると
Exception: Cannot call SpreadsheetApp.getUi() from this context
とエラーが出てしまいました。
調べてみると実はもう一手間必要で、トリガーの設定追加が必要でした。
トリガーを追加する
Apps Script編集画面のサイドメニューから「トリガー」を選択。
トリガー追加で以下のように設定します。
実行する関数:onOpen
イベントの種類:起動時
以上で完了です。
スプレッドシートをリロードしたら無事に表示されました。