セルに名前を定義する(Nameプロパティ)|Excel VBA |
RangeオブジェクトのNameプロパティを使用してセル範囲に名前を定義します。
Object.Name 設定/取得
| 設定項目 | 内容 |
|---|---|
| Object | Rangeオブジェクト |
次のサンプル1はセルA1のアクティブセル領域に「合計範囲」という名前を定義し、その名前を利用してセルA1のアクティブセル領域を選択しています。
Sub Sample1()
Range("A1").CurrentRegion.Name = "合計範囲"
Range("合計範囲").Select
End Sub
サンプル1を実行すると、名前ボックスに「合計範囲」と表示されることを確認してください。なお、定義した名前を削除するには、
Range("合計範囲").Name.Delete
のように記述します。
名前にはブック全体から参照できるものと、そのワークシートでのみ参照できるものの2種類あります。サンプル1で定義されたのは、ブック全体から参照できる名前です。
各ワークシートでのみ使用できる名前を定義するには、名前の先頭に「ワークシート名!」をつけます。
Sub Sample2()
With Range("A1").CurrentRegion
.Name = .Worksheet.Name & "!合計範囲"
End With
End Sub
これで同じ名前で、ワークシート別に違うセル範囲を参照することができます。
Nameプロパティは、Rangeオブジェクトの下位オブジェクトであるNameオブジェクトを参照しています。また、Nameオブジェクト自身はApplication、Workbook、およびWorksheetオブジェクトに含まれているNamesコレクションのメンバです。
次のサンプル3はサンプル1と同じ動作をしますが、これによってそのことがわかります。
Sub Sample3()
ActiveWorkbook.Names.Add Name:="合計範囲", _
RefersTo:=Range("A1").CurrentRegion '- Namesコレクションにメンバを追加
' Application.Names("合計範囲").Delete '- Namesコレクションからメンバを削除
End Sub