【ExcelVBA入門】VBAの基礎知識・書き方・おすすめの学習方法を解説
皆さんは、ExcelVBAを知っていますか?ExcelVBAができるようになると、Excelの作業を自動化できるだけでなく、様々な作業を効率化することができます。
ただ、なんとなく難しいイメージを持っている方も多いのではないでしょうか。そこで今回は、マクロとVBAの違いとは?といった基礎的なことから、
- VBAを書くための準備
- VBAの処理を書いて動かす方法
- VBAのおすすめ学習方法
といった応用的な方法まで、徹底的に解説します!
この記事の目次
マクロ・VBAとは?
はじめに、
と混乱する方が多いので、マクロとVBAの違いについて簡単に解説します。マクロは操作を自動化するための機能で、VBAはマクロの処理を動かすプログラムです。
たとえば、「ブック1のデータをコピーして、ブック2にデータを張り付けて保存する機能」のような、機能がマクロです。このマクロを動かすプログラムがVBAでVBAには次のようなコードが書いてあります。
- ブック1を開く
- ブック1のデータをコピーする
- ブック2にデータを張り付ける
- ブック2を上書き保存
このように、マクロとVBAは切っても切れない関係なので、簡単に関係性を覚えておくのがおすすめです!ちなみに、マクロとVBAについては以下でわかりやすく解説しているので、以下も見てみるのがおすすめです!

【超初心者向け】VBAを書いて動かす方法
次に、VBAを書く方法について解説します。
開発タブを表示する
まず、マクロ・VBAを作るための準備として、「開発タブ」を追加します。「開発タブ」の追加方法は次のとおりです。
1. ファイルタブからオプションを選択
2. リボンのユーザ設定から開発タブにチェックを入れて、OKボタンクリック
これで開発タブが追加できました。
VBEを開く
次に、VBEを開く方法について解説します。VBEは、VBAを書くためのエディタです。開発タブからVusual Basicを選択することで開くことができます。
開くと次のようなエディタが起動します。
標準モジュールを追加する
次に、コードを書くためのモジュールを追加する方法について解説します。標準モジュールを使えば、簡単にコードを書くことができます。「プロジェクトエクスプローラで右クリック → 挿入 → 標準モジュールを選択」で標準モジュールを追加することができます。
追加すると次のようなウィンドウが出てきます。
VBAを書くための要素は大きく分けて3つありますが、最初は標準モジュールだけ覚えておけばOKです。
VBAを書くための3要素
- 標準モジュール
- ユーザーフォーム
- クラスモジュール
簡単に解説すると、標準モジュール・クラスモジュールはどちらもVBAのコードを書くことができるモジュールです。
クラスモジュールを使うとオブジェクト指向を意識したプログラミングができるようになるのですが、標準モジュールだけでも十分なツールが作れるので、最初は覚えなくてOKです!ユーザーフォームは、Excelで以下のような画面を作るときに使います。
ユーザーフォームは便利なのですが、VBAの基礎を覚えてから作るのがおすすめです。以下で作り方についてまとめているので、VBAが慣れてきたら見てみてくださいね!

Subプロシージャを作る
次に、Subプロシージャを作る方法について解説します。冒頭で説明した通り、「マクロは操作を自動化するための機能で、VBAはマクロの処理を動かすプログラム」です。そのため、まずはマクロを作るための箱を作ります。
Sub マクロ名を入力してEnterキーを押すと、次のようなコードができます。
「Sub マクロ名() ~ End Sub」ここまでがマクロを作るための箱になります。この中にVBAのコードを書いていくことで、マクロを作っていきます。マクロ名の部分は日本語でも英語でもOKです。
ただ、英語で書いている人が圧倒的に多いので、英語で書くのがおすすめです!
処理をVBAで書く
次に、マクロに簡単な処理を書く方法について解説します。先ほど作ったマクロの中に処理を書いていきます。今回は簡単な例としてA1セルに「初めて書いたVBAコード」という文字列を書き込むためのコードを書いてみます。
サンプルコード:
Sub マクロ名() Worksheets("Sheet1").Range("A1").Value = "初めて書いたVBAコード" End Sub
Rangeメソッドを使えば、簡単にセルに値を書き込むことができます。Rangeメソッドの詳しい使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

作ったマクロを実行する
次に、作ったマクロを動かす方法について解説します。Excelの画面から実行する方法、VBEから実行する方法の2つがあるのでそれぞれ解説しますね。
Excelの画面から実行する方法
まず、Excelの画面から実行する方法について解説します。手順は次のとおりです。
1. 開発タブからマクロを選択
2. 作成したマクロ名を選択し、実行ボタンをクリック
VBEから実行する方法
次に、VBEから実行する方法について解説します。手順は次のとおりです。
1. マクロを選択してカーソルをマクロ内に表示
2. 実行タブから「Sub/ユーザーフォームの実行」をクリック
実行すると次のようにセルに文字列を書き込みます。
実行前:
実行結果:
「Sub/ユーザーフォームの実行」はF5キーでも実行できるので、合わせて覚えてくのがおすすめです!開発中はVBEで実行して動きを確認し、マクロを使うときはExcelの画面から実行のように使い分ければOKです!
これで、「セルに文字を書き込むマクロ」をVBAで書いて実行することができました。
VBAのおすすめ学習方法
ここまでの説明で、VBAを書く方法・作ったマクロを動かす方法はなんとなくわかったと思います。
ただ、この先どうやってVBAを学んでいけば良いかよくわからないですよね。そんな方向けに、おすすの学習方法についてご紹介します!
本で学習する方法
まずは、本で学習する方法です。整理された情報をまとめてみることができるので、体系的な知識を付けていきたい方におすすめです!とはいえ、VBAの本は多すぎて買うときに迷ってしまうので、おすすめ本を紹介している記事を紹介します!

わかりやすいサイトで覚える
本は丁寧な解説がまとまっているため1冊は持っておいた方がいいのですが、最新の知識が漏れてしまったり、膨大な量の基礎知識がありすぎて学習のモチベーションを維持するのが難しかったりします。
そのため、お気に入りの学習サイトを1つ見つけて学んでいくのもおすすめです!
とはいえ、VBAのサイトでも1から見ていくと膨大な量のページがあるためおすすめの検索方法をご紹介します。「site:VBAのお気に入りサイトのURL 調べたいキーワード」でググる方法です。
頭に「site:URL」を付けてから検索することで「指定したURLのサイトの中から検索する」ことができるので、自分がわかりやすいと思ったサイトから欲しい情報を調べることができます。侍エンジニア塾で調べる場合は、次のような感じです。
わかりやすいサイトの入門記事をいくつか見る → site:URL + キーワードで調べつつ覚えていくという流れで学んでいけば、自分がわかりやすいと思ったサイトから効率的にVBAを学ぶことができるので、とてもおすすめです!
おすすめの学習ステップ
本やお気に入りのサイトを見つければ学習を進められるのですが、何からどう覚えていけばいいのか最初はよくわからないと思います。
というのが本音ですよね。そんな方向けに、おすすめの学習ステップをご紹介します!
- 変数の使い方を覚える
- セルに値を書き込む方法を覚える
- シートにボタンを追加してVBAの処理を動かす
- 条件によって処理を分ける方法を覚える
- ループ処理する方法を覚える
- マクロの記録でExcelの操作を自動でマクロ化する
3までやれば、「シート上に置いたボタンをクリックしてセルに値を書き込むマクロ」を自分で書けるようになります。このように、まずは自分の書いたVBAをボタンクリックで動かす方法を覚えるのがおすすめです!
その後、4で処理の条件を分ける方法、5でループ処理する方法を学ぶことでより実践的なコードが書けるように学んでいくイメージですね。最後に、日々のExcel操作を自動化するVBAを書くために、マクロの記録機能で保存したVBAのコードを使ったより実践的なテクニックを学んでいきます。
6まで学ぶことができれば、「VBAの基礎はわかっている & 自分で書いたコードを動かせる & Excelの操作をVBAで作れる」状態になるので、あとは細かい処理の書き方を「site:VBAのお気に入りサイトのURL 調べたいキーワード」でググりつつ作っていけばOKです。
調べるときキーワードサンプル
- site:https://www.sejuku.net フィルター操作
- site:https://www.sejuku.net コピー
- site:https://www.sejuku.net シート操作
VBA以外の選択肢も
VBAを使いこなせると様々な業務が効率化できて、社内出世も見込める大切なスキルではありますが、改めてVBAを身につけて社内出世することが人生の理想なのか?を考えてみても良いかもしれません。
せっかくVBAというスキルを身につけようとしているなら、その熱量をプログラミングに向けることで、これまでとは全く違った人生を送れる可能性もあります。
実際にプログラミングを学んでみて、大企業のエンジニアへ転職し年収アップした方、主婦をやりながら在宅で仕事を取れるようになった方、フリーランスへ転向し、複業を続けている方など多くの人がプログラミングで人生を好転させています。
今後AIの発達によって、VBAを組んで効率化している業務のVBAを組む必要性さえなくなるかもしれません。この先も市場価値を高め続けるためにも親和性のあるプログラミングを学ぶのはおすすめです。
まずは何をやったらいいんだろう?というあなたはプログラミング学習診断アプリで、質問に答えていくだけであなたに最適なプログラミング言語を診断してみてください。何を学ぶべきか解説いたします。
VBAの将来性
このように思っている人は多いでしょう。
VBAの用途はさまざまで、
- VBAのスキルがあれば転職できるのでは?
- 業務効率化のスキルは需要が高そうだから
などが上げられます。確かに、業務効率化はどこの企業も目指していて、需要が高いように見えます。ただ、VBAを扱えることが強みになるかといわれると、すこし疑問があります。
VBAは基本的にエクセル上でしか使用することができません。しかし、最近では社内書式をスプレッドシートで管理している企業も増えており、今後エクセル自体の需要が少なくなってしまう可能性も考えられます。
そうなってしまうと、VBAを習得しても活躍の場が限られてしまいますよね。そう考えると将来的にVBAの需要はあまり高くないといえます。
ではVBAを学んでいる人はどうすればいいのでしょう。VBAの将来性や今後の対策などをこちらの記事でまとめているのでぜひご確認ください。

まとめ
今回は、VBAの基礎・簡単な作り方・おすすめの学習方法などについて解説しました。まずは、今回の記事を見つつ「自分が書いたコードが動く体験」をして、VBAを楽しんで取り組んでみてください。
楽しくなるともっと覚えたい欲が出てくると思うので、おすすめの学習方法を見て学んでいくのがおすすめです。VBAができると、控えめに言って見える世界が変わりますので、ぜひ使ってみてくださいね!