ファイルを開いたときに処理したい(onOpen)

1function onOpen(e) {
2    const ui = SpreadsheetApp.getUi();
3    ui.createMenu("カスタムメニュー")
4        .addItem("実行する", "myFunction")
5        .addToUi();
6}

onOpen関数は、スプレッドシート・ドキュメント・スライド・フォームを開いたときに自動で呼ばれる関数です。 主にカスタムメニューを追加する用途で使います。

onOpenはシンプルトリガーなので、トリガーの登録は不要です。 その代わり、外部サービスへのアクセスやファイルの読み書きなど、 認可が必要な操作はできません(メニューの追加はできます)。

サービスごとにgetUiしたい

getUiは開いているファイルの種類にあわせて使い分けます。

ファイルの種類

UIの取得

スプレッドシート

SpreadsheetApp.getUi()

ドキュメント

DocumentApp.getUi()

スライド

SlidesApp.getUi()

フォーム

FormApp.getUi()

メニューを組み立てるcreateMenu・addItem・addToUiの使い方はどのサービスでも共通です。

引数したい(e)

onOpen(e)の引数eには、次の情報が入っています。

プロパティ

内容

e.source

開いたファイルのオブジェクト(Spreadsheetなど)

e.user

ファイルを開いたユーザー(User)

e.authMode

認可モード(ScriptApp.AuthMode.NONEなど)

シンプルトリガーのe.authModeは基本的にNONEまたはLIMITEDです。 認可が必要な処理をしたいときは、onOpenからメニュー経由で別の関数を呼び出します。

リファレンス