HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > セルに名前を定義する(Nameプロパティ)

セルに名前を定義する(Nameプロパティ)|Excel VBA

セル操作関連のテクニック

セルに名前を定義する(Nameプロパティ)

(Excel 2000/2002/2003/2007/2010)

RangeオブジェクトのNameプロパティを使用してセル範囲に名前を定義します。

Object.Name    設定/取得
設定項目内容
ObjectRangeオブジェクト

次のサンプル1はセルA1のアクティブセル領域に「合計範囲」という名前を定義し、その名前を利用してセルA1のアクティブセル領域を選択しています。

●サンプル1●

Sub Sample1()
    Range("A1").CurrentRegion.Name = "合計範囲"
    Range("合計範囲").Select
End Sub

サンプル1を実行すると、名前ボックスに「合計範囲」と表示されることを確認してください。なお、定義した名前を削除するには、

Range("合計範囲").Name.Delete

のように記述します。

■特定のワークシートのみで参照できる名前付きセル範囲

名前にはブック全体から参照できるものと、そのワークシートでのみ参照できるものの2種類あります。サンプル1で定義されたのは、ブック全体から参照できる名前です。
各ワークシートでのみ使用できる名前を定義するには、名前の先頭に「ワークシート名!」をつけます。

●サンプル2●

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