VBAって何?(=「マクロ」?)

現在では特に区別はありませんが、「マクロ」は古い呼び方です。でもツールバー等には「マクロ」の名前が残っているので一般的には「マクロ」で良いのでしょう。
「VBA」は「Visual Basic for Applications」の略で Microsoftの標準的な開発言語の一つである「Visual Basic」のOffice版ということになります。 「マクロ」は慣用的な名称で、「VBA」は正式名称です。「for Applications」というのは「Microsoft Office」等の汎用アプリケーションに共通して実装するような意味であり、 Excelのみならず、Word,Access,PowerPoint,Visio,Outlook,FrontPageなどにも実装されています。
一方、「マクロ」Windowsが32ビット化される以前、つまりExcelだとExcel5.0位までの呼び方ですが、 Office95(Excel95)まではこれを使っていましたので、未だに「マクロ」という呼び方も強く残っているのだと思います。
私の個人的見解ですが、「マクロ」はいわゆる「手続き記憶」のようなイメージがあります。
Excel以外の「表計算ソフト」ではこの「手続き記憶」機能を「マクロ」と言ったり「カタログ」と言ったりします。 昔、まだWindowsが全盛になる以前は国産の「表計算ソフト」もいくつかあり、NEC製のものを使っていましたが、 「カタログ」という呼び名で全く「手続き記憶」機能でした。
「VBA」をそういうイメージで捉えている方は、 このサイトや他の「VBA」をサポートしているサイトを 見ていただくと「そんなものではない」ことが理解できると思います。
「VBA」って何?という方は、まず「自動記録」から入って見ましょう。「自動記録」は、Excelの「手続き記憶」機能で、これから「記憶終了」のボタンを押すまでのExcel上での操作をまるごと記憶してしまうという機能です。記憶した内容は、開いているそのワークブックのモジュールとして記録されており、保存しておけばそのワークブックを開いて「ツール」メニューの「マクロ」からいつでも起動できます。
単なる「手続き記憶」機能と違うのは、「自動記録」で記録したものもVisual BasicのソースコードとしてVBEで修正や追加記述が自在にでき、さらにExcelの操作からの記録では実現できない処理を直接Visual Basicのソースコードを記述することで実現できることです。

「VBA」「マクロ」かこのサイトでの呼び名を統一しようと思ったのですが、ツールバーのボタンが「マクロ」だったり、VisualBasicEditorだったりでうまく行きません。自動記憶の意識を除外して「同じもの」と思って下さい。

戻る 先頭に戻る

VBAが作れるようになるまでの手順

さて、マクロ未経験の人でも「マクロが使えたら」を考える人、あるいは「マクロで何ができるのか」を疑問を持つ人が大勢いると思います。定型定性的で繰り返し行なう仕事は、マクロかマクロを含めた仕組みを導入することで人的作業を軽減させることができるはずです。
以下は、可能性の高い例です。
さて、このページから始まる「VBA基本」の節では、マクロ初心者の人向けにマクロはどういった手順で身につけるかを説明します。(順序については私の私見ですが)

ここでの説明は、入門書と違い「手取り足取り」で説明するわけではありませんが、「どういう手順」「どのようなことに着目」していけば良いかを説明していきます。なお、ヘルプに書いてあることを反芻して説明することはしませんので、出てくるオブジェクト、メソッド、プロパティについて解らない場合は都度、ヘルプで確認するようにして下さい。また、サンプルの事例、記述方法は代表的なものを挙げているだけで、全ての説明を隅から隅まで網羅するものではありません。
以下のような順序で説明していきます。「これは解っている」という所は飛ばして結構です。

1.まず、自動記録などで「マクロに手を付けてみる」
マクロについて全く使用経験なしの人向けに、自動記録をやってみるところから、記録したコードを再利用できるようにするところまで説明しています。この項では、ざっと流して説明します。細かい記述文法には触れずにざっと流れだけを説明します。
2.マクロのコードの動作検証方法を理解する。
作成したマクロの動作検証(動作確認)方法を説明します。これは重要なことであり、これを知らないままマクロを作ろうとすると「作った・動かした・ダメだった」の結果だけになってしまいます。長いコードの場合などに途中のどこの段階でどうなったのかなどをトレースすることで記述の間違いを見つけて修正する必要があるので、その検出方法は早めに体得しておく必要があります。ここでの説明は最低限必要なもので、総合的な検証の手段については次項を含めて理解する必要があります。
3.コードエディタ(VBE)の操作方法を理解する。
VisualBasicEditor(VBE)の操作方法を説明します。前項で触れている検証手段の他の検証に利用されるツールや、コード記述上での補助ツール、ちょっとしたワンポイントも含めて説明します。
4.判断・分岐・繰り返しを記述するBASIC言語を理解する。
自動記録がただの手続き記録なので、応用を利かせるための「判断」・「分岐」・「繰り返し」のロジックの書き方を簡単な例を挙げて説明します。この他、変数に関しての基本的な説明があります。
5.Excelのワークブック・ワークシート・セルの参照・操作を理解する。
ブック間、シート間の参照や操作となると、これも自動記録の範囲の理解では難しくなります。この部分を説明します。

※この辺まで理解できたら、1人で調べながらマクロが作れるようになります。

6.シート上のセルの参照・転記
セルやセル範囲の参照・更新で、そのセルやセル範囲を取得する部分を説明します。
7.ユーザーフォームの使い方
定型的な業務のエントリーに利用できるユーザーフォームの基本的な作成方法を説明します。
8.計算式との役割分担
マクロと計算式の「棲み分け」について説明します。
9.機能分割と他モジュール呼び出し
複雑な機能を実装していく場合などに、機能分割して部品化する方法を説明します。
10.マクロの起動方法を考える。
マクロを実際に運用動作させる方法を説明します。
11.エラー処理
エラーの制御について説明します。
12.仕様要件からコードの組み立てを考える。
個々の方法が解ったところで、一番肝心なロジックの組み立ての考え方をサンプルを使って説明します。
※ここまでこなせたら、ベテランの領域なのかも知れません。
※ご自分の技量状態と相談しながら、必要なところから始めてみて下さい。