VBAで配列は難しい。1次元配列は、一気に縦に貼り付けるときにtranspose関数を使って1次元から2次元にする必要がある。

Dim 元データ配列() As Variant
Dim 条件合致抽出データ配列() As Variant
Dim inc as integer
Dim i as integer

元データ配列 = Worksheets("Sheet").Range(Cells(2, 2), Cells(100, 3)).Value

inc = 0
For i = 1 to UBound(元データ配列)
  if ( 元データ配列(i, 1) = "条件" ) then
    ReDim Preserve 条件合致抽出データ配列(inc)
    条件合致抽出データ配列(inc) = 元データ配列(i, 1)
    inc = inc + 1
 end if
Next i

Worksheets("Sheet2").Range(Cells(2, 2), Cells(UBound(条件合致抽出データ配列) + 2, 2)).Value = _
WorksheetFunction.Transpose(条件合致抽出データ配列)

End Sub

Categories:

category