Excel VBA(マクロ)オブジェクト・プロパティの詳細説明
今回は前回のブログで解説したRange・Cellsオブジェクトとプロパティについての詳細を解説していこうと思います。
オブジェクトは目的物という意味から何となくですが、意味が分かると思います。
しかし、プロパティについては前回の説明もざっくりした説明だったので、オブジェクトとの違いを理解していない方もいるかと思います。
それでは、オブジェクトとプロパティの違いで何ができるというのかを解説していきます。
- オブジェクト
- VBA(マクロ)では、操作対象として指定するセルの範囲やシート、Excelブックのことを言います。(実際にはExcel以外でもマクロを動かすことができるのでこれら以外にもあるのですが、すべてを知っているわけではないので、とりあえず確実に知っている範囲で記載します。)
- プロパティ
- オブジェクトの操作対象範囲からさらに細分化できる範囲を指定する場合に使用するものです。
今回はこちらの解説がメインです。
具体的にプロパティを設定している例をいくつかあげて解説していきます。
1.シートをオブジェクト指定してシート内の特定範囲のセルをRangeプロパティ指定するコード
ActiveSheet.Range("B2", "D6").Select
これはアクティブシートをオブジェクトとしてそのB2からD6を選択するコードです。
実行すると下記のようになります。
2.セル範囲をRangeオブジェクト指定して、選択範囲内の特定範囲内のセルをRangeでプロパティ指定するコード
Range("C2", "I10").Range("B2", "D6").Select
これはC2からI10をオブジェクトとしてそのB2からD6を選択するコードです。
実行結果は下記のようになります。
1.との違いを解説します。
簡潔に説明すると2.のプロパティでは相対参照が使用されています。
C2からI10を一つのシートと考えてC2(=A1のセル)、I10(=G9のセル)ととらえられ、次のプロパティで選択されています。なので、上記のような結果になります。
以上がRangeのオブジェクトとプロパティの違いです。
Cellsについても同様のことが言えます。
具体例を下記に示しますが、内容は上記と同じなので解説は省略します。
3.シートをオブジェクト指定してシート内のセルをCellsプロパティ指定するコード
ActiveSheet.Cells(2, 4).Select
実行結果は下記になります。
解説は上記1.のRangeプロパティと同様です。
4.基準セルをCellsオブジェクトで指定して、Cellsを用いてセルを相対参照にてプロパティ指定するコード
Cells(2, 2).Cells(2, 4).Select
実行結果は下記になります。
解説は上記2.のRangeのオブジェクト・プロパティ指定と同様です。
- オブジェクトは目的物(大枠)のこと
- プロパティはオブジェクトの補足(相対参照で指定)
他の例として挙げてみると…
森をオブジェクトとして指定すると一本の木や複数の木をプロパティで指定するといった感じです。
また木の指定は右から何本目といったものから、一つを指差し指定するといった感じでしょうか。
いかがでしたでしょうか、オブジェクトとプロパティの違いは理解していただけたでしょうか。
以上で今回の解説は終了となりますが、何か気になることがあればコメント等で気軽に質問していただけたらと思います。
ここまで読んで頂き、ありがとうございました。