RefersToプロパティ解説(Excel VBA)

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の範囲に変更しています。