サーチ…


前書き

トピックには、定義された名前付き範囲を作成、変更、削除、およびアクセスするためのメソッドなど、Excelの名前付き範囲に固有の情報が含まれている必要があります。

名前付き範囲を定義する

名前付き範囲を使用すると、セルの内容の意味を記述し、実際のセルアドレスの代わりにこの定義済みの名前を使用できます。

たとえば、数式=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")

名前マネージャを使用して名前付き範囲を管理する

式タブ>定義済みの名前グループ>名前マネージャボタン

名前付きマネージャーを使用すると、

  1. 名前の作成または変更
  2. セル参照を作成または変更する
  3. スコープを作成または変更する
  4. 既存の名前付き範囲を削除する

ここに画像の説明を入力


名前付きマネージャは、壊れたリンクをすばやく簡単に探すことができます。

ここに画像の説明を入力

名前付き範囲配列

サンプルシート

ここに画像の説明を入力


コード

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

結果

ここに画像の説明を入力



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow