
No.1ベストアンサー
- 回答日時:
こんばんは
① dim arr は Variant型です
Variant型変数は代入時にその型などが決まります
arr = Range("A1:B5")
Valueなので配列となりインデックスが付加されます arr(1,1)~
ただし、Variant型配列は配列インデックス(大きさを増やせません)
ReDimは使えない
要素数が確定していてセルアクセスを減らす目的やセル範囲の値を保持
(配列に入れて対象セルの値を変更し使う時)する時など・・伝わらないかも
Dim arr As Variant
arr = Range("A1:B5")
Range("D1").Resize(UBound(arr, 1), UBound(arr, 2)) = arr
余
Variant型変数で
set arr = Range("A1:B5") とするとRangeオブジェクトになり
同様にインデックスも付与されます
arr.Item(1,1)~
VBA実行中でもセルの値を変えると変数の値も変更される
一方
② dim arr() は ()により配列として確定していますので
代入時には配列のインデックスが必要になります 要ReDim
Dim i, j
Dim arr()
ReDim arr(Range("A1:B5").Rows.Count - 1, Range("A1:B5").Columns.Count - 1)
For i = LBound(arr, 1) To UBound(arr, 1)
For j = LBound(arr, 2) To UBound(arr, 2)
arr(i, j) = Range("A1:B5").Item(i + 1, j + 1)
Next j
Next i
Range("D1").Resize(UBound(arr, 1) + 1, UBound(arr, 2) + 1) = arr
ReDim Preserve
要素数の増減(2次元側)や Preserveキーワードなどで要素の値を
保持したまま要素数を増やす事が出来ます
(不確定要素数の場合は②を使う必要があります)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
Redim とEraseの違いは?
-
VB.NETにて、構造体へデータを...
-
2次元配列でウォッチが出来ない
-
VBAでMODE関数をつくる
-
コンボボックスのインデックス...
-
エクセルでXY座標に並べられた...
-
配列のペースト出力結果の書式...
-
EXCELを使って、アクセスログを...
-
VBでの配列をEXCELに出力する方法
-
EXCEL VBA 配列デー...
-
エクセルの列一括書き込み
-
構造体配列の特定のメンバーをF...
-
VB.NETの配列にExcelから読み込...
-
EXCELで年齢別の分布表を...
-
配列の中から最大値だけ取り出...
-
OutOfMemoryExceptionの回避策...
-
『列名 '担当者CD' があいま...
-
VB6.0の「vbFromUnicode」はVB....
-
VB.NETでのAccessテーブルリンク
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
エクセルでXY座標に並べられた...
-
vba フィルター 複数条件 3つ以...
-
配列のペースト出力結果の書式...
-
OutOfMemoryExceptionの回避策...
-
配列の中の最大値とそのインデ...
-
複数のtextboxの処理を一括で行...
-
Dir関数で読み取り順を操作でき...
-
VB6からの移行したいけど、VB.N...
-
COBOLの基本的な事なので...
-
構造体配列の特定のメンバーをF...
-
大量の変数を定義するにはどう...
-
EXCEL VBAの課題です
-
Redim とEraseの違いは?
-
VB.NETの配列にExcelから読み込...
-
VBAでMODE関数をつくる
-
VB.NETにて、構造体へデータを...
-
1ビットごとの配列を作りたい
-
VBAで配列引数を値渡しできない...
おすすめ情報