【第5回】ChatGPTとつなげてAI自動化〜GAS×AIで文章を作る〜

いよいよシリーズ最終回! 今回は、Google Apps Script(GAS)とChatGPT(OpenAI API)を連携して、AIが自動で文章を生成する仕組みを作ります。

「AIが文章を作り」「GASがスプレッドシートを更新し」「メールやLINEで配信する」―― これが現代の業務自動化の完成形です。

全体の流れ

  1. OpenAI APIキーを取得(公式サイト
  2. GASにAPIキーを登録(プロパティサービス推奨)
  3. スプレッドシートに元データを用意
  4. GASでChatGPT APIを呼び出し → AIが文章生成
  5. 結果を自動でシートやメールに反映

準備:APIキーを安全に管理

APIキーをスクリプト内に直書きするのはNGです。 安全のために、スクリプトのプロパティに登録しましょう。

  1. GASエディタで「設定 ⚙️」→「プロジェクトのプロパティ」→「スクリプトのプロパティ」
  2. キー名:OPENAI_API_KEY / 値:あなたのAPIキーを貼り付け
  3. 保存

コード①:ChatGPTと連携して文章を作る(基本版)

function generateTextWithChatGPT() {
  const apiKey = PropertiesService.getScriptProperties().getProperty("OPENAI_API_KEY");
  const prompt = "以下の内容をもとに、200文字程度でやさしくまとめてください。\n内容: ChatGPTとGASを連携する方法";

  const url = "https://api.openai.com/v1/chat/completions";
  const payload = {
    model: "gpt-3.5-turbo",
    messages: [{ role: "user", content: prompt }],
    temperature: 0.5,
    max_tokens: 500
  };

  const options = {
    method: "post",
    headers: { Authorization: "Bearer " + apiKey },
    contentType: "application/json",
    payload: JSON.stringify(payload)
  };

  const response = UrlFetchApp.fetch(url, options);
  const data = JSON.parse(response.getContentText());
  const result = data.choices[0].message.content;

  Logger.log(result);
}

ログ(「表示 → ログ」)にChatGPTが生成した文章が出力されれば成功です! これを応用して、次にスプレッドシートへ出力してみましょう。

コード②:スプレッドシートと連携してAIが日報を作成

スプレッドシートに「業務内容」を入力しておき、AIがそれを要約・整形して日報を生成します。

function createReportWithChatGPT() {
  const apiKey = PropertiesService.getScriptProperties().getProperty("OPENAI_API_KEY");
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const tasks = sheet.getRange("A2:A10").getValues().flat().filter(String);

  const prompt = `以下の業務内容をもとに、300文字程度で社内日報文を作成してください。
- 丁寧語で
- 箇条書きを含めず
- 最後に「明日の予定」を1行添えてください。
内容: ${tasks.join(" / ")}`;

  const url = "https://api.openai.com/v1/chat/completions";
  const payload = {
    model: "gpt-4o-mini",
    messages: [{ role: "user", content: prompt }],
    temperature: 0.4
  };

  const options = {
    method: "post",
    headers: { Authorization: "Bearer " + apiKey },
    contentType: "application/json",
    payload: JSON.stringify(payload)
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    const json = JSON.parse(response.getContentText());
    const text = json.choices[0].message.content.trim();
    sheet.getRange("C2").setValue(text);
  } catch (err) {
    Logger.log("エラー:" + err);
    sheet.getRange("C2").setValue("エラーが発生しました:" + err);
  }
}

実行すると、A2〜A10の内容を要約したAI日報がC2セルに自動生成されます。 第2回〜第4回で扱った「スプレッドシート」「Gmail」「フォーム」をすべて結合した応用例です。

コード③:AIが作った文章を自動メール送信(完全自動化)

function dailyAutoReport() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const report = sheet.getRange("C2").getValue();
  const today = Utilities.formatDate(new Date(), "Asia/Tokyo", "yyyy/MM/dd");
  const subject = `【日報】${today}`;
  const email = "manager@example.com";

  if (report) {
    GmailApp.sendEmail(email, subject, report, { name: "AI日報システム" });
  } else {
    GmailApp.sendEmail(email, subject, "本日のデータが未入力です。");
  }
}

この関数をトリガーで毎朝8時に実行するよう設定すれば、AIが自動で日報を生成して送信します。

自動化設定:トリガーの設定手順

  1. GASエディタ左側「時計マーク」→「トリガーを追加」
  2. 関数名:createReportWithChatGPT または dailyAutoReport
  3. イベントのソース:「時間主導型」
  4. 実行間隔:「毎日 午前8時」など

これで、AIが毎朝スプレッドシートを読み取り、文章を作り、メールを送信する完全自動化が完成します。

ChatGPTの出力を安定させるコツ

  • temperature: 文章のゆらぎを制御。安定した文なら 0.3〜0.5。
  • max_tokens: 文字数の上限(500 ≒ 約1000文字程度)。
  • プロンプト:「何文字程度で」「口調は〜」を明記するほど品質が上がる。
  • モデル: 最新なら gpt-4o-mini がコスパ最強。

安全対策と制限

  • APIキー管理: PropertiesService で保存(直書き禁止)。
  • 送信上限: OpenAI無料枠は月間制限あり。定期利用は有料プラン推奨。
  • 情報保護: 個人情報・社外秘データはそのまま送信しない。
  • レスポンス長制御: max_tokens を設定して予測不能な長文を防止。

まとめ:AIが書き、GASが動く時代へ

GASとChatGPTを連携すると、文章作成・報告・要約など“考える系業務”まで自動化できます。 第1回〜第4回で作った仕組みを組み合わせれば、あなたの職場でもAIが働く仕組みを作れます。

これで「GAS入門シリーズ」は完結です。
GASを活用し毎日の仕事をもっとラクにしましょう。

シリーズ記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次