【完全ガイド】Excelマクロより100倍楽。Google Apps Script × AIで業務自動化する方法

はじめに - 「Excelマクロで挫折した」あなたへ
「Excelマクロ、難しくて挫折した…」
そんな経験、ありませんか?
VBAの構文がわからない。エラーが出ても何が悪いかわからない。ネットで調べてもコピペしたコードが動かない。
実は今、AIに日本語で指示するだけで業務自動化ができる時代になりました。
この記事では、Google Apps Script(GAS)とAIを組み合わせた業務自動化の方法を、プログラミング未経験者向けに解説します。
なぜExcelマクロより楽なのか
従来のExcelマクロの問題点
問題1:VBAの習得が大変
Sub SendEmail()
Dim OutlookApp As Object
Set OutlookApp = CreateObject("Outlook.Application")
' ...以下、何十行も続く
End Sub
この暗号のようなコードを書く必要がありました。
問題2:環境依存
- Excelのバージョンで動かないことがある
- Windowsでしか動かない
- ファイルの保存場所で挙動が変わる
問題3:セキュリティ警告
「マクロが無効にされました」という警告。会社によってはマクロ禁止のところも。
Google Apps Script(GAS)の利点
利点1:ブラウザだけで完結
GASはGoogleスプレッドシートに標準搭載されています。
- インストール不要
- どのPCからでも編集可能
- Windows、Mac、Chromebook問わず
利点2:AIにコードを書いてもらえる
2025年現在、ChatGPTやClaudeにお願いすれば、GASのコードを生成してくれます。
「このスプレッドシートから、毎週月曜に自動でメール送信して」
と伝えるだけで、動くコードが出てきます。
利点3:無料で使える
Googleアカウントがあれば、追加費用ゼロ。
利点4:Googleサービスとの連携が簡単
- Gmail
- Googleカレンダー
- Googleドライブ
- Googleフォーム
- Googleドキュメント
これらと簡単に連携できます。

GASでできること(具体例10選)
GASを使うと、こんな業務が自動化できます。
1. 定期レポート作成
売上データをスプレッドシートから集計し、毎週月曜日にPDFで生成してメール送信。
自動化のメリット:
- 集計ミスがなくなる
- 毎週1時間の作業が0分に
- 祝日でも自動で送信
2. メール一括送信
顧客リストに合わせて、名前や会社名をパーソナライズしたメールを一斉送信。
自動化のメリット:
- 手作業でのコピペミスがなくなる
- 100件でも1000件でも同じ手間
- 送信履歴が自動で記録
3. フォーム回答の自動整理
Googleフォームの回答を別シートに自動で整理。条件によって分類。
自動化のメリット:
- リアルタイムで整理
- 手作業での転記ミスがなくなる
- 担当者への自動振り分け
4. Slack/LINE通知
特定条件を満たしたら(期限が近い、数値が閾値を超えたなど)自動でアラート。
自動化のメリット:
- 見落としがなくなる
- 即座に対応できる
- 担当者に直接通知
5. データバックアップ
重要なスプレッドシートを毎日自動でバックアップ。Googleドライブに履歴を残す。
自動化のメリット:
- 誤操作からの復旧が可能
- 履歴管理が自動
- 忘れることがない
6. 在庫アラート
在庫数が一定以下になったら自動でメール通知。
自動化のメリット:
- 在庫切れを未然に防ぐ
- 発注タイミングを逃さない
- 毎日の在庫チェックが不要
7. 請求書の自動生成
顧客データと取引データから請求書を自動生成。PDFでメール送信まで。
自動化のメリット:
- 請求漏れがなくなる
- 入力ミスが減る
- 月末の作業が激減
8. カレンダー連携
スプレッドシートの予定をGoogleカレンダーに自動で登録。
自動化のメリット:
- ダブルブッキングを防ぐ
- 手動入力の手間がない
- チーム全体で共有
9. 日報の自動集計
チームメンバーの日報を自動で集計し、週次レポートを生成。
自動化のメリット:
- 集計作業がゼロに
- リアルタイムで状況把握
- グラフ化も自動
10. 契約更新リマインダー
契約の更新期限1ヶ月前に自動でリマインドメールを送信。
自動化のメリット:
- 更新漏れを防ぐ
- 手動でのチェックが不要
- 複数の契約を一括管理
AIを使った始め方(3ステップ)
プログラミング未経験でも、この3ステップで業務自動化ができます。
Step 1:やりたいことを日本語で書く
まず、自動化したいことを日本語で具体的に書きます。
例:
A列に名前、B列にメールアドレスが入ったスプレッドシートがあります。
各行に対して、C列のテンプレートを使ってメールを送信したいです。
件名は「【ご案内】〇〇について」で、〇〇にはD列の値を入れてください。
ポイント:
- 具体的に書く
- 列名や条件を明確に
- 期待する結果を説明
Step 2:AIにコード生成を依頼
ChatGPTやClaudeに、上記の内容を伝えて「GASのコードを書いて」と依頼します。
プロンプト例:
以下の処理を行うGoogle Apps Script(GAS)のコードを書いてください。
【スプレッドシートの構成】
・A列:名前
・B列:メールアドレス
・C列:メール本文テンプレート
・D列:件名に入れる値
【処理内容】
・各行に対してメールを送信
・件名は「【ご案内】(D列の値)について」
・本文はC列のテンプレートを使用
・本文中の「{{名前}}」をA列の値に置換
【その他】
・エラーハンドリングも含めてください
・ログ出力もお願いします
AIが以下のようなコードを生成してくれます:
function sendEmails() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
// ヘッダー行を除いて処理
for (let i = 1; i < data.length; i++) {
const name = data[i][0];
const email = data[i][1];
const template = data[i][2];
const subjectValue = data[i][3];
if (!email) continue; // メールアドレスがなければスキップ
const subject = `【ご案内】${subjectValue}について`;
const body = template.replace(/{{名前}}/g, name);
try {
MailApp.sendEmail(email, subject, body);
Logger.log(`送信成功: ${email}`);
} catch (error) {
Logger.log(`送信失敗: ${email} - ${error}`);
}
}
}
Step 3:コピペして実行
生成されたコードをGASエディタに貼り付けて実行します。
手順:
- Googleスプレッドシートを開く
- 「拡張機能」→「Apps Script」をクリック
- 生成されたコードを貼り付け
- 「実行」ボタンをクリック
- 初回は権限の許可が必要(「許可」をクリック)
エラーが出ても大丈夫:
エラーメッセージをそのままAIに見せれば、修正方法を教えてくれます。
「このエラーが出ました。修正してください」
(エラーメッセージを貼り付け)

実際に自動化した事例
私たちQUESTで実際にGAS × AIで自動化した事例を紹介します。
事例1:問い合わせ通知(構築時間:15分)
Before:
- Googleフォームの回答を1日1回メールで確認
- 気づくまでに時間がかかる
- 対応が遅れることがあった
After:
- フォーム送信と同時にSlackに通知
- リアルタイムで対応可能
- 誰が対応したかも記録
コード量: 約30行
事例2:週次レポート自動生成(構築時間:30分)
Before:
- 毎週月曜日に手動で集計
- Excelで表を作成
- 関係者にメールで送信
- 合計2時間かかっていた
After:
- 毎週月曜9時に自動実行
- PDF生成からメール送信まで完全自動
- 作業時間0分
コード量: 約50行
事例3:契約更新リマインダー(構築時間:20分)
Before:
- 契約一覧をExcelで管理
- 毎月手動で期限をチェック
- たまに見落とすことがあった
After:
- 更新1ヶ月前に自動でメール送信
- 対象者リストも自動生成
- 見落としゼロに
コード量: 約40行
効率化の効果
| 作業 | Before | After | 削減時間 |
|---|---|---|---|
| 問い合わせ対応 | 30分/日 | 即時 | 30分/日 |
| 週次レポート | 2時間/週 | 0分 | 2時間/週 |
| 契約管理 | 1時間/月 | 0分 | 1時間/月 |
月間削減時間:約12時間
GAS × AIの実践テクニック
テクニック1:段階的に作る
最初から完璧を目指さず、段階的に機能を追加します。
順序:
- まず「データを読み取る」だけのコードを作る
- 「ログに出力する」を追加
- 「メール送信する」を追加
- 「エラーハンドリング」を追加
- 「定期実行」を設定
各段階で動作確認しながら進めると、問題の切り分けが簡単です。
テクニック2:トリガーで自動実行
GASには「トリガー」機能があり、特定のタイミングで自動実行できます。
設定方法:
- GASエディタで「トリガー」(時計アイコン)をクリック
- 「トリガーを追加」をクリック
- 実行する関数、タイミングを設定
トリガーの種類:
| トリガー | 用途例 |
|---|---|
| 時間主導型 | 毎日9時に実行、毎週月曜に実行 |
| スプレッドシートから | 編集時に実行 |
| フォームから | 送信時に実行 |
| カレンダーから | イベント更新時に実行 |
テクニック3:テスト用データで試す
本番データでいきなり実行せず、テスト用のシートで試します。
手順:
- 本番シートをコピー
- テスト用の5行程度に減らす
- メール送信先を自分のアドレスに変更
- 動作確認
- 問題なければ本番に適用
テクニック4:ログを活用する
Logger.log() でログを出力し、動作を確認します。
function myFunction() {
Logger.log("処理開始");
const data = sheet.getDataRange().getValues();
Logger.log("取得した行数: " + data.length);
// 処理...
Logger.log("処理完了");
}
ログの確認方法:
- 「表示」→「ログ」
- または「実行数」から過去の実行ログを確認
テクニック5:エラー通知を設定
エラーが発生したらメールで通知を受け取れます。
設定方法:
- トリガーの設定画面を開く
- 「エラー通知設定」を「毎日通知を受け取る」に変更
よくあるエラーと対処法
エラー1:「権限がありません」
原因: 初回実行時に権限を許可していない
対処:
- 再度「実行」をクリック
- 「権限を確認」をクリック
- Googleアカウントでログイン
- 「許可」をクリック
エラー2:「サービスがタイムアウトしました」
原因: 処理時間が6分を超えた(GASの制限)
対処:
- 処理を分割する
- ループの回数を減らす
- 複数回に分けて実行
エラー3:「メールの送信上限に達しました」
原因: 1日の送信上限(無料版は100通/日)
対処:
- 複数日に分けて送信
- Google Workspaceにアップグレード
エラー4:「スプレッドシートが見つかりません」
原因: シートのIDやURLが間違っている
対処:
- URLをコピペで正確に入力
- シート名が正しいか確認
GASをさらに活用するために
学習リソース
公式ドキュメント:
おすすめの使い方:
- 公式ドキュメントを読む必要はない
- やりたいことをAIに伝えてコード生成
- エラーが出たらAIに質問
外部サービス連携
GASは外部APIとも連携できます。
| サービス | 連携例 |
|---|---|
| Slack | メッセージ送信、チャンネル投稿 |
| LINE | LINE Notify通知 |
| ChatGPT API | AI応答を組み込む |
| Notion | データベース操作 |
| Zapier | 他サービスとの連携 |
プロンプト例:
GASからSlackに通知を送るコードを書いてください。
Webhook URLは「https://hooks.slack.com/services/xxx」です。
メッセージは「新しい問い合わせがありました」です。
まとめ
「プログラミングできないから自動化は無理」は、もう過去の話です。
GAS × AIの強み:
- ブラウザだけで完結
- AIがコードを書いてくれる
- 無料で使える
- Googleサービスと連携が簡単
始め方の3ステップ:
- やりたいことを日本語で書く
- AIにコード生成を依頼
- コピペして実行
1つ作るのに30分〜1時間。
Excelマクロで同じことをやろうとしたら、半日はかかります。
日本語で指示を出せれば、AIがコードを書いてくれる。
この変化を活かさない手はありません。
次のステップ
QUESTでは、GAS × AIによる業務自動化の相談を受け付けています。
- 「こんな業務、自動化できる?」
- 「どこから手をつければいい?」
- 「うちに合った自動化の提案がほしい」
まずは無料相談から。
👉 AI活用・業務自動化サービスの詳細・お問い合わせはこちら
著者プロフィール
てんちょー(合同会社QUEST 代表)
普段はSIerで経営企画部員として働きながら、週末起業で高校時代の友人と共同創業。GAS × AIで社内業務を自動化し、月間10時間以上の工数削減を実現。非エンジニアでもできる業務効率化を実践中。
