• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの名前定義で、配列は使用できないのでしょう)

エクセルの名前定義で配列は使用できない?

このQ&Aのポイント
  • エクセルの名前定義で配列を使用することはできないのか疑問です。
  • 通常はセル番地を使用して名前定義を行いますが、配列の使用はできないのでしょうか?
  • マクロを作成して配列を名前定義に使用しようとしましたが、うまくいきませんでした。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

昔のことでうろ覚えですが、xl2003以前でグラフの系列にワークシートを介さないで値を設定する際に、データ数の制約回避のために、どこかで見つけて来て使った事があります。 http://okwave.jp/qa/q6368497.html #4で、 For i = 1 To rs.RecordCount arrayX(i, 1) = rs.Fields(1) arrayY(i, 1) = rs.Fields(2) rs.MoveNext Next i ThisWorkbook.Names.Add Name:="Date", RefersTo:=arrayX ThisWorkbook.Names.Add Name:="Rate", RefersTo:=arrayY てな事をやっています。 時間もないので詳しく見ておりませんが、ご参考まで。

hidemari
質問者

お礼

mitarashiさん、こんにちは。 ありがとうございました。 可能性がありそうなので、試してみます!

その他の回答 (2)

回答No.2

こんにちは。 私も、少し書かせていただきます。 名前定義自体は、ワークシート上のあくまでも、セルの範囲を名前付けすることですから、 VBAの変数を、セル上に埋め込むことはできませんね。 逆に、こんどは、セル上の配列というのは何かというと、あくまでも、数式的に存在するものですね。 >ActiveWorkbook.Names.Add Name:="test", RefersToLocal:="=ABC" 何を意図しているのか、あまりよく分かりませんが、RefersToLocal:=[****]のパラメータには、配列は入ります。ただし、VBAの配列ではなく、ワークシート上の配列です。 例えば、 RefersToLocal:="={1,2,3,4}" このようなスタイルの配列です。セルの配列には、縦と横がありますから、1次元の縦、横、または、2次元(あくまでも論理的配列)までは入るはずです。

hidemari
質問者

お礼

WindFallerさん、こんにちは。 VBAの配列はNGなんですね。 ありがとうございました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

名前定義はセル範囲に対して行う物です。 配列変数に名前定義をする事は出来ません。 もしかしてやりたいのは配列のコピーでしょうか? でしたらこんな感じで出来ます。   Dim ABC(0 To 1), test As Variant   ABC(0) = 1   ABC(1) = 2   test = ABC 質問の意味を勘違いしていましたら失礼

hidemari
質問者

お礼

mt2008さん、こんにちは。 やはりセル範囲に対するものなんですね。 ありがとうございました。

関連するQ&A