HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > 名前の定義と参照範囲の変更

即効テクニック

セル操作関連のテクニック

名前の定義と参照範囲の変更

(Excel 97/2000)
サンプルではデータ入力範囲にある名前が既に定義されている場合にはRefersToプロパティーを用いて参照範囲を再定義し、まだ定義されていない場合にはAddメソッドを用いて名前を定義しています。
Sub RedifineNameRef()

Dim Rng As Range
Dim Nam As Name

With ActiveWorkbook

    Set Rng = .Sheets("Sheet1").Cells(1, 1).CurrentRegion

    On Error Resume Next 'エラー時には次の処理へ
    Set Nam = .Names("Nam1")

    If Nam Is Nothing Then 'If Err <> 0 Then ・・・でも同じ
        .Names.Add Name:="Nam1", RefersTo:="=Sheet1!" & Rng.Address, _
            Visible:=False
        Err.Clear
    Else
        Nam.RefersTo = "=Sheet1!" & Rng.Address '参照先の変更
        'VisibleプロパティーをFalseに設定⇒名前ボックスに現れない
        Nam.Visible = False
    End If

End With

End Sub

※すでに定義されている場合でもAddメソッドで同名の名前を追加することで
 も定義域は変更になります。

上記サンプルのように名前を定義している場合には・・・

・Range("定義済みの名前")・・・でRangeオブジェクトを取得できます。
・Hyperlinkで定義済みのセル範囲選択状態でジャンプすることが出来ます。
・MSクエリー経由の外部データの取り込みが容易になります 
・・・など。