こんな悩みありませんか?
「コードは書けたけど、毎回手動で実行ボタンを押すのが面倒」 「毎朝9時に自動でスプレッドシートを更新したい」 「トリガーを設定したのに動かない、原因がわからない」
私も最初、コードを書く楽しさを覚えた次の段階で、この「自動実行」の壁にぶつかりました。書いた処理を毎回手動で回すなら、手作業とあまり変わらない。GASの真価はトリガーで動き出します。
この記事では、私が実運用で1年以上使ってきたトリガー設定の手順と、よくある落とし穴をまとめました。
トリガーとは何か
トリガーは「ある出来事をきっかけに関数を自動実行する」仕組みです。GASには大きく3種類あります。
- 時限トリガー(定期実行): 毎日・毎週・毎分など時刻ベース
- イベントトリガー: スプレッドシート編集・フォーム送信などの動作ベース
- 起動トリガー: ファイルを開いたときなど
本記事では、もっとも使う時限トリガーを中心に解説します。
処理フロー:設定から動作まで
[関数を書く] → [エディタの時計アイコン] → [トリガーを追加] → [関数選択] → [時刻設定] → [保存] → [動作確認]
操作はすべてブラウザ内で完結します。登録まで1分、確認まで入れても5分あれば十分です。
ステップバイステップ設定手順
Step1: 対象関数を用意する
まずは定期実行したい関数を書きます。
function dailyReport() {
const sheet = SpreadsheetApp.getActive().getSheetByName("日報");
sheet.appendRow([new Date(), "自動実行OK"]);
}
Step2: トリガー画面を開く
エディタ左サイドバーの**時計アイコン(トリガー)**をクリックします。右下の「トリガーを追加」を押すと設定ダイアログが開きます。
Step3: 実行内容を選ぶ
- 実行する関数:
dailyReport - 実行するデプロイ:
Head - イベントのソース:
時間主導型 - 時間ベースのトリガーのタイプ:
日付ベースのタイマー - 時刻:
午前9時〜10時
Step4: 保存して権限承認
保存ボタンを押すと、初回は権限確認が出ます。自分のコードなので承認して進みます。
Step5: 動作確認
翌朝まで待たずに、トリガー一覧の「実行数」列で回数が増えているか確認できます。うまく動いていなければ「エラー率」列にエラーが表示されます。
具体的なメリット
私が実際に得た効果です。
- 毎朝9時にKPIサマリがSlackに自動投稿(起床前にチーム全員が数字を把握)
- 毎週月曜に先週の作業時間を集計(週報作業がゼロに)
- 1分おきに在庫APIを叩いて閾値割れを検知(機会損失の防止)
単発のコード実行に比べ、価値が時間に対して積み上がるのがトリガーの本質です。1回書けば、365日働き続けます。
よくある失敗と対策
失敗1: トリガーは設定したのに動かない
ほぼ9割、対象関数のエラーが原因です。トリガー一覧の「エラー率」を確認し、「実行数 → 失敗」の詳細ログを開いてください。
失敗2: 同じ関数が二重実行される
トリガー一覧を見ずに追加していくと、同じ関数に複数トリガーが紐づくことがあります。月1回は一覧を整理しましょう。
失敗3: 実行時刻が想定とズレる
GASの時限トリガーは「指定した1時間のうちランダムに実行」されます。厳密な時刻が必要なら、短い間隔のトリガーと時刻判定を組み合わせます。
function checkAndRun() {
const now = new Date();
if (now.getHours() === 9 && now.getMinutes() < 5) {
dailyReport();
}
}
失敗4: 無料枠の実行時間上限
トリガー経由の実行も1回あたり6分の上限があります。重い処理は必ず分割バッチ化してください。
発展例:複数トリガーの組み合わせ
運用が成熟してくると、こんな構成になります。
// 毎朝: 日次集計
function morningBatch() { /* ... */ }
// 毎分: リアルタイム監視
function watcher() { /* ... */ }
// 週次: レポート送信
function weeklyReport() { /* ... */ }
それぞれに別のトリガーを紐づけると、1つのスクリプトが自動化のハブに育ちます。私の本業では、このパターンで工数を月40時間削減できました。
運用のちょっとしたコツ
コツ1: サーバー選びは早めに考える
GASは便利ですが、外部APIを叩いて大量データを扱う場合、レンタルサーバーや専用環境の方が快適なこともあります。私はConoHa WINGを併用し、GASで処理しきれない部分はPHPで受けています。用途を広げたくなったら、コスパの良いサーバー契約を検討すると世界が広がります。
コツ2: エラー通知をGmailに飛ばす
トリガー設定の最下部に「エラー通知」の設定があります。**「毎日」ではなく「即時」**に変えておくと、壊れたときすぐ気づけます。
コツ3: タイムゾーン設定を確認
プロジェクト設定で「タイムゾーン」が正しい地域になっているか確認してください。ここがずれると、毎朝9時のつもりが深夜に動いてしまいます。
独学が辛くなったら
トリガー自体はシンプルですが、複雑な自動化を組むと設計思想が問われます。我流で進めると「動くけど壊れやすい」コードになりがちです。
プログラミングスクールの短期コースで設計を学ぶ、あるいはConoHaのような安定サーバーで実運用を経験する、この2つを並行すると一気にレベルが上がります。まずは無料の資料請求や体験から始めるのがおすすめです。
まとめ
- トリガーは時計アイコンから1分で設定可能
- エラー通知を「即時」に
- 実行時刻は1時間の幅がある点に注意
- 月1回はトリガー一覧を整理
トリガーを使いこなした瞬間、GASは「書いたら終わり」のツールから「書いたら働き続ける」資産に変わります。ぜひ最初の1本を、この記事を見ながら設定してみてください。
関連記事: