汎用性の高いスキル「VBA」はマクロではない?「VBA」の勉強におすすめの方法と参考本をご紹介

最終更新日:2022年12月13日

レバテックキャリアは
ITエンジニア・Webクリエイター専門の転職エージェントです

VBAは、Microsoft社のソフトウェア内に搭載されているプログラミング言語です。1993年の登場以来、特にExcelで業務効率化に役立つ「マクロ」を作成できることから、事務職や経理関連職など非IT人材の中でも評価されています。ただし、プログラミング言語としてのVBA習得と、マクロ作成方法の習得は区別して考えるべきです。ここでは、VBAの勉強方法、有望な資格などについて解説します。

VBAとは?

まず、Microsoft社のOffice製品におけるマクロと、VBAの位置づけについて簡単に解説します。

「マクロ=VBA」ではない

VBAは「Visual basic for applications」の略称です。Microsoft社が開発していた、Windows OS内で動作する独自言語「VB(Visual basic)」のマクロ版とも言える言語です。
VBAは、VBE(Visual Basic Editor)という専用の編集アプリケーションを使用して記述します。

また、VBAはマクロ作成用のプログラミング言語であり、マクロはOffice内のいち機能です。例えばExcelマクロは、実際にはVBA以外でも作成可能になっています。しかし現在ではほとんどのOffice製品においてVBAを用いたマクロが作成されることから、一般的には「VBA=マクロ」として認識されがちです。

冒頭でも述べたように、非IT人材であっても、VBAを使えると業務の幅が一気に広がります。特にExcel内での入出力・情報加工処理が効率化されるため、バックオフィス部門の業務と相性が良いプログラミング言語です。

VBAとマクロができること・できないこと

VBAとマクロの位置付けを解説したところで、VBAとマクロでできること、できないことを解説していきます。
自分がやりたいことがVBAの得意分野なのかを知っておくことで、VBAを学ぶべきか、別のプログラミング言語を学習すべきかが変わるため、ぜひ参考にしてください。

VBAでできること、できないこと

VBAはOffice製品全般で使用可能なプログラミング言語であり、Excel以外でも使用可能です。まずはVBAでできることを、Excel以外の視点から紹介します。以下は、Excel以外での活用方法の一例です。
Outlook

  • ・予定の自動登録

    ・開いているメールの添付ファイルを自動保存


Access

  • ・簡易なデータベースの開発

    ・在庫管理システム、発注予約システム、検索機能を伴うシステムなどの構築


Powerpoint

  • ・テキストボックスのサイズ設定

    ・テキストボックスを複数スライドにまとめて作成など


このように、Microsoft Office製品とVBAの相性は非常に良いです。Offceを使っている職場であれば、Excelでの作業自動化以外にも効率化できる部分がないか検討してみる価値はあるでしょう。

マクロができること、できないこと

次に、マクロ(Excel上で動くVBAアプリケーション)について解説します。

マクロ(Excel VBA)でできることは、主に以下の3つです。

  • ・文字列操作、変換:ドキュメント作成やデータ整理を効率化

    ・Web API連携:Webサイト・アプリ上の処理をローカルのVBAプログラム内で実行

    ・手動作業の自動化:マクロによって入力や印刷などの作業を自動化


VBAに搭載されている機能上、事務処理に代表されるような機械的な作業は、VBAの得意分野といえます。

さらに詳しい解説は以下の記事で紹介しているため、そちらを参照ください。

関連記事:VBAで「できること」と「できないこと」は?マクロ、関数についても解説

一方で、VBAが苦手な分野もあります。特に次のような処理は、Excel VBAが苦手とする分野です。

・ワークシートの容量以上の大容量データ処理
Excel VBAの効果が及ぶ範囲は、原則としてExcelのワークシートの最大容量(1,048,576 行×16,384 列)が上限です。そのため、ワークシートにおさまらないような大容量データの操作・処理は難しいと考えてよいでしょう。

・VBAをサポートするアプリケーション群の範囲外との連携
Excel VBAはVBAの命令を受け取ることができる機能でのみ機能します。したがって、外部の命令を受け取ることができないようなアプリケーションと連携はできません。VBAで外部アプリケーションのGUI操作はできるかもしれませんが、プログラム同士が相互連携するわけではないため、人間の操作を模倣するだけになってしまいます。人間の操作を模倣する自動化対策としてはRPAのほうが適切でしょう。

・文字イメージ認識など
VBAは人間の手作業を代行することはできても「認識」を代行することはできません。AIやOCRのように、画像認識のようにイメージを直接取り込んだのちに処理を行うことは難しいでしょう。

・同一画面内において他アプリケーションの相対位置を認識できない
Excel VBA が動作する画面内において、他のアプリケーションの位置を把握することができません。このような機能はRPAが得意としているため、RPAによって実現されることが多いでしょう。

上記のように、Excelマクロは機械的な処理は得意なものの、人間のように認識して処理をしたり、外部システムと連携することは可能ですがあまり得意ではありません。人間を模倣した行動を取らせたい場合には、RPAを勉強した方が良いでしょう。

VBAを勉強する際の手順

VBAを全く知らないところから勉強していく場合、いきなり高度なマクロを作ることは難しいです。一方で、全ての関数や機能を理解してからマクロを作ることも時間がかかるため非効率です。
ではどのように学習を進めていけばいいのか、VBAを勉強する際の手順を解説します。

以下の順で学習を進めることをおすすめします。

  • 1.VBAの要点を押さえて理解する

    2.マクロを作りながら学習する

    3.効率的にコードを書けるようにする

    4.方向性を決める

VBAの要点を押さえて理解する

VBAを勉強し始めた方の中には挫折する方も多くいます。その理由の1つは、今までExcel操作だけをしてきた人間には馴染みがないような概念がいくつも登場することが挙げられます。

まずはVBAのざっくりとした概要をつかむために、特に重要な「要点だけ」をはじめに学習することをおすすめします。

特に押さえるべき内容としては以下のような点が挙げられます。

  • ・VBEの起動方法(「ALT+F11」のショートカットによる起動)

    ・変数(宣言の方法、データ型)

    ・オブジェクトの概念

    ・セルの扱い方(「Valueプロパティ」の理解)

    ・条件分岐(「Ifステートメント」の構文)

    ・繰り返し処理(「forステートメント」の構文)

    ・テスト方法(エラーの種類、ステップイン機能やVBEの使い方)

マクロを作りながら学習する

上記で紹介した内容がある程度わかったら、次は実際にマクロを作ってみましょう。インプットだけでは永遠にマクロを組めるようにはなりません。これはどのプログラミング言語にもいえることですが、言語の構文を学んだとしても、それを自由自在に組み合わせて自分のやりたい処理を実現することはそう簡単にはできません。

そのため、知識を習得したら、なるべく早い段階で実際に手を動かして、1つ目のマクロを作ってみることが習得への近道です。実際に何か作ってみようとしたときに、作りたいものが思いつかないという方もいるかもしれません。そういった方におすすめなのは、普段しているExcel業務をマクロ化してみることです。

ただし、上記で述べたように、構文を学びたてではなかなか難しいと感じて挫折してしまうかもしれません。そういった方におすすめなのは書籍や動画でサンプルコードをトレースしてマクロを作ってみることです。

この方法は自分の作りたいマクロは作れませんが、自分の作ったマクロのサンプルが手元に残るので、それを書き換えることで実現したい処理実現できます。

効率的にコードを書けるようにする

実際に動くマクロをある程度書けるようになってきたら、次は、より効率的にメンテナンス性の高いコーディングができるようになることが目標です。
今はあなたが担当している業務であったとしても、今後別の人が担当するかもしれません。その際にも今回作ったマクロファイルを渡すだけで、業務の引き継ぎができるという点もマクロ化するメリットです。

ただし、業務の一部内容が変わり、マクロもそれに合わせて修正したいケースが出てきた場合、複雑でどのように処理がされているか分からないようなマクロを作っていると、メンテナンスが難しく陳腐化してしまう可能性が高いです。
そのため、効率的かつメンテナンス性の高いコーディングをすることは重要です。

ポイントとしては、オンコーディングを無くすために、配列やEnumの使い方を学んだり、クラスによるモジュール分割などを学ぶことをおすすめします。

方向性を決める

効率的でメンテナンス性の高いコードが書けるようになれば、VBAスキルとしては十分な力を身につけたといえます。
次のステップとしてはその先のキャリアの方向性を決めていく必要があります。引き続きVBAについての知識を身につけて社内有識者として活躍するという方向もあれば、別のプログラミング言語を勉強して新しい領域に踏み出すという選択肢もあります。
自分が何を極めたいのか、どういったキャリアを歩んで行きたいのかを元に決めましょう。

初心者におすすめのVBA勉強方法

次に、VBAの勉強法について解説します。一般的にVBAは、Excel内で活用されるケースが多いことから、「Excel VBAによるマクロ作成=VBAの勉強」といえるでしょう。そこで、ExcelマクロVBAの学習方法を解説します。

ExcelマクロVBAの学習は大きく2つのやり方が存在します。ひとつは「手書きでコードを記述する方法」、もうひとつは「実現したい動きをマクロ記録機能で保存し、エディターであるVBEで保存されたコードを読む、もしくは編集する方法」です。

しかし、一般的には「マクロ記録機能」で保存されたコードを編集することは稀です。VBAを用いた手入力によるコーディングで勉強を進めていくべきでしょう。

手書きでコードを記述する方法で勉強を進める場合、参考書などの書籍を元にして学習を進める方法と、オンラインの学習サイトで勉強する方法の大きく2通りがあります。
ここではそれぞれの方法で参考になる書籍やサイトについてご紹介します。

本・書籍

学習に十分な時間が確保できて、VBAの基礎からしっかり学んで行きたい方には、本や書籍での勉強をおすすめします。
本で勉強することで、基礎の基礎からVBAの知識を体系的に学べたり、本を読み終えた後にも手元に置いてリファレンス代わりにも使えます。

できるイラストで学ぶ入社1年目からのExcelVBA

イラストや図解を交えてVBAの基礎をわかりやすく解説してくれるので、スムーズに読み進められます。演習問題が豊富なため、演習問題に取り組むうちにVBAの書き方のコツも身に付けられるでしょう。
VBAの最初の挫折ポイントとも言える、プロパティやオブジェクトについても絵で見てわかるような分かりやすい説明があるため、初学者でも学びやすい書籍となっています。

できるイラストで学ぶ入社1年目からのExcelVBA』(きたみあきこ)

入門者のExcelVBA初めての人にベストな学び方

2012年に発売されて以来、人気が継続している参考書です。現在ではOffice365を採用している企業が多いですが、この本で紹介されているマクロはOffice365でも問題なく動きます。

VBAのプログラムを書きながら動作を確認して、基本的な文法を学んでいく本です。初心者でも挫折せずに進められるように、手順がわかりやすく記載されています。

また、サンプルコードとしてマクロが用意されているため、まずは動かしてみてから学習を進めていくことができます。

入門者のExcelVBA初めての人にベストな学び方』(立山 秀利)

Excel 最強の教科書[完全版] 【2nd Edition】

Excelの使い方からVBAの基礎まで、Excelに関する幅広い知識が学べます。Excelの使い方から学び直したい方にぴったりの本です。

かなり幅広く、細かい内容まで記載されているので、頭から全てを理解しながら進めるというよりも、辞書のように手元において、分からない部分を調べるための本として利用をおすすめします。

Excel 最強の教科書[完全版] 【2nd Edition】』(藤井 直弥)

学習サイト

まとまった時間は取れず、少しずつ学習を進めていきたい、VBAを無料で手軽に勉強したいと思っている人には、「学習サイト」をおすすめします。
ここで紹介するサイトはどれも1つひとつの講義時間が数分〜十数分で完了するように構成されているため、隙間時間に勉強を進めることが可能です。

ドットインストール

ドットインストールはExcelVBAの基礎知識や実際にプログラミングしていく過程を動画でわかりやすく学ぶことができます。
月額1080円のプレミアム会員になれば、初級者向けのレッスンから中上級者向けのレッスンまで、すべての動画を見られるようになります。

参考:ドットインストール

moug(モーグ)

moug(モーグ)では、すぐに使える実践的な内容を画像解説つきで学ぶことができます。実際にマクロを使いながら段階的に「ExcelVBA」を学ぶことができます。

サンプルファイルのダウンロードも可能なので、手元で動かしながら理解を深めることができます。

参考:moug(モーグ)

OfficePro

Excel でこれから VBA を使ってみたいという方を対象にした VBA 入門です。「VBAとは」といった基本的な内容から、ウインドウ操作や入力フォームの作成といった中上級者向けの実装まで細かく解説がされています。
難しい用語をなるべく使わないように構成されているため、初学者にも優しいサイトです。

参考:OfficePro

VBAを効率よく勉強するには

自分にあったサイト・参考書を見つけたら、あとは学習を進めていくのみですが、効率よくVBAを勉強するにはいくつかのコツがあります。大きく以下の4点に注意しましょう。


  • 1.Excelの機能や関数を理解する

    2.VBAの難易度を知る

    3.身の回りのことでVBAを試してみる

    4.VBAの仕事を受注してみる

Excelの機能や関数を理解する

VBAは、Microsoft Officeの拡張機能のため、Excelの機能や関数がベースになっています。そのため、Excel自体の理解を深める必要があります。
Excelの機能や関数を理解できているか不安な方は、まずはExcelの知識を身に付けるところから始めてみましょう。
そのためには、VBAおよびVBEを実際に使ってみることが一番の近道です。

Excelを起動し、新規ブックの上部リボンにある「開発」タブをクリックします。もし開発タブが表示されていない場合はオプションから開発タブの表示にチェックをし、常に表示させるようにします。具体的な手順はExcelのバージョンによって異なるため、Web上の解説サイトやヘルプなどを参照してみてください。

開発タブに移動したあとは、一番左側にある「Visual Basic」をクリックしてください。クリックすると、「Microsoft Visual Basic for Applications」という画面が開きます。これがいわゆるエディター(VBE)であり、この画面上でさまざまな処理を記載していくわけです。
VBEを起動したら、上部メニューから「挿入⇒標準モジュール」を選びます。標準モジュールとは実際のマクロを書いたり、実行させたりする作業場所です。この場所に、「Sub」からはじまるプロシージャ(処理の塊)を記述していき、目的の動作を実装します。

コーディングを行う準備が整ったら、実際に簡単な処理を記述していきましょう。このとき、基礎的な処理を覚えておくと学習が進みやすくなります。
例えば、実際の事務処理の効率化では「文字入力」「四則演算」「ループ処理」「if分岐」などが多用されるため、これらを使えるように学習を進めてみてください。

・文字入力用の記述
range(”列記号+行数”)=”入力したい文字列”
cells(”行数,列数”)=”入力したい文字列”

・四則演算
上記のrangeやcellsと組み合わせ、四則演算を自動で行う
任意のセルに、別のセルの税込み価格を表示させたい場合
cells(3,5)=cells(3,4)*1.10

・ループ処理
変数「i」の回数分、同じ処理を繰り返す(下記は3回繰り返す場合)
Dim i
i=3
処理

3回繰り返しから10回繰り返しまで計算を行う場合
Dim i
For i=3 to 10
処理

・If分岐
特定の条件下で処理を分岐させる場合に使用

真(True)と偽(false)の両方があるとき
If 条件式 Then
真(True)の場合の処理
Else
偽(False)の場合の処理
End If

また、VBAには頻繁に使われる動作を共通化した「VBA関数」と呼ばれる機能があります。VBA関数自体がごく小さなプログラムで、一定の処理を代替してくれる働きがあるわけです。

・代表的なVBA関数
Left…文字列の左端から指定した文字数分の文字列を返す
Right…文字列の右端から指定した文字数分の文字列を返す
Mid…文字列から指定した文字数分の文字列を返す
Len…指定した文字列の文字数、もしくは変数に必要なバイト数の値を返す
Date…現在のシステムの日付の値を返す
InputBox…文字列型 (String) の値を返す。ダイアログボックスにメッセージとテキストボックスを表示し、文字列の入力かボタンクリックによってテキストボックスの内容を返す。
MsgBox…整数型 (Integer) の値を返す。ダイアログボックスにメッセージを表示し、ボタンがクリックされると、クリックされたボタンごとに値を返す。

VBAの難易度を知る

次に大まかにVBAで「できること」の難易度を知ることが重要です。コードを書いている途中で難易度が高いと気が付いた場合、勉強のモチベーションが下がってしまうことも。そのため、事前にVBAで「できること」の難易度を知っておくと、「難易度が高いものは慣れてからやろう」と判断できるようになっていいでしょう。

身の回りのことでVBAを試してみる

仕事のなかには複雑な作業や決まった内容を繰り返しする作業があるでしょう。そういった作業をVBAで自動化できないか考えることも、勉強のモチベーションを高く維持するのに有効です。
また、改善するためにVBAについて調べたりプログラムで試行錯誤したりすることは、VBAを身に付ける上で何より効果的な勉強方法です。

VBAの仕事を受注してみる

VBAのコードを書くことに慣れたら、仕事を受注してみるのも1つのスキルアップの方法です。
自分の興味に合わせて勉強を進めることもよいですが、仕事を請け負うことで、今まで気が付かなかったVBAの使い方や関数を学ぶ機会にもなります。

また、自分の趣味の範囲であれば考える機会の少ないセキュリティリスクや、メンテナンス性、エラーハンドリングなどについても考えるようになるので、スキル向上が見込めます。

VBAのスキルを証明できる資格

VBAは広く一般的に使われている言語です。そのため、実際には初心者向けのマクロ作成用コードがWeb上に多数公開されています。こうした情報を活用すれば、独力かつ無料でマクロが作成できてしまうかもしれません。しかし、VBAをプログラミング言語としてしっかり身に着けたいのであれば、書籍や資格制度などを活用しながら知識の補強に努めるべきでしょう。特に資格取得は、VBAの汎用的な知識を強化できるため、おすすめです。

Excel VBAベーシック

VBA関連資格の中では最も入門的な資格で、非IT人材をターゲットにしています。マクロとVBAの概念からマクロ記録、モジュールとプロシージャ、VBA構文の基礎など基礎項目がメインとなるため、非IT人材でも理解しやすい内容です。


  • ・問題数…40問前後

    ・コンピューター上で受験

    ・試験時間…50分

    ・合格ライン…1000点満点で65~80%

    ・受験費用…税込 13200円

Excel VBAスタンダード

プログラマーやSEなど、IT人材向けの資格です。複数のプロシージャを使用した階層構造的なマクロやファイル操作、ワークシート関数など、より多くのデータを効率よく処理するための実践的テクニックを学ぶことができます。


  • ・問題数…40問前後

    ・コンピューター上で受験

    ・試験時間…50分

    ・合格ライン…1000点満点で65~80%

    ・受験費用…税込 14850円

Access VBAベーシック

Access版の非IT人材向け入門資格です。Excel版とはことなり、データベースの基礎知識が学習項目に含まれます。小規模なデータベースの作成・運用などを手掛ける場合には、有用な資格のひとつといえるでしょう。


  • ・問題数…40問前後

    ・コンピューター上で受験

    ・試験時間…50分

    ・合格ライン…1000点満点で65~80%

    ・受験費用…税込 13200円

Access VBAスタンダード

IT人材向けの資格です。データベース操作に必要な「SQL」の知識が含まれるほか、入力フォームの作成や外部データベースとの連携、ファイル操作といったやや高度な処理を学ぶことができます。

  • ・問題数…40問前後

    ・コンピューター上で受験

    ・試験時間…60分

    ・合格ライン…1000点満点で65~80%

    ・受験費用…税込 14850円

まとめ

VBAは、Microsoft社のオフィスシリーズに搭載されているプログラミング言語です。特にExcel内で業務効率化に役立つマクロを作成できることから、事務職や経理関連職など非IT人材の中でも評価されるスキルとなっています。ただし、プログラミング言語としてのVBA習得と、マクロ作成方法の習得は異なるので区別して考えるべきでしょう。VBAをプログラミング言語としてしっかり身に着けたいのであれば、書籍や資格制度などの活用もおすすめです。

ITエンジニアの転職ならレバテックキャリア

レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。

「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。

「個別相談会」に申し込む

転職支援サービスに申し込む
※転職活動を強制することはございません。

レバテックキャリアのサービスについて

プロのアドバイザーがあなたのお悩みや疑問にお答えします

- 転職個別相談会開催中 -

相談内容を選択してください

※転職活動や求人への応募を強制することはありません

人気の求人特集

内定率が高い

関連する記事

人気の記事

スキルアップ記事トップへ

VBAの求人・転職一覧