サーチ…
前書き
名前付き範囲を定義する
名前付き範囲を使用すると、セルの内容の意味を記述し、実際のセルアドレスの代わりにこの定義済みの名前を使用できます。
たとえば、数式=A5*B5
は、 =Width*Height
に置き換えて、数式を読みやすく理解しやすくすることができます。
新しい名前付き範囲を定義するには、名前を付ける1つまたは複数のセルを選択し、数式バーの隣の名前ボックスに新しい名前を入力します。
注:名前付き範囲のデフォルトはグローバルスコープです。つまり、ワークブック内のどこからでもアクセスできます。古いバージョンのExcelでは名前が重複していますので、グローバルスコープの名前が重複しないように注意する必要があります。そうしないと結果が予測できなくなります。 [式]タブの[名前マネージャ]を使用して範囲を変更します。
VBAでの名前付き範囲の使用
セルA1
割り当てられた 'MyRange'という新しい名前付き範囲を作成する
ThisWorkbook.Names.Add Name:="MyRange", _
RefersTo:=Worksheets("Sheet1").Range("A1")
定義された名前付き範囲を名前で削除する
ThisWorkbook.Names("MyRange").Delete
名前で名前付き範囲にアクセスする
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("MyRange")
Call MsgBox("Width = " & rng.Value)
ショートカットで名前付き範囲にアクセスする
他の範囲と同様に 、名前付き範囲には、 Range
オブジェクトを作成する必要のないショートカット表記を使用して直接アクセスできます。上のコード抜粋の3行を1行に置き換えることができます:
Call MsgBox("Width = " & [MyRange])
注:RangeのデフォルトプロパティはValueであるため、
[MyRange]
は[MyRange].Value
と同じです
範囲内のメソッドを呼び出すこともできます。以下はMyRange
を選択しMyRange
:
[MyRange].Select
注意:注意点の1つは、ショートカット表記がVBAライブラリの別の場所で使用されている単語では機能しないことです。たとえば、
Width
という名前の範囲は[Width]
としてアクセスできませんが、ThisWorkbook.Worksheets("Sheet1").Range("Width")
からアクセスすると期待どおりに機能しますThisWorkbook.Worksheets("Sheet1").Range("Width")
名前マネージャを使用して名前付き範囲を管理する
式タブ>定義済みの名前グループ>名前マネージャボタン
名前付きマネージャーを使用すると、
- 名前の作成または変更
- セル参照を作成または変更する
- スコープを作成または変更する
- 既存の名前付き範囲を削除する
名前付きマネージャは、壊れたリンクをすばやく簡単に探すことができます。
名前付き範囲配列
サンプルシート
コード
Sub Example()
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Sheet1")
Dim units As Range
Set units = ThisWorkbook.Names("Units").RefersToRange
Worksheets("Sheet1").Range("Year_Max").Value = WorksheetFunction.Max(units)
Worksheets("Sheet1").Range("Year_Min").Value = WorksheetFunction.Min(units)
End Sub
結果