名前の定義と参照範囲の変更
サンプルではデータ入力範囲にある名前が既に定義されている場合には
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クエリー経由の外部データの取り込みが容易になります 
・・・など。

Excel97/2000



戻る


Excel Word Access VBA! モーグ