生成AI活用研究
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)

Geminiを中心に生成AIの活用と研究の記録
公開日:2025-05-18 最終更新日:2025-05-23

第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)


この章では、「VBA」と呼ばれるものに初めて触れていきます。VBAが何なのか、どうやって使うのか、そしてAIと一緒にどうやって最初のVBA体験をするのかを見ていきましょう。


目次


第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する!
第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方
第6章:AIとVBAを学び続ける!あなたの「超効率化」を止めないヒント
・AIプロンプト最適化のヒント:さらに“伝わる”プロンプトの書き方 ・ステップアップ!AIと挑戦するより高度な応用自動化事例 ・VBAとGemini API連携:AIコーディングアシスタントの構築 ・まとめ:AIと共に進化する「書かない自動化」のその先へ

第7章:さらなる高みへ!AI×VBA応用テクニックの世界
おわりに:AI×VBAはあなたの未来を変える強力な武器 (付録付き)



VBAとは? Excelに作業を「お願いする」言葉

難しく考える必要はありません。結論からお伝えすると、VBAとは「Excelに作業をお願いするための『言葉』」のことです。

ちなみに、VBAはVisual Basic for Applicationsの略称です。「Application」(アプリケーション)のための「Visual Basic」という意味ですが、今は名前の細かい意味は気にしなくて大丈夫です。「Excelを動かすためのものなんだな」くらいに思っておいてください。

想像してみてください。あなたが同僚や部下に「このリストのデータを集計して」「この書類の内容をチェックして、間違っていたら色をつけておいて」とお願いするように、Excelに対しても同じように作業を「お願い」することができたら、とても便利だと思いませんか?

VBAは、まさにそれを実現するための、Excelが理解できる「言葉」なのです。私たちは、この「言葉」を使ってExcelに指示を出すことで、繰り返し行う面倒な作業を自動化したり、複雑な処理を一瞬で終わらせたりできるようになります。

もちろん、Excelが理解できる「言葉」には、人間がお互いに話す言葉のように、ある程度のルールや決まり事(文法)があります。

でも、心配はいりません。この「言葉」や「文法」をゼロから全て覚える必要はないのです。なぜなら、あなたの隣には、この「Excelへのお願いの言葉」を教えてくれたり、代わりに書いてくれたりするAIという強力なアシスタントがいるからです。この「言葉」を使ってExcelに指示を出すことを、少し専門的には「プログラミング」と呼ぶこともありますが、難しく考える必要はありません。AIがあなたの先生役となり、必要な「言葉」や「話し方」をサポートしてくれるからです。


VBAを始めるのに特別なものは不要!

さて、Excelに作業をお願いする「言葉」としてのVBAですが、始めるために特別な準備は必要ありません。あなたが普段お使いのExcelに最初から組み込まれている機能だからです。新しく高価なソフトウェアをインストールしたり、複雑な設定をしたりする必要はありません。

必要なのは、インターネットに接続されたパソコンと、そこにインストールされたExcelだけです。

本書は、お使いのパソコンにMicrosoft Excel(デスクトップ版)がインストールされていることを前提としています。具体的には、『Microsoft 365』や『Microsoft Office』(Excelが含まれる製品)に含まれるExcelをご利用ください。なお、Office Online や Excel Online といったWebブラウザ上で動作するExcelではVBAを利用することはできませんのでご注意ください。

つまり、お使いのパソコンにデスクトップ版のExcelが入っていれば、「今」この瞬間から、あなたはVBAの世界に足を踏み入れる準備ができているということです。


VBAの世界へようこそ!開発タブの表示とVBEを開く

さあ、いよいよVBAの世界への扉を開けてみましょう。VBAを使ってExcelに指示を出すためには、まずそのための特別な作業場所を用意する必要があります。それが、「開発」タブの表示と、「VBE(Visual Basic Editor)」を開くというステップです。

開発タブって何? なぜ表示するの?

Excelを普段お使いの方でも、リボンの中に「開発」というタブが表示されているのを見たことがない、という方がほとんどかもしれません。初期設定では、この「開発」タブは非表示になっています。

この「開発」タブには、VBAを扱ったり、マクロ(VBAで書かれた一連の命令)を実行したりするための様々な機能がまとめられています。例えるなら、VBAという「言葉」を使ってExcelに指示を出すための、専用の「コントロールパネル」のようなものです。

これからVBAを使っていく上で、この「開発」タブは必ず必要になりますので、まずはこれをExcelのリボンに表示させましょう。一度表示させれば、特別な操作をしない限り消えることはありません。

【対象OSについて】
本書で解説するExcel VBAの操作および画面は、Windows版のExcelを対象としています。Mac版では画面表示や操作手順が異なりますので、ご了承ください。

「開発」タブを表示させる方法

Excelのリボンに「開発」タブを表示させる、最も一般的な方法を解説します。

Excelを開いた状態で、まずリボンの一番左にある「ファイル」タブをクリックしてください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

画面が切り替わったら、左側に表示されるメニューの一番下にある「オプション」をクリックしてください。(「その他…」→「オプション」の場合あり)
AI時代のExcel革命:AI×VBAで“書かない自動化”

「Excelのオプション」という新しいウィンドウが開きます。
このウィンドウで様々な設定を変更できます。
左側のリストから「リボンのユーザー設定」を選択してください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

ウィンドウの右側に「リボンのユーザー設定」という項目が表示されます。
その下の「メイン タブ」というリストの中に、「開発」という項目があるのを見つけてください。
初期設定では、ここのチェックボックスにチェックが入っていません。
AI時代のExcel革命:AI×VBAで“書かない自動化”
AI時代のExcel革命:AI×VBAで“書かない自動化”

「Excelのオプション」ウィンドウが閉じられ、Excelのリボンに戻ります。
リボンの「表示」タブの右側あたりに、新しく「開発」タブが表示されているはずです。
これで、VBAを使うための専用機能が使えるようになりました!
AI時代のExcel革命:AI×VBAで“書かない自動化”

VBE(Visual Basic Editor)を開いてみよう

「開発」タブが表示されたら、いよいよVBAコードを書いていく場所を開くことができます。それが、VBE(ヴィービーイー)と呼ばれる画面です。VBEはVisual Basic Editorの略称で、VBAコードを作成したり、編集したり、実行したりするための専用のツール(エディター)です。例えるなら、あなたが手紙や文章を書くときの「原稿用紙」や「テキストエディタ」のようなものです。

「開発」タブをクリックしてください。
リボンの中に様々なアイコンが表示されます。
その一番左側にある「Visual Basic」というアイコンをクリックしてください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

すると、新しいウィンドウが開いたはずです。
これがVBEの画面です。
AI時代のExcel革命:AI×VBAで“書かない自動化”

まずはVBEを開くことができました。続けて、コードを書くための場所を用意しましょう。


本当に最初のコード!メッセージを表示させてみよう

ここでは、Excel VBAの世界での「ハローワールド」とも言える、本当に最初の、そして最もシンプルなVBAコードを書いて、実際に動かしてみる体験をしましょう。たったこれだけで、「Excelに自分で指示を出せた!」という小さな成功体験が得られます。

コードを書く場所:標準モジュールを挿入しよう

VBEを開いた画面で、どこにVBAコードを書くのか、まだ分からない状態だと思います。VBAコードは、「モジュール」と呼ばれる場所に記述するのが一般的です。

VBEの画面を見てください。左側に「プロジェクト エクスプローラー」というウィンドウがあるはずです(もし表示されていなければ、VBEのメニューバーから「表示(V)」→「プロジェクト エクスプローラー(P)」を選択してください)。
AI時代のExcel革命:AI×VBAで“書かない自動化”

「プロジェクト エクスプローラー」には、「VBAProject (あなたのファイル名.xlsm)」のような項目が表示されているはずです。「あなたのファイル名」の部分は、現在開いているExcelファイルの名前になっています。【重要】VBAコードを保存するため、Excelファイルを保存する際は「マクロ有効ブック(.xlsm)」形式で保存する必要があります。通常の「.xlsx」形式ではVBAコードは保存できませんので注意してください。

さて、「VBAProject」の左にある [+] マークをクリックして展開してください。
その中に「Microsoft Excel Objects」などの項目が表示されます。
AI時代のExcel革命:AI×VBAで“書かない自動化”

AI時代のExcel革命:AI×VBAで“書かない自動化”

AI時代のExcel革命:AI×VBAで“書かない自動化”

VBAコードを書く標準的な場所である「標準モジュール」を新しく挿入しましょう。
VBEのメニューバーから「挿入(I)」→「標準モジュール(M)」を選択してください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

すると、「プロジェクト エクスプローラー」の「モジュール」という項目の下に、「Module1」のような新しい項目が追加されるはずです。
同時に、画面の右側に白い大きな領域が表示されます。これが、VBAコードを実際に書いていく「コード ウィンドウ」です。
AI時代のExcel革命:AI×VBAで“書かない自動化”

VBEの画面は、プロジェクト エクスプローラーコード ウィンドウといったいくつかの領域に分かれています。
左側には、現在開いているExcelファイル(ブック)や、そこにVBAコードを書くための「モジュール」などが表示される「プロジェクトエクスプローラー」という領域があります。
そして、先ほど標準モジュールを挿入したことで表示された、画面の大部分を占めている白い領域が、実際にVBAコードを書いていく「コードウィンドウ」です。
AI時代のExcel革命:AI×VBAで“書かない自動化”

この「コード ウィンドウ」に、VBAの命令を書いていきます。

最初のコード(メッセージ表示)を書いてみよう

では、さっそく最初のVBAコードを書いてみましょう。
「Module1」のコード ウィンドウに、以下の文字を正確に入力してください。
コピー&ペーストしても構いません。
Sub ShowMessage()
  MsgBox "こんにちは"
End Sub

AI時代のExcel革命:AI×VBAで“書かない自動化”

どうですか? 何か意味が分からなくても、まずは指示通りに入力してみてください。

このコードの意味について、現時点では深く考える必要はありません。ここでは、VBAコードはSubという言葉で始まりEnd Subという言葉で終わる、ひとかたまりの命令だということ、そしてMsgBoxというのが、画面にメッセージを表示するための命令だ、ということだけ知っておけば十分です。AIがこれらの意味を詳しく教えてくれますので安心してください。

最初のコードを実行してみよう!

コードが正確に入力できたら、いよいよ実行してみましょう。

VBEの画面の上部にあるツールバーを見てください。
緑色の三角のアイコン(再生ボタンのような形)があるはずです。
これが「実行」ボタンです。
入力カーソル|がSub~End Subの間にあることを確認してから、このボタンをクリックしてください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

または、キーボードの[F5]キーを押しても同じように実行できます。

ボタンをクリックするか、[F5]キーを押すと、どうなりましたか?
おそらく、Excelの画面に戻り、小さなウィンドウが表示され、そこに「こんにちは」という文字が表示されているはずです!
AI時代のExcel革命:AI×VBAで“書かない自動化”

このメッセージボックスが表示されたら、成功です! あなたが書いたVBAコードが、Excelによって忠実に実行された証拠です。
「OK」をクリックして、「こんにちは」を終わらせてください。

もう一つ、セルに文字を入れてみよう

メッセージボックスの表示、成功しましたか? 自分で書いたVBAコードが動くのは、なんだか楽しいですよね。

さて、VBAでできることはメッセージを表示するだけではありません。Excelのセルに文字や数値を入力したり、計算させたり、色を変えたり… ExcelでできることのほとんどをVBAで自動化できます。

試しに、もう一つだけ簡単なVBAコードを書いて、実行してみましょう。今度は、Excelシートの特定のセルに「こんにちは」という文字を入力させてみます。

VBEの画面に戻ってください。
先ほどコードを書いた「Module1」のコード ウィンドウに、以下の新しいコードを、先ほどのEnd Subの下に続けて入力してください。
Sub SayHelloInCell()
  Range("A1").Value = "こんにちは"
End Sub

AI時代のExcel革命:AI×VBAで“書かない自動化”

コードの意味について、少しだけ見てみましょう。
Range("A1") というのは、「ExcelシートのA1セル」を指し示しています。
.Value というのは、「そのセルの値」という意味です。
= は、右側のものを左側に入れる、という「代入」の命令です。
そして "こんにちは" というのは、Excelに入力したい文字そのものです。

つまり、このコードは「A1セルの値に、『こんにちは』という文字を入れなさい」という指示になります。VBAがExcelに作業をお願いするための「言葉」であることが、少し具体的に感じられるのではないでしょうか。

二つ目のコードを実行してみよう!

コードが書けたら、実行してみましょう。先ほどと同じように、VBEのツールバーにある緑色の実行ボタンをクリックするか、[F5]キーを押します。

ただし、VBEに複数のSub ~ End Subのまとまり(これを「プロシージャ」と呼びます)がある場合、どのプロシージャを実行するかを指定する必要があります。

今回のVBE画面では、コード ウィンドウの中にカーソルがある場所のプロシージャが実行されます。
先ほど書いたSub SayHelloInCell()のコードの中に入力カーソル|があることを確認してから、実行ボタンをクリックするか[F5]キーを押してください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

実行すると、どうなりましたか?
今度はメッセージボックスは表示されず、Excelのシートに戻ると、A1セルに「こんにちは」という文字が入力されているはずです!
AI時代のExcel革命:AI×VBAで“書かない自動化”

二つの簡単な例を通して、VBAを使えば、メッセージを表示させたり、セルに値を入力させたりと、Excelに様々な指示を出せることを体験していただけたかと思います。
これこそが、VBAでExcel作業を自動化する第一歩です!


大切なステップ:VBAコードを保存しよう(マクロ有効ブック形式)

さて、最初のVBAコードを書いて、動かす体験をしましたね。ここで一つ、とても大切な注意点があります。
あなたがVBEで書いたVBAコードは、通常のExcelファイル(.xlsx形式)では保存されません! せっかく書いたコードが消えてしまわないように、VBAコードを含むファイルは「マクロ有効ブック」という特別な形式で保存する必要があります。

「マクロ有効ブック」のファイル名の末尾は、「.xlsx」ではなく「.xlsm」となります。
これからVBAコードを書いたExcelファイルを保存するときは、必ずこの.xlsm形式で保存するようにしましょう。

具体的な保存手順は以下の通りです。
Excelの画面に表示を戻した状態で、リボンの一番左にある「ファイル」タブをクリックしてください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

左側のメニューから「名前を付けて保存」を選択し、ファイルの保存場所を選んでください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

「ファイル名」を入力し、「ファイルの種類」のドロップダウンリストをクリックしてください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

リストの中から、「Excel マクロ有効ブック (*.xlsm)」を選択してください。
AI時代のExcel革命:AI×VBAで“書かない自動化”

ファイルの種類が「Excel マクロ有効ブック (*.xlsm)」になっていることを確認し、ファイル名を確認し「保存」ボタンをクリックします。

これで、あなたのVBAコードがファイルと一緒にしっかりと保存されました!

一度.xlsm形式で保存すれば、次回以降はVBEでコードを修正した後、VBEのツールバーにある上書き保存アイコンをクリックするか、Excel本体のファイルタブから上書き保存を選ぶか、[Ctrl] + [S]キーを押すだけで、VBAコードも一緒に保存されます。

この「マクロ有効ブック(.xlsm形式)で保存する」というのは、VBAを使う上で必ず覚えるべき大切なポイントです。忘れないようにしましょう!

コードが動かない!「エラー」が出ても大丈夫な理由

おめでとうございます! これで、あなたはもうVBAの世界の第一歩を踏み出しました。最初はたった数行のコードかもしれませんが、ここからExcel作業の自動化の扉が開かれていきます。

もしかしたら、「コードを入力したのに何も起きないな…」「エラーメッセージが出ちゃった!」という方もいるかもしれません。大丈夫です。コードが期待通りに動かないことはよくあります。

もし、あなたの書いたコードが期待通りに動かなかったり、「コンパイルエラー」や「実行時エラー」といった、なんだか難しそうなメッセージが表示されたとしても、まったく心配いりません!

むしろ、エラーが出たあなたは正常なVBA学習者です。なぜなら、コードを書いて、エラーが出て、それを解決していくことこそが、VBA(プログラミング)を学ぶ上での当たり前のプロセスだからです。

エラーはExcelからの「ヒント」

VBAコードが動かないときに表示される「エラー」は、Excelがあなたの書いた「Excelへのお願いの言葉」を完全に理解できなかったときに教えてくれる「サイン」です。例えるなら、外国語で相手に話しかけたときに、「今の言い方、ちょっと分からないな」と相手が教えてくれているようなものです。

エラーは、あなたが書いたコードのどこに問題があるのかを教えてくれる、とても大切な「ヒント」なのです。決してあなたを責めているわけではありません。

エラーにはいくつか種類がありますが、最初は「文字の打ち間違い(タイプミス)」や「VBAの言葉のスペルミス」など、ちょっとしたことで発生することがほとんどです。

例えば、先ほどのMsgBoxという命令を、間違えてMsgBoxxと入力してしまったら、Excelは「MsgBoxxって何? そんな言葉知らないよ」とエラーで教えてくれます。

エラーが発生すると、VBEは様々な方法で知らせてくれます。
例えば、単語のスペルミスなど未定義の言葉を入力するとその場で青く選択されたり、文法的な間違いがあると該当するコードが赤字で表示されたりします。また、コードの実行中に問題が発生した場合は、エラーのある行が黄色く強調表示され、詳しい情報を示すメッセージボックスが表示されることもあります。
AI時代のExcel革命:AI×VBAで“書かない自動化”

エラーが出ても一人で悩まない

このエラーメッセージ、最初は英語で書かれていたりして、内容が難しく感じるかもしれません。ですが、大丈夫です。大切なのは、エラーメッセージが表示されたら、「あっ、Excelが何か教えてくれようとしているな」と認識すること、そして、そのエラーメッセージを無視しないことです。

そして、ここが本書の最大のポイントです。エラーメッセージの意味が分からなくても、あなたは一人で悩む必要はまったくありません!

思い出してください、あなたにはAIという強力なアシスタントがいることを。

エラーが出たときは、そのエラーメッセージをそのままコピーして、AIに聞いてみればいいのです。「このエラーメッセージはどういう意味ですか?」「どうすればこのエラーを直せますか?」とAIに質問するだけで、AIが原因の候補や修正方法を教えてくれます。
『でも、AIってどうやって使うの?』と今は思われたかもしれませんね。
ご安心ください。エラーが出たときにAIがあなたの強力なアシスタントとなってくれる具体的な方法、つまりエラーメッセージをどうAIに伝えて、どう解決に導くのかは、まさに次の第3章で集中的に学びます。今は、『エラーが出てもAIが助けてくれるらしい』ということだけ知っておけば十分です。

エラーが出ても大丈夫。それは、あなたが新しいことに挑戦している証拠です。そして、エラーを一つ一つ解決していく過程で、VBAの知識やExcelへの指示の出し方が確実に身についていきます。エラーは、あなたのVBAレベルを上げてくれる「成長のチャンス」なのです。

この章では、VBAを始めるための準備と、最初のコード体験をしました。次の章では、いよいよAIをあなたの「専属VBA先生」にして、分からないことやエラーの解決方法をAIから引き出す具体的な「質問の仕方(プロンプト)」を学んでいきます。

エラーが出たままになっている方も、まずは気にせず次に進んでください。エラーの解決方法は、AIと一緒に学ぶのが一番効率的ですから。


この章では、VBAを始めるための準備と、最初のコード体験をしました。次の章では、いよいよAIをあなたの「専属VBA先生」にして、分からないことやエラーの解決方法をAIから引き出す具体的な「質問の仕方(プロンプト)」を学んでいきます。

エラーが出たままになっている方も、まずは気にせず次に進んでください。エラーの解決方法は、AIと一緒に学ぶのが一番効率的ですから。


※本記事の作成にあたっては、生成AI(ChatGPT、Gemini、Claude)を活用し、文章および引用データの作成を行っています。最終的な内容は人間による確認・編集を経て掲載しています。





同じテーマ「AI×VBAで“書かない自動化”」の記事

AI時代のExcel革命:AI×VBAで“書かない自動化”超入門
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する!
第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方
第6章:AIとVBAを学び続ける!あなたの「超効率化」を止めないヒント


新着記事NEW ・・・新着記事一覧を見る

第6章:AIとVBAを学び続ける!あなたの「超効率化」を止めないヒント|生成AI活用研究(2025-05-22)
第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方 |生成AI活用研究(2025-05-21)
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する! |生成AI活用研究(2025-05-20)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック|生成AI活用研究(2025-05-19)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)|生成AI活用研究(2025-05-18)
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)|生成AI活用研究(2025-05-18)
AI時代のExcel革命:AI×VBAで“書かない自動化”超入門|生成AI活用研究(2025-05-17)
Geminiと100本ノック 23本目:シート構成の一致確認|生成AI活用研究(5月16日)
AIが問う出版の未来は淘汰か進化か:AIと書籍の共存の道とは|生成AI活用研究(2025-05-16)
Geminiと100本ノック 22本目:FizzBuzz発展問題|生成AI活用研究(5月15日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.RangeとCellsの使い方|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.FILTER関数(範囲をフィルター処理)|エクセル入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ