エクセル作業をVBAで効率化したいけど、VBAがわからない。
ChatGPTで作れそうだけど、何から始めればいいか知りたい!
マクロを使えば効率化できる、ChatGPTでマクロが組める。ここまではわかっていても、なかなか一歩を踏み出せない人は多いのではないでしょうか?今回は、VBAを触ったことのない人、ChatGPTでVBAを作ったことが無い人の為の、ChatGPTでのVBA作成方法を紹介します。
ChatGPTを使えばVBAは実質ノーコードで作成可能です。専門知識がなくても、プロンプト(指示文)を入力するだけで自動的にコードが生成されるため、日々の業務を一気に効率化できます。
ただし、完全にゼロ知識のまま使うのはおすすめしません。指示の出し方ひとつで結果が大きく変わるため、最低限の構造や目的を理解しておくことが重要です。今回は、指示の出し方からVBAの書き方までを紹介していますので、ぜひ参考にしてみてください。
また、このブログでは、コピペで使えるVBAなど、効率化に関する情報を発信しています。この記事が参考になれば、ぜひほかの記事も見てみてください!
結論:コピペで使えるVBA作成プロンプト
以下は、コピペでそのまま使える「VBA作成プロンプト」のテンプレートです。処理内容や対象のシート・列などを具体的に書くことで、ChatGPTはより的確なコードを生成してくれます。
以下の条件で、Excel VBAのコードを作成してください。
【やりたいこと】
- ○○という処理を行いたい(○○にしたい処理を入力)
- 対象は「Sheet1」
- 処理対象の列は「B列」
- 条件に合致した行をすべて削除する
【VBAの書き方】
- 動作ごとにコメントを入れてください
- 最初にこのコードの全体的な処理内容を説明してください
【補足】
- 対象のシートやセルの位置は柔軟に修正できるようにしてください
- 初心者でも理解できるように、なるべく丁寧にコメントをお願いします
【対象エクセル内容】
※エクセルのリストをそのまま張り付ける
ChatGPTでVBA作成する具体的な手順
ここからは具体的な手順を紹介していきます。この記事で紹介している、「リンク付き目次作成VBAを、ChatGPTで作る場合を想定して、紹介していきます。
※今回ゴールとなるVBAの動作
今回作成したいVBAは、「目次シート」にすべてのシート名をリストアップするVBAです。さらに、そのリストに、リンクが自動で作成される状態になることがゴールです。

ボタンをつければ押すだけで簡単に目次を更新できるようになります。
ステップ1:エクセルの情報を整理
まずは処理対象のシート名・対象となる行と列を確認しておきましょう。複数のエクセル間で処理をする場合は、ブック名やファイル名も確認しておいてください。
今回作るVBAは、「すべてのシート名を一覧表示し、それぞれにジャンプできるハイパーリンクを付ける」という内容です。
この処理では以下のような情報が必要になります:
- 対象のシート:目次シート
- 一覧化の対象:ブック内すべてのシート
- 処理対象の範囲:「目次シート」のA2セル以降
- 処理結果:シート名の一覧とハイパーリンクをA列〜Z列に表示
事前にこれらの情報を把握しておくことで、ChatGPTへの指示がより的確になります。
ステップ2:プロンプト作成
前章で紹介したテンプレートをベースに、処理内容をできるだけ詳しく書きましょう。処理対象の列名、条件、結果としてどうなるかを書くことで、1回でコードが完成しやすくなります。
なお、今回は以下のようなプロンプトになります。
以下の条件で、Excel VBAのコードを作成してください。
【やりたいこと】
- すべてのシート名を目次シートに一覧表示し、それぞれにジャンプできるハイパーリンクを作成したい
- 対象は「目次シート」
- 処理対象は「このブック内のすべてのシート」
- 目次シートのA2セルから出力を始め、20行ごとに次の列(A列→B列→C列…)に表示したい
- 目次シート自身は一覧に含めず除外したい
- 出力前にA2〜Z列のデータをすべてクリアしたい
- 各ハイパーリンクは該当シートのA1セルへジャンプさせたい
【VBAの書き方】
- 動作ごとにコメントを入れてください
- 最初にこのコードの全体的な処理内容を説明してください
【補足】
- 対象のシート名やセル位置(出力開始位置など)は柔軟に修正できるようにしてください
- 初心者でも理解できるように、なるべく丁寧にコメントをお願いします
なお自分でVBAを作る際は、このあと紹介する「プロンプト作成のコツ」も参考にしてください。
ステップ3:コードの確認・修正
ChatGPTが生成したコードのコメントだけを読んで確認を行います。なお今回のプロンプトを使えば、処理に日本語コメントが入ります。その為、処理が間違っていないかを、コメントで確認しておきましょう。
VBAは1行ずつ順番に処理が進んでいきます。今回の場合、目次シートを開く→出力するセルを選択…と処理が進んでいくので、順番に見ていきましょう。
もし処理内容にミスがあった場合は、ChatGPTに修正を依頼してください。

ステップ4:VBA実行
コードに問題がなさそうであれば、ExcelのVBE(Visual Basic Editor)に貼り付けて実行してみましょう。このとき必ず、実行前にブックを保存しておくことを忘れないようにしましょう。
エクセルに開発ボタンが無い方は、リボンのユーザー設定から、開発タブを追加するようにしましょう。詳しい方法については、こちらを参照してください。
開発タブが表示されたら、「Visual Basicを選択」→「挿入」→「標準モジュール」を選択し貼り付けを行います。後は、▷ボタンを押せばVBAが実行されます。
詳しい実行方法については、別記事で詳しく解説していますのでそちらも是非参考にしてみてください。
ステップ5:エラー処理(デバッグ)
コードを実行した際にエラーが出た場合は、「エラーコード」と「エラー箇所の行番号」をメモし、ChatGPTに貼り付けて質問しましょう。
例えば次のような形です。
このVBAコードで「実行時エラー '9': インデックスが有効範囲にありません」と出ました。該当行は「Sheets("Sheet1").Select」です。修正方法を教えてください。
このように具体的に聞くことで、ChatGPTも正確な修正案を提案しやすくなります。
エラーが頻発する場合、ステップ実行を行えば原因が分かることがあります。デバッグについては別で紹介している記事があるので、そちらを参照してください。
無料ユーザーは質問回数に注意!精度を上げる5つのコツ
ChatGPTの無料ユーザーは、1日の質問回数に制限があります(執筆時点での目安:約20〜30回程度)。そのため、「1発で良いコードを引き出す」ための工夫が重要になります。
1. 操作対象の「シート名・セル位置・条件」を具体的に
抽象的な「特定のセル」や「一覧のデータ」ではなく、「Sheet1のB列」「C列が空欄の行」など、明確な対象を指定しましょう。
修正は指示が多く必要になるので、できるだけ一回でコードが完成させることが重要です。その為には、できるだけ初めに詳しい情報を伝えることが大切です。
2. 動作ごとに「コメントを入れて」と明示する
初心者の方は必ず、「初心者でも理解できるように丁寧なコメント」と指示しましょう。この指示を行うことで、コメントを読むだけでおおよその流れが分かるようになります。
エラーが出た際も、エラー箇所のコメントを読めば、何をしているところのエラーかが分かり、対処を円滑にすることもできます。
3. スクリーンショットを活用
文字で説明したうえで、エクセルのスクリーンショットを貼ることでより正確なVBAが作成されやすくなります。無料プランでも1回くらいであれば画像のアップロードができるため、余裕があれば試してみてください。

4. 最後にエクセルの一部を張り付け、全体像を入力しておく
実際のエクセルデータの一部をコピーして「こんなデータがあります」と伝えると、誤解なくコードを生成してくれます。
形が崩れているように見えるデータでも問題ありません。ChatGPTはセルの場所などを予測してVBAを作成してくれるため、とりあえず貼っておくことをお勧めします。

5. 「動作説明」を入れてもらう
ChatGPTに「このコードの処理内容を説明してください」と指示をすると、日本語で詳細に動作を説明してくれます。
デバッグとしてだけでなく、学習にもつながるため、一文つけ足してみてください。。
おすすめのプロンプト例(完全コピーOK)
前述した基本プロンプトに加え、具体的なシーンに応じたプロンプト例をいくつか紹介します。
冒頭の「○○にしたい処理」の部分を置き換えるだけで使えます。
■ 行削除系
ExcelのSheet1で、B列に「削除」と書かれている行をすべて削除するVBAコードを作ってください。
■ 条件分岐系
Sheet2のA列に入力された数値が「100以上」の場合はC列に「合格」、それ以外は「不合格」と表示させるVBAを作ってください。
■ シート操作系
現在開いているExcelブックで、Sheet1を「データバックアップ」という名前でコピーして新しいシートを作成するVBAを作ってください。
■ セル書式系(フォント・色などの装飾)
Sheet3のA列に「重要」と入力されているセルの行全体を赤背景に変更するVBAコードを作成してください。
■ フィルター・並べ替え系
Sheet4で、A列に入力された日付を降順で並べ替えるVBAコードを作成してください。
これらのプロンプトは、ChatGPT無料プランでもそのまま使える形式です。ぜひコピペしてお試しください。
まとめ
ChatGPTを使えば、VBAを1から覚えるよりも短時間で実用的なコードが作れます。ただ、プロンプトを工夫しないと、逆に時間がかかってしまうこともあります。加えて、無料ユーザーは質問回数に制限もあるため、プロンプトの工夫は必須事項です。
何より重要なのは、「修正を何度も繰り返す」より、「1回のプロンプトで仕上げる」意識です。そのためには、事前に作戦を立ててプロンプトを練ることがカギになります。今回の記事を参考に、的確なプロンプトで最短でVBAを作成してみてほしいと思います。
また、ChatGPTで作成できるとはいえ、VBAの基礎知識はあって損はありません。このブログではVBAの基礎についても記事にまとめていますので、そちらも是非参考にしてみてください!
コメント