• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで入力規則のリスト参照元の値取得)

VBAで入力規則のリスト参照元の値取得

このQ&Aのポイント
  • VBAを使用してエクセル2007で入力規則のリスト参照元の値を取得する方法について教えてください。
  • VBAを使ってエクセル2007で入力規則のリストの元の値を取得する方法を教えてください。
  • エクセル2007のVBAで入力規則のリストの元の値を取得する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

カンタンのためエラー処理は省略します つまり ●マクロ作動時アクティブセルに「入力規則のリスト」の「元の値」を「=何某の名前」で設定済みである ●「何某の名前」は縦方向(たとえばシート3のA1:A6)に設定済みである ●variant型の配列に格納する sub macro1() dim a as variant, ax as variant a = application.transpose(names(mid(activecell.validation.formula1, 2)).referstorange.value) ' for each ax in a ' debug.print ax ' next end sub

R958XX
質問者

お礼

ありがとうございます!

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

> どのリストを参照しているかを調べるということは可能なのでしょうか? たとえばC8なら(画像でC8で入力規則してるように見えるので) Mid(Range("C8").Validation.Formula1, 2) で設定した「元の値」から=以降の値が取得できます。

R958XX
質問者

お礼

追加のご回答をいただきありがとうございます!

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

選択言語で名前つけしたセルのデータを取得したいということですよね。 以下でいかがでしょう。 Sub Example() Dim ListData() As String Dim c As Range Dim i As Integer i = 1 ReDim ListData(i) For Each c In Range("選択言語") ListData(i) = c.Value i = i + 1 ReDim Preserve ListData(i) Next c End Sub

R958XX
質問者

補足

ありがとうございます。 ちなみにリストがいくつかあって、それぞれ参照するリストの名前が異なる場合、どのリストを参照しているかを調べるということは可能なのでしょうか? (先ほどの例だと、入力規則で「選択言語」という名前づけをされたセルが設定されているということをVBAで知る方法はないでしょうか?)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問が、ごちゃごちゃしていてよく読む気がしない。画像もぼやけている。 もし下記で、質問者のニーズに応用できるなら使ってみて。 ーー A1:A10の各セルに入力規則の「リスト」を設定していて リストはE3:E8の値 a b c d e f を使っているとする。 ーー Sub Sample2() a = Range("A2:A10").Validation.Formula1 MsgBox a For Each cl In Range(a) MsgBox cl Next End Sub これでMsgbox のところでa,b,c,・・fが都度表示されるから、好きなように料理して(組み立てるなりして)。 Range("A2:A10").のところは、その範囲内の1セル指定でも同じやり方だろう。

R958XX
質問者

お礼

スマートな書き方になってなくてすみません。 やり方を教えていただきありがとうございます。

関連するQ&A