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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です