一次元配列
配列の作成
・Array()関数を使うと「0ベースx要素数」の配列を作る
・変数宣言で定義すると「0ベースx引数の数字+1の要素数」を作る
・Ubound()のreturnは要素数になる(0ベースなのでubound+1が要素数)
Dim arr: arr = Array(1, 2, 3, 4, 5)
Dim arr2(5) As Variant
Debug.Print UBound(arr) '4
Debug.Print UBound(arr2) '5
変数宣言の引数で開始位置を1に指定できる
こちらの方がUboundと要素数が一致してわかりやすい
(ただし値の代入を自動化できないと面倒)
Dim arr(1 To 5) As Variant
Debug.Print UBound(arr) '5
一次元配列の出力
・配列は横方向に伸びるので、Range範囲を横方向に合わせると綺麗に出力できる
・縦方向に出力したい場合はWorksheetFunction.Transpose()で向きを変更できる
一次元配列のループ処理
・For Eachは要素のコピーを処理するので配列自身の値は変更されない
・配列の値を一括で編集したい場合は普通のFor文を使う必要あり
0ベースから1ベースに変換する
Array()やSplit()などで作った配列は0ベースになってしまうが
2回Transposeすると1ベースに変換できる
Sub tra()
Dim arr: arr = Split("a,b,c,d,e", ",")
arr = WorksheetFunction.Transpose(WorksheetFunction.Transpose(arr))
End Sub