7月31日、How-To Geekが「I asked Gemini to automate an Excel reporting task」と題した記事を公開した。GeminiにVBAマクロを生成させてExcelの定型レポート業務を自動化する試みで、最終的には実用レベルに到達している。ただし、そこに至る鍵は「AIへの指示を工夫する」ことではなく、テンプレート自体をシンプルに作り直すという逆転の発想にあった。
ワークフローを言語だけで仕様化してGeminiに渡す
記事の著者であるTony Phillipsが試みたのは、売上データを部署別に分割し、レポートを生成してPDFとして保存するVBAマクロをGeminiに作らせることだ。VBAとはExcelをはじめとするMicrosoft Office製品に組み込まれたマクロ言語で、繰り返し作業の自動化に広く使われている。使用したのはGemini 1.5 Flash(Google Workspaceアカウント経由)。
ポイントは、ワークブック自体をアップロードしなかったという点だ。プライベートな情報を含むファイルをAIに渡したくない状況も現実にある。そこで、テキストの仕様書だけでVBAを生成できるかを検証した。
ワークブックの構成は次の3シートだった。
- Sales Data:商品名・部署・国・原価・販売価格・販売数・売上・COGS・利益を含むテーブル
- Department Report Template:各部署のPDFレイアウト(タイトル、サマリー指標、製品テーブル)。マクロ実行後もテンプレート自体は変更されず再利用できる設計
- Report Log:生成されたPDFのファイル名・部署名・作成日時・ステータスを記録するログシート
Geminiへのプロンプトには、シート名・列名・各値の出力先セルまで細かく記述した。さらに、出力先フォルダはDesktop上の専用フォルダに固定するよう指示した。OneDriveなどのクラウドストレージ上にワークブックがある場合、同一フォルダへの保存が予期しない挙動を起こすという過去の失敗(Claudeを使った別実験で経験済み)を踏まえた判断だ。
また、マクロを使い回せるツールとして運用するため、**PERSONAL.XLSBに保存してクイックアクセスツールバーに追加するよう指定した**。PERSONAL.XLSBとは、Excelを起動するたびに自動で読み込まれる個人用マクロブックで、特定のワークブックに縛られず、どのファイルからでも登録済みのマクロを呼び出せる仕組みだ。
さらに、プロンプトの末尾で「コードを書く前に、自分が解釈したワークブックの構造を箇条書きで確認してほしい」と指示した。これにより、Geminiが仕様を誤読していないかをコード生成前に確認できた。
テストで判明した3つの問題
最初に生成されたコードはそのままでは動かなかった。問題は段階的に現れた。
1. コンパイルエラー:VBAエディタを開いた直後に構文エラーが発生。エラーメッセージをそのままGeminiに貼り付けると、原因の説明と修正コードが返ってきた。
2. 空白PDFの生成:コンパイルは通ったが、出力されたPDFにデータが入っていなかった。Geminiはいくつかの原因候補を提示したが、試行錯誤が続いた。最終的な解決策は、AIへの指示をさらに細かくすることではなく、テンプレートシートの構造をシンプルに作り直すことだった。複雑なテンプレートレイアウトがデータの書き込みを妨げていた可能性が高い。「AIの出力を磨く」より「入力側の構造を整える」方が近道になるケースがある、という実践的な教訓だ。
3. ログへの記録の精度:PDFの生成は成功したが、Report Logへの記録内容に意図しない動作があり、追加の修正が必要だった。
著者はこのデバッグ過程について「AIは問題を修正できるが、問題を追いかけ続けることもある」と評している。修正の指示を繰り返すうちにコードが複雑化するリスクがあり、場合によってはテンプレートや仕様の側を変える方が近道になる。
完成したマクロの実力
最終的に動作するマクロが完成し、部署ごとのPDFが自動生成・保存され、ログも正常に記録される状態になった。マクロはPERSONAL.XLSBに格納されているため、別のXLSXワークブックでも同じシート構成を用意すれば再利用できる。
今回の検証で明確になったのは以下の点だ。
- 詳細なテキスト仕様書だけでVBAを生成させることは可能
- ただし、一発で動くことは期待しない方がよい。テスト→フィードバック→修正のサイクルが必要
- ファイル保存先やクラウドストレージとの干渉など、実運用上の細かい前提条件をプロンプトに盛り込むことが品質を左右する
- デバッグが行き詰まったときは、AIへの指示より入力データやテンプレートの構造を見直す方が突破口になりやすい
定型のExcelレポート業務を抱えているビジネスパーソンにとって、VBAの知識がなくてもGeminiを介してある程度実用的なマクロを得られることは示された。ただし「プロンプトを投げれば終わり」ではなく、仕様の明確化とテストの繰り返しが前提になる。
詳細はI asked Gemini to automate an Excel reporting taskを参照していただきたい。