
結論から申し上げますと、「VBAとはMicrosoftが作ったプログラミング言語」のことです。
ざっくりとできることとしてVBAは、Windowsを触っているときの「猫の手でも借りたい!」という操作がとても得意です。
この記事を書いている私は、会社でVBAを独学で学び、5年ほど仕事で使っています。
今回は、そんな私が初心者のときに知っておきたかった基本的な部分に触れていこうと思います。
目次
VBAとは何者?
VBAの3つの概要とは
まずは特徴から抑えましょう。以下の3点です。
- Visual Basicがもとになっているプログラミング言語
- Microsoft Officeソフトウェア上で動作する
- 同じVBAでもMicrosoft Officeソフトウェアごとに少し異なる
「VBA」とはVisual Basic for Applicationsの略です。
特徴1つ目の「Visual Basic」については次項で解説します。
特徴2つ目は、Excel、Word、PowerPointさらにはAccessなどでもVBAを使うことができると言うことです。
特徴3つ目は、ExcelやAccessそれぞれVBAが使えますが若干の違いがあります。
少し補足をすると、VBAは「Excel VBA」 や 「Access VBA」など別物として区別されることが多いです。
その理由はExcelやWordそれぞれソフトウェアとしては別物ですので、Wordでは表を使った計算ができません。同じようにVBAの中でも表を使った仕組みはWordのVBAでプログラムとして作ることができません。逆もしかりです。
今回の記事はVBAの中でも主流な[Excel VBA]の内容を中心に説明をしていきますね。
Visual Basic(VB)との違いは
「Visual Basic」とはプログラミング言語のことです。(以下ではVBと略します)
VBAがVisual Basic for Applicationsの略である通り、VBAはVBをもとに作られた言語です。
VBはVisual Studioというソフトウェアをインストールしないと使えませんが、VBAはOffice製品があれば使うことが可能です。
マクロとの違いは?
Excelに「マクロ」と言う機能があることは、学校の授業や会社の先輩から聞いたことがあるかもしれません。VBAとできることは似ているけど大きく違うのは次の点です。
マクロ:人間にExcelが寄り添う
VBA:人間がExcelに寄り添う
実例で見てみましょう。
マクロ


このように人間にExcelが寄り添っています。
一方でVBAの場合が次です。
VBA

Range(“A1”).Interior.Color = RGB(255, 0, 0)

このように人間がExcelにやりたいことを教え込みます。
今回は簡単な操作を例としたため、マクロの方がいいじゃんと思うかもしれませんが、
これがもし10,000行のデータがある列に行いたいとき、さらに「セルの中に”黒”と書いてあったら黒く塗りつぶしたい」というときはどうでしょう。
マクロを設定するだけで時間がかかってしまいますよね?
VBAを使用すれば数行プログラムを記述して実行することで、これらの処理を自動的に行うことが可能です。
VBAをどう使い、どう学ぶのか
VBAで出来ることは?
これまでに記載してきた通り、
人間がExcelに寄り添うことで「たくさんのデータを自動的に処理できる」ということが可能です。
実例をもう少し見てみましょう。
- 従業員一覧でとある部署にいる担当者の、必要な情報を抽出する
- 住所データ全件の帳票を自動で作成する
- フォルダに入っているエクセルシートを全て印刷する
冒頭にも少し記載したとおり「猫の手でも借りたい!」という操作を自動的に処理できます。
人間が上記の内容を手で一つ一つをやっていると、つい間違いや漏れが発生してしまいます。VBAを使用すると間違いなく、手でやるより早く成果を出すことが出来ます。
※もちろんプログラムが正しければですが…
VBAに必要な知識は?
VBAはプログラミング言語ですので、少し勉強が必要です。
もしプログラミング経験がない場合「アルゴリズム」という考え方や「VBAの文法」を学ぶ必要があります。残念ながらプログラマーになるためには避けられない道です。
もし、プログラミングをして将来ソフトウェアやゲーム開発を行いたい場合、上記に加えて「統合開発環境」、「UI」やそれ以上の知識が必要になります。VBAはOffice製品がインストールされているパソコンであればプログラミグが可能ですので、プログラミング初心者がプログラム開発を勉強するにはちょうど良い言語かもしれません。
VBAでプログラム経験はつめる?
私自身、VBAを使うことが多いのですが、困るのは便利な文法が使えないときです。。
専門用語では「continue文が使えない…」とか「try-catchが使えない…」ということがありますが、代わりの書き方で記述することはできますし、処理をどうしても行わないといけない場面に出くわしたことがありません。
どうしても必要というときは、おそらくやりたいことはVBAの領域を超えているでしょうから、別の方法で開発した方が良いでしょう。
また、プログラミングを勉強し始めた方がそのように思えるようになったのであれば、プログラミング初心者卒業といってもいいかもしれません。
まとめ
VBAについて内容をまとめます。
VBAはVBをもとにMicrosoft Office製品用に作られたプログラミング言語です。ExcelやWordなど製品ごとにVBAが用意されておりますが、基本的なプログラムの文法はVBもExcel VBAもAccess VBAも共通です。
プログラミング初心者の方は、最新の環境でいきなり勉強せずとも、学校や会社のパソコンであれば大体入っているMicrosoft Office製品のVBAでまずはプログラミングの勉強をしてみてはいかがでしょうか。