Excel作業を自動化してラクしたい、作業効率を上げたいな。確かマクロとかVBAとかで自動化できたような…。
うーん、知識ゼロだからさっぱりわからん。やめた、諦める!
いや、諦めないで!
経理一筋10年以上の私がExcelを使い続けてきた中で培った知識と経験をもとに、あなたのために基礎からわかりやすく解説します!
マクロとVBA
マクロとVBAを誤解を恐れずにざっくり説明すると、マクロは命令、VBAはプログラミング言語です。
マクロ=命令
VBA=プログラミング言語
よくある勘違いなのですが、[マクロの記録]で記録されたマクロのことをマクロと認識している方が少なくありません。全くの間違いとは言いませんが、自分で一からプログラミングして作成した命令もマクロですので、[マクロの記録]で記録されたマクロだけをマクロと認識しているとしたら、それは勘違いです。
では、それぞれについてもう少し詳しく解説をします。
マクロとは
マクロは、正式にはマクロ・インストラクション(Macro Instruction)といって、直訳すれば大きな命令という意味になります。一般的にはインストラクションが省略されて単にマクロといわれることが多いです。
大きな命令とは、いくつかの命令で構成される処理を一つの命令で実行できるようにしたものをいいます。機能といってもいいかもしれません。
Excelにおけるマクロは、Excelの操作を自動化するための命令(もしくは機能)をいいます。
参考:
マクロを自動洗車に例えるとわかりやすいです。
自動洗車といっても、その機能の中身は、1.ブラシ洗浄、2.すすぎ、3.乾燥の3つの機能で構成されています。
同様に、マクロも複数の命令が組み合わさって構成されています。
VBAとは
マクロが命令であることはわかりました。
では、その命令をコンピュータに伝えるにはどうしたらよいでしょうか。
コンピュータと対話するための何らかのコトバが必要になってきます。
そのコトバがVBA(Visual Basic for Applications)というプログラミング言語です。
VBAは、Visual Basicというプログラミング言語をOfficeソフトのために(for Applications)カスタマイズした言語です。
このVBAというプログラミング言語で書いた命令がマクロということになります。つまり、マクロの正体がVBAであると言い換えることができます。
マクロの正体=VBA
VBAの特徴
VBAにはイベント駆動型とオブジェクト指向型という言語特徴があります。
イベント駆動型
イベントとは「きっかけ」であり、イベント駆動型とは何かのきっかけでマクロが実行される仕組みをいいます。
例:
マクロをボタンに割り当てて、そのボタンを押したらマクロが実行される。
きっかけ=ボタンを押したこと
オブジェクト指向型
オブジェクトとは命令の対象物であり、オブジェクト指向型とはその対象物に対して命令を書いていく文法をいいます。オブジェクトに命令する書き方には二種類あります。
①オブジェクトの特徴・様子を〇〇にする
②オブジェクトに××をさせる
ちょっとわかりにくいので具体例を出します。
具体例:
①カーテンの色を水色にする
オブジェクト=カーテン、特徴・様子=色、〇〇=水色
②犬を走らせる
オブジェクト=犬、××=走る
これならわかりやすいでしょうか。
ちなみに専門用語では、
①のオブジェクトの特徴・様子をプロパティ(Property)といいます。
②オブジェクトの動作・振る舞いをメソッド(Method)といいます。
まとめ
- マクロは命令で、VBAはプログラミング言語
- VBAには、イベント駆動型とオブジェクト指向型の特徴がある
- イベント駆動型は、何かのきっかけで命令が実行されること
- オブジェクト指向型は、対象物に対して命令を書いていくこと
- オブジェクトの特徴・様子をプロパティ(Property)といい、オブジェクトの動作・振る舞いをメソッド(Method)という