2次元配列の1次元目を増やしながら要素を追加していく【ExcelVBA】
Application.WorksheetFunction.Transposeメソッドを使用して
行・列を入れ替えて、その後にRedim Preserveを使用して2次元目のサイズを+1する
そしてTransposeで元に戻すことで1次元目を増やす形をとる
録画したが、説明が下手過ぎて一旦お蔵入りにしましたが再挑戦
配列の説明は目に見えないので難しい‥
コードはよく流用するので残しておきます
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
Option Base 1
Public Sub Sample()
Dim 元配列() As Variant
Dim 後配列() As Variant
元配列 = Worksheets("data").Range("A1").CurrentRegion.Value
ReDim 後配列(1, UBound(元配列, 2))
Dim i As Long
For i = LBound(元配列, 2) To UBound(元配列, 2)
後配列(1, i) = 元配列(1, i)
Next
Dim x As Long
For x = LBound(元配列, 1) To UBound(元配列, 1)
If 元配列(x, 1) = "B店" Then
後配列 = Application.WorksheetFunction.Transpose(後配列)
ReDim Preserve 後配列(UBound(後配列, 1), UBound(後配列, 2) + 1)
後配列 = Application.WorksheetFunction.Transpose(後配列)
For i = LBound(元配列, 2) To UBound(元配列, 2)
後配列(UBound(後配列, 1), i) = 元配列(x, i)
Next
End If
Next
Worksheets("貼り付け").Range("A1").Resize(UBound(後配列, 1), UBound(後配列, 2)).Value = 後配列
End Sub