menu

GASのonOpenでException: Cannot call SpreadsheetApp.getUi() from this contextのエラーが出る時の対処法

2023年5月15日

CodeGoogleAppsScript

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
イベントの種類:起動時

以上で完了です。

スプレッドシートをリロードしたら無事に表示されました。

Follow Me!

Aji ろぐろぐみー筆者

GoogleAppsScriptを使った業務効率化が得意なWeb屋。
詳しいプロフィールはこのページで色々書いてます。Twitterもやってます。コメント頂けると陸に上がった魚のようにピチピチ喜びます!

関連記事

コメントはこちらからどうぞ

プライバシーポリシーはこちら
また、コメントはこちらで承認の作業を行うまでは表示されません。ご了承ください。

CAPTCHA