Google Apps Script(GAS)ではonOpen関数を使って、スプレッドシートが開かれた際の処理を書くことができる。

このonOpen関数を使うことで、以下のように通常のメニューの中に「カスタムメニュー」を追加することができる。

ただ、先日追加したカスタムメニューが、なぜか表示されない問題があったので、今回は解決にいたった方法を紹介する。

onOpen関数でカスタムメニューを追加するコード

まず、スプレッドシートを開いた際にカスタムメニューを追加するコードがこちら。

// カスタムメニューの登録
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('カスタムメニュー')
    .addItem('メイン関数実行', 'main')
    .addToUi();
}

function main() {
  // Code...
}

別途定義したmain関数を実行する「メイン関数実行」という機能をカスタムメニュー内に組み込むものだ。

ただ、俺の環境ではこのままだと、スプレッドシートをリロードしてもカスタムメニューは表示されなかった。

トリガーの設定を追加

さらにもうひと手間加える必要があった。

まず、Apps Script編集画面のサイドメニューから「トリガー」を選択する。

次に、画面右下に表示されている「トリガーを追加」ボタンをクリック。

表示されるトリガー編集画面で、次のように編集をおこなう。

実行する関数を「onOpen」、イベントの種類を「起動時」に設定すればOK。

これでトリガーが追加され、スプレッドシートを起動、またリロードした際に、正常にonOpen関数が実行されるようになった。