配列でデータを高速抽出

 

Sub test()
    ' 配列でデータを高速抽出


    Dim i, j As Long

    Dim A
    ' 元データを配列Aに代入
    A = Range("A1:D" & Cells(Rows.Count, "A").End(xlUp).Row)
    
    Dim B
    ' 出力結果を格納する配列を設定
    ReDim B(1 To UBound(A, 1), 1 To 4)
    
    j = 0
    
    For i = 1 To UBound(A, 1)


        ' 抽出条件設定(名前なか「田」を含む、性別=女)
        If InStr(A(i, 1), "") > 0 And A(i, 2) = "" Then
            j = j + 1
            
            ' 該当するデータを配列Bへ格納
            B(j, 1) = A(i, 1)
            B(j, 2) = A(i, 2)
            B(j, 3) = A(i, 3)
            B(j, 4) = A(i, 4)
        End If
    Next
    
    ' 結果をセルG2に代入する
    Range("G2").Resize(j, 4) = B


End Sub

 

 

 

実行結果

 

 

 

 

― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る 

 

参考記事