Share via


Names コレクション オブジェクト

Microsoft Excel Visual Basic のリファレンス

Names コレクション オブジェクト

複数のオブジェクト
Names
Name
Range

アプリケーションまたはブックにあるすべての Name オブジェクトのコレクションです。各 Name オブジェクトは、セル範囲に付けられている名前を表します。名前は、Database、Print_Area、Auto_Open などのように組み込まれている名前、またはユーザー定義の名前のどちらかです。

使い方

Names コレクションを取得するには、Names プロパティを使用します。次の使用例は、作業中のブックのすべての名前の一覧を作成し、アドレスで参照します。

Set nms = ActiveWorkbook.Names
Set wks = Worksheets(1)
For r = 1 To nms.Count
    wks.Cells(r, 2).Value = nms(r).Name
    wks.Cells(r, 3).Value = nms(r).RefersToRange.Address
Next
		

名前を新しく作成し、コレクションに追加するには、Add メソッドを使用します。次の使用例は、"Sheet1" のセル範囲 A1:C20 を参照する新しい名前を作成します。

Names.Add Name:="test", RefersTo:="=sheet1!$a$1:$c$20"
		

引数 RefersTo は、A1 形式で指定しなければなりません。絶対参照で指定する場合は、ドル記号 ($) を使います。たとえば、シート 1 で A10 がアクティブ セルのとき、引数 RefersTo に "=sheet1!A1:B1" と指定して名前を定義すると、新しい名前は実際にはセル範囲 A10:B10 を参照します。これは、指定が相対参照だったからです。絶対参照で指定するには、"=sheet1!$A$1:$B$1" と記述します。

単体の Name オブジェクトを取得するには、Names(index) プロパティを使用します。引数 index には、定義されている名前のインデックス番号または名前自体を指定します。次の使用例は、mySortRange という名前を作業中のブックから削除します。

ActiveWorkbook.Names("mySortRange").Delete