なぜこう書くのか
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 · 誤りがありますか? 知らせる