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