プログラミングのVBAとは?メリットや使い方を解説!おすすめの書籍5選も紹介
プログラミング学習を始めるときには、プログラミング言語を選ぶ必要があります。
プログラミング言語には様々な種類があり、それぞれの特徴やできることを踏まえて選択することが必要です。
そんななかで、
「VBAってどんなプログラミング言語?」
「VBAのメリットやデメリットを知りたい!」
という方もいるでしょう。
今回は、
- VBAとは?マクロとの違い
- VBAで自動化できること
- VBAのメリットとデメリット
- VBAを学ぶのにおすすめの書籍
などについてご紹介します。
「VBAについて詳しく知りたい!」という方は、ぜひ最後まで読み進めてくださいね。
プログラミング言語「VBA」とは
VBAとは、「Visual Basic for Applications」の頭文字をとったものです。
Microsoft社が提供しているWord、Excel、PowerPoint、Access、OutlookなどのOfficeソフトで使用するためのプログラミング言語です。
なかでもExcelで使用するものを「ExcelVBA」と呼びます。
環境設定がほとんど不要で、すぐに使い始められるため、Officeソフトを活用するビジネスマンに人気のある言語です。
知識や使い方さえ学べば、初心者からでも扱いやすく、仕事に活かせる高い実用性があります。
「今の働き方に不満はあるけど、日々の業務が忙しくてゆっくり考える時間がない…」
そんな悩みを持つ方に向けて【DMM WEBCAMP】では無料のキャリア相談を実施しています。
ビデオ通話で相談をすることができるため、仕事で忙しい方でもスキマ時間に気軽にカウンセリングを受けることも可能です!
プロのキャリアカウンセラーと一緒に、今後のキャリアについて考えてみませんか?
VBAとマクロの違い
VBAとマクロは混同されがちです。
両者の違いは、次のように説明できます。
- VBA:マクロを作成するためのプログラミング言語
- マクロ:VBAによって作成したプログラム(機能)
VBAを使ってマクロを組み、実行するというイメージです。
それぞれの役割を区別して理解しておきましょう。
VBAで自動化できること3つ
VBAとマクロの違いについてご説明しました。
次は、VBAを使ってできることに注目してみましょう。
VBAでマクロを組むと、あらゆる動作を自動化できます。
自動化できる内容は次の3つです。
- Excelの単純作業
- メールの送受信
- Webからのデータダウンロード
それぞれ詳しく見ていきましょう。
1.Excelの単純作業
VBAで自動化できることの1つ目は、Excelの単純作業です。
Excelを使っていると、単純だけど量が多くて面倒な作業ってありますよね。
たとえば、
- データの入力や置換
- データの四則演算
- 外部ファイルの一覧作成
などに時間をとられていないでしょうか。
Excelでの単純な作業は、VBAを使うことで自動化が可能です。
作業を自動化すれば、今まで時間をかけていた作業がすぐに終わるので、他の仕事に注力できるようになりますよ。
2.メールの送受信
VBAで自動化できることの1つ目は、メールの送受信です。
宛先のメールアドレスや宛名を書き換えて、自動でメールを送信することができます。
送信しなければならないメールが数十通、数百通ある場合は、自動化できると便利ですね。
3.Webからのデータダウンロード
VBAで自動化できることの1つ目は、Webからのデータダウンロードです。
実は、Internet ExplorerというWebブラウザもMicrosoft社が提供しているアプリケーションであるため、VBAで操作することができます。
VBAを使うことで、Internet Explorerを通してデータを自動でダウンロード可能ですよ。
このほかにも、VBAでできることは多くあります。
具体的な活用事例を知りたい方は、「エクセルマクロVBAで「できること」って何?22の事例で解説」を参考にしてみてください。
「今の働き方に不満はあるけど、日々の業務が忙しくてゆっくり考える時間がない…」
そんな悩みを持つ方に向けて【DMM WEBCAMP】では無料のキャリア相談を実施しています。
ビデオ通話で相談をすることができるため、仕事で忙しい方でもスキマ時間に気軽にカウンセリングを受けることも可能です!
プロのキャリアカウンセラーと一緒に、今後のキャリアについて考えてみませんか?
VBAのメリット3つ
VBAで自動化できることをお伝えしました。
VBAは作業を効率化させるために有効な手段と言えますね。
ここからは、VBAのメリットについてご紹介します。
メリットを知ることで、VBAを適切に使いこなせるようになるでしょう。
VBAのメリットは次の3つです。
- 比較的難易度が低い
- コストが安い
- Web上に情報が豊富
順番に見ていきます。
1.比較的難易度が低い
VBAは学習の難易度が比較的低く、プログラミング初心者でも学びやすいです。
プログラミング言語には難易度の高いものから低いものまであります。
特に初心者の場合は、難易度が低いものから学ぶことで挫折せずに習得できますよ。
VBAは「プログラミングに興味がある」「普段のパソコン作業を効率化したい」と考えている人にはぴったりです。
また、プログラミング言語は基本的な文法や書き方が共通しているため、1つの言語を習得すれば他の言語も理解しやすくなります。
VBAを習得することで、他のプログラミング言語を学びやすくなるという嬉しい効果が得られますよ。
2.コストが安い
VBAは悪臭や導入にかかるコストが安いです。
Microsoft Officeソフト上で扱えるため、面倒な環境構築などはほとんど不要で、すぐに使い始められます。
他のアプリケーションをダウンロードするといった必要もなく、仕事のパソコンでも始めやすいでしょう。
VBAの導入にコストはほとんどかかりません。
普段使用しているExcelやPowerPointなどで、いつでも使えます。
3.Web上に情報が豊富
VBAは利用者が多く、Web上に情報が豊富に掲載されています。
もし使い方でわからないことがあっても、Webで検索すればすぐに解決策がわかるでしょう。
困ったことがあればWeb上の情報を参照すれば、問題になることはありません。
VBAのデメリット2つ
VBAのメリットをお伝えしました。
学びやすく情報も豊富なので、すぐに使い始められますね。
一方で、VBAにはデメリットもあります。
デメリットを知ることで、必要に応じて注意して使えるでしょう。
VBAのデメリットは次の2つです。
- アップデートが長年されていない
- 案件が少ない・単価が安め
それぞれ見ていきます。
1.アップデートが長年されていない
VBAはアップデートが長年されていないというデメリットがあります。
機能の制限があり、また不具合の修正がされていないことがあるので、注意が必要です。
2.案件が少ない・単価が安め
VBAだけを使った案件は少なく、単価も安めであるデメリットがあります。
VBAは学習難易度が低く、誰でもすぐに使い始められるので、参入障壁は低いです。
また、プログラミング言語としての汎用性は低く、Officeソフトのプログラムに限られることが、案件数の少なさに直結しています。
VBAのスキルだけでエンジニアとして活動するのは難しいでしょう。
VBAを書く手順6ステップ
VBAのメリットとデメリットをお伝えしました。
良い面と悪い面の両方を知ることで、適したシーンで使いこなせます。
次は実際にVBAを書く手順を見ていきましょう。
手順に沿って実践すれば、VBAを使えるようになりますよ。
VBAを書く手順は、次の6つのステップに分けられます。
- 開発タブを表示する
- VBEを開く
- 標準モジュールを追加する
- Subプロシージャを作る
- 処理をVBAで書く
- 作ったマクロを実行する
ステップごとに解説しましょう。
1.開発タブを表示する
まずは「開発」タブを表示させます。
手順は、次の通りです。
- 「ファイル」をクリックして「メニュー」を選択する
- 「オプション」をクリックする
- 「リボンのユーザー設定」を選択する
- 「メインタブ」内の「開発」にチェックを入れる
オプションを閉じて、Excelの画面に「開発」タブが表示されていることを確認しましょう。
2.VBEを開く
次にVBEを開きます。
VBEとは、「Visual Basic Editor」の頭文字をとったもので、VBAを記述するエディターのことです。
VBEを開く方法は次の手順です。
- 「ツール」をクリックする
- 「マクロ」を選択する
- 「Visual Basic Editor」をクリックする
これでVBEが開きます。
もう1つの方法として、ショートカットキーの「Alt」+「F11」で起動させることも可能です。
3.標準モジュールを追加する
VBEを起動したら、標準モジュールを追加します。
標準モジュールを追加する手順は、次の通りです。
- 「挿入」をクリック
- 「標準モジュール」をクリック
これで、プロジェクトエクスプローラーに「標準モジュール」のフォルダが追加されて、「Mojule」というアイコンが表示されます。
右のコードウィンドウに文字を入力できるようになりました。
4.Subプロシージャを作る
標準モジュールを追加してコードウィンドウを表示させたら、Subプロシージャを作ります。
プロシージャは、VBAの処理をまとめた機能です。
モジュール内に「Sub プロシージャ名」を入力してEnterキーを押すことで、Subプロシージャを作成できます。
プロシージャを作るための記述は次の通りです。
なかに処理を記述することで、VBAの処理を作成できます。
また、引数を使うことで、値を渡して処理を実行することも可能ですよ。
5.処理をVBAで書く
実際に処理をVBAで書いていきましょう。
今回は、セルに値を入力する処理の例をご紹介します。
「Range(セル位置).Value = 値」でセルに値を書き込むことができますよ。
上記の例では、A1のセルに「あいうえお」という値が入力されるマクロになります。
6.作ったマクロを実行する
マクロを作ったら実行します。
マクロを実行する手順は次の通りです。
- 記述したプロシージャ内にカーソルを置く
- 実行ボタン「▶」をクリックする
これで、A1のセルに「あいうえお」が入力されて入れば、正常に動作しています。
VBAを使ったマクロの作成と実行は以上です。
VBAを使いこなすために覚えるべき6つのこと
VBAを書く手順をお伝えしました。
ぜひ実際に手順に沿ってVBAを書いてみてくださいね。
VBAを使いこなすには、覚えておくべきいくつかのポイントがあります。
ここでは、VBAを使いこなすために覚えるべき6つのことをご紹介しましょう。
- 変数の使い方
- セルに値を書き込む
- シートにボタンを追加してVBAの処理を動かす
- 条件によって処理を分ける
- ループ処理する
- Excelの操作を自動でマクロ化する
それでは順番に見ていきます。
1.変数の使い方
1つ目は「変数の使い方」です。
プログラミングにおける変数とは、「指定した名前でデータを記録、読み取りをする仕組み」を意味します。
VBAでは変数を活用することで、機能を扱いやすくなります。
変数は次の3つのステップで使用することを覚えておきましょう。
- 変数を宣言する
- 変数にデータを入れる
- 変数のデータを利用する
Excelでは変数を宣言しなくとも使用できますが、変数は基本的に上記のステップで使用するものなので、使い方を理解しておくことが大切です。
変数にデータを入れるには、「=」という記号を使います。
プログラミングにおける「=」は、右辺を左辺に代入するという意味の記号です。
変数名=値と記述することで、変数に値を入れられます。
2.セルに値を書き込む
2つ目は、「セルに値を書き込む」ことです。
セルに値を書き込むときには、「Range(セル位置).Value = 値」と記述します。
これで指定したセルに、指定した値を入力できますよ。
3.シートにボタンを追加してVBAの処理を動かす
3つ目は、「シートにボタンを追加してVBAの処理を動かす」ことです。
手順は次の通りになります。
- 「挿入」をクリックして「図形」をクリックし、好きな図形を選択する
- シート状に図形を設置する
- 図形にカーソルを合わせて右クリックし、「テキストの編集」をクリックする
- ボタンのテキストを入力し、「ホーム」でテキストの装飾をする
- 作成したボタンにカースルを合わせて右クリックし、「マクロの登録」をクリックする
- 「マクロの登録」ダイアログボックスで、登録したいマクロ名を選択し、「OK」をクリックする
これでマクロが登録されたボタンが設置できました。
ボタンをクリックすると、設定していたマクロが動作します。
4.条件によって処理を分ける
4つ目は、「条件によって処理を分ける」ことです。
条件によって異なる処理をしたい場合もあるでしょう。
VBAで条件によって処理を分けるには、「If~Then~Else」を使用します。
記述は次の通りです。
「if」のあとに条件式「もし〜だったら」を記述します。
そして「Then」のあとには条件式を満たす場合の処理を、「Else」のあとには条件式を満たさない場合の処理を記述して、「End if」で終えます。
5.ループ処理する
5つ目は、「ループ処理する」ことです。
ループ処理とは、繰り返しの処理のことです。
VBAでは3つのループ処理の構文があります。
- For〜Next:繰り返す回数が決まっている場合、指定した回数の処理を実行する
- For Each In〜Next:オブジェクトを繰り返し処理する
- Do〜Loop:条件を満たしている間、あるいは条件が満たされるまで繰り返し処理する
それぞれ目的の処理に適した構文を使用しましょう。
6.Excelの操作を自動でマクロ化する
6つ目は、「Excelの操作を自動でマクロ化する」です。
VBEでコードを記述しなければマクロは作成できないイメージを持つ方もいるでしょう。
しかし、実は自分が行ったExcel操作をまるごと自動でマクロ化することも可能なのです。
イメージとしては、「マクロの記録を開始する」「マクロ化したいExcel操作をする」「マクロの記録を終了する」という3ステップになります。
手順は次の通りです。
- 「開発」をクリックする
- 「マクロの記録」をクリックする
- 「マクロ名」を好きな名前に変更する
- 「OK」をクリックする
- マクロ化したいExcel操作を行う
- 「開発」をクリックする
- 「記録終了」をクリックする
これで、Excel操作を自動でマクロ化できますよ。
自動でマクロ化できる方法を知っておくことで、マクロを気軽に活用しやすくなるでしょう。
VBAを学べる書籍おすすめ5選
VBAを使いこなすために覚えることをご紹介しました。
6つのポイントを覚え、ぜひ役立ててくださいね。
「VBAについてもっと詳しく知りたい!」という方には、書籍で学ぶことをおすすめします。
VBAについて解説した書籍は数多く出版されており、体系的な理解に役立ちますよ。
ここでは、VBAを学べる書籍のおすすめ5選をご紹介します。
- スラスラ読める Excel VBA ふりがなプログラミング
- 入門者のExcel VBA―初めての人にベストな学び方
- Excel VBAの教科書
- Excel VBA 脱初心者のための集中講座
- Excel VBAの神様 ボクの人生を変えてくれた人
さっそく見ていきましょう。
1.スラスラ読める Excel VBA ふりがなプログラミング
まずご紹介するのは、『スラスラ読める Excel VBA ふりがなプログラミング』です。
本書は、マクロの読み方からどう動くのかまでを丁寧に解説しており、ExcelVBAの基礎文法を身につけられます。
マクロにふりがながふってあり、さらに漢文のように「読み下し文」があるので、マクロを読んで理解できますよ。
「これまでマクロはコピペしていた」という方でも、基本から学び直せます。
とてもわかりやすく、やさしい内容で、「ExcelVBAとマクロの基本を身につけたい人」におすすめです。
2.入門者のExcel VBA―初めての人にベストな学び方
次にご紹介するのは、『入門者のExcel VBA―初めての人にベストな学び方』です。
本書は、VBAプログラムを書きながら基本文法を学べる内容となっています。
数行書いて動作確認をするというサイクルを繰り返すので、未経験者でもプログラムを書けるようになりますよ。
手順が丁寧に解説され、着実にVBAのスキルが身につきます。
「自分が書いたコードに従ってプログラムが動く」ことが実感でき、プログラミングの楽しさを感じられるでしょう。
これからVBAを学ぶという初心者にはぴったりの1冊です。
3.Excel VBAの教科書
基本から実践までを学ぶなら、『Excel VBAの教科書』です。
本書では、ExcelVBAの基本文法から、業務アプリの作成までを学べます。
実践的な内容としては、
- データの入力・転記
- 複数のシート上にあるデータのまとめ方
- WebやAccessからデータを取り込む方法
- 集計・分析結果の出力
- 入力フォームの作り方
など、普段の業務にすぐに使えるテクニックが豊富です。
この1冊で、ExcelVBAをじっくりと学べますよ。
初心者から実践的なスキルを求める人まで、幅広い層におすすめできる書籍です。
4.Excel VBA 脱初心者のための集中講座
人気YouTuberのExcel実践書として知られるのが、『Excel VBA 脱初心者のための集中講座』です。
本書では、脱初心者を目指す方のために充実した内容を解説。
さらに、脱初心者のために次の内容を伝えています。
- コードを書くための正しい作法
- 効率的なコーディング方法や「部品化と再利用」の方法
- WordやOutlook、CSVやWeb上のデータなど、Excel以外のモノとの連携方法
- マクロを自分以外のユーザーが利用しやすくするための方法や、マクロの高速化
また、著者がYouTuberであることから、本書とYouTube動画を組み合わせた学習も推奨されています。
「脱初心者したい」「書籍だけでなく動画でも学びたい」という方におすすめです。
5.Excel VBAの神様 ボクの人生を変えてくれた人
最後にご紹介するのは、『Excel VBAの神様 ボクの人生を変えてくれた人』です。
本書は、入社3年目のさえないサラリーマンがExcelVBAを身につけるというストーリーで学べます。
コミカルな内容で楽しみながら読みやすく、基本的な知識をすいすい身につけられますよ。
読み物として面白いので、やる気になれる超入門書と言えるでしょう。
「入門書にためらってしまう」「楽しく学びたい」という方におすすめです。
まとめ:VBAは仕事を効率化したい人におすすめ
今回は、プログラミング言語のVBAについてご紹介しました。
VBAは、普段仕事でMicrosoft Officeを使用する方におすすめのプログラミング言語です。
VBAの知識を身につけることで、毎日の仕事を効率化でき、生産性を高められます。
作業を自動化できたら、煩雑で面倒な作業から解放されるでしょう。
ぜひこの記事を参考に、VBAを使ってみてくださいね。