Excel VBAとは

エンジニア

読了の目安時間: 333

本記事では、Excel VBAの概要について触れたいと思います。

Excel VBAとは

VBAとはアプリケーション用にカスタマイズしたVB

VBAとは『Visual Basic for Applications』を省略したものです。もともとVB(Visual Basic)という言語があり、それをExcelなどのアプリケーションのマクロ言語用にカスタマイズしたものになっています。

VBAはVBEで開発する

エクセルには「VBE(Visual Basic Editor)」というVBA用の開発環境が標準機能として備わっています。とくに新しいツールをインストールすることなく、お手軽に作成可能です。

VBAでできること

VBAでできることは、ずばり「エクセルの全操作をプログラムで実施できること」です。

たとえばA5セルのコピーをして、B7セルに貼り付けている操作は、VBAでは一例として下記のように示せます。

Sub CopyCell()
  Cells(5,1).Copy Destination:=Cells(2,7)
End Sub

他にも様々な記述のやりかたがありますが、ここで言いたいのは、ユーザーが普段、GUIライクにエクセル操作していることを、VBAではCUIのようにコマンドで操作できるということです。

じつは、エクセルのすべての操作には、実行するための記述文があって、VBAは、そのすべての操作をユーザーが記述して実行することができる便利なツールとなっています。さらにVBAはプログラミング言語ということもありifやforの制御文が使えますので、人間ではとても時間のかかってしまう作業を一気に自動化できるメリットがあります。

こんな便利なツールを作ってくれて、Microsoftさん、本当にありがとうという感じです。(ただし、IEは許さない。)

VBAによって短縮される業務とは

エンジニアの世界では、VBAはデータ解析にとても重宝します。たとえば、ある試験機から取得した数百個のcsvデータを解析するケースでは、下記のような作業が必要になります。

・数百個のcsvデータを取得
・データの中身は2進数だったり、16進数だったりする
・すべてを10進数に置換する
・データが細かすぎる場合は間引く
・間引きでは最大値と最小値を確保してサンプリングする
・すべての結果をグラフで一覧表示して比較検討できるように仕上げる

上記の作業をすべてのcsvに実施しなくてはいけないのですが、これらを手作業でやっていたら日が暮れるどころか、年が暮れてしまいます。こういう時にVBAが重宝するわけです。

まあルーチン化した試験なら、C言語などで実行ファイルを作成し、専用の変換ツールを準備したほうが良いのですが、初めての試験の場合などは、自分でツールを試作的に準備する必要があります。そんな時、VBAならお手軽にできるというわけです。

正確にはVBA=マクロではない

マクロは、膨大な作業をまとめて自動化する機能のようなことを指す言葉です。対して、VBAは、プログラムを記述して、アプリケーションを操作するものです。ただまあ、結果として、VBAを組む=自動化した作業をさせる=マクロを実現させる、という感じでVBA=マクロのようなイメージで認識されることが多いです。

マクロを意識したい業務とは

エクセルを使った業務をしている時、「この作業、いつも同じことの繰り返しで、単調作業だな・・・」と思った作業は、基本的にすべてVBAおよびマクロで実施できることです。ちょっとの量なら手作業でパパッと終わらせてしまうほうが早いですが、もしも繰り返しの回数が多い場合は、マクロを作らないと工数を損してしまうことになります。

Excel VBAを知り、マクロを知っていると、色々な業務場面で役立ちます。業種にもよりますが、大きい会社などで大量のデータを扱う人は、マクロなしに仕事を効率的に終わらすことは困難になってしまいますので、ぜひ習得しておいたほうが良いかと思います。

まとめ

Excel VBAは、ふだん手作業でやっていることをプログラムで指示できる、というものです。プログラム勉強の初歩にも良いですし、将来の仕事のためにも役立つモノなので、覚えておいて損のない勉強だと思います!

キヨタツ
キヨタツの一言

人生、VBAで記述したい。

今読んだ記事をシェアする

vba-thumb

Excel VBAとは

  • このエントリーをはてなブックマークに追加
  • Pocket

このブログサイトが参考になった人は、いいねボタン! 更新情報も受け取れます!

arrow
デル株式会社
  • Pocket
  • このエントリーをはてなブックマークに追加

キヨタツ

キヨタツ

WEBを中心に、色々な制作をする個人事業主です。過去、エンジニア&webディレクターで会社勤めをしていました。エンジニアで勤めていた頃は、MATLAB/simulink/VBA/C/C++など扱っていました。生産管理、MECE、オブジェクト指向など、エンジニアの知識はweb業界に入っても、かなり役立ちます。性格は、自虐好きです。