Home » エクセルマクロ・Excel VBAの使い方 » 定義された名前 » 名前の定義されたセル範囲の値を取得するExcelマクロ

名前の定義されたセル範囲の値を取得するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

名前の定義されたセル範囲の値を取得するExcelマクロ

「名前付きセル 取得 値 for next 全て」
という検索で、このサイト・インストラクターのネタ帳へのアクセスが、ありました。

名前の定義されたセル範囲の値を取得するVBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

名前付きセルの値をFor Each~Nextループで取得するサンプルマクロ

サンプルとして「顧客マスタ」という名前が定義されているときに、そのセル範囲の値を順番にメッセージボックスに表示されるマクロをご紹介しておきます。

Sub 名前付きセルの値を取得する_ForEachNext()

 Dim rng As Range

 For Each rng In Range("顧客マスタ")
  MsgBox rng.Value
 Next rng

End Sub

「名前付きセル 取得 値 for next 全て」
という検索キーワードでしたが、For~Nextループよりも、For Each~Nextループのほうが、シンプルなコードになるので、上記のようなコードをおすすめしておきます。

名前付きセルの値をFor~Nextループで取得するサンプルマクロ

ご希望どおりFor~Nextループを使うのならば、以下のようなマクロです。

Sub 名前付きセルの値を取得する_ForNext()

 Dim i As Long

 For i = 1 To Range("顧客マスタ").Count
  MsgBox Range("顧客マスタ").Item(i).Value
 Next i

End Sub

RangeオブジェクトのItemプロパティを使うと、コレクションオブジェクトとしてのRangeに含まれる、単一オブジェクトのRangeを取得することができます。

名前の定義されたセル範囲の値を取得するExcelマクロ

オブジェクトブラウザーでは、Variantが返されることになってしまっているのが、残念なところですが...

Range.Itemプロパティは、引数を2つ使うときはCellsプロパティに引数を指定するときと同じように、第1引数が行・第2引数が列を表す数値を指定しますが、引数を1つしか指定しなければコレクションのインデックスを表すので、上記のようなマクロで名前の定義されている全セルの値を順番に取得することができます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 定義された名前 » 名前の定義されたセル範囲の値を取得するExcelマクロ

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

検索


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

.