名前の取得

備忘録。
Excelでセルに定義された名前を取得したいときは、NamesコレクションのItemメソッドを使う。
例えば、アクティブなWorkbook内の名前一覧を取得したいときは↓のようにする。

Dim lngCnt As Long
lngCnt = ActiveWorkbook.Names.Count

Dim strTemp() As String
Redim strTemp(lngCnt - 1)

For i = 0 To lngCnt-1
    strTemp(i) = ActiveWorkbook.Names.Item(i + 1).Name
Next

ここで"ActiveWorkbook"を"ActiveWorksheet"に変更すれば、Worksheet内の名前一覧が取得できる。
また、グラフ等のオブジェクト名を取得するときはShapesコレクションのItemメソッドを使う↓。

Dim lngCnt As Long
lngCnt = ActiveSheet.Shapes.Count

Dim strTemp() As String
Redim strTemp(lngCnt - 1)

For i = 0 To UBound(strTemp())
    strTemp(i) = ActiveSheet.Shapes.Item(i + 1).Name
Next

但し、作成者が明示的に指定した名前以外のものも取得されてしまうので、取得した名前を利用する際には注意が必要。