GAS AUTOMATION SERIES

GAS連携・自動化編:準備と基本設定

【自動化・導入編:Revision 1.2】

〜 AIを「Google Workspace」の脳にする。
API連携の基礎から、セキュアなスクリプト環境の構築まで 〜

1. 本質:なぜチャットではなく「GAS連携」なのか?

STEP 01

「1対1」から「1対1,000」へ

チャットツール(Gemini Web版など)は、1つの質問に1つの回答を得る「対話型」です。対してGAS連携は、数千件のデータを一気に処理する「一括自動生成」を可能にします。

LCREATOR View: ホワイトカラーの業務(メール、レポート、データの要約)の多くはスプレッドシートに蓄積されています。そこへAIを直接繋ぎ込むことで、生産性は文字通り「万倍」になります。
  • UI構築不要: シートそのものが入力・出力インターフェースになる。
  • トリガー実行: 「毎日AM9時」や「フォーム回答時」に自動生成。
  • コスト最適化: API経由で必要最小限のトークンだけを消費。
  • 多製品連携: 生成結果をそのままGmailで送信、Driveに保存。

2. 基盤:Vertex AI と Google AI Studio の違い

STEP 02

GoogleのAIモデルを利用する窓口は主に2つあります。エンタープライズ利用ではVertex AIが推奨されます。

項目 Google AI Studio (Gemini API) Google Cloud Vertex AI
位置付け 開発者向けのクイックスタート 企業向けの統合AIプラットフォーム
データ保護 (有料版以外)学習に利用される可能性あり 学習に利用されない(厳格な隔離)
認証方法 APIキー(文字列)のみ OAuth 2.0 / IAM(高度な権限管理)
SLA なし(ベストエフォート) エンタープライズSLA対象
LCREATOR Recommendation: 社内業務で使用する場合は、必ず「Google Cloud」側のプロジェクトで管理される Vertex AI を選択してください。

3. 準備:Google Cloud Console での初期設定

STEP 03
CONSOLE SETUP
  1. プロジェクト作成: Google Cloud Console で新規プロジェクトを作成。
  2. APIの有効化: 「Vertex AI API」を検索し、有効化をクリック。
  3. 資格情報の作成: 連携テスト用には「APIキー」を作成。本番用には「サービスアカウント」を推奨。
  4. 請求設定: クレジットカード情報の登録が必要ですが、Gemini 1.5/2.0/3.0には一定の無料枠(無料階層)がある場合があります。

⚠️ セキュリティの鉄則

APIキーは決しておろそかにしないでください。GitHubなどの公開の場にアップロードすると、一瞬で他人に課金されるリスクがあります。
  • - 「キーの制限」を行い、特定のサービス(Vertex AI)からのみ使用可能にする。
  • - GASのコード内に直接書かず、ScriptProperties等での管理を検討する。

4. 接続:スプレッドシートからエディタを起動する

STEP 04

Google Apps Script はスプレッドシートに紐付く「コンテナバインド・スクリプト」として作成します。

手順:
1. スプレッドシートのメニュー [拡張機能] ➡ [Apps Script] を選択。
2. 無題のプロジェクトが立ち上がります。
3. `index.gs` 等にコードを記述していきます。
📊 ➔ ⚙️ ➔ 🤖

シートのデータをAIが読み込み、回答を書き戻すパイプライン

Master's Tip: 初回実行時には必ず「承認(Authorization)」のポップアップが出ます。「詳細を表示」から「安全なページに戻る(ではなく、実行)」という少し複雑な操作が必要ですが、これは仕様です。

5. 実装:Gemini 3.0 を呼び出す基本コード

STEP 05
function callGemini(prompt) { const apiKey = "YOUR_API_KEY_HERE"; const url = "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.0-pro:generateContent?key=" + apiKey; const payload = { "contents": [{ "parts": [{ "text": prompt }] }] }; const options = { "method": "post", "contentType": "application/json", "payload": JSON.stringify(payload) }; const response = UrlFetchApp.fetch(url, options); const json = JSON.parse(response.getContentText()); return json.candidates[0].content.parts[0].text; }

※Vertex AI 連携の場合は、エンドポイントURLや認証ヘッダーが若干異なりますが、論理構造は同じです。

6. 連携:セルのデータを読み取り、書き出す

STEP 06

スプレッドシート操作の基本

const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const inputText = sheet.getRange("A2").getValue(); // A2セル取得 const result = callGemini(inputText); // AI呼び出し sheet.getRange("B2").setValue(result); // B2セル書き込み

「A列にある課題」を読み込み、「B列の解決策」を埋めるというシンプルな動作が、自動化の単位(アトム)になります。

POINT: `getValue()` と `setValue()` は最も頻繁に呼び出されるメソッドです。これをループ(for文)で回すことで、大量処理が可能になります。

7. 効率:for文による「一括バッチ処理」の実装

STEP 07

1行ずつ手動で実行するのではなく、シート上のすべての行を走査してAIに投げます。

function batchProcess() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const lastRow = sheet.getLastRow(); for (let i = 2; i <= lastRow; i++) { const status=sheet.getRange(i, 3).getValue(); // C列を「処理ステータス」にする if (status==="完了" ) continue; // すでに完了していたらスキップ const input=sheet.getRange(i, 1).getValue(); // A列 const response=callGemini(input); sheet.getRange(i, 2).setValue(response); // B列に書き出し sheet.getRange(i, 3).setValue("完了"); // ステータス更新 SpreadsheetApp.flush(); // スプレッドシートへの書き込みを即時反映(重要) } }

8. UI:専用メニューを作成して「誰でも」使えるようにする

STEP 08

スクリプトエディタをいちいち開くのは非エンジニアには困難です。スプレッドシートのメニューバーに「LCREATOR AIメニュー」のように独自ボタンを表示させます。

Action: `onOpen()` という予約された関数名を使うだけで、シートを開いた瞬間にメニューが自動生成されます。
function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu('🚀 AI 実行') .addItem('一括要約をスタート', 'batchProcess') .addItem('API設定(管理者用)', 'setupMenu') .addToUi(); }

9. 自律:時間やイベントで「勝手に」動かす設定

STEP 09

人間がボタンを押さなくても、特定のイベントが発生した時にAIが起動するように設定できます。

フォーム送信時

Googleフォームに問い合わせが届いた瞬間に、AIが適切な返信案を作成し、ドラフト保存する。

時間主導 (Timer)

毎日夜間に、前日の売上データをAIが集計・分析し、翌朝マネージャーにレポート送信する。

Webフック

Slackや外部ツールからの入力をトリガーに、スプレッドシート上でAIが計算を開始する。

LCREATOR View: 「人間の手間を減らす」から「人間が寝ている間に価値を生む」フェーズへの移行です。

10. 防守:APIキー等の「隠し場所」とセキュリティ

STEP 10

ScriptProperties の活用

コードの中にAPIキーを直書き(ハードコード)すると、プロジェクトを共有した際に相手にキーが見えてしまいます。

// キーの取得 const apiKey = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY'); // キーの設定(一度だけ実行すれば、その後はコードから消して良い) PropertiesService.getScriptProperties().setProperty('GEMINI_API_KEY', 'xxxx');

環境変数のような仕組みを使うことで、安全性を高めます。また、本番環境ではサービスアカウントによる「偽装不可能な認証」への切り替えを検討します。

WARNING: 共有ドライブでスクリプトを共有する場合、閲覧権限しかないユーザーでも「プロジェクト設定」からプロパティが見えてしまう可能性があるため、慎重な設定管理が必要です。

11. 実戦:LCREATOR流「AI自動要約ツール」の設計図

STEP 11
【インプット】
1. 1,000件のカスタマーレビュー(A列)
2. システムプロンプト「顧客の不満を抽出しろ」(設定シート)
3. 担当部署のマスターデータ(別シート)
【処理 (GAS)】
- Gemini 3.0 Pro 呼び出し
- 感情分析 (Sentiment Analysis)
- 対応優先順位の算定
【アウトプット】
1. カテゴリ分類(B列)
2. 要約(C列)
3. 重要フラグ(D列)
4. 急ぎのものはSlack通知
Effect: 人間が3日かけて読んでいたフィードバックを、AIなら10分で「分析済みレポート」の状態まで整理します。

12. 総括:GAS×AI連携を成功させるチェックリスト

SUMMARY
  • [ ] API権限は有効か? (Vertex AI API Enabled)
  • [ ] 請求設定は完了しているか? (Billing Setup)
  • [ ] セル位置の指定は動的か? (Hard-coding cells is risky)
  • [ ] エラー処理(try-catch)はあるか? (Next Step for details)
  • [ ] 重複実行を防止しているか? (Status columns are key)
💻
Next Step:
Troubleshooting & Optimization

AIを「雇う」感覚で、仕組みを創る

一度スクリプトを書けば、AIはあなたの代わりに24時間365日働き続けます。
単なるチャット相手としてではなく、
自律的に業務を遂行する「デジタルチーム」の一員として、
Gemini 3.0を組織に迎え入れましょう。

AUTOMATION & ENGINEERING SERIES
エルクリエイター株式会社 (LCREATOR.Inc)