【GAS入門】onOpenトリガー完全攻略〜複数設定する方法はある?〜
GASのonOpenトリガーとは?
GASのonOpenトリガーとは、
GoogleスプレッドシートやGoogleドキュメントを開いたときに自動で実行されるスクリプトだ。
- ファイルを開く
- 再度読み込み
というアクションが引き金となり、onOpen関数の内部の処理が実行されるんだ。
onOpenはシンプルトリガーだから、GASの「トリガー設定」を手動追加する必要もない。
日常に例えるなら、ドアを開けたら上からタライが落ちてくる場面だ。

たまに、あるだろ?
このトリガーを使えば、ファイルを開いた際に自動的に初期設定をしたり、メニューを追加したりできるぞ。
onOpenトリガーの基本設定方法
まずは基本的なonOpenトリガーの設定を見てみよう。
function onOpen() {
SpreadsheetApp.getActiveSpreadsheet().toast('こんにちは!');
}
– function onOpen() {} を定義することで、スプレッドシートが開かれたときに実行。
– toastメソッドで小さなポップアップ通知を表示。
このスクリプトをとあるスプレッドシートのコンテナバインド型で作成。
そして、そのスプレッドシートを開くか、リロードするかすると、次のように右下にポップ表示が出るはずだ。

onOpenトリガーが実行されない理由
- 権限の問題:スクリプトが適切な権限で実行されていないと、onOpenは動作しない。
- スクリプトのエラーチェック:JavaScriptの構文チェックを行い、エラーが無いか確認する。
- スプレッドシートの動作:開くスプレッドシートでトリガーが紐付いているか確認。
これらをチェックしても動かない?
そんなときはログを表示してデバッグさ。Logger.logでonOpenの処理がリロード時に実行されているか確認してみよう。
GASのonOpenは複数設定できる??
function onOpen() {
taskOne();
taskTwo();
}
function taskOne() {
Logger.log("タスク1実行中");
}
function taskTwo() {
Logger.log("タスク2実行中");
}
複数の処理を実行したいときは、onOpen内で複数の関数を呼び出す設計にするのが基本だ。
GASのonOpenとonEditの違い

練習問題
GASのonOpenトリガーを利用して「おかえりなさい」というメッセージをログに出力するスクリプトを書いてみよう。
解答・解説
function onOpen() {
Logger.log("おかえりなさい");
}