Home » エクセルマクロ・Excel VBAの使い方 » 定義された名前 » 名前からRangeオブジェクトを取得-Name.RefersToRange

名前からRangeオブジェクトを取得-Name.RefersToRange

対象:Excel 2010, Excel 2013, Windows版Excel 2016

定義された名前

「excel vba 名前の定義からrangeオブジェクトを取得」
「excel vba names rangeオブジェクトを取得」
という検索キーワードでアクセスがありました。

定義された名前からRangeオブジェクトを取得するには、どのようなコードを書けばいいのか探していらしたのでしょう。

[スポンサードリンク]

定義された名前からRangeオブジェクトを取得するサンプルマクロ

以下のSubプロシージャが参考になるでしょう。
Sub 定義された名前からRangeオブジェクトを取得する()
 Dim rng As Range
 Set rng = Names("名前のサンプル").RefersToRange
 MsgBox rng.Address(False, False)
End Sub

「名前のサンプル」という名前を定義しておいてから、上記のSubプロシージャを実行すると、「名前のサンプル」が定義されているセル範囲のアドレスがメッセージボックスに表示されます。

サンプルマクロで利用しているオブジェクト式

オブジェクトブラウザー等で確認すればわかるとおり、NameオブジェクトのRefersToRangeプロパティを使うと、定義された名前のセル範囲を表すRangeオブジェクトを取得できます。

オブジェクトブラウザー:Name.RefersToRange

既にご紹介しているとおり、RangeオブジェクトのParentプロパティを使えば、セルの親オブジェクトであるWorksheetオブジェクトも取得できますから。

先のSubプロシージャのMsgBox関数部分を、
  MsgBox _
   rng.Address(False, False) & vbCrLf & _
   rng.Parent.Name
とすれば、セルアドレスとシート名が表示されます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 定義された名前 » 名前からRangeオブジェクトを取得-Name.RefersToRange

「定義された名前」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.