VBAではオブジェクトという概念がある。簡単に言ってしまうと、画面に表示される物は全てオブジェクトだ。ワークブック、ワークシート、セルはもちろんのこと、ボタンも、メニューも、そしてエクセル自体もオブジェクトである。プログラムは、これらのオブジェクトに対して操作を行う。ワークシートにセルがあるように、オブジェクトの上に別のオブジェクトが乗っていることもある。オブジェクトの指定は、どこのどれ、と言うことをピリオドで区切って行うことになっている。既に選択されたオブジェクト上ならば省略もできるが、ワークシート指定から記述して行く癖をつけたほうが良いだろう。代表的なオブジェクトは下記の表の通り。
オブジェクト名 | 表現 | 意味・備考 |
---|---|---|
ワークブック | Workbooks("名前") | ワークブック。複数のワークシートを含む。 |
ワークシート | Worksheets("名前") | ワークシート。 |
レンジ(選択範囲) | Range("セル範囲") | セルの選択範囲。 |
セル | Cells(rowIndex,ColumnIndex) | 行、列で示したセル。 |
エクセル | Application | エクセルそのもの。 |
オブジェクトはプロパティを持つ。セルに文字が入っている場合、その文字列そのものも含め、色やフォントのような書式もプロパティと呼ばれる。プロパティを変更すると表示が変化するし、表示状態を知るためにはプロパティの値を参照すれば良い。どういうオブジェクトがどういうプロパティを持ち、変更をできるかできないか、などは別途マニュアルを参照して調べていただきたい。プロパティは、オブジェクトの後ろにピリオドで区切って記述する。セルに関連した代表的プロパティは下記の表の通り。
プロパティ名 | 表現 | 意味・備考 |
---|---|---|
値 | Value | セルの値。 値取得(参照)時には省略可能。 |
Formula | Formula | セルの記述。値ではなく数式を意味する。 値代入省略可能。 |
フォント | Font | 文字フォント。 Font.Name や Font.FontStyleとして使用する。 |
数値書式 | NumberFormat | 数値表示方法を文字列で指定する。 |
オブジェクトに対する操作方法は、プロパティに値を設定する方法と、メソッドを使用する方法がある。メソッドもプロパティと同じくオブジェクトの後ろにピリオドで区切って記述する。プロパティと異なるのは、値の入力などを行わない点ある。オブジェクトに対するコマンドだと考えても良かろう。
メソッド名 | 表現 | 意味・備考 |
---|---|---|
アクティブ化 | Activate | 指定したオブジェクトをアクティブにする。 |
選択 | Select | 選択。 |
クリア | Clear | セルのクリア。 |
オブジェクトとプロパティとメソッドについては、これらの説明だけでも1冊の本になる。高等(?)プログラミングを行うためにはリファレンスブックを参照することが必要になるだろう。それにしても、VBAは、元々厳密な記述を要求する言語ではなく、省略可能な項目が多かったり、本来の記述から外れていても動作するケースが多い。しかし、基本的考え方はできるだけ知っておきたい。