VBAで範囲から配列を作成する 質問する

VBAで範囲から配列を作成する 質問する

一見基本的な問題を抱えているようですが、それを解決するリソースが見つかりません。

簡単に言うと、セル範囲 (すべて 1 列) の内容を配列に読み込みたいだけです。

私はこれを実現できる

DirArray = Array(Range("A1"), Range("A2"))

しかし、何らかの理由で、次のように表現すると配列を作成できません。

DirArray = Array(Range("A1:A2"))

実際の範囲はもっと長い (長さが変わる可能性がある) ので、このようにセルを個別に列挙する必要はありません。範囲全体を配列に適切にロードする方法を教えていただけますか?

後者のコードの場合:

MsgBox UBound(DirArray, 1)

そして

MsgBox UBound(DirArray)

前者の場合は 1 を返しますが、後者の場合は 0 を返します。

ベストアンサー1

変数をバリアントとして定義し、それらを等しくするだけです。

Dim DirArray As Variant
DirArray = Range("a1:a5").Value

Array コマンドは必要ありません。

おすすめ記事