Google Apps Script(GAS)ではonOpen
関数を使って、スプレッドシートが開かれた際の処理を書くことができる。
このonOpen
関数を使うことで、以下のように通常のメニューの中に「カスタムメニュー」を追加することができる。
ただ、先日追加したカスタムメニューが、なぜか表示されない問題があったので、今回は解決にいたった方法を紹介する。
onOpen関数でカスタムメニューを追加するコード
まず、スプレッドシートを開いた際にカスタムメニューを追加するコードがこちら。
// カスタムメニューの登録
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('カスタムメニュー')
.addItem('メイン関数実行', 'main')
.addToUi();
}
function main() {
// Code...
}
別途定義したmain
関数を実行する「メイン関数実行」という機能をカスタムメニュー内に組み込むものだ。
ただ、俺の環境ではこのままだと、スプレッドシートをリロードしてもカスタムメニューは表示されなかった。
トリガーの設定を追加
さらにもうひと手間加える必要があった。
まず、Apps Script編集画面のサイドメニューから「トリガー」を選択する。
次に、画面右下に表示されている「トリガーを追加」ボタンをクリック。
表示されるトリガー編集画面で、次のように編集をおこなう。
実行する関数を「onOpen」、イベントの種類を「起動時」に設定すればOK。
これでトリガーが追加され、スプレッドシートを起動、またリロードした際に、正常にonOpen
関数が実行されるようになった。