★マクロ記録の限界(弱点)
- デフォルト値が記録される。
ほとんどのダイアログボックスで、設定してないデフォルト値が
勝手に記録されます。
- 無駄な操作が記録される
マクロの記述では無駄な部分も記述されますが、VBAを使えば簡
潔なステートメントが記述できます。
例えば、セルにデータを入力することも次のように1行で書けます。
Range("A1").Value = "AAA"
- 汎用性のあるマクロが作成できない
対話型のマクロを作成するのにはとうてい無理があります。
- 条件判断や繰り返しを行うマクロが作成できない
★VBAの基本用語と構文
プロシージャ |
ある機能単位をひとかたまりにして、その名前で呼び出しが行えるように
したプログラムをプロシージャといいます。
VBAではプロシージャはマクロの別名と考えてよいと思います。
|
オブジェクト |
オブジェクトは、ワークシート、セル、グラフ、フォーム、レポートなど、処理の対象になるもののことです。
|
プロパティ |
プロパティとは、オブジェクトの属性(性質)を決めるものです。
色の指定やフォントスタイルの指定などが、これに当たります。
プロパティの値を設定するには次のような構文を使います。
オブジェクト.プロパティ = プロパティの値
例:Range("A1").Value="AAA"
↑ ↑
オブジェクト プロパティ
|
メソッド |
オブジェクトに対する操作や動作を「メソッド」と言います。
メソッドを使ってオブジェクトを操作するには次のような構文を使います。
オブジェクト.メソッド
例:Worksheets("sheet1").Range("A:A").Clear
↑メソッド
|
★コンテナとは
コンテナとは, 他のオブジェクトを含んでいるオブジェクトのことを表します。
例:Workbooks("練習問題.xls").Worksheets("マクロ").Range("A1").Value = "VBAの学習"
通常、オブジェクトは階層構造を取ります。例えば、セルの上位オブジェクトはワークシートであり、ワークシートの上位オブジェクトはワークブックであり、ワークブックの上位オブジェクトは Excelアプリケーションになります。このように、他のオブジェクトを含むオブジェクトのことをVisual Basicではコンテナと呼んでいます。
コンテナを使うと、ブックやシートを開かずに処理することができます。
★コレクションとは
同じ種類のオブジェクトの集まりをコレクションといいます。
すべての同じオブジェクトに対して、同じ処理をしたい場合などに使用します。
列やセルのようなオブジェクトは、複数まとめて操作した方が便利なこともあります。そのようなオブジェクトの場合、コレクションという概念を使って、複数のオブジェクトを、あたかもひとつのオブジェクトのように扱うことが可能になります。
つまり、コレクションとは、同じ種類の複数のオブジェクトの集合体で、ひとつのオブジェクトのように扱うことができるものなのです。
VBAでは、オブジェクトの場合は「Worksheet」のように単数形になりますが、
コレクションの場合は、「Worksheets」のように複数形になります。
例:Workbooks.Close ← すべてのブックを一度に閉じます。
Columns("A:C").AutoFit ← 複数の列幅を調整する、
|