※本記事にはアフィリエイトリンクが含まれます
毎月¥1,490のMicrosoft 365、本当に元取れてますか。
結論。Googleスプレッドシート(無料)+ ChatGPT + GAS(Google Apps Script)の組み合わせで、Excelの定型自動化は多くが代替できます。私はExcelもPower Automateも卒業して、月¥0のSheets運用に切り替えました。経理事務だった妻に「もうExcel戻れない」と言わせた具体例(経費仕訳の分類を =GPT() で自動化、月3時間→10分)込みで、コード・コスト・落とし穴まで公開します。
結論早見表
| やりたいこと | 使うもの |
|---|---|
| セルの値で条件分岐して処理 | GAS(無料) |
| 取引先メールから自動でシート更新 | GAS + Gmail API |
| セル内容を要約・翻訳 | ChatGPT API(=GPT()関数) |
| 1000行のデータをカテゴリ分け | ChatGPT API + GAS |
| 定期実行(毎朝9時にレポート送信) | GASトリガー |
| 画像URLから内容を読み取り | GPT-4o系 Vision API |
| 大量データの並列処理 | GAS時間トリガー分割 |
これ全部、無料 or 数十円。Microsoft 365 Personal を解約すれば年¥17,880(¥1,490 × 12)浮きます。
OpenAI APIキーの取得(初心者向け事前準備)
GAS から ChatGPT を呼ぶには OpenAI APIキーが必要です。以下の手順:
- platform.openai.com にサインアップ
- 「Billing」→「Add payment method」でクレジットカード登録 → 最初は$5チャージで十分
- 「API Keys」→「Create new secret key」でキー発行(
sk-...から始まる文字列) - キーは1度しか表示されないのでメモする
キーを発行したら、GAS側で安全に保管します(コード内に直接書かない)。手順は次のセクションで。
Sheets × ChatGPT 連携の30秒セットアップ
GAS のカスタム関数として ChatGPT を呼び出せます。
- スプレッドシート → 「拡張機能」→「Apps Script(Google Apps Script の管理画面)」
- 左メニューの歯車アイコン「プロジェクトの設定」→「スクリプト プロパティ」→ プロパティ名
OPENAI_API_KEYでAPIキーを保存 - コードエディタに戻り、以下のコードを貼り付け
- 保存(Ctrl/Cmd + S)
- シートで
=GPT(A1, "要約して")と入力(初回は権限承認ダイアログが出るので許可)
function GPT(text, instruction) {
const apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');
const url = 'https://api.openai.com/v1/chat/completions';
const payload = {
model: 'gpt-4o-mini',
messages: [
{role: 'system', content: instruction},
{role: 'user', content: text}
]
};
const response = UrlFetchApp.fetch(url, {
method: 'post',
contentType: 'application/json',
headers: {Authorization: 'Bearer ' + apiKey},
payload: JSON.stringify(payload),
muteHttpExceptions: true
});
if (response.getResponseCode() !== 200) return 'ERROR: ' + response.getContentText();
return JSON.parse(response.getContentText()).choices[0].message.content;
}
これでセルに =GPT(A2, "英訳して") と書くだけで翻訳されます。
注意: GAS のカスタム関数は1回30秒の実行時間制限があります。極端に長い文章を渡すとタイムアウトするので、必要に応じてバッチ処理(後述)に切り替えてください。
=GPT() の実用例10選
| 用途 | セルに書く式 |
|---|---|
| 英訳 | =GPT(A2, "自然な英語に翻訳") |
| 要約(50字) | =GPT(A2, "50字以内で要約") |
| カテゴリ分類 | =GPT(A2, "次のどれか: 食品/家電/書籍/その他") |
| 感情分析 | =GPT(A2, "ポジティブ/ネガティブ/中立で判定") |
| 箇条書き化 | =GPT(A2, "重要点を箇条書きに") |
| キーワード抽出 | =GPT(A2, "重要キーワードを3つだけ抽出") |
| 正規化(住所等) | =GPT(A2, "都道府県名で始まる正式表記に") |
| 難易度判定 | =GPT(A2, "小学生/中学生/高校生/大人 のどれ向け文章か") |
| SQL生成 | =GPT(A2, "PostgreSQL の SELECT 文に変換") |
| メール返信文 | =GPT(A2, "丁寧な日本語ビジネスメール返信") |
営業リストの「サービス内容」列に =GPT(B2, "30字で要約") を貼り付けて下フィルすれば、1000件の要約が10分前後で終わります。
コスト試算(現実的な数字)
gpt-4o-mini の現行価格(input $0.15 / 1M tokens、output $0.60 / 1M tokens)で、1行あたり入力50 tokens・出力30 tokensを想定した試算:
| 処理量 | 概算コスト |
|---|---|
| 100行(短文) | 約¥3〜5 |
| 1,000行(短文) | 約¥30〜50 |
| 10,000行(短文) | 約¥300〜500 |
| 1,000行(長文 500 tokens入力) | 約¥150〜200 |
長文を扱う場合は、gpt-4oよりgpt-4o-miniで十分な精度の用途がほとんど。月¥1,000以下で業務効率化できる計算です。
Excelじゃ無理だけど Sheets ならできる5つ
1. Gmail と連動した自動処理
「請求書メールが来たら、添付PDF読み取ってシートに自動転記」みたいな処理が、GASひとつで完結します。
function onGmailTrigger() {
const sheet = SpreadsheetApp.getActive().getSheetByName('受信ログ');
if (!sheet) throw new Error('「受信ログ」シートが見つかりません');
const threads = GmailApp.search('subject:請求書 newer_than:1d');
threads.forEach(thread => {
const message = thread.getMessages()[0];
sheet.appendRow([message.getDate(), message.getSubject(), message.getFrom()]);
});
}
※ シート名は実際のシート名と完全一致させてください(全角スペース等のタイプミスでエラー)。
2. Web スクレイピング
=IMPORTXML() 関数や GAS の UrlFetchApp でWebデータ取得が可能。ただし IMPORTXML は不安定で、頻繁に #N/A を返すことで有名です。重要なデータ取得は GAS の UrlFetchApp でコード書いた方が安定します。
3. リアルタイム共同編集
これは言うまでもなくSheetsの圧勝。Excel for the web も進化してるけど、共有リンクの即時性は Sheets が上。
4. 画像URLから内容認識(GPT-4o系 Vision)
商品画像の URL を渡して、内容をテキスト化する関数。精度を取るなら gpt-4o、コスト優先なら gpt-4o-mini(両方とも画像入力対応):
function GPT_VISION(imageUrl, instruction) {
const apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');
const payload = {
model: 'gpt-4o-mini',
messages: [{
role: 'user',
content: [
{type: 'text', text: instruction},
{type: 'image_url', image_url: {url: imageUrl}}
]
}]
};
const response = UrlFetchApp.fetch('https://api.openai.com/v1/chat/completions', {
method: 'post',
contentType: 'application/json',
headers: {Authorization: 'Bearer ' + apiKey},
payload: JSON.stringify(payload),
muteHttpExceptions: true
});
if (response.getResponseCode() !== 200) return 'ERROR';
return JSON.parse(response.getContentText()).choices[0].message.content;
}
商品DBで =GPT_VISION(B2, "色とサイズを抽出") みたいに使えます。
5. 定期実行・自動レポート
「毎朝9時に売上集計してSlackに投稿」みたいな処理を、GASの時間主導トリガーで実現。サーバーレスで完全無料。
大量処理は「時間トリガーで分割」が正解
1,000行を =GPT() で一気に処理すると30秒制限に当たります。バッチ処理は時間トリガーで分割するのが鉄則:
function batchProcessChunk() {
const sheet = SpreadsheetApp.getActiveSheet();
const props = PropertiesService.getScriptProperties();
const startRow = Number(props.getProperty('batch_row') || 2);
const endRow = Math.min(startRow + 50, 1001); // 1回50行ずつ
for (let r = startRow; r < endRow; r++) {
const value = sheet.getRange(r, 1).getValue();
if (!value) break;
sheet.getRange(r, 2).setValue(GPT(value, '30字で要約'));
Utilities.sleep(200);
}
if (endRow >= 1001) {
props.deleteProperty('batch_row');
} else {
props.setProperty('batch_row', String(endRow));
}
}
これを「トリガー」設定で5分間隔の時間主導に設定すれば、6分制限内で 50行 ずつ処理を継続できます。10,000行クラスでも安全。
知らないと損するシート関数5つ
| 関数 | 用途 |
|---|---|
QUERY |
SQLライクにシートを検索・集計 |
IMPORTRANGE |
他のシートからデータを引っ張る |
ARRAYFORMULA |
1セルで複数行を一括計算 |
SPLIT |
カンマ区切りなどを列に展開 |
GOOGLETRANSLATE |
Google翻訳をセル関数で(=GOOGLETRANSLATE(A1, "ja", "en")) |
これらと =GPT() を組み合わせると、Excel関数では到達できない領域に踏み込めます。
逆にExcelの方が良い場面
正直に書きます。以下はExcelの方が上です:
- 数十万行超えの大規模データ処理(Sheetsの上限はセル数1,000万、列数や数式によっては数万行で重く感じる)
- VBAの既存資産が大量にある会社
- SUMIFS、INDEX/MATCH等の関数の挙動微差
- オフライン作業が多い人
- 金融機関等、Microsoft縛りの企業
あなたが上のどれかに当てはまるなら Microsoft 365 継続でOKです。公式の料金比較ページで再確認を。
失敗パターンとトラブルシュート
カスタム関数の30秒制限
=GPT() がエラーで返る時はだいたいこれ。バッチ処理に切り替えてください。
API キー漏洩
絶対にコード内に直接書かない。必ず PropertiesService に保存。共有スプレッドシートにコードを残しても、APIキーは別保管なので安全。
結果がブレる
同じ入力でも出力が毎回違うのが ChatGPT の特性。安定させたい場合は temperature: 0 をペイロードに追加するとほぼ決定的な出力になります(完全に同一ではない、seed指定併用推奨)。
カスタム関数の初回承認
外部API呼び出しはGASの認可スコープ承認が必要。初回はメニュー「実行」→ GPT 関数を手動実行 → 承認画面で「許可」を選ぶ。これでシートからの呼び出しも動くようになります。
ご家族のIT担当の方へ(発展編)
Sheets × GAS に慣れてきたら、Google Cloud の Vertex AI を試してみてください。GAS から Vertex AI を呼び出せば、Gemini や Claude on Vertex で同じことができて、しかも Google Workspace のドメイン内ならデータを社外に出さない運用が可能。コンプライアンス重視の会社にも導入できます。
さらに同じパイプラインを AppSheet でアプリ化すれば社内ツール化できます。AWS Lambda や Cloud Functions と組み合わせれば本格的な業務システムの土台に。エンタープライズなら Azure OpenAI Service もあり。
まとめ:Excel卒業の最初の一歩
「Excelで自動化」と検索すると Power Automate の記事ばかり出ますが、個人や小規模チームには Sheets + GAS の方が現実的です。
- 無料(GAS本体)
- 環境構築不要
- ブラウザだけで完結
- ChatGPT/Claude/Gemini との連携が簡単
- 1000行処理が月¥30〜50
まずは無料の Google アカウントで GAS を開いてみる。それだけで世界が変わります。
合わせて読みたい関連記事
- ChatGPT・Claude・Gemini を2年使った用途別の正解
- Mac launchd × Claude API でブログ記事を自動生成する方法
- Excel便利ショートカット20選 + コピペで使えるVBA小技10選
関連:
- GAS本格学習: Udemy「Google Apps Script」コース一覧
- GAS解説書籍: Amazonで「Google Apps Script 入門」検索
- ChatGPT Plus(月$20): chat.gpt でブラウザ版利用
- Google Workspace(法人向け): workspace.google.com
- OpenAI API: platform.openai.com
- GAS公式ドキュメント: developers.google.com

