Excel VBAマクロとは?

マクロとは?

Excelに対して、VBAにより記述された命令を実行を行っているものです。
さて、VBAとは何か。
VBAは、Visual Basic for Applicationという言語の略称です。
Visual Basicとは御存知の通り、Windowsのためのプログラミング言語です。
VBAはその派生系で、アプリケーション(この場合は、Excel)にも、使えるように応用したものです。

Excelの強力な便利機能というイメージで捉えていただいて構いません。
その、便利機能を作成するのがユーザーであることが特徴です。


VBAに触れてみる

※環境はExcel2003です。
また個人的な趣味で、インデントは2で記述しています。
VBAの記述をいきなりマスターするのは難しい(というか私の全くの初心者ですが)ので、
まずは、Excelの機能によって、VBAを記述してもらいましょう!!

ツール(T) => マクロ(M) => 新しいマクロの記録(R)

こちらを実行していただき、適当な名前をつけて、マクロを登録します。
Excel上で、適当な挙動をしてみます。
すると、その挙動をVBAで表したものがVBE(Visual Basic Editor)に記述されていきます。
VBEは、Alt + F11で見られます。

重要なことは、自分が行った挙動がVBEにVBAで記述されることです。


プロシージャとは?

VBAを触る当たって、避けて通れないのが"よくわからないカタカナ語"です。
VBAも立派なプログラミング言語なので、ちゃんとした概念を持ち、それに意味を持たせる言葉を持っています。
ですので、"よくわからないカタカナ語"が、出てきた時は、チャンスだと思ってください。
VBAをより深く理解するきっかけだからです。

それでは、プロシージャとは?という本題に戻ります。
先程、新しいマクロの記録(R)で登録していただいたマクロのVBA記述を見てください。

Sub Macro1
  ' あなたが行った挙動をVBAに書き起こした記述
End Sub


Sub 〜 End Subで囲われているのがわかるでしょうか?
このSub 〜 End Subで囲われた部分(SubやEnd Subも含む)ものをプロシージャと呼びます。
この場合のプロシージャ名は「Macro1」です。

マクロは、一つまたは、複数のプロシージャから構成されることとなります。

ちなみに、プロシージャにはSubプロシージャとFunctionプロシージャがあります。


参照:http://members.jcom.home.ne.jp/rex-uchida/vba060.htm

Functionプロシージャは「関数」とも呼ばれ、プロシージャの実行結果を「値」として返します。
順々に処理を実行して終了するのがSubプロシージャで、なんか計算とかさせて何かしら答えを得るために実行するのがFunctionプロシージャです。

Ruby on Rails で言うところのSubがControllerでFunctionがModelといったところでしょうか?


ワークシート関数とVBA関数

  • ワークシート関数

ワークシート内で使用している関数

以前、私がまとめたものの総称ですね。
参照:エクセルを使うなら必須の関数 - mic_footprints

セルの中に=から書き始めるものですね。

マクロ生活を送る上で、メインに使用する関数
最もカンタンで有効なVBA関数を紹介します。

MsgBox関数

自分で書いて実行してみるとわかりますが、MsgBox関数は、メッセージボックスをExcel内に表示します。

Sub Macro2
  MsgBox "Excel VBAマクロとは?"
End Sub



まとめ

実際に記述していただければ、意外とカンタンだったのではないでしょうか?

実は、このようなMsgBoxのみを使用したマクロも立派なプロブラムです。
というわけで、これで、VBAプログラマとしての第一歩を踏み出したことになりますね☆


最後まで、お読みいただきありがとうございました。
ツッコミ等ございましたら、お気軽にどうぞよろしくお願い致します。

やさしくわかるExcel関数・マクロ 改訂版 (Excel徹底活用シリーズ)

やさしくわかるExcel関数・マクロ 改訂版 (Excel徹底活用シリーズ)