目次

あらすじ

今回の投稿では、 Excel (エクセル)の「名前の定義」機能を VBA で操作するテストを行ってみたいと思います。名前の定義と定義済み範囲の取得を行ってみます。

目次まで戻る

「名前の定義」を設定

Step.1

以下のようなワークシートを準備してみました。ワークシート「Sheet1」のセル「A1:A3」の範囲に A,B,C と入力されています。

次のステップでこの範囲の「名前」を定義してみたいと思います。

ワークシート「Sheet1」のセル A1:A3 に A,B,C と入力されているワークシートを準備してみました。

Step.2

その前に現在の「名前の定義」状況を見てみたいと思います。エクセルツールバー > 挿入 > 名前 > 定義 で現在定義されている範囲の名前を見てみます。

エクセルのバージョンが古いので、あまり参考にならないかもしれませんが、「定義」の表示方法です。

「名前の定義」ダイアログが表示されました。名前の定義はされていないようです。

「名前の定義」ダイアログボックスのリストには、定義されている名前がないようです。

Step.3

それでは、 Excel VBA のマクロで「名前の定義」を行ってみたいと思います。以下のマクロを実行してみます。

Sub 名前の定義の設定テスト()

ThisWorkbook.Names.Add Name:="AtoC", RefersTo:="=Sheet1!$A$1:$A$3" '現在のワークブックに「AtoC」という名前の定義を追加します。参照範囲は「Sheet1」の「A1:A3」です。

End Sub

Step.4

そうすると、名前の定義に「AtoC」の定義が追加されています。

「AtoC」という名前が新規に追加されています。

目次まで戻る

日本語の名前を定義

定義する名前は日本語でも設定可能なようです。

以下のマクロを実行してみます。

「AからC」という日本語を含んだ名前を定義しています。

Sub 名前の定義の設定テスト2()

ThisWorkbook.Names.Add Name:="AからC", RefersTo:="=Sheet1!$A$1:$A$3" '日本語の名前を定義しています。

End Sub

「名前の定義」ダイアログで結果を見てみると、「AからC」という名前が追加されています。

「AからC」というひらがなを含んだ名前の定義を行うことができました。日本語でわかり易いですね。

目次まで戻る

名前の定義を取得

Step.1

次は、「名前の定義」で定義したセル範囲を取得してみたいと思います。

以下のマクロを実行してみます。

「AtoC」の参照範囲のアドレスを取得して、ダイアログボックスに表示してみます。

RefersToRange プロパティで Range オブジェクトを取得しています。

Sub 名前の定義の取得テスト()

MsgBox ThisWorkbook.Names("AtoC").RefersToRange.Address '「AtoC」のアドレスを取得してダイアログボックスに表示してみます。

End Sub

Step.2

そうすると、以下の画像のような結果になりました。

上の方で定義しておいた、「A1:A3」のセル範囲が取得できました。

目次まで戻る

テスト環境

  • Windows 10
  • Microsoft Office Excel 2003

目次まで戻る

あとがき

名前の定義は、私の場合は、今まで使う機会がなかったですが、見たことのないプロパティだったので少し調べてみました。

以上閲覧ありがとうございました。

目次まで戻る

この投稿のタグ

同じカテゴリの投稿( Excel VBA )

前後の投稿