Rangeオブジェクトで管理する事で、コードが見やすくなり、
自身のVBAの理解度が増したと考えます。
Rangeオブジェクトのようなオブジェクト変数は、
通常の変数とは違い、優位な部分があります。
通常の変数とObject変数の違い
Rangeオブジェクトを使用していく場合、次に出てくる問題が、
下記のようなRangeの概念と異なる部分も操作可能です。
- ワークブック名を取得する
- ワークブックを閉じる
- ワークシート名を取得する など
コードサンプル
Public Sub sample() '■Rangeオブジェクトに代入 Dim rng As Range Set rng = ActiveWorkbook.Worksheets("Sheet1").Range("B2") '■Rangeからブック名を取得する Debug.Print rng.Parent.Parent.Name 'Book1 End Sub
■Parntプロパティで親階層を取得可能
・Parentを使用する事で、現Objectの親階層を参照可能です。(シート名を取得)
・Parent.Parentを使用する事で、現Objectの親階層の親階層を参照可能です。(ブック名を取得)
■階層(親子関係)のイメージ
Application
└ Wokbook
└ Worksheet
└ Range
・Parentを使用する事で、現Objectの親階層を参照可能です。(シート名を取得)
・Parent.Parentを使用する事で、現Objectの親階層の親階層を参照可能です。(ブック名を取得)
■階層(親子関係)のイメージ
Application
└ Wokbook
└ Worksheet
└ Range
上記概念を理解する事でオブジェクトを理解できたのではないでしょうか。
変数はエクセルのセル、定数はエクセルのセル(保護状態)と例えていますが、
オブジェクトは単なる変数のような値の情報以外の多くの情報を持っています。
(Value以外に、Range、Address、Name、WorkSheet、Workbook、Application等)
変数はエクセルのセル、定数はエクセルのセル(保護状態)と例えていますが、
オブジェクトは単なる変数のような値の情報以外の多くの情報を持っています。
(Value以外に、Range、Address、Name、WorkSheet、Workbook、Application等)
関連記事
- Workbooks.Openと同時に変数wsに格納する【シンプル】
- ワークシート名を変数にSetし、短い名前で利用する【マクロ初級者必読】
- ワークブック名を変数にSetし、短い名前で利用する【マクロ初級者必読】
コメント