AIでVBAを書く方法|初心者向けにExcel自動化の手順を解説
検索者の悩み
「Excelの作業を自動化したいけれど、VBAの書き方がわからない」「マクロを作りたいけれど、プログラミング経験がない」「ChatGPTなどのAIにVBAを書いてもらっても大丈夫?」と悩んでいる人も多いでしょう。
VBAとはVisual Basic for Applicationsの略で、ExcelなどのMicrosoft Office製品で作業を自動化するために使われるプログラミング言語です。
例えば、毎月行っている集計、複数シートへの転記、セルの色付け、ファイル作成などをVBAで自動化できます。MicrosoftのExcel VBAリファレンスでも、Excelを使った独自の処理を開発するための概念、サンプル、オブジェクトモデルなどが公開されています。
現在はAIへ日本語で目的を伝え、VBAコードのたたき台を作ってもらうこともできます。ただし、生成されたコードを意味もわからず実行するのではなく、内容を確認しながら使うことが重要です。
先に結論
AIでVBAを書くなら、「自動化したい作業を整理する → Excelの構成を伝える → VBAコードを作ってもらう → コードの意味を説明してもらう → テスト用ファイルで実行する → エラーが出たらAIに修正してもらう」という順番がおすすめです。
例えば、「Sheet1のA列に商品名、B列に売上があります。B列が10万円以上の行だけ黄色にするVBAを書いてください」と具体的に頼みます。
AIへの指示は、何をしてほしいのか、どのシートや列を使うのか、どのような結果にしたいのかまで具体的に伝えることが大切です。OpenAIも、プロンプトでは目的や背景情報を明確にし、必要に応じて回答を確認しながら修正していく方法を推奨しています。
超簡単な説明
VBAは、Excelに「この作業をこの順番で自動的にやってください」と命令する仕組みだと考えるとわかりやすいでしょう。
例えば毎朝、売上表を開いて合計を計算し、売上が少ないセルを赤くしているとします。
人間が毎回同じ作業をする代わりに、その手順をVBAとして登録しておけば、ボタン操作などでまとめて実行できます。
AIを使えば、人間が日本語で説明した作業をVBAコードへ変換する手助けをしてもらえます。
AIでVBAを書く手順
1.自動化したい作業を一つ決める
最初から複雑な業務全体を自動化しようとすると、コードが長くなり、エラーの原因も見つけにくくなります。
まずは「空白セルを黄色にする」「最終行まで合計する」「別シートへデータをコピーする」など、小さな作業から始めましょう。
OpenAIも、複雑な依頼は小さな作業へ分けて進めると、より良い結果を得やすいと案内しています。
2.Excelの構成をAIへ伝える
次に、シート名、列名、データの位置などを説明します。
例えば、「売上というシートがあります。A列に日付、B列に商品名、C列に売上金額があります」と伝えます。
ここを省略すると、AIが実際には存在しないシート名やセル範囲を想定してコードを書く可能性があります。
3.VBAコードを作ってもらう
Excelの構成を伝えたら、目的を具体的に指定します。
例えば、「売上シートのC列で10万円以上のセルを黄色にするVBAを書いてください。1行目は見出しなので対象外にしてください」と依頼します。
AIへの指示文をプロンプトと呼びます。プロンプトとは、AIに何をしてほしいのか伝える入力内容のことです。
プロンプトを具体的にすると、目的に合ったコードを得やすくなります。
4.コードの意味を説明してもらう
コードが完成しても、そのまま実行する必要はありません。
「このVBAを初心者向けに1行ずつ説明してください」と質問してみましょう。
例えばCells、Range、Worksheetなどが何を意味するのか確認します。
WorksheetはExcelのシートを表すVBA上のオブジェクトです。Rangeはセルやセル範囲を指定するときに使います。MicrosoftのVBAリファレンスでは、こうしたExcelオブジェクトについて公式情報を確認できます。
5.テスト用ファイルで実行する
コードの意味を確認したら、すぐに重要な業務ファイルで実行するのではなく、コピーしたテスト用ファイルで試します。
VBAではセルの値を変更したり、シートを削除したり、ファイルを保存したりする処理も作れます。
間違ったコードを実行すると元のデータが変更される可能性があるため、バックアップを取ってから試しましょう。
6.エラーをAIに修正してもらう
VBAを実行すると、エラーメッセージが表示される場合があります。
その場合は、「このVBAを実行すると実行時エラー1004が出ます。原因と修正版を初心者向けに説明してください」とAIへ質問します。
使用しているコードとエラーメッセージを一緒に伝えると、原因を分析しやすくなります。
実例
例えば、毎月の売上表で10万円以上の売上を目立たせたいとします。
売上シートのA列には商品名、B列には売上金額が入っているとします。
AIには、「Excel VBAを使って、売上というシートのB列が100000以上の行について、B列のセルを黄色にしてください。1行目は見出しで、データの最終行まで自動的に処理してください」と依頼します。
コードが生成されたら、「最終行を取得している部分はどこですか」「条件判定をしている部分を説明してください」と質問します。
その後、コピーしたExcelファイルで実行します。
問題なく動いたら、「今度は15万円以上を赤色にしてください」と条件を追加できます。
このように、基本コードを作る → 動作を確認する → 条件を追加するという順番で進めると、初心者でもVBAを扱いやすくなります。
失敗・注意点
AIでVBAを書くときによくある失敗は、「Excelを便利にするVBAを書いて」とだけ依頼することです。
目的が曖昧だと、AIもどのシートやセルを操作すればよいのか判断できません。
もう一つの注意点は、AIが作ったコードが必ず正しいとは限らないことです。
シート名が違う、列の位置が違う、データ形式が想定と違うなど、実際のExcelファイルとの違いによってエラーが起きる場合があります。
特に、シート削除、行削除、ファイル上書きなどを行うVBAは慎重に扱いましょう。
また、会社のExcelについてAIへ質問するときは、顧客名、社員情報、売上の機密情報などを必要以上に入力しないよう注意します。
実際のデータではなく、「A社」「商品A」「100000円」のような架空の情報へ置き換えて質問する方法もあります。
FAQ
Q.VBAを知らなくてもAIでマクロを作れますか?
簡単な処理であれば作成を支援してもらえます。
ただし、コードの意味を理解しないまま使うと、エラーが起きたときに対応できません。そのため、生成したコードの説明もAIへ依頼するのがおすすめです。
Q.VBAとマクロは同じですか?
厳密には少し違います。
マクロはExcelなどで複数の操作を自動化する仕組みで、VBAはそのマクロを細かくプログラムするために使われる言語です。
Q.AIにどんな情報を伝えればよいですか?
シート名、列名、データの開始行、やりたい処理、希望する結果などを伝えます。
「売上シートのC列を合計してD1セルに表示してください」のように具体的にすると、コードを作りやすくなります。
Q.エラーもAIに直してもらえますか?
エラー修正の支援もできます。
現在のVBAコード、表示されたエラーメッセージ、どの操作をしたときにエラーが出たかを伝えると、原因を分析しやすくなります。
Q.複雑な業務も全部VBAにできますか?
技術的に可能な作業は多くありますが、最初から巨大なマクロを作るのはおすすめできません。
データ取得、集計、転記、ファイル保存など処理を分け、少しずつ動作確認した方が安全です。
次にやること
まずExcelで毎回繰り返している単純な作業を一つ探してみましょう。
次にAIへ、「Excel VBA初心者です。Sheet1のA列に商品名、B列に売上があります。B列が10万円以上のセルを黄色にするVBAを書いてください。コードの意味も初心者向けに説明してください」と入力します。
生成されたコードはテスト用のExcelファイルで実行し、期待した結果になるか確認します。
慣れてきたら、複数シートへの転記、条件別の集計、ファイルの自動作成などへ少しずつ進めていきます。
AIでVBAを書くときに大切なのは、完成したコードだけを受け取ることではありません。
自動化したい作業を決める → Excelの構成を伝える → AIでコードを作る → 内容を理解する → テストする → エラーを修正するという流れを繰り返すことで、VBAを学びながらExcel作業の効率化を進められます。
関連URL
Microsoft「Excel VBAリファレンス」では、Excel VBAの基本概念、プログラミング例、オブジェクトモデルなど公式情報を確認できます。
https://learn.microsoft.com/ja-jp/office/vba/api/overview/excel
Microsoft「Office VBAリファレンス」では、Excelを含むOffice製品で利用するVBAの構文や機能を調べることができます。
https://learn.microsoft.com/ja-jp/office/vba/api/overview/
OpenAI「ChatGPT向けプロンプトエンジニアリングのベストプラクティス」では、VBA生成にも役立つ、具体的な指示の出し方や回答を段階的に改善する方法を確認できます。
https://help.openai.com/ja-jp/articles/10032626-prompt-engineering-best-practices-for-chatgpt
この記事へのコメントはありません。