Excel VBAのRefersToプロパティについて
Excel VBAの`RefersTo`プロパティは、名前定義オブジェクトが参照する範囲を取得、または設定するためのプロパティです。このプロパティを使うことで、名前定義を通じて特定のセル範囲にアクセスしたり、新たな範囲を参照させることが可能となります。
RefersToプロパティの基本的な使い方
`RefersTo`プロパティは以下の形式で使用します:
名前定義オブジェクト.RefersTo
名前定義オブジェクトは、具体的にはName
オブジェクトを指します。例えば、名前”Test”を持つ名前定義がある場合、その参照範囲を取得するには以下のように記述します:
Debug.Print ThisWorkbook.Names("Test").RefersTo
新たな範囲を設定する場合は、以下のように記述します:
ThisWorkbook.Names("Test").RefersTo = "=Sheet1!$A$1:$B$2"
RefersToプロパティの活用
以下に、`RefersTo`プロパティを使用して名前定義の参照範囲を動的に設定するVBAのサンプルコードを示します。
サンプルコード1: 名前定義の参照範囲を取得
Sub GetNamedRangeRefersTo()
Dim nm As Name
For Each nm In ThisWorkbook.Names
Debug.Print nm.Name, nm.RefersTo
Next nm
End Sub
上記のコードでは、ワークブック内のすべての名前定義の名前とその参照範囲を出力しています。
サンプルコード2: 名前定義の参照範囲を設定
Sub SetNamedRangeRefersTo()
Dim nm As Name
Set nm = ThisWorkbook.Names.Add("Test", "=Sheet1!$A$1")
nm.RefersTo = "=Sheet1!$A$1:$B$2"
End Sub
このコードでは、”Test”という名前定義を作成し、初めにA1セルを参照範囲として設定した後、その範囲をA1からB2の範囲に変更しています。