Googleスプレッドシートで定期的な処理を自動化したいとお考えではありませんか。たとえば毎朝9時にデータを更新する、毎週月曜にレポートをメール送信する、月末に集計を実行するといった作業です。これらの繰り返し作業を手動で行うのは非効率です。時間ベースのトリガーを使えば、決まった日時にスクリプトを自動実行でき、作業の手間を大幅に削減できます。この記事では、時間ベースのトリガーの設定手順を詳しく解説します。
【要点】時間ベースのトリガーで定期実行を自動化する方法
- Apps Scriptエディタ: スクリプトを記述し、トリガーページから時間ベースのトリガーを追加します。
- トリガーの種類: 時間主導型で「分単位」「時間単位」「日単位」「週単位」「月単位」を選択できます。
- 実行する関数: トリガーで呼び出す関数名を指定し、定期的に処理を実行します。
ADVERTISEMENT
目次
時間ベースのトリガーとは何か
時間ベースのトリガーは、Google Apps Scriptが提供する機能の一つです。スプレッドシートに紐付いたスクリプトを、指定した日時や間隔で自動的に実行させることができます。たとえば「毎日午前9時にセルの値を更新する」といった処理を、一度設定すれば人が操作しなくても動作します。トリガーには他に「スプレッドシートの編集時」「フォーム送信時」などの種類がありますが、時間ベースのトリガーは定期的なバッチ処理に最適です。設定は簡単で、数回のクリックで完了します。ただし、実行頻度には制限があり、1時間あたりの実行回数に上限があります。無料アカウントでは合計で1日あたりの総実行時間に制限があるため、大量のトリガーを設定する際は注意が必要です。
時間ベースのトリガーを設定する手順
ここでは、具体的な手順を説明します。サンプルとして、毎朝9時にシートの特定セルに現在時刻を書き込むスクリプトを例にします。
ステップ1: スクリプトを作成する
- スプレッドシートを開く
定期実行を設定したいスプレッドシートを開きます。新規作成でも既存のシートでも問題ありません。 - Apps Scriptエディタを起動する
メニューの「拡張機能」をクリックし、「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。 - 関数を記述する
エディタに関数を記述します。たとえば以下のコードを入力します。function setTimestamp() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange("A1").setValue(new Date());
}
この関数はアクティブなシートのセルA1に現在の日時を入力します。関数名は後でトリガー設定時に使用しますので、覚えやすい名前をつけてください。 - プロジェクトを保存する
エディタ上部のフロッピーディスクアイコンをクリックするか、Ctrl+Sで保存します。プロジェクト名は任意の名前で構いません。
ステップ2: トリガーを追加する
- トリガーページを開く
Apps Scriptエディタの左側のメニューから「トリガー」アイコン(時計のマーク)をクリックします。 - 新しいトリガーを追加する
右下の「トリガーを追加」ボタンをクリックします。 - 実行する関数を選択する
「実行する関数」のドロップダウンから、先ほど記述した関数名(例:setTimestamp)を選択します。 - 時間ベースのトリガーを選ぶ
「イベントのソース」で「時間主導型」を選択します。「時間ベースのトリガーのタイプ」で頻度を選びます。たとえば「日タイマー」を選び、「時間の間隔」で「午前9時〜10時」を選択します。これで毎日9時〜10時の間に実行されます。 - 通知設定を確認する
「失敗時の通知」は必要に応じて選択します。通常は「今すぐ通知を受け取る」で構いません。 - 保存する
「保存」ボタンをクリックします。初回は承認画面が表示されるので、必要な権限を許可してください。承認後、トリガーが有効になります。
ステップ3: トリガーをテストする
- 手動で実行する
トリガーが正しく動作するか確認するため、Apps Scriptエディタで関数を選択し「実行」ボタンをクリックして手動でテストします。 - ログを確認する
実行後、エディタの「実行」メニューから「ログ」を表示し、エラーがないか確認します。想定通りセルA1に日時が入力されていれば成功です。 - 実際の時刻を待つ
設定した時間になると自動的に実行されます。実際に待つか、テスト用に「10分ごと」などの短い間隔に一時的に変更して動作を確認することもできます。
時間ベースのトリガーの注意点とよくある問題
トリガーが実行されない場合
トリガーが設定した時間に実行されないことがあります。原因として最も多いのは、権限が正しく承認されていないことです。Apps Scriptエディタの「トリガー」ページで、トリガー一覧に「失敗」のマークが出ていないか確認してください。失敗している場合は、トリガーを削除して再度設定し、承認をやり直すと解決します。また、スクリプトにエラーがあると実行されないため、手動実行でエラーが発生しないか確認しましょう。
実行頻度の制限について
Google Apps Scriptには、1日あたりの総実行時間に制限があります。無料アカウントでは合計90分(または1時間あたりのトリガー実行回数に制限)など、Quotaが設定されています。大量のトリガーや頻繁な実行を行うと、制限に達して実行がスキップされる可能性があります。その場合は、実行間隔を長くするか、処理を効率化する必要があります。制限の詳細はGoogleの公式ドキュメントで確認できます。
トリガーの削除と無効化
不要になったトリガーは削除しましょう。トリガーページで該当のトリガーの右側にあるメニューアイコン(三点リーダー)をクリックし、「トリガーを削除」を選択します。削除しないままにしておくと、思わぬタイミングでスクリプトが実行されることがあります。また、トリガーはプロジェクトごとに管理されるため、プロジェクトを削除すれば関連するトリガーもすべて削除されます。
ADVERTISEMENT
時間ベースのトリガーと他のトリガーの比較
| トリガーの種類 | 起動条件 | 主な用途 |
|---|---|---|
| 時間主導型(時間ベース) | 指定した日時・間隔で自動実行 | 定期的なデータ更新、レポート送信 |
| スプレッドシート編集時 | セルが編集されたとき | 入力値の自動変換、変更の記録 |
| フォーム送信時 | Googleフォームが送信されたとき | 回答データの自動処理、通知メール |
| 開く時 | スプレッドシートが開かれたとき | 初期化処理、前回の続きからの復元 |
時間ベースのトリガーは、他のトリガーと併用することも可能です。たとえば、編集時に実行するトリガーと時間ベースのトリガーを両方設定して、リアルタイム処理とバッチ処理を組み合わせることができます。ただし、複数のトリガーが同時に実行されると、スクリプトの実行時間が重なり、意図しない競合が発生する可能性があるため、処理の独立性を確保しておきましょう。
時間ベースのトリガーを使えば、Googleスプレッドシートの定期作業を完全に自動化できます。この記事では、スクリプトの作成からトリガー設定、テスト、注意点までを解説しました。特に、実行頻度の制限や権限の承認に注意すれば、安定した自動化が実現します。まずはシンプルな関数から試し、徐々に複雑な処理に応用してみてください。例えば、毎日の売上データを別シートに集計するスクリプトや、週次レポートをメール送信する処理など、さまざまな自動化が可能です。ぜひ時間ベースのトリガーを活用して、スプレッドシート作業の効率を向上させてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
