マクロやスクリプトをAIに頼む前に、関数と標準機能で済むかの判断
AIを使いこなす執筆にClaudeを使用しています。

結論から言うと、「表の中のデータを引く・数える・整える」だけなら、マクロやスクリプトの前に関数、ピボットテーブル、Power Queryなどの標準機能を試すのが先です。スクリプトが向くのは、ファイルやフォルダを操作する、他のアプリやメールに触る、時刻や操作をきっかけに自動で動かす、といった「表の外に手が出る作業」です。 AIに頼めばコードはすぐ出てきますが、そのコードは「自分が保守する持ち物」になります。列が1つ増えただけで動かなくなったとき、直せる人がいなければ、手作業より不便になりかねません。この記事では、作業の特徴別の判断表と判断フロー、そして依頼する場合にAIへ渡す仕様メモの型を示します。 本文中の表や依頼文のサンプルは説明用の例で、実際に実行して確かめた結果ではありません。
作業の特徴別・判断表
以下は編集上の目安です。例外はあります。
- 別の表から値を引く、条件付きで合計・件数を出す、まず試すもの:検索系関数、SUMIFS・COUNTIFSなどの条件付き集計関数、スクリプトを検討する目安:不要なことがほとんど
- 担当者別・月別などの集計表を作る、まず試すもの:ピボットテーブル、スクリプトを検討する目安:集計後の書式づけや配布まで毎回自動化したい場合
- 複数の表の結合、不要な列の削除、型の変換を毎月同じ手順で行う、まず試すもの:Power Query(Excel)、スクリプトを検討する目安:取り込み元が複雑な操作を要する場合
- 入力ミスを防ぐ、条件に合う行を目立たせる、まず試すもの:データの入力規則、条件付き書式、スクリプトを検討する目安:不要
- フォルダ内の多数のファイルを順に開いて転記する、まず試すもの:件数が少なければ手作業、スクリプトを検討する目安:件数が多く、毎回発生するなら有力
- 指定した時刻に自動で集計・通知する、まず試すもの:標準機能では限定的、スクリプトを検討する目安:有力(Apps Scriptの時間主導型トリガーなど)
- ボタン1つでPDF出力・他アプリ連携を行う、まず試すもの:標準の印刷設定や保存機能、スクリプトを検討する目安:有力
- 1回きりの作業、まず試すもの:手作業・一時的な関数、スクリプトを検討する目安:原則として割に合わない
Power Queryについては、MicrosoftのExcel の Power Query についてに、接続・変換・結合・読み込みの流れが整理されています。同ページによると、変換は元のソースを変更せずクエリとして記録され、更新すると各ステップが自動で実行されます。「毎月同じ整形をする」作業は、コードではなくこの仕組みで済むことが少なくありません。
ただし、同ページではPower QueryをExcel for Windows、Mac、Webで使えるとしつつ、Excel 2016・2019 for Macは対象外としています。お使いの版で使えるかは事前に確認してください。Googleスプレッドシートを使う場合は、同じ整形を関数で組めるかをAIに先に確認させると無駄がありません。
判断フロー
上から順に当てはめてください。
- 1回きりの作業か。 はい → 手作業か一時的な関数で終わりです。
- 表の中の計算・抽出・整形だけで完結するか。 はい → 関数、ピボットテーブル、入力規則を試します。
- 毎回同じ形のデータを取り込んで整形するか。 はい → Power Queryを試します。
- 他ファイル・フォルダ・メール・他アプリへの操作、または人がいない状態での定時実行が必要か。 はい → スクリプトを検討します。
- どれにも当たらず、何となく面倒なだけ。 → 作業手順を書き出して見直します。
AIには、コードの前にこの判断そのものを任せられます。依頼文の例です。
次の作業を、VBAやApps Scriptを使わずに、関数・ピボットテーブル・
Power Query・条件付き書式・データの入力規則などで実現できるか判断してください。
できる場合は手順を、難しい場合はその理由を教えてください。
使うのは[Excel(Windows) / Googleスプレッドシート]です。
作業内容:売上一覧(A列=日付、B列=担当者、C列=金額)から、
担当者ごとの月次合計を別シートに出したい。毎月、行が追加される。スクリプトにすると増える負担
ステップ4でスクリプトを選ぶなら、次の負担も織り込んで判断します。
Excelのマクロ(VBA)
Microsoftの技術文書によると、インターネットから入手したファイルのVBAマクロは、Windows上のOfficeで既定でブロックされます。Mac・Android・iOS・Web版のOfficeは対象外です。メール添付やブラウザでダウンロードしたファイルを開くと警告バナーが出て、ファイルの「プロパティ」の「全般」タブで「許可する(Unblock)」を選ぶ手順が案内されています。ただし、ネットワーク共有上のファイルなどでは、この項目が表示されない場合や効かない場合があるとも書かれています。
OneDriveやSharePointのファイルは、「デスクトップ アプリで開く」で開けば、この印は付かないとされています。
つまり、AIが書いたマクロ入りファイルを同僚に配ると、「動かない」という問い合わせが起こりえます。管理者がポリシーで扱いを決めている場合もあり、同文書はポリシーを使えるのがMicrosoft 365 Apps for enterpriseで、for businessでは使えないと説明しています。配布先の環境が分からないうちは、マクロを前提にしない設計が安全です。
Google Apps Script
GoogleのApps Scriptの割り当てと制限では、確認時点で、スクリプトは1回あたり6分、カスタム関数は30秒が実行時間の上限でした。トリガーの合計実行時間は、個人アカウントで1日90分、Google Workspaceで1日6時間です。同ページは、割り当てが予告なく変更・縮小されうるとも明記しています。実装前に最新のページを見てください。
データが増えると上限に近づくため、「今は動く」だけで判断しないことが大切です。
どちらにも共通する保守の問題
- シートの列構成や名前を変えると壊れやすい。
- 作った本人が異動すると、誰も直せなくなる。
- 依頼者がコードの内容を説明できないまま使い続けやすい。
依頼する場合の仕様メモの型
スクリプトが必要と判断したら、AIに渡す前に次の項目を埋めます。空欄が多いと、AIは推測で補い、意図とずれたコードになりやすいためです。
【目的】何のために、誰が、どの頻度で使うか
【使う環境】Excel(Windows/Mac/Web)・バージョン / Googleスプレッドシート
【入力】対象のシート名、列の構成、行数の目安(個人情報は架空の値に置換)
【処理内容】やりたいことを手順で。条件分岐があれば書く
【出力】どこに何を書くか。既存データを上書きするか
【触ってはいけないもの】消す・上書きする・送信する対象の禁止事項
【代替検討】関数・ピボット・Power Queryでは無理だった理由
【実行のきっかけ】ボタン/手動実行/時刻トリガー
【エラー時の挙動】想定外の入力があったら止めるか、スキップして記録するか
【説明の依頼】コードの各ブロックが何をしているか、日本語で説明してほしい記入例です(架空の内容)。
【目的】営業部の月次報告。月初に1回、私が実行する
【使う環境】Excel(Windows)、保存先はSharePoint
【入力】「売上」シートのA〜D列(日付・担当者・得意先・金額)。約3,000行。得意先名は架空の値
【処理内容】担当者ごとにシートを分け、金額の降順に並べて新しいブックに保存
【出力】フォルダ「月次」に担当者名.xlsxを作る。元のブックは変更しない
【触ってはいけないもの】元のブックの上書き・削除。メール送信はしない
【代替検討】ピボットで集計はできたが、担当者別ファイルの自動作成ができない
【実行のきっかけ】ボタン1つ
【エラー時の挙動】担当者名が空欄の行はスキップし、一覧を別シートに出す
【説明の依頼】ブロックごとに日本語で説明すること「代替検討」欄が重要です。ここに書けない作業は、まだ関数や標準機能で済む可能性があります。
受け取ったコードで人が確認すること
AIに任せられるのは、コードの下書きと各行の説明までです。実行する前に、人が次の点を見ます。
- コピーで試す。 本番ファイルではなく、架空データ入りの複製で動かす。
- 書き込み・削除・送信の範囲。 仕様メモの「触ってはいけないもの」を破っていないか、該当コードを説明させて確かめる。
- 外部への通信や権限。 承認画面で求められる権限が、作業内容に見合っているか。
- 本番に近い件数で試す。 少量のデータだけで判断しない。
- 直せる人がいるか。 説明コメントが付いているか、変更時に誰が直すか。
確認しても不安が残る場合は、スクリプトを諦めて、手順の一部だけ標準機能で自動化する選択も有効です。

