目次
目的
- Excel の「名前の定義」を VBA で操作したい。
- 名前の新規定義、範囲取得を行う。
定義状況
現在の名前の定義状況を見てみます。
- Excel ツールバー > 挿入 > 名前 > 定義をクリック。
- 「名前の定義」ダイアログが表示されました。名前の定義はされていないようです。
定義追加
- 以下のワークシートでテストしてみます。「Sheet1」の「A1:A3」の範囲に A,B,C と入力されています。
-
現在のワークブックに「AtoC」という名前の定義を追加してみます。参照範囲は「Sheet1」の「A1:A3」です。実行してみます。
Sub 名前の定義の設定テスト()
ThisWorkbook.Names.Add Name:="AtoC", RefersTo:="=Sheet1!$A$1:$A$3"
End Sub - 「名前の定義」ダイアログに「AtoC」の定義が追加されています。
日本語の名前を定義
- 定義する名前は日本語でも設定可能なようです。
Sub 日本語で定義()
ThisWorkbook.Names.Add Name:="AからC", RefersTo:="=Sheet1!$A$1:$A$3"
End Sub - 「名前の定義」ダイアログに「AからC」が追加されています。
定義取得
- 上記で定義した「AtoC」の参照範囲を取得してみます。「RefersToRange」プロパティで Range オブジェクトを取得しています。
Sub 名前の定義取得()
MsgBox ThisWorkbook.Names("AtoC").RefersToRange.Address
End Sub - 「A1:A3」の参照範囲を取得できました。
テスト環境
- Windows 10
- Microsoft Office Excel 2003
私の場合、名前の定義は、今まで使う機会がなかったですが、見たことのないプロパティだったので少し調べてみました。
以上閲覧ありがとうございました。