- VBAが出来るといいって言われたけど、そもそもVBAって何?
- マクロなら聞いたことあるけど、VBAとは何が違うの?
VBAとは、Microsoft Office製品で扱えるプログラミング言語です。
Microsoftが開発した「Visual Basic(通称:VB)」をOfficeアプリで使用できるようにしたものがVBAです。
このVBAを活用することで自動化や複雑な処理を簡単にすることができ、その自動化した処理のことをマクロと言います。
この記事では、以下について解説しています。
- VBAとは
- マクロとは
- VBAとの違い
- VBAで出来ること4選
- VBAを習得するメリット2選
VBAをこれから学習していく方やExcelやWordなどのOfficeアプリを仕事でよく使う方は、特におすすめの内容となっているのでぜひ参考にしてみてください。
VBAとは?
VBAとは、Microsoft Officeアプリで扱えるプログラミング言語のことです。
ExcelやWordなどで利用できる拡張機能を作れる言語とも言えます。
正式名称は「Visual Basic for Application(ビジュアル ベーシック フォー アプリケーション)」と言います。
VBAを使うことで複雑な処理や自動化を行えます。
- Excelのシートを100枚作成する
- あるデータを使って別のアプリ用のデータを作成する
- データから書類を作成する
など、手作業ではめんどくさい作業や手作業で出来なくないけど、作業手順が膨大な作業などを完全に自動化することができます。
マクロとは?VBAとの違いは?
「マクロ=VBA」と思っている方もいると思いますが、実は違います。
VBAとは何かを理解したうえで、次は、マクロとは何かを解説していきます。
マクロとは?
マクロとは、様々な操作を自動化した処理のことを言います。
Excelで例えると…
- シートを作成
- そのシートのセルB2にカーソルを移動
- 「こんにちは」と入力
- 「終了しました!」とメッセージを表示する
このような一連の作業を1つの処理にまとめ、自動化することをマクロと言います。
「マクロ」という言葉自体はExcelやOffice特有の用語ではなく、表計算ソフトなどでよく使われる用語です。
VBAとの違いは?
上記で述べたとおり、マクロとは複数処理を1つにまとめ、自動化したものを指します。
Officeの場合、マクロを作るために必要な言語がVBAで、VBAを使って作った自動化処理がマクロになります。
マクロという概念の中に、それを作成できる言語などが多数存在し、その中の1つがVBAということです。
VBAはどこに書くの?
VBAは、VBEと言われるエディター(コードを書くノートみたいなもの)で記述します。
VBAの統合開発環境をVBE(Visual Basic Editor)と言います。
VBEについては、以下の記事で解説しています。
【VBEとは?】VBAと何が違うの?開き方は?初心者にも分かりやすく解説!
VBAで出来ること4選
VBAでは様々な処理ができますが、大まかな役割を4つ紹介したいと思います。
細かく分けるとキリがないですが、大体はこの4つに当てはまると思います。
- データ処理・管理
- 資料作成
- ファイル操作
- 自動化
順番に解説していきます。
データ処理・管理
ExcelやAccess等のデータを処理し必要な情報を抽出したり、書類としてアウトプットすることが可能です。
また、データを作成・入力する部分をVBAで仕組化することもできます。
ExcelやAccessであれば関数やクエリを使えば同じことは実現可能ですが、VBAを活用することでより高速で複雑な処理を自動化することができます。
クエリや関数を使用した場合、手作業がどうしても必要になりますが、VBAでは完全に自動化することも可能になります。
資料作成
上記の「データ処理・管理」とも少し被りますが、資料作成にもVBAは効果的です。
データから処理を作成することが可能なので、以下のようなよく使う資料作成をツール化しておくことが可能です。
- 人事データから新入生のリストを作成する
- 商品データから販売中止になっているリストを作成する
また、操作を自動化することも可能なので「宛名だけ変えて合計100枚を印刷する」という、かなり面倒な作業も簡単にすることができます。
ファイル操作
VBAではファイル操作も可能です。
例えば…
- フォルダ内のCSVファイルを1つのCSVにまとめる
- 作成したアウトプットのExcelを特定のフォルダに保存する
といった操作が可能です。
また、Excelに限らずファイルを操作することも可能なので、
- フォルダの中にある「不要」と名のついたファイルのみを削除する
- 特定のフォルダから「移動」と名のついたファイルのみを別のフォルダに移動させる
といった処理も作成することができます。
自動化
VBAの本質は自動化です。
上記で述べたExcelやAccessのデータ加工はもちろんのこと、WindowsAPIを使えば「別のアプリの特定のメッセージが現れたら、Enterキーを押して自動で応答する」といった自動応答ツールも作れたりします。
VBAを習得するメリット2選
VBAを習得するとメリットがあります。
今回は特に大きいメリット2つについて解説します。
仕事の効率化
一番のメリットがこの効率化です。
私自身も過去に職場で、別の担当者が手作業で行っていた定常業務のツールをVBAで開発したことがあります。
その業務は手作業でいくつものExcelを経由するため、4時間くらいかかる作業でした。
ただ、ツールを開発すると、結果、15分くらいまで時間が短縮され、処理もボタンクリック後に必要なファイルを選択するだけの単純な作業になりました。
また、関数と違いテクニックを知ることで大幅な高速化を狙うこともできます。
例えば、3万行(レコード)×20列のような膨大なデータも数分で加工することが可能になります。
いきなりすべての処理を行うツールを開発するのは難しいので、初めのうちは、以下のような小さいことから始めてみましょう。
- コピペを自動化してみる
- 印刷を自動化してみる
- 入力したデータの計算を自動化してみる
そして、ゆくゆくは作った処理たちを1つにまとめてツールにしていくといったステップを踏むと良いです。
年収アップ
VBAが出来るようになると、シンプルに人材としての価値が上がります。
また、エンジニアとしてのキャリアを歩みたい場合、VBAからプログラミングについて学習していき、Javaなどの言語に乗り換えたり、VBAのままキャリアアップを狙うことも可能です。
今はある会社のシステム担当だとしても、きちんと勉強・実際の現場での活用をすればエンジニアとしての転職を成功させることは可能です。
まとめ|マクロを作るための言語がVBA
今回はVBAについて、VBAとマクロの違いについて解説しました。
VBAは比較的とっつきやすい言語だと考えています。
もちろん、Javaの開発がしたいのにVBAから入る必要はないですが、
日々のExcel作業を何とかしたい
いつもの業務を効率化して楽したい
などの作業にVBAは最適解だと思っています。
当ブログを活用しながら、人材としての価値を高めていきましょう!