Excel業務効率化のためのAI活用完全ガイド:プロンプトエンジニアリングの基礎

プロンプトエンジニアリングの基礎を黒板で説明する男性
目次

基本のプロンプト「型」を習得する

AIを活用してExcelの業務効率化を目指す際、多くの人が最初にぶつかる壁が「AIが意図通りのコードを書いてくれない」という問題です。「売上を集計するマクロを作って」と頼んでも、エラーが出たり、全く違う計算をされたりして、結局自分で直した方が早かったという経験はないでしょうか。実は、その原因の9割はAIの能力不足ではなく、私たち人間の「指示の出し方(プロンプト)」にあります。

2025年12月現在、ChatGPT(GPT-5.2)やGeminiといった最新のAIモデルは、人間が驚くほどの論理的思考能力を持っています。しかし、彼らは「空気を読む」ことや「言わなくても分かるだろう」という暗黙の了解を理解するのが苦手です。そこで必要となるのが、AIにとって理解しやすい指示の構成、すなわち「プロンプトの型」です。

本記事では、AI業界で標準的に使われている「深津式プロンプト」をExcel VBAや関数作成に応用し、誰でも一発で高精度な回答を引き出せるようになる「究極のテンプレート」を伝授します。この型を習得することは、単なるテクニックではなく、AIという優秀な部下を動かすための共通言語を手に入れることを意味します。

なぜ「曖昧な指示」ではExcel業務の自動化に失敗するのか

私たちが普段、同僚や部下に仕事を頼むとき、無意識のうちに多くの情報を省略しています。「あの表をまとめておいて」という一言だけで、相手は「あの表」が何を指すのか、「まとめる」が合計することなのか平均を出すことなのかを、過去の文脈や阿吽の呼吸で理解してくれます。しかし、AIに対して同じ感覚で接すると、プロジェクトは確実に失敗します。

AIは、あなたが今どのExcelファイルを開いているのか、そのシートにどのようなデータが入っているのか、過去にどのようなルールで集計していたのかを一切知りません。真っ白なキャンバスに、言葉だけで全ての状況を描写しなければならないのです。例えば、「データを整理して」という指示に対し、AIは「昇順に並び替えること」なのか、「重複を削除すること」なのか、「空白行を詰めること」なのかを確率的に推測して答えを出します。その推測があなたの意図と一致する確率は、宝くじを当てるようなものです。

特にExcel VBAの世界では、曖昧さは致命的なエラーに直結します。「A列を消して」と指示したとき、AIが「Sheet1のA列」を消すコードを書くか、「ActiveSheet(現在開いているシート)のA列」を消すコードを書くかで、結果は大きく異なります。もし、重要なマスタデータのシートを開いた状態で、ActiveSheetを操作するマクロを実行してしまったら、取り返しのつかないデータ消失事故が起きます。

このように、自然言語の曖昧さを排除し、AIに「これ以外の解釈はあり得ない」というレベルまで条件を絞り込んで伝える技術こそが、プロンプトエンジニアリングの本質です。そして、毎回ゼロから完璧な指示文を考えるのは大変な労力がかかります。だからこそ、思考のフレームワークとして「型(テンプレート)」が必要になるのです。型に沿って情報を埋めていく作業は、あなたの頭の中にあるぼんやりとした「やりたいこと」を、論理的な「仕様書」へと変換するプロセスでもあります。このプロセスを経ることで、AIの回答精度は劇的に向上し、修正にかかる時間は最小限に抑えられます。

「深津式プロンプト」をExcel開発に応用する最強のフレームワーク

日本の生成AI活用において、最も有名かつ実用的なフレームワークの一つが「深津式プロンプト」です。これは、note株式会社の深津貴之氏が提唱したもので、AIに対する指示を「命令書」「制約条件」「入力文」「出力文」などの要素に分解して伝える手法です。この構造化された指示方法は、文章作成だけでなく、プログラミングコードの生成においても極めて高い効果を発揮します。

Excel VBAや関数の作成に特化してこのフレームワークをアレンジすると、以下の4つの要素が不可欠になります。 #役割(Role):AIにどのような立場で振る舞ってほしいか #目的(Goal):最終的に何を達成したいのか、何を作りたいのか #処理の要件(Requirements):具体的な処理の手順やアルゴリズム #制約条件(Constraints):守るべきルール、禁止事項、出力形式

これらを「#」で見出し化し、箇条書きで情報を整理して伝えることで、AIは情報の重要度と構造を瞬時に理解します。人間が長い文章を読むときに斜め読みをしてしまうのと同様に、AIもダラダラと書かれた長文プロンプトでは、後半の指示を忘れたり、重要な条件を見落としたりすることがあります。しかし、見出しと箇条書きで構造化されていれば、AIのアテンション(注意機構)が適切に働き、全ての条件を漏らさずに処理しようとします。

このテンプレートを使う最大のメリットは、「再現性」です。一度うまくいったプロンプトの構造を保存しておけば、次回からは中身のデータや目的を書き換えるだけで、同じ高品質なコードを生成できます。また、チーム内でこのテンプレートを共有することで、誰がAIに指示を出しても一定の品質を保つことができるようになります。いわば、AIへの指示出しを「属人化」させず、組織のナレッジとして蓄積するための基盤となるのです。次節からは、この4つの要素それぞれについて、具体的に何をどう書くべきかを深掘りしていきます。

要素1 #役割(Role):AIの視座を固定し専門性を引き出す

プロンプトの冒頭で定義すべきなのが「#役割」です。「あなたはプロのExcel VBAエンジニアです」や「あなたはデータ分析のスペシャリストです」といったように、AIに演じさせるペルソナ(人格)を指定します。これには、単なる雰囲気作り以上の技術的な意味があります。

大規模言語模型(LLM)は、インターネット上のあらゆるテキストデータを学習しています。その中には、プロのプログラマーが書いた高品質なコードもあれば、初心者が掲示板で質問している不完全なコード、あるいは間違った解説記事なども含まれています。役割を指定しない場合、AIはこれら玉石混交の知識の中から、平均的な回答を生成しようとします。その結果、動くには動くけれど効率が悪いコードや、可読性の低いコードが出力される可能性があります。

しかし、「熟練したVBAエンジニア」という役割を与えることで、AIは自身の膨大な知識データベースの中から、その役割に関連する高品質な領域(専門書や公式ドキュメント、GitHub上の良質なリポジトリなど)にアクセスの重み付けをシフトさせます。これにより、生成されるコードはより専門的で、エラー処理や変数の宣言などが適切に行われた「プロ仕様」のものに近づきます。

また、役割定義は回答のトーンやレベル感の調整にも役立ちます。例えば、あなたがVBA初心者で、コードの内容を学習したい場合は、「あなたはVBAを教える親切な講師です。初心者にも分かるように丁寧にコメントをつけてください」と指示します。すると、AIは難しい専門用語を避け、各行に詳細な解説コメントが入ったコードを生成してくれます。逆に、即戦力となる高速なコードが欲しい場合は、「あなたはパフォーマンスチューニングが得意なエンジニアです。処理速度を最優先してください」と指示すれば、配列処理などを駆使した高度なコードが返ってきます。このように、AIの「人格」をコントロールすることで、あなたの現在のスキルレベルや目的に合致したアウトプットを引き出すことができるのです。

要素2 #目的(Goal):最終ゴールを明確にし迷走を防ぐ

次に記述するのが「#目的」です。ここでは、「何をしたいのか」という最終的なゴールを簡潔かつ具体的に宣言します。多くの初心者がここで失敗します。「集計したい」「マクロを作って」といった抽象的な目的では、AIは何をどう集計すればいいのか分からず、一般的な(そして役立たない)サンプルコードを返すことしかできません。

良い目的の書き方は、「5W1H」を意識することです。「いつ(タイミング)」「どこで(対象シート)」「誰が(ユーザー)」「何を(データ)」「どうする(処理内容)」を含めるのが理想です。例えば、「毎月の請求書作成業務において、”売上データ”シートから今月分のデータを抽出し、”請求書テンプレート”シートに転記して、PDFとして保存するマクロを作成したい」といった具合です。

このように目的を具体化することで、AIはコード全体の設計図を描くことができます。上記の例であれば、AIは「データの抽出処理」「転記処理」「PDF保存処理」という3つの機能が必要であることを認識し、それらを組み合わせたコードを構成します。また、目的の中に「業務効率化のため」や「ミスを減らすため」といった背景情報を含めることも有効です。背景を知ることで、AIは「ミスを防ぐなら、データ入力時にエラーチェックを入れた方がいいかもしれない」といった、頼んでいないプラスアルファの提案(気の利いた機能)をコードに盛り込んでくれることがあります。

Geminiなどのモデルは特に文脈理解に長けているため、この「目的」部分で業務の背景や困っているポイント(例:手作業だと時間がかかりすぎる、転記ミスが多いなど)を詳しく伝えると、単なるコード生成を超えた、業務改善のパートナーとしてのアドバイスをくれることもあります。目的の定義は、AIとのプロジェクトの方向性を決定づける羅針盤のようなものです。ここがブレていると、どんなに細かい条件を指定しても、求めている結果には辿り着けません。

要素3 #処理の要件(Requirements):アルゴリズムを構造化して伝える

プロンプトの中で最も重要であり、かつ難易度が高いのがこの「#処理の要件」です。ここでは、目的を達成するための具体的な手順を、AIが理解できるロジック(アルゴリズム)に落とし込んで伝えます。ここで役立つのが、2023年頃から注目されている「Structured Chain-of-Thought(構造化された思考の連鎖)」という概念です。

VBAなどのプログラミングは、突き詰めれば「順次(順番に処理する)」「分岐(条件によって分ける)」「反復(繰り返す)」の3つの基本構造の組み合わせでできています。したがって、指示出しもこの3つの構造を意識して箇条書きにすることが、成功への近道です。文章でダラダラと書くのではなく、処理の流れをステップごとに分解しましょう。

例えば、以下のように記述します。

1. 「売上管理」シートの最終行を取得する(順次)

2. 2行目から最終行まで、以下の処理を繰り返す(反復)

3. もしD列の値が「完了」であれば、その行をコピーする(分岐)

4. 「完了リスト」シートの最終行の次の行に貼り付ける(順次)

5. 繰り返し終了後、完了メッセージを表示する(順次)

このように手順を明確に示すことで、AIは迷うことなくコードを書くことができます。もしこの手順を示さずに「完了のものを移して」とだけ頼むと、AIは「フィルター機能を使ってコピーする」のか、「一行ずつ見ていく」のか、「配列に入れて処理する」のかを勝手に判断します。その判断があなたの想定(例えば、書式も一緒にコピーしたいなど)と異なれば、修正の手間が発生します。

また、この「要件定義」のプロセスは、人間自身の頭の整理にもなります。AIに指示を書こうとして筆が止まる場合、それはAIの問題ではなく、あなた自身の中で「業務の手順」が明確になっていない証拠です。Excelでの手作業を思い出し、それを一つ一つの動作に分解して言語化する。このトレーニングを積むことで、AIへの指示力だけでなく、業務プロセスそのものを見直す力も養われます。

要素4 #制約条件(Constraints):品質と安全性を担保するガードレール

「#制約条件」は、AIが暴走しないように枠組みを設定し、出力されるコードの品質や安全性をコントロールするための項目です。ここをおろそかにすると、動くけれど危険なコードや、読みにくいコードが生成されてしまいます。

具体的には、以下のようなルールを設けます。 ・変数の宣言を強制する(Option Explicit): スペルミスによるバグを防ぐためのVBAの基本設定です。 ・日本語の変数名を使用する: 後から見返したときに理解しやすくするためです(AIは英語で変数を付けたがる傾向があります)。 ・コード内に日本語でコメントを入れる: 初心者にとって、各行が何をしているかの解説は必須です。 ・エラー処理を入れる: ファイルが見つからない、データが空などの予期せぬ事態でもマクロが止まらないようにします。 ・セルの選択(Select/Activate)を使わない: 画面がチカチカ動くのを防ぎ、処理速度を上げるためのプロのテクニックです。

特に重要なのが「セキュリティとデータ保護」に関する制約です。「元のデータは絶対に削除・上書きしないこと」「処理前に確認メッセージを出すこと」といった安全装置をこの項目で指示します。AIは指示されれば「データを全て削除する」コードも平気で書きます。それを防ぐのは人間の責任です。

また、使用しているExcelのバージョンやOS(WindowsかMacか)もここで伝えておくと良いでしょう。VBAはWindowsとMacでファイル操作の記述が異なる場合があるため、「Windows 10、Excel 2019環境で動作するコードにしてください」と明記することで、環境依存のエラーを未然に防ぐことができます。制約条件は、AIに対する「校則」のようなものです。厳しく設定すればするほど、規律の取れた安全なコードが生成されます。

入力データの定義:AIに「目」を与えるためのデータ構造記述

プロンプトテンプレートの4要素に加え、Excel特有の事情として絶対に欠かせないのが「入力データの定義」です。AIはあなたの画面を見ることができません。したがって、あなたの目の前にある表がどのような構造をしているのかを、言葉で正確に描写してあげる必要があります。ここが曖昧だと、AIは架空の表構造(たいていはA1セルから始まるきれいな表)を想像してコードを書きますが、それはあなたのファイルでは動きません。

伝えるべき情報は以下の通りです。 ・シート名: 「Sheet1」なのか、「売上管理」なのか。 ・データの開始位置: 1行目が見出しで2行目からデータなのか、それとも上部にタイトルがあって5行目から表が始まるのか。 ・列の構成: A列には何が入っているか、B列は日付か文字列か、数値か。 ・データの終了位置: データは可変なのか、固定なのか。

例えば、次のように具体的に記述します。 #入力データ ・対象シート:「InputData」 ・ヘッダー行:3行目 ・データ開始行:4行目 ・A列:ID(文字列、例:”A001″) ・B列:売上日(日付形式、yyyy/mm/dd) ・C列:金額(数値、カンマあり)

ここで重要なのが、実際の機密情報(顧客名や本当の売上額)を書かないことです。「株式会社〇〇」といった固有名詞は「A社」、「1,000,000円」は「数値」やダミーの金額に置き換えて伝えます(マスキング)。AIが必要としているのは「値そのもの」ではなく、「データの型(文字列か数値か日付か)」と「配置(どの列にあるか)」です。この構造情報さえ正確なら、AIは完璧なコードを作成できます。

Geminiの有料版などでは、ファイルをアップロードして解析させることも可能ですが、企業セキュリティの観点からは、テキストで構造のみを伝えるこの方法が最も安全で汎用性が高いと言えます。AIに「目」を与えるつもりで、丁寧にデータの地図を描いてあげましょう。

ChatGPTとGeminiの使い分け:モデルによる「型」の微調整

2025年12月現在、主要なAIであるChatGPT(GPT-5.2など)とGemini(Gemini 1.5 Proなど)は、それぞれ異なる特性を持っています。基本のテンプレートはどちらにも有効ですが、相手に合わせて少し「味付け」を変えることで、さらに良い結果が得られます。

ChatGPTの場合: ChatGPTは非常に論理的で、指示に忠実な「優秀なエンジニア」タイプです。プロンプトの「#要件」や「#制約条件」を厳密に守ろうとします。したがって、ChatGPTに対しては、箇条書きで論理構造をカチッと固めた、仕様書のようなプロンプトが好まれます。「Thinkingモード」が搭載されているモデルでは、複雑なロジックでも推論時間をかけて正確なコードを出力してくれるため、VBAのコード生成そのものに関してはChatGPTに軍配が上がることが多いです。テンプレートの「#処理の要件」をより詳細に記述することに注力しましょう。

Geminiの場合: GeminiはGoogleのエコシステムと親和性が高く、少し「おしゃべりなアドバイザー」タイプです。コードを書くだけでなく、そのコードの解説や、やりたいことに対する別のアプローチの提案(例えば「VBAより関数の方が簡単ですよ」など)を得意とします。Geminiに対するプロンプトでは、「#目的」や背景事情を少し多めに語りかけるように書くと良いでしょう。また、GoogleスプレッドシートのGAS(Google Apps Script)を生成する場合は、Geminiの方が圧倒的に精度が高い傾向にあります。

エラーが出た時の対応も異なります。ChatGPTは「修正版のコード」をズバリ提示してくるのに対し、Geminiは「なぜエラーが起きたのか」の理由を説明しようとします。開発フェーズではChatGPTでコードをバリバリ書き、理解を深めたい時やアイデア出しの段階ではGeminiに相談する、といった使い分けが、最強の「二刀流」スタイルです。

テンプレートを使っても失敗する場合の対処法:反復修正の技術

どれほど完璧なプロンプトを作っても、一発で100点満点のコードが出てこないことは多々あります。エラーが出たり、挙動が少し違ったりしたときに、「やっぱりAIは使えない」と諦めるのは早計です。プロンプトエンジニアリングは「対話」の技術です。一度の指示で終わらせず、AIの回答を見て修正指示を出す「ラリー」を続けることが成功の鍵です。

テンプレートを使って出力されたコードが動かなかった場合、次のような手順で修正を行います。

1. エラー内容をそのまま伝える: エラーメッセージと、エラー箇所(黄色くハイライトされた行)をコピーし、「このコードでこのエラーが出ました。修正してください」と投げ返します。これだけでAIは自己修正します。

2. 要件を再定義する: 思った通りの動きをしない場合、あなたの「#処理の要件」の記述が足りなかった可能性があります。「A列だけでなくB列も判定条件に加えてください」といったように、条件を追加・修正して再生成させます。

3. ステップ・バイ・ステップで依頼する: 処理が複雑すぎてAIが混乱している場合もあります。その時は、「まずはデータの転記部分だけ作って」と機能を分割し、一つずつ完成させてから統合するように指示します。

重要なのは、修正依頼をする際も「前のやつ動かないから直して」と雑に投げるのではなく、「前回のコードの〇〇の部分が××という動きをしました。正しくは△△となるように修正してください」と、具体的にフィードバックすることです。AIは文脈を記憶しています(特にChatGPT)。あなたのフィードバックを学習し、対話を重ねるごとに、あなた専用の優秀なアシスタントへと成長していきます。

まとめ:テンプレートはAIとの共通言語プロトコル

今回紹介した「#役割」「#目的」「#処理の要件」「#制約条件」というプロンプトの型は、単なる便利技ではありません。これは、曖昧な人間の言葉を、論理的な機械の言葉へと翻訳するための「共通言語プロトコル(通信規約)」です。このプロトコルを通して指示を出すことで、AIはその真価を発揮し、あなたのExcel業務を劇的に効率化してくれます。

最初はテンプレートを埋めるのが手間に感じるかもしれません。「自分で書いた方が早い」と思うこともあるでしょう。しかし、この型を使ってAIに指示を出し続けることは、あなた自身の「論理的思考力」や「業務設計力」を鍛えるトレーニングになります。業務を分解し、構造化し、言語化する。このスキルは、AI時代において最も価値のある「ヒューマンスキル」です。

まずは、この記事にあるテンプレートをメモ帳やOneNoteにコピーしてください。そして、明日の業務で発生する小さなルーティンワークから、この型を使ってAIに依頼してみましょう。最初は簡単な「データ転記」や「書式設定」からで構いません。AIが見事なVBAコードを書き上げ、ボタン一つで仕事が終わる快感を一度味わえば、もう元の手作業には戻れなくなるはずです。さあ、AIというパートナーと共に、新しい「開発者」としてのキャリアをスタートさせましょう。

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