初心者でもできる!Google Apps Scriptでスプレッドシートを自動実行する方法

パソコンパソコン・スマホ教室
スポンサーリンク

Googleスプレッドシートを使っていて、「毎日決まった時間に集計をしたい」「フォームの回答があったら自動でメールを送りたい」と思ったことはありませんか?そんなときに便利なのが、Google Apps Script(GAS)の「トリガー機能」です。今回は、初心者の方でもわかりやすいように、GASでスプレッドシートを自動実行する方法を、実際の例を交えてご紹介します。

スポンサーリンク

トリガーって何?

Googleスプレッドシートのイメージ

Googleスプレッドシートのイメージ

まず、「トリガー」という言葉を聞いたことがない方もいらっしゃるかもしれません。簡単に言うと、トリガーは「何かのきっかけで自動的に動く仕組み」のことです。例えば、スプレッドシートを開いたときや、セルの内容を変更したときに、自動でスクリプトを実行させることができます。

どんなときに使えるの?

具体的な例を挙げてみましょう。

ここがポイント!

  • 毎日決まった時間に集計をしたい毎日午前9時に売上データを集計して、結果をメールで送信する。
  • フォームの回答があったら自動でメールを送りたいGoogleフォームで回答が送信されたら、自動で確認メールを返信する。
  • スプレッドシートを開いたときに初期設定をしたいスプレッドシートを開いたときに、特定のセルに日付を入力する。

これらはすべて、GASのトリガーを使って自動化することができます。

トリガーの種類と設定方法

GASには主に2種類のトリガーがあります。

イベントトリガー

これは、ユーザーの操作(例スプレッドシートを開く、セルを編集する)をきっかけに自動でスクリプトを実行するものです。

ここがポイント!

  • onOpenスプレッドシートを開いたときに実行されます。
  • onEditセルの内容を編集したときに実行されます。
  • onChangeシートの構造を変更したとき(例行や列の追加・削除)に実行されます。
  • onFormSubmitGoogleフォームの回答が送信されたときに実行されます。

時間主導型トリガー

これは、指定した日時や周期で自動的にスクリプトを実行するものです。

ここがポイント!

  • at指定した日時に実行されます。
  • everyMinutes指定した分数ごとに実行されます。
  • everyHours指定した時間数ごとに実行されます。
  • everyDays指定した日数ごとに実行されます。
  • everyWeeks指定した週間数ごとに実行されます。

実際に設定してみよう!

ここでは、スプレッドシートを開いたときに自動で日付を入力するスクリプトを作成してみましょう。

  1. スプレッドシートを開き、上部メニューの「拡張機能」から「Apps Script」を選択します。
  2. 以下のコードを入力します。
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange('');
var date = new Date();
cell.setValue(date);
}
  1. 左側の「時計」アイコン(トリガー)をクリックします。
  2. 「トリガーを追加」をクリックし、以下のように設定します。
  • 実行する関数を選択onOpen
  • 実行するデプロイを選択Head
  • イベントのソースを選択スプレッドシートから
  • イベントの種類を選択起動時

これで、スプレッドシートを開いたときに自動でセルに日付が入力されるようになります。

注意点とコツ

  • 同時実行の制限複数のユーザーが同時にスプレッドシートを編集すると、スクリプトが重複して実行される可能性があります。これを防ぐために、ロック機能を使って同時実行を制御することができます。
  • 実行時間の制限GASのスクリプトは、1回の実行で6分を超えるとタイムアウトします。長時間かかる処理は、分割して実行するなどの工夫が必要です。
  • エラー通知の設定スクリプトがエラーを起こした場合、通知を受け取る設定をしておくと安心です。

よくある質問や疑問

Q1: スプレッドシートを開いたときに自動で特定のセルに値を入力したい

セルに日付を入力する例を前述しましたが、他のセルに任意の値を入力することも可能です。例えば、B1セルに「こんにちは」と入力する場合は、以下のようにコードを変更します。

function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange('B1');
cell.setValue('こんにちは');
}

Q2: フォームの回答があったときに自動でメールを送りたい

Googleフォームとスプレッドシートを連携させ、フォームの回答が送信されたときに自動でメールを送ることができます。以下のようなコードを使用します。

function onFormSubmit(e) {
var email = 'example@example.com';
var subject = 'フォームの回答がありました';
var message = '新しい回答があります。';
MailApp.sendEmail(email, subject, message);
}

Q3: スクリプトの実行履歴を確認したい

スクリプトの実行履歴は、GASエディタの「表示」メニューから「実行ログ」を選択することで確認できます。ここで、スクリプトが正常に実行されたか、エラーが発生したかを確認することができます。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

Google Apps Scriptのトリガー機能を使うことで、スプレッドシートの操作を自動化し、作業の効率化を図ることができます。初心者の方でも、少しずつ試してみることで、より便利に活用できるようになるでしょう。

他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。

コメント

タイトルとURLをコピーしました