マクロとは、エクセルの作業を自動化することをいいます。
具体的には[新しいマクロの記録]をクリックしてから、[記録終了]をクリックするまでの作業を記録して、名前をつけておいて、あとでそれを呼び出します。
ある程度エクセルに精通した方なら、すでに使ったことがあるかも知れません。エクセルの通常の機能を網羅した書籍にはよく紹介されていますし、資格試験にも上級レベルなら出てくることがあります。
とりあえず、やってみましょう。
これでマクロが登録されました。
では呼び出して使用してみましょう。シートのセルをどこでも良いので選択してください。
そして
選択したセルに”マクロ”と入力されたはずです。
これがマクロです。
マクロとは、前述の通り、作業を自動化する機能のことです。これはエクセルに限らず、ある種のソフトウェアには組込まれている機能です。エクセル固有ではありません。
VBAとは、エクセルのマクロで使用されるプログラミング言語のことです。これはエクセル(というかマイクロソフトオフィス)で固有のものです。いきなりプログラミング言語などというむつかしい言葉が出てきましたが、要するに、エクセルは記録した手順をVBAというプログラミング言語に翻訳して記録しているのです。
たとえば、セルA1を選択するVBAは、
「Range("A1").Select」
です。英語っぽいのでなんとなくわかるでしょう。
セルA1の値をクリアするにはこうです。
「Range("A1").Clear」。
やはり、英語っぽいです。
基本的にはこういった文を連ねて、ひとつのプログラムとしていきます。
決定的に違うのは、マクロでは条件分岐ができない、ということです。またまたむつかしい言葉がでてきましたが、要するに、セルA1の値が10以上ならセルB1に”多い”と表示し、10未満なら”少ない”と表示するような機能です。
IF関数とか条件付き書式と似たものですが、それらのもっと複雑なことができる機能です。
もうひとつあげるとすると、VBAではプログラミングらしく、自分で独自のウィンドウを作成することができます。テキストボックスを作っておいて、ボタンを押すと、そこに入力された文字をセルに挿入する、などといったことができます。
もちろん、ラジオボタンやリストボックス(プルダウンメニュー)とかタブとか、いろいろなことができます。
これができるようになると、プログラミングっぽくなって、とても楽しくなってきます。
前述の通り、マクロはVBAというプログラミング言語で記録されています。これはそのブックの内部に保管されています。