大型Excel VBAはChat-GPTよりCopilotの方が作りやすい?実務で感じた変化

以前このブログでは、

という記事を書きました。

そのときの結論はかなりシンプルで、

Excel VBAの高度な処理はChatGPTの方が強い

というものでした。

ですが、最近仕事で ChatGPT と Microsoft Copilot の両方を日常的に使っている中で、少し印象が変わってきました。

特に差を感じたのは、次の2つのケースです。

  • すでに存在する大型Excel VBAツールの修正

  • 完全新規の大型Excel VBAツールの設計と作成

今回は、その実体験を紹介します。

結論を先に言うと、

小さい処理はChatGPT
大きい構造はCopilot

という印象に変わってきました。

ただしこれは現時点の体感なので、生成AIの進化次第でまた変わると思います。


ケース1:すでに完成している大型Excel VBAツールの修正

まず試したのは、すでに完成しているVBAツールの修正です。

このツールは、

  • 複数のユーザーフォーム

  • データベース型の構造

  • モジュール多数

  • 数千行レベルのコード

という、わりと大きなVBAツールです。


ChatGPTに依頼してみた

まずはChatGPTに依頼しました。


利用者 → ChatGPT

既存のExcel VBAツールを修正したいです。
複数フォームを持つデータベース型ツールです。 以下が現在のベースコードです。 (全VBAコード貼り付け) このツールに次の機能を追加してください。 ・登録データの履歴管理
・編集ログの保存
・ユーザー別アクセス制御 (それぞれ詳細の説明付きの文章をつけています。)

大型Excel VBAはChat-GPTよりCopilotの方が作りやすい?実務で感じた変化

■■■スポンサーリンク■■■

ChatGPT → 利用者

ありがとうございます。コードを確認させていただきたいのですが、
現在のツール全体の構造を把握するために、以下の情報を追加で共有していただけますでしょうか。 1.標準モジュールの一覧と内容 2.ユーザーフォームの構成 3.各フォームが呼び出している主なプロシージャ 4.データ保存先(シート・外部ファイルなど) 現在共有されているコードだけでは、ツール全体の構造を正確に理解することが難しいため、
まずは全体の構成を確認させていただければと思います。

利用者 → ChatGPT

ユーザーフォーム、標準モジュール全てのコードは1回目に送っているし、フォーム名、オブジェクト名も送っているのに・・・と思いつつ再度全コードを送りました。

全モジュールコードです。
(全VBAコード貼り付け)

ChatGPT → 利用者

コードを確認しました。
かなり大きな構造のVBAツールになっているため、
一度にすべての修正コードを作成することは難しい可能性があります。 まずは以下のプロシージャから確認させてください。 ・InitializeDatabase
・LoadUserData
・SaveRecord これらの処理内容を整理しながら、
段階的に修正案を提示していきます。

この時点で、私は少し時間を感じました。

ChatGPTは、非常に丁寧に構造理解をしようとするタイプです。

ただしその分、

完成までのやり取り回数が増えやすい

という特徴があります。

無料版を使用している私は、やりとりの回数を増やしたくありません。


Copilotに同じ依頼をしてみた

次にCopilotに同じ依頼をしました。


利用者 → Copilot

既存のExcel VBAツールを修正したいです。
複数フォームを持つデータベース型ツールです。 以下が現在のベースコードです。 (全VBAコード貼り付け) このツールに次の機能を追加してください。 ・登録データの履歴管理
・編集ログの保存
・ユーザー別アクセス制御 (それぞれ詳細の説明付きの文章をつけています。)

Copilot → 利用者

コードを確認しました。
現在のツールは、以下の構造で構成されていると判断しました。 ■推定構造 ・ユーザーフォーム
 UserForm_Main
 UserForm_Edit
 UserForm_Search ・主要モジュール
 modDatabase
 modUserManagement
 modUtility ・データ保存
 Worksheet「Database」 この構造を前提として、
以下の3つの機能追加を行います。 1.履歴管理テーブル 2.編集ログ保存機能 3.ユーザー権限制御 以下に修正コードを提示します。 (修正コード/プロシージャ別)

一括で修正コードが送られてきました。

しかも特徴的だったのが、

  • 修正箇所説明

  • 注意点

  • コピー範囲

がプロシージャ毎に簡潔に書かれていたことです。


Copilotの特徴:差分修正

Copilotはよく

差分修正

という形でコードを提示してきます。

つまり、

以下を既存コードに追加してください

という形です。

ただ、私には追加位置がわからないことがよくあります。

なので私は途中でこう頼みました。


利用者 → Copilot

差分だと理解できないので
プロシージャ全体のコードを出してください。

Copilot → 利用者

了解しました。
以下に修正後のプロシージャ全体を提示します。 (VBAコード全文)

この対応も非常にスムーズでした。

■■■スポンサーリンク■■■

ケース2:完全新規の大型Excel VBAツール

次に試したのが 完全新規の大型Excel VBAツール作成 です。

今回のツールは

  • 顧客管理

  • 履歴管理

  • 検索

  • 編集

を持つ、比較的大型のデータベースツール です。


ChatGPTに依頼


利用者 → ChatGPT

Excel VBAで顧客管理ツールを作りたいです。

必要な機能

・顧客登録
・検索
・履歴管理
・編集ログ (それぞれ詳細の説明付きの文章をつけています。) ユーザーフォームで操作できるようにしたいです。 ツール全体の構造とコードを作ってください。

ChatGPT → 利用者

ありがとうございます。
ご要望のツールは、複数のフォームとデータ管理処理を持つ、比較的規模の大きなVBAアプリケーションになると考えられます。 そのため、いきなりすべてのコードを生成するのではなく、
まずは以下の点を確認させてください。 1.データ保存先(シート構造) 2.顧客データ項目 3.履歴管理方式 4.編集ログ保存方法 これらを決めたうえで、
ツール設計 → モジュール設計 → コード作成
という順序で作成することをおすすめします。

初回のプロンプトで、オブジェクト構成や詳細の仕様を送ったつもりでしたが、まだまだすり合わせが必要なんだと感じました。

正しい進め方なのはわかっているのですが、どのくらいやりとりが必要になるのだろう・・・と不安になります。


何度かやりとりを終えたところで、次の回答が出ました。


ChatGPT → 利用者

申し訳ありません。
現在の情報だけでは、ツール全体のコードを一度に生成することが難しいため、 段階的に設計を進める必要があります。

ここで私は、Copilotでも試してみることにしました。


Copilotに依頼


利用者 → Copilot

Excel VBAで顧客管理ツールを作りたいです。

必要な機能

・顧客登録
・検索
・履歴管理
・編集ログ (それぞれ詳細の説明付きの文章をつけています。) ユーザーフォームで操作できるようにしたいです。 ツール全体の構造とコードを作ってください。

Copilot → 利用者

了解しました。
以下の構造でExcel VBAツールを構築することを提案します。

■ツール構造
1.UserForm_Main
  メニュー画面
2.UserForm_Register
  顧客登録画面
3.UserForm_Search
  顧客検索画面
4.UserForm_History
  履歴確認画面

■モジュール

modDatabase
modCustomer
modHistory
modLog ■シート構成 CustomerData
HistoryData
EditLog 以下に各モジュールとフォームの基本コードを提示します。 (全コード/プロシージャ別)

ここから、全体コードが一気に提示されました。

しかも

  • プロシージャ単位

  • モジュール単位

  • 説明付き

で整理されていました。


現時点で感じた違い

今回の体験から感じたのは、ChatGPTとCopilotの思考スタイルの違いです。

ChatGPT

  • 設計を丁寧に確認

  • 小さく進める

  • 会話回数多め

Copilot

  • 構造を推測

  • 全体を提示

  • 後で調整

という印象です。


初心者にはどちらがいい?

これは難しいところです。

初心者の場合、ChatGPTの方が理解しながら進められるというメリットがあります。

一方、ある程度の規模のツールを作る場合、Copilotの全体構造を一気に作る力はかなり便利でした。


まとめ

以前このブログでは、Excel VBAの高度な処理はChatGPTの方が向いていると書きました。しかし、最近仕事でChatGPTとCopilotを併用する中で、少し印象が変わってきました。

特に、大規模なVBAツールを扱う場合には、それぞれのAIの考え方の違いがはっきり表れるように感じます。ChatGPTはツール全体の構造を丁寧に確認しながら進める傾向があり、設計を一つ一つ整理しながら作りたい人には非常に向いています。一方で、その分やり取りの回数が増えやすく、完成までに時間がかかることがあります。

Copilotはそれとは少し違い、コードを見た瞬間に全体構造を推測し、一気にコード案を提示してくることが多い印象です。もちろんその内容が完璧というわけではありませんが、全体の骨格がすぐに手に入るため、そこから修正していく作業はかなり効率的でした。

そのため現時点の私の体感としては、初心者がVBAを学びながら作る場合はChatGPTの方が理解しやすく、ある程度の規模のツールを作る場合にはCopilotの方が扱いやすい場面も多いと感じています。

ただし、生成AIは非常に速いスピードで進化しています。数か月後には、また全く違う印象になっている可能性も十分にあります。

だからこそ、どちらか一つに決めるのではなく、状況によって使い分けるという視点が、これからのAI活用では大事になってくるのかもしれません。

■■■スポンサーリンク■■■

リンク

ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順
Excel VBAのエラー修正をChatGPTに頼んだら原因が一発で分かった話
仕様が曖昧でもOK?ChatGPTにExcel VBAを作らせてみた結果
ChatGPTに作らせたExcel VBAコードは安全?使う前に確認すべきポイント
Excel VBA初心者がChatGPTを使うと挫折しにくくなる理由
CopilotでExcel作業はどこまで効率化できる?実務で使ってみた結果
Copilotに仕事を任せてみた|メール・資料作成はここまで楽になる
Copilotが向いている人・向いていない人を実体験から整理してみた
ChatGPT・Copilot・Geminiに同じ仕事を頼んだら結果が全然違った
結局どれを使えばいい?目的別に生成AIを整理してみた【初心者向け】
初心者が最初にやるべき生成AI活用① ChatGPTで「長文を理解・整理する」読むのがしんどい人ほど効果が出る使い方
初心者が最初にやるべき生成AI活用②ChatGPTに「分からないことをそのまま相談する」使い方・聞き方を気にしない安心感
初心者が最初にやるべき生成AI活用③AIを「自分専用の調べ物係」にする使い方|検索に疲れた人ほど効果が出る
ChatGPTにブログ記事を“赤ペン先生”してもらったら修正力がすごかった話―書くのが苦手な人ほど使ってほしい文章改善―
CopilotでExcel作業手順書を一瞬で作る|引き継ぎ資料が秒で完成した話
Geminiでアイデアが枯れたときの発想復活法|何も思いつかないを脱出する使い方
ChatGPT・Copilot・Geminiをブレスト役で使い分ける実例|発想が加速した方法
CopilotでExcel集計→Word報告書を一気に作る実務フロー― 月次報告が“考えずに終わる”ようになった話 ―
大型Excel VBAはChat-GPTよりCopilotの方が作りやすい?実務で感じた変化

■■■スポンサーリンク■■■