GASでスプレッドシートの作業を自動化する

スプレッドシートとメールの繰り返し作業をコードで自動化する

プロンプト · 変数 3個

私はGoogleスプレッドシートを使っており、Google Apps Script(GAS)を使うのは初めてです。以下にシートの構造を記載しました。この処理は{{実行周期}}に実行させたいです。

自動化したい内容は次のとおりです:{{自動化する作業}} この作業を行うApps Scriptのコードを作成してください。

コードだけでなく、初心者でも迷わず進められるよう手順を追って教えてください。全体のコード、スクリプトエディタを開く手順、初めて関数を実行する際に表示されるアクセス承認画面でどこをクリックすればよいか、そして{{実行周期}}に合わせて自動実行するためのトリガー設定手順をそれぞれ説明してください。

シートの既存データを削除したり上書きしたりする処理は、指示した範囲外では絶対に入れないでください。メールを送信するコードの場合は、最初はテスト用に私のメールアドレス宛てにのみ送信されるようにし、実際の宛先に変更するにはコードのどこを書き換えればよいか明記してください。また、データ量が多くて処理がタイムアウトしないよう、1回で処理する行数を制限する方法も1行で教えてください。

シートの構造: """ {{シートの構造}} """

コピーしたらここに貼り付け · ChatGPT・Claudeはプロンプト入りで開きます ChatGPTで開く ↗Claudeで開く ↗Geminiで開く ↗ ビルダーで編集 授業用カード画像を保存

なぜこう書くのか

文脈
私はGoogleスプレッドシートを使っており、Google Apps Script(GAS)を使うのは初めてです。以下にシートの構造を記載しました。この処理は{{実行周期}}に実行させたいです。
課題
自動化したい内容は次のとおりです:{{自動化する作業}} この作業を行うApps Scriptのコードを作成してください。
形式
コードだけでなく、初心者でも迷わず進められるよう手順を追って教えてください。全体のコード、スクリプトエディタを開く手順、初めて関数を実行する際に表示されるアクセス承認画面でどこをクリックすればよいか、そして{{実行周期}}に合わせて自動実行するためのトリガー設定手順をそれぞれ説明してください。
制約
シートの既存データを削除したり上書きしたりする処理は、指示した範囲外では絶対に入れないでください。メールを送信するコードの場合は、最初はテスト用に私のメールアドレス宛てにのみ送信されるようにし、実際の宛先に変更するにはコードのどこを書き換えればよいか明記してください。また、データ量が多くて処理がタイムアウトしないよう、1回で処理する行数を制限する方法も1行で教えてください。
入力資料
シートの構造: """ {{シートの構造}} """

Google Apps Script(GAS)をChatGPTに依頼すると、コード自体はすぐに生成されます。しかし、初心者がつまずくのはその次です。エディタに貼り付けて実行を押すと「承認が必要です」という画面が表示され、見慣れない警告メッセージを見て作業が止まってしまいます。決まった日時に自動実行させるには別途トリガーを設定する必要があるということも、コードだけを受け取っても分かりません。

文脈の段落で3つの前提を伝えています。「スプレッドシートを使っていること」「GASを使うのが初めてであること」、そして「実行周期」です。初心者であることを明記すると説明の丁寧さが変わり、実行周期をあらかじめ伝えておくことでトリガー設定に適した形(引数のない単一の関数)でコードが生成されます。また、シートの構造を記載することで、シート名や列位置の推測によるエラーを防ぎます。結果を出力する別シートの存在をあらかじめ伝えておくことで、元データを誤って上書きするコードを防ぐこともできます。

タスクは1文で簡潔に指定します。スプレッドシートの自動化を一気にすべて頼もうとすると、コードが長くなり、不具合があった際に原因の特定が難しくなります。集計とメール送信のように性質の異なる作業がある場合は、まず集計までを動かし、次の指示でメール送信を追加していく方が結果的に早く仕上がります。

制約の段落では「データ」と「送信先」の2つを守ります。範囲外の上書きを防ぐ指示がないとシート全体を初期化してしまうコードが出力される場合があり、メール送信コードは初回実行時に本番の宛先へ誤送信される危険があります。テスト用に自分のアドレス宛てにしておく指示が誤送信事故を防ぎます。また、実行時間の上限に触れているのは、数千行を超えるデータではGASの実行時間制限(タイムアウト)にかかって途中で止まってしまうことがあるためです。

用語が分からなければAha AIで: prompt, hallucination

悪い例との比較

よくある悪い例

スプレッドシートから毎週月曜日に自動でメールを送るApps Scriptを作って

コードは生成されますが、シート名や列名が適当に設定されているためそのままでは動きません。承認手順やトリガー設定の説明がないため貼り付けても実行できず、送信先がコード内に固定されているためテスト実行のつもりがチーム全体へ誤送信されてしまう恐れがあります。一度送信されたメールは取り消せません。

バリエーション

コードが実行できないとき

コードが実行できないとき

以下のシートで「{{自動化する作業}}」を行うApps Scriptを実行したところエラーが発生しました。何からどのような順序で確認すればよいか教えてください。エラーメッセージの確認場所、実行ログの確認方法、よくあるエラーと原因の対応表をまとめ、原因を特定するためにコードのどこにログ(console.log)を仕込めばよいかを示した修正コードを提示してください。

""" {{シートの構造}} """

初めて使う際につまずく原因の多くは、コードそのものではなく権限や実行環境にあります。ログの仕込み場所をあらかじめ把握しておくことで、次回以降のエラーを自力で切り分けられるようになります。

フォーム送信のたびに実行したいとき

フォーム送信のたびに実行したいとき

Googleフォームの回答が以下のシートに蓄積されます。新しい回答が1件送信されるたびに「{{自動化する作業}}」が自動実行されるようにしてください。直近で送信された行のみを処理し、同じ行が2回処理されないよう処理済みフラグを残す方法もあわせて教えてください。

""" {{シートの構造}} """

時間指定(時間駆動)ではなく、フォーム送信をトリガーにして動かしたい場合に使います。重複処理を防ぐフラグがないと、再実行時に同じメールが複数回送信されてしまいます。

モデル別の注意

Apps Scriptは初回実行時にアクセスの承認が必要です。個人のGoogleアカウントと組織用(Google Workspace)アカウントで承認画面の表示が異なるため、画面が説明と異なる場合はその表示内容をそのまま伝えて再度質問してください。

関連プロンプト

最終更新 2026-09-02 · 誤りがありますか? 知らせる