この記事ではおすすめの教材も交え、VBAの学習方法を解説します。
VBAを学びたいけど、何から始めればいいかわからない
初心者がVBAを学習するための入門手順を知りたいな
VBAは、Excelさえあればすぐに始められるプログラミング言語です。そのため、これからVBAを学び始めようか検討している人も多いのではないでしょうか。
ただ、プログラミングの経験が少ないために、何から始めればいいのかわからない人も多いですよね。VBAに限らず、プログラミング学習は正しい手順で取り組まないと挫折してしまいます。
本記事では、VBAに入門するために必要な知識を、プログラミング初心者向けにわかりやすくお伝えします。VBAの実践方法や基礎構文、学習方法も紹介するので、ぜひ参考にしてください。
- VBAを学習すればMicrosoft 365製品を扱う作業の効率化が可能
- VBAはExcelなどのMicrosoft 365アプリを用いて手軽に実践可能
- VBAの学習に不安がある場合は講座・スクールを活用しよう
なお、AIを学び日々の仕事や作業を効率化したい人は「侍エンジニア」をお試しください。
侍エンジニアでは現役エンジニアと学習コーチの2名体制で学習をサポート。AIプログラミングやVBAの習得を通じて、手間のかかる作業を効率化する方法を学べます。
未経験から挫折なくAIスキルを習得したい人は、ぜひ一度お試しください。
\ 給付金で受講料が最大80%OFF /
初心者からのVBA入門知識
プログラミング学習を始めるときには、その言語の基本を理解することが大切です。まずは、VBAの初心者が知っておくべき2つの入門知識を押さえておきましょう。
そもそもVBAとは
VBA(Visual Basic for Applications)とは、業務アプリ「Microsoft 365(旧:Microsoft Office)」製品に搭載されているプログラミング言語です。
VBAを使えば「Excel」や「Word」など、Microsoft 365の主要なアプリでの作業を効率化できます。Microsoft 365のアプリ上でコードを記述・実行でき、特別な開発ツールの導入は不要です。
つまり、Microsoft 365を導入済みの人であれば、すぐにVBAを使い始められます。なお、VBAとは何かについて詳しく知りたい人は、次の記事を参考にしてください。
Visual Basicとの違い
VBAと関わりが深いプログラミング言語に「Visual Basic」があります。Visual Basicとは、Microsoft社が1991年に生み出したプログラミング言語のことです。
Visual Basicはもともと、Windowsアプリ開発向けに使われてきました。その後、このVisual BasicをMicrosoft 365製品向けに特化させて生まれたのがVBAです。
VBAはVisual Basicがベースとなっているため、文法が非常に似ています。ただし、VBAはMicrosoft 365のアプリ上でのみコードを記述・実行できるのが違いです。
なお、Visual Basicは新しいプラットフォームに対応した「Visual Basic .NET」へと進化しました。こちらは今もサポートが続いており、Webアプリなどより幅広い用途に利用されています。
なお、IT企業への転職や業務効率化などを見据えたVBA習得に向け、どう学習を進めればいいのかなどがあいまいな人は「プログラミング学習プラン診断」をお試しください。
かかる時間は1分ほど。4つの質問に答えるだけで、あなたにあう言語や学習プランを診断してもらえます。
効率よくスキル習得したい人は、ぜひ一度お試しください。
\ 4つの質問に答えるだけ /
VBA入門する3つのメリット
ここからは、入門者がVBA学習を始めるメリットを、3つにまとめて解説します。
Microsoft 365製品を扱う作業を効率化できる
VBAを学ぶことで、Microsoft 365製品を扱う幅広い作業を効率化できます。ExcelやWordといったMicrosoft 365アプリの操作をプログラムで自動化でき、手作業の負担を軽減可能です。
たとえば次のような作業は、いずれもVBAで自動化できます。
- Excel:データの集計や分析、グラフの作成
- Word:文章のチェックや検索、置換
- Outlook:メールの作成や送信
VBAで作ったプログラムを実行すると、記述されたコードの順番に動作します。そのため、正しいプログラムを一度作れば、手作業で発生するようなミスなく確実に同じ処理を実行できます。
このように、VBAを使いこなすことで、Microsoft 365アプリの手作業で生じる手間やミスから解放されます。なお、VBAでできることを詳しく知りたい人は、次の記事を参考にしてください。
初心者からでも挫折しにくい
VBAはプログラミング経験が少ない人でも比較的学びやすく、初心者からでも挫折しにくいといえます。そのためVBAは、プログラミング学習の第一歩として有力な選択肢です。
VBAが学びやすいといえる理由として、主に次の2つが挙げられます。
- 文法がシンプルでわかりやすい
- 実践学習のハードルが低い
VBAの文法は、基本的な英単語の組み合わせが中心で、直感的に理解しやすいです。そのため、複雑な文法を持つプログラミング言語と比べて、学習でつまずきにくいでしょう。
また、Microsoft 365アプリ上で使えるVBAは、特別な環境構築が不要です。Microsoft 365アプリさえあれば、すぐにコードを記述・実行できるため、実践学習のハードルが低いといえます。
このようにVBAは、挫折の不安を抱えるプログラミング初心者にも適した言語です。
キャリアの幅が広がる
VBAスキルを身につければ、キャリアの幅が広がります。Microsoft 365アプリ上で使えるVBAは活用シーンが幅広く、業種を問わず仕事の成果アップにつなげることが可能です。
たとえば、Excelでのレポート作成業務をVBAで自動化すれば、時間をより有効に使えます。浮いた時間でチームの負担軽減や成果向上に貢献できれば、昇給や昇格のチャンスが増えるでしょう。
また、VBAスキルを活かして副業を始めたり、転職先で新たな役割を担ったりする選択肢もあります。このように、VBAはキャリアの幅を広げるうえでも有効な言語です。
なお、IT企業への転職や業務・作業の効率化などを見据え、独学でVBAが習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や効率化が実現できますよ。
\ 給付金で受講料が最大80%OFF /
初心者のVBA入門手順【5ステップ】
VBA入門者が学習を始めるにあたって、まずは実際に動かしてイメージをつかむのがおすすめです。ここからはVBA入門者向けに、VBAのコードを書いて実行するまでの手順を解説します。
- ステップ1:VBAを使うための設定を行う
- ステップ2:VBA専用の開発環境を開く
- ステップ3:標準モジュールを追加する
- ステップ4:コードを記述・保存する
- ステップ5:コードを実行する
なお、ここではExcelを例にしますが、大まかな手順は他のMicrosoft 365アプリでも同様です。Excelを用いたVBAの基本的な使い方について詳しくは、次の記事を参考にしてください。
ステップ1:VBAを使うための設定を行う
最初に、空のExcelファイルを開きましょう。ここではファイル名が「Book1」、シート名が「Sheet1」となっている空のExcelファイルを想定して進めていきます。
VBAを使う場合、Microsoft 365アプリの上部にある「開発タブ」から開発環境を開きます。しかし、初期状態ではこのタブが表示されていないため、表示設定を変更しましょう。
Excelを開き、「ファイル > その他 > オプション」の順に選択してください。そして「リボンのユーザー設定」にある「開発」にチェックを入れ「OK」をクリックしましょう。
これで、開発タブがアプリ上部に表示されます。
ステップ2:VBA専用の開発環境を開く
次に、VBA専用の開発環境を開きましょう。開発タブにある「Visual Basic」をクリックしてください。なお「Alt + F11」キーでも同じ操作が可能です。
すると、次のような画面が開きます。これは「Visual Basic Editor(VBE)」と呼ばれるもので、VBA専用の開発環境です。このVBE上でコードの記述や実行ができます。
ステップ3:標準モジュールを追加する
VBEが開いたら、コードを記述するために「標準モジュール」を追加しましょう。標準モジュールとは、どのシートやブックからでも呼び出せる汎用的なVBAコードの入れ物です。
VBE画面上部のツールバーから「挿入 > 標準モジュール」の順に選択しましょう。
すると、次のように標準モジュールのコードを書くためのコードエディタが表示されます。
ステップ4:コードを記述・保存する
続いて、開いたコードエディタに対してVBAのコードを記述しましょう。ここでは、初歩的なコードで実践します。コードエディタに次のようなコードを記述してください。
Sub HelloWorld()
ActiveSheet.Range("A1").Value = "Hello, World!"
End Sub
これは、ExcelのアクティブなシートのA1セルに「Hello, World!」と出力するコードです。なお「Sub HelloWorld()」はプロシージャと呼ばれるものですが、詳細は後述します。
コードを記述したら「Ctrl + S(Cmd+S)」キーで保存できます。ただし、Excelファイル自体が未保存の場合は、ファイルの保存先設定を求められます。
このとき、ファイルの種類を「Excel マクロ有効ブック(*.xlsm)」にしましょう。この形式を選ばないと、記述したVBAコードを実行できません。
ステップ5:コードを実行する
そして、標準モジュールに記述したコードを実行しましょう。VBEの画面上部にある再生ボタン(三角形)をクリックしてください。
すると、VBAのマクロ選択画面が表示され、先ほど作った「HelloWorld」が選択されています。実行したいマクロを選択した状態で「実行」をクリックすると、VBAコードの実行が可能です。
なお、Microsoft 365アプリにおける「マクロ」とは、一連の操作をまとめて実行するための機能です。VBAでは「Sub マクロ名()〜End Sub」の部分がマクロとして認識されます。
コードを実行した結果は、次のとおりです。A1セルに「Hello, World!」と出力されました。
VBAで記述した「ActiveSheet.Range(“A1”).Value = “Hello, World!”」の部分が実行されたことがわかります。これで、VBAの簡単な実践ができました。
なお、ITの仕事に興味はあるものの、どの職種が自分にあうのかわからない人もいますよね。そんな人は「ITキャリア診断」をお試しください。
かかる時間はたったの1分。5つの質問に答えるだけで、自分にあうIT職種を診断してもらえます。
自身に適した職種が知りたい人は、手軽に試してみると良いですよ。
\ 5つの質問に答えるだけ /
VBA入門者向け基礎構文5選【サンプルコード付き】
ここからは入門者に向け、VBAの基礎構文5つをサンプルコード付きで紹介します。
オブジェクトとプロパティ
特定のシートやセルを対象に処理する場合、主に「オブジェクト」と「プロパティ」を使います。
Microsoft 365アプリにおけるオブジェクトとは、シートやセルといった対象物のこと。またプロパティとは、各オブジェクトが持つ状態や特徴のことです。
「オブジェクト名.プロパティ名 = “値”」のように書くことで、オブジェクトが持つプロパティを変更できます。先ほどのサンプルコードを改めて見てみましょう。
ActiveSheet.Range("A1").Value = "Hello, World!"
それぞれ、次のようなオブジェクトとプロパティを扱っていることが分かります。
- ActiveSheet:現在アクティブになっているシートを表すオブジェクト
- Range(“A1”):アクティブなシートにおけるA1セルを表すオブジェクト
- Value:セルの値を表すプロパティ
ExcelやWordなどを操作するときには、オブジェクトとプロパティを頻繁に使います。基本的なオブジェクトとプロパティは必ず学習しておきましょう。
変数
VBAに限らず、プログラミングではさまざまな「変数」を扱います。変数とは、数値や文字列といったデータを保存しておく入れ物のこと。
変数を使う場合は、宣言(入れ物を作る)→代入(データを入れる)→参照(データを見る)という流れが基本です。次のサンプルコードは、変数の宣言・代入・参照を行っています。
' 変数iの宣言
Dim i As Integer
' 変数iに123を代入
i = 123
' 変数iの中身を参照してA1セルに出力
ActiveSheet.Range("A1").Value = i
変数は「Dim 変数名 As データ型」のように宣言します。変数にはさまざまなデータ型(データの種類)を設定できるため、あわせて学習しましょう。
なおVBAでは「’」(アポストロフィ)を付けた行は、それ以降が「コメント」として扱われます。コメントは「コードへのメモ書き」のようなもので、処理としては実行されません。
条件分岐
プログラミングでは、状況に応じて処理を分けたいケースがよくあります。たとえば「テストが70点以上なら合格、それ未満なら不合格」と判定したいようなケースです。
このとき「条件分岐」というテクニックを使います。VBAで条件分岐に用いる構文はIF文です。
' 点数が70点以上かどうか判定
If score >= 70 Then
MsgBox "合格"
Else
MsgBox "不合格"
End If
この例では、変数scoreに「70」が入っていたら「合格」と表示。いっぽう、変数scoreに「69」が入っていたら「不合格」と表示します。このように、状況によって処理の切り替えが可能です。
繰り返し処理
決まったパターンの処理を何度も繰り返すときには「繰り返し処理」というテクニックを使います。VBAで繰り返し処理に使える最も基本的な構文はFor文です。
For文は、繰り返す回数が決まっているときに使います。たとえば「1から5までの整数を出力する」という繰り返し処理のサンプルコードは次のとおりです。
For i = 1 To 5
' iの値を出力ウィンドウに表示
Debug.Print i
Next i
変数iの値を1から5まで変化させ、Debug.Printで「イミディエイトウィンドウ」に出力しています。イミディエイトウィンドウとは、VBEでプログラムの実行結果を確認するための領域です。
上記のFor文は基本的なもので、ほかにも多くのバリエーションがあります。また、繰り返す回数が明確に決まっていないときにはWhile文も便利です。これらも学習すると良いでしょう。
プロシージャ
「プロシージャ」とは、一連の処理をまとめたプログラム要素です。「金額に送料をプラスする」など、特定のタスクをプロシージャとして定義して呼び出すことで、手軽に実行できます。
プロシージャには2種類あります。データの入出力がない場合はSubプロシージャを使います。先ほどのサンプルコードでは、HelloWorldというSubプロシージャを定義しました。
Sub HelloWorld()
ActiveSheet.Range("A1").Value = "Hello, World!"
End Sub
これを別のプロシージャで呼び出す場合、次のようにプロシージャ名を記述するだけでOKです。
' HelloWorldプロシージャを呼び出す
HelloWorld
いっぽう、データの入出力をともなう場合はFunctionプロシージャを使います。たとえば「価格を入力して、送料込みに変換した金額を出力する」といったケースで便利です。
' 価格に送料をプラスする
Function AddShippingFee(price As Integer) As Integer
AddShippingFee = price + 500
End Function
これを別のプロシージャで呼び出す場合、( )内に入力したいデータや変数を指定。そして、出力されたデータを別の変数(この場合はtotalPrice)で受け取ります。
totalPrice = AddShippingFee(1000) ' 商品価格に1000円を設定
プロシージャを使えば、よく使う処理をまとめてプログラミングを効率化できます。基本的なルールを覚えておきましょう。
初心者からVBAに入門するには
プログラミング初心者がVBAに入門するためには、学習方法を知ることが大切です。ここでは、VBA入門者におすすめの学習方法3つを紹介します。
学習本で入門する
VBAの知識を体系的にじっくり身につけたい人には、学習本での入門がおすすめです。本であれば1冊あたり数千円程度と低コストで、パソコンを使わなくても基本的な知識を吸収できます。
ここでは、VBA学習におすすめの本を2冊紹介します。
親しみやすいイラストとお話を通じて楽しくExcel VBAを学べる入門書です。VBAプログラミングの基本から丁寧に解説しており、未経験者でも理解しやすい内容になっています。
Excel VBAの基本を、アプリ開発の実践も交えて学べる入門書です。わかりやすい図解や説明が充実しており、プログラミングに慣れていなくても挫折しにくいでしょう。
なお次の記事では、レベル別にVBAの学習本を紹介しているので、ぜひ参考にしてください。
入門サイトを利用する
パソコンを使ってスキマ時間にVBAを学びたい人には、入門サイトでの入門がおすすめです。インターネット環境さえあれば手軽に利用でき、効率的に実践学習を進めていけます。
ここでは、VBA学習におすすめの入門サイトを2つ紹介します。
「ドットインストール」は、1本あたり3分ほどの短い動画でプログラミングを学べるサイトです。Excel VBA入門用の教材もあります。スキマ時間に学びたい人は活用してみましょう。
「moug」では、Excel VBAの活用方法をキャプチャ付きで解説しています。ビジネスで役立つVBAの使い方を、コラム記事を読むような感覚で学ぶことが可能です。
なお次の記事では、VBAの入門サイトをほかにも紹介しているので、ぜひ参考にしてください。
講座で入門する
VBAの学習で挫折しないか不安な人には、高品質な講座やスクールでの入門がおすすめです。VBAの経験豊富な講師に教えてもらえるため、独学における「誰にも質問・相談できない」という悩みを解消できます。
実のところ、プログラミングの独学で挫折する人は少なくありません。弊社の調査では、プログラミング学習者100名のうち87.5%が「挫折や行き詰まりを感じたことがある」と回答しました。
また「挫折や行き詰まりを感じた理由」を尋ねたところ「質問できる環境がなかった」「エラーが解決できなかった」が最多でした。独学ではエラーにつまずいても質問できず、挫折する人が多いのです。
独学で費用を抑えようとしても、挫折すればそれまでの費用と時間が無駄になってしまいます。VBAを習得したいなら、費用をかけてでもサポートを受けられる講座やスクールが確実です。
なかでも、おすすめの「侍エンジニア」は、完全オンラインでマンツーマン指導を受けられるプログラミングスクールです。
料金 | 月分割4.098円~ |
実績 | ・累計指導実績4万5,000名以上 ・受講生の学習完了率98% ・受講生の転職成功率99% |
侍エンジニアでは、次のようなサポート体制を整えているため、学習中の不明点をいつでも相談可能です。
- 現役エンジニア講師によるマンツーマンレッスン
- 現役エンジニアに質問できるオンラインでのQ&Aサービス
- 不安や悩み・勉強の進み具合を相談できる学習コーチ
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や効率化が実現できますよ。
\ 給付金で受講料が最大80%OFF /
なお次の記事では、VBAをオンラインで学べる講座を紹介しているので、あわせて参考にしてください。
これから学習を始めるVBA入門者へのアドバイス
最後に、これから学習を始めるVBA入門者へ3つのアドバイスを送ります。
「マクロの記録」を有効活用する
VBAを学ぶうえでは「マクロの記録」が便利です。マクロの記録とは、Excelなどの操作をビデオレコーダーのように保存し、VBAのコードに変換してくれる機能のこと。
マクロの記録でVBAのコードを自動で作る手順は、次のとおりです。
- 手順1:開発タブから「マクロの記録」をクリック
- 手順2:マクロ名を入力してOKをクリック
- 手順3:自動化したい操作をエクセルで操作
- 手順4:開発タブから「記録終了」をクリック
たとえば、マクロの記録で「A1セルを選択し、testと入力」という操作を記録した結果は次のとおり。このように、操作したとおりのVBAコードが自動で生成されます。
Range("A1").Select
ActiveCell.FormulaR1C1 = "test"
マクロの記録を使えば、VBAコードの書き方をピンポイントに学習できます。「この操作はVBAでどう書くのだろう」と悩む場合は、マクロの記録で実際に操作してみましょう。
なお、画像付きの具体的な手順は次の記事で詳しく解説しているので、ぜひ参考にしてください。
検索力・質問力を磨く
独学でVBAを学ぶ場合は、検索力・質問力を磨くことが大切です。そうすることで、Web上から問題解決につながるヒントを効率的に探したり、先輩へスムーズに質問したりできます。
まずは、VBA学習でつまずいたときの基本的な検索方法を押さえておきましょう。
- 「VBA 調べたいこと」でGoogle検索する
- 「site:URL 調べたいこと」で読みやすいサイトを指定して検索する
また、質問力をアップさせるコツは「質問された相手の立場になって想像すること」です。つまり、自分が同じ質問をされたときに困らないか、と考えることで適切な質問が見えてきます。
検索力・質問力は、実践を繰り返すことで向上していきます。Google検索エンジンや「teratail」といった質問サイトを活用し、積極的に実践していきましょう。
VBAといったプログラミングにおける適切な質問方法やおすすめの検索サイトを詳しく知りたい人は、下の記事を参考にしてください。
資格を取得してスキルを活かす
VBAスキルを習得できても、スキルを客観的に証明できないと仕事へは活かしづらいといえます。スキルを仕事に活かしたい場合は、VBAに関する資格を取得すると良いでしょう。
なかでも、VBAに特化した「VBAエキスパート」と呼ばれる資格がおすすめです。VBAエキスパートには、次の4区分があります。
資格名 | 詳細 |
Excel ベーシック | Excel VBAの基礎的な知識とスキルを評価 |
Excel スタンダード | Excel VBAの応用的な知識とスキルを評価 |
Access ベーシック | Access VBAの基礎的な知識とスキルを評価 |
Access スタンダード | Access VBAの応用的な知識とスキルを評価 |
資格を持っていれば、転職活動のときにスキルをアピールしやすくなります。時間的・経済的に余裕がある場合は、こうした資格の取得を目指してみると良いでしょう。
なお次の記事では、Excel VBAに関する資格をより詳しく紹介しているので、ぜひ参考にしてください。
まとめ
今回は、VBAに入門するために必要な知識を、プログラミング初心者向けにわかりやすくお伝えしました。
VBAを学習すると、Microsoft 365製品を扱う作業の効率化を図れるだけでなく、キャリアの幅も広がります。特別な環境構築が不要なため、手軽にVBAの学習を始めてみてはいかがでしょうか。
ただし、プログラミング学習ではエラーにつまずいて挫折する人も少なくありません。挫折に不安がある人は、講座やスクールの利用も考えましょう。
本記事の解説内容に関する補足事項
本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」を運営する株式会社SAMURAIが制作しています。
また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に、提供コースは「教育訓練給付制度の指定講座」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。
記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。
この記事の監修者
フルスタックエンジニア
音楽大学卒業後、15年間中高一貫進学校の音楽教師として勤務。40才のときからIT、WEB系の企業に勤務。livedoor(スーパーバイザー)、楽天株式会社(ディレクター)、アスキーソリューションズ(PM)などを経験。50歳の時より、専門学校でWEB・デザイン系の学科長として勤務の傍ら、副業としてフリーランス活動を開始。 2016年、株式会社SAMURAIのインストラクターを始め、その後フリーランスコースを創設。現在までに100名以上の指導を行い、未経験から活躍できるエンジニアを輩出している。また、フリーランスのノウハウを伝えるセミナーにも多数、登壇している。