横からすみません。
引用:
AdvancedFilter の Criteria の履歴をつくり、世代管理しようという問題意識です。
とのこと。
(1)
なにか配列というものに過大な期待をお持ちのように感じます。
どのようなタイムスパンで世代管理という言葉を使っているのか不明ですが、
変数に持っても、それがずっと使える保証もないですよね。
今後とも何度も使う予定のものであれば、
ワークシートに、名前を付けたセル範囲として持つのがよいと思います。
モジュールレベル変数やStatic変数を使うよりも、ワークシートを使うほうが安全だと
マイクロソフト社も言っています。↓参照。
http://web.archive.org/web/20090909235324/http://support.microsoft.com/kb/408871/ja
(米国の有名なアーカイブです、怪しくはありません。時間が少しかかると思います)
(2)短期的な、例えば、ブックを開いてから閉じるまでという期間と考える場合、
配列を使うのであれば、こんな使い方ができます。
Sub test1()
Dim m(1 To 2) As Variant
m(1) = Range("A1:B3").Value
m(2) = Range("A11:B13").Value
'使う場面の例
Range("C1:D3") = m(1)
End Sub
配列mの要素に配列を持たせることもできます。
(こうしたものをジャグ配列(Jag配列)と呼ぶことがあります。ネットで検索してみてください。)
これの難点は、配列だから当然ですが、何番目という指定しかできないことです。
(3)別の入れ物もあります。CollectionやDictionaryというものも使えます。
これなら、文字列で指定することも可能です。下記はCollectionの例です。
Sub test2()
Dim col As New Collection
col.Add Item:=Range("A1:B3").Value, Key:="範囲1"
col.Add Item:=Range("A11:B13").Value, Key:="範囲2"
'使う場面
Range("C1:D3") = col("範囲1")
'または
Range("C1:D3") = col(1)
End Sub