配列から、検索文字を含んだ配列を作成

配列 tbl1 の5列目のデータが指定された文字列と一致する行を抽出し、それを別の配列 tbl2 に格納するためのコードを以下に示します。この例では、tbl1tbl2 は配列として扱われていると仮定しています。

Sub ExtractRows()
    Dim tbl1 As Variant
    Dim tbl2 As Variant
    Dim searchValue As String
    Dim i As Long, j As Long, k as long
    Dim rowCount As Long, colCount As Long

    ' tbl1にデータを設定する(仮のデータ)
    ' 例: tbl1 = Range("A1:E10").Value
    ' 適切なデータソースに置き換えてください。

    ' 検索する文字列を設定する(例: "指定文字")
    searchValue = "指定文字"

    ' tbl1の行数と列数を取得
    rowCount = UBound(tbl1, 1)
    colCount = UBound(tbl1, 2)

    ' tbl2の初期化(最大でtbl1と同じサイズ)
    ReDim tbl2(1 To rowCount, 1 To colCount)

    ' 検索と抽出の処理
    j = 1 ' tbl2の行インデックス
    For i = 1 To rowCount
        ' 5列目(列番号4)のデータが指定文字列と一致するか確認
        If tbl1(i, 5) = searchValue Then
            ' 一致する行をtbl2に追加
            For k = 1 To colCount
                tbl2(j, k) = tbl1(i, k)
            Next k
            j = j + 1
        End If
    Next i

    ' tbl2に格納されたデータを出力する(仮の出力方法)
    ' 例: Range("G1").Resize(j - 1, colCount).Value = tbl2

End Sub

Follow me!