IT化や業務効率化の中でツールを使われる機会が増えてきて
「Excel VBA」や「マクロ」「RPA」に目を触れる機会が多くなってきました。
今回は、Excel VBAにフォーカスして記事を書いていきます。
はじめに
VBAと検索すると「VBAマクロ」や「VBAとマクロの違い」という検索結果が出てくることもあります。
私自身、調べれば調べるほど混乱していきました。
そのため曖昧なまま独学でコーディングをし、不完全燃焼な状態になってました。
そんな中で独学のままでは。。。。と思い、VBAエキスパート(Excel VBA ベーシックとスタンダード)を取得する機会があり、
勉強を通じて曖昧な点をクリアできました。
その経験と備忘を兼ねて、書いていきたいと思います。
VBAとマクロの違い
VBAとは
Microsoft社が提供しているプログラム言語のこと。
そのためMicrosoft提供の Word、Outlook、Excel、Accessで使える。
Excel VBAの利用人口が多いため、VBAというと Excel VBAを指すことがほとんどである。
マクロとは
マクロはコンピューターの操作を自動化する機能のそのもののことを言います。いわゆる「便利な機能」というものです。
そのため、Excelには「マクロの記録」という機能があります。
【補足】
マクロ言語(マクロげんご)もあります。
マクロを記述するコンピュータ言語である(キー操作をそのまま記録・再現する、いわゆるキーマクロ等のように、言語を持たないマクロ機能もある)。プログラミング言語的な機能を持つものもあれば、持たないものもある。ソフトウェアの制御や自動化にとどまらず、普通のプログラミング言語のような汎用的な処理をすることが可能なものも存在する。また他に、テキスト変換などを記述する変換言語もマクロと呼ばれることが多い。
参考:テキストエディタ内にもマクロがある。
Excel VBAでできること
・文字列操作、変換:ドキュメント作成やデータ整理を効率化することができます
・Web API連携:Webサイト・アプリ上の処理をローカルのVBAプログラム内で実行できます
・手動作業の自動化:マクロによって入力や印刷などの作業を自動化することができます
・
Excel VBAでできないこと(難しいこと)
・ワークシートの容量以上の大容量データ処理
・VBAをサポートするアプリケーション群の範囲外との連携
・文字イメージ認識など
・同一画面内において他アプリケーションの相対位置を認識できない
→異なるアプリケーション同士の操作はRPAが得意とする機能である。
Excel VBA以外のVBAでできること
VBAはMicrosoftOfficeの各アプリケーションでも使用できます。
そのため、本項では事例を挙げます
Outlook
・予定の自動登録
・開いているメールの添付ファイルを自動保存
Access
・簡易なデータベースの開発
・在庫管理システム、発注予約システム、検索機能を伴うシステムなどの構築
Powerpoint
・テキストボックスのサイズ設定
・テキストボックスを複数スライドにまとめて作成など
まとめ
VBAは、Micorsoft社のオフィスシリーズに搭載されているプログラミング言語です。
Excel内での業務効率化・小規模なツール開発などのほかに、Office製品全般で活用できます。
汎用性の高いスキルでありますが、アルファベット表記での開発になっていくため
知見のない方は抵抗感もってしまう、そして属人化やブラックボックス化の温床にもなりやすいです。
使用する際は業務手順書やフロー図に書き起こす・開発画面内にメモを分かりやすく残すのも運用していくためのポイントとなります。