VBA
AI利用
開発日記
「VBAはAIに書いてもらえばいい?」実際にChatGPTとGeminiで試してみた
ぴーす君
「VBAはAIに書いてもらえばいい?」実際にChatGPTとGeminiで試してみた
最近は、生成AIに「ExcelのVBAを書いて」とお願いすると、かなり本格的なコードを作ってくれるようになりました。
「VBAはAIに書いてもらえばいいんじゃない?」
となった場合、どのような結果になるのでしょうか。
今回はWork Pieceで、ChatGPTとGeminiに実際にVBAツールを作ってもらい、どこまで使えるものができるのかを試してみました。
今回作ってもらうもの
今回、AIに依頼したのは「フォルダ・ファイル一覧作成ツール」です。
指定したフォルダを選択すると、そのフォルダ内にあるフォルダやファイルを一覧にする、という比較的シンプルなツールです。
今回の検証では、ChatGPTとGeminiにできるだけ同じ条件で依頼しました。
AIへの依頼内容
実際に使用したプロンプトはこちらです。
以下要件でExcelのツールを作成してください。
・指定したフォルダの一覧を作成したい
・指定したファイルの一覧を作成したい
・配下のフォルダの一覧も作成したい
・配下のフォルダの指定は切り替えられるようにしたい
この程度の内容で、どこまで作れるのかを確認します。
ChatGPTに作ってもらった結果
ChatGPT(GPT-5.6 Luna)に、今回のプロンプトを入力してVBAツールの作成を依頼しました。
結果として、以下のようなツールが作成されました。
今回の条件から、ChatGPTだけでも一通り動作するVBAツールを作成することができました。
一方で、生成されたコードをそのまま利用できるわけではなく、実際に使用するためには、自身の作業がいくつか発生するということがわかりました。
所感
いきなり作成するのではなく、仕様の検討が入る
そのうえでツールが作成される。ボタンなども配置されており、UIとしては使いやすい
未入力、指定したフォルダが存在しない場合などチェックが実装されている
VBAコードにコメントが細かく明記されている
プロンプトを入力してから、約30分程度で動作するところまで作成できた
気になった点
Lunaの場合、コードは作成できるが、Excel自体は生成されない。そのため、AIの指示に倣って自分がファイルを用意したり、コードを貼り付けたりり付けたり、という作業が発生する
ファイルの作成はいくつかのステップを経て作成することになる。その際にChatGPT内で補正が入り、プログラムの修正を行うことになった。1Module内にすべて記載されているため、修正しづらかった
実際に動かしたところ、エラーが発生した。エラーハンドリングが成されているため、エラー箇所の特定に時間がかかった。(そもそも、エラーハンドリングが成されていることに気づかず、なぜエラーに飛ばないのかピンとこなかった)
MENU画面を自動で作成してくれる。しかし、全体的に直書きしており、修正が必要な時、修正するというよりも作り直した方が早い、と判断されるように感じた。
Geminiに作ってもらった結果
Gemini(Gemini 3.6 Flash)に、今回のプロンプトを入力してVBAツールの作成を依頼しました。
結果として、以下のようなツールが作成されました。
今回の条件から、Geminiだけでも一通り動作するVBAツールを作成することができました。
一方で、仕様を細かく指定できない(というか、勝手に作成される)ことに少々恐怖を覚えました。
所感
プロンプトでの指示から特に仕様を確認せず、ツールの作成が進められる
VBAコードだけではなく、Excelファイル自体を作成することができる。こちらの作業はModuleの作成とコードの貼り付け(1回のみ)なので、作業は15分程度で終わった
ボタンなども配置されており、UIとしては一通り使える状態になっている
VBAコードがシンプルであり、関数も2つしかない(ChatGPTは11個の関数が作成された)
気になった点
「Excelのツールを作成してください」という指示に対し、はじめ、Pythonでコードが作成された。Pythonは環境設定などが必要なため、Excelに限定してほしいと伝えると、今度はPowerQueryで作成された。結果「VBAで」と伝える必要が出てしまった
勝手に作成する、という印象が強く、リストも「フォルダ」と「ファイル」は特に分けず、一つのリストに出力された(条件指定より、いずれかのみ出力することは可能)
ファイルのリンクが設定されており、開いて確認することができる。しかし、二次利用するという観点から見ると一長一短である
VBAコードを見るとChatGPTよりコメントが少ない
エラーチェックには弱く、フォルダがない場合にはシステムエラーが発生する
3つのVBAツールを比較してみる
ここまで、ChatGPTとGeminiそれぞれで実際にツールを作成し、動作させてみました。
ここからは、実際に作成されたVBAの中身も確認してみます。
今回は、AIが作成した2つのツールに加えて、Work Pieceが作成したツールも比較対象にしました。

比較した項目は、以下の4つです。
コード行数
コメント行数
Sub / Function数
モジュール数
なお、VBAでは処理をSubやFunctionなどのプロシージャに分けて記述することができます。Subは一連の処理を実行するためのプロシージャで、Functionは値を返す処理などに使用されます。処理を複数のプロシージャに分けることで、コードを整理しやすくなります。
比較結果
項目 | ChatGPT | Gemini | Work Piece |
|---|---|---|---|
実コード行数 | 507行 | 87行 | 427行 |
コメント行数 | 164行 | 17行 | 226行 |
Sub / Function数 | 11個 | 2個 | 29個 |
モジュール数 | 5個 | 5個 | 10個 |
※実コード行数は、空行・コメント行・VBAの属性情報などを除いて集計しています。
Geminiが逸脱してコード数、コメント数、Sub/Function数が少ない、という結果になりました。
比較結果からの総評
今回の比較では、3つのツールにそれぞれ特徴が見られました。
Gemini
必要最低限の処理で、シンプルに作成。
コード量が少なく、2つのSub / Functionで構成されていました。
ChatGPT
エラーチェックなども含め、より多くの処理を組み込んで作成。
Geminiよりもコード量が多く、11個のSub / Functionで構成されていました。
Work Piece
後から修正・拡張することを意識した構成。
処理を細かいSub / Functionや複数のモジュールに分け、29個のSub / Function、10個のモジュールで構成しています。
この違いは、ツールを「今使えればよい」と考えるのか、「今後も使い続けるもの」と考えるのかによって、重要度が変わってくるのではないでしょうか。
今回の検証では、AIでも実際に動作するVBAツールを作成することができました。
一方で、業務で継続して使用するのであれば、作成時点だけでなく、その後の修正や拡張まで考えておくことも重要だと感じました。
まとめ
今回、同じプロンプトを使ってChatGPTとGeminiにVBAツールを作成してもらいました。
実際に試してみると、生成AIだけでも、動作するExcel VBAツールを作成できることが分かりました。
一方で、ChatGPTとGeminiでは、仕様の確認方法やコードの構成、エラーチェックなどに違いがありました。
また、Work Pieceが作成したツールと比較することで、「動作するツールを作る」ことと、「後から修正・拡張することを考えてツールを作る」ことには違いがあることも分かりました。
もちろん、作成したツールをそのまま使えるのであれば、AIを利用することは非常に有効な方法だと思います。
ただ、業務で使っていると、
「ここを変更したい」
「この機能を追加したい」
「別の部署でも使えるようにしたい」
といったことが出てくることがあります。
そのときに、作った後の修正や拡張まで考えているかどうかは、重要なポイントになるのではないでしょうか。
今回の検証を通して、生成AIはVBA開発において非常に便利な存在だと感じました。
そして同時に、「何を作るか」だけでなく、「作った後にどう使い続けるか」まで考えることも大切だと改めて感じました。
今回の検証に使用したツール
今回、ChatGPTとGeminiに作成してもらったツールを公開しています。
どちらも今回の検証で実際に作成したものです。
ChatGPT版・Gemini版のツールとREADMEをZIPファイルにまとめています。
ChatGPT版
Gemini版
検証内容・使用したプロンプトを記載したREADME
※こちらは生成AIによるVBA作成の検証を目的としたサンプルです。実際の業務で使用する場合は、動作確認・仕様確認・セキュリティ確認等を行ってください。
Work Pieceが作成したツール
今回の比較対象として使用した、Work Piece作成の「フォルダ・ファイルリスト作成ツール」も公開しています。
AIが作成したツールとの違いを実際に確認してみたい方は、こちらもぜひご覧ください。
Work Pieceでは、単に「動くツール」を作るだけではなく、実際の業務で継続して使用することを考え、後からの修正や機能追加にも対応しやすいツールづくりを心がけています。
「Excelでこんな作業を自動化できないだろうか?」
「今使っているExcelツールを、もう少し使いやすくしたい」
といったご相談がありましたら、お気軽にご相談ください。