hiko-blog

VBA業務改善

MENU

データを検索して代入する

Sub データを検索して代入する()
    Dim シート1 As Worksheet
    Dim シート2 As Worksheet
    Dim セル1 As Range
    Dim セル2 As Range
    Dim 検索値1 As String
    Dim 検索値2 As String
    Dim 結果セル As Range

    ' シートの参照
    Set シート1 = Worksheets("Sheet1") ' シート名を適切に変更
    Set シート2 = Worksheets("Sheet2") ' シート名を適切に変更

    ' シート1の各セルに対して
    For Each セル1 In シート1.Range("A1:A" & シート1.Cells(シート1.Rows.Count, "A").End(xlUp).Row)
        ' 検索値1と検索値2を取得
        検索値1 = セル1.Value
        検索値2 = セル1.Offset(0, 1).Value

        ' シート2の各セルに対して
        For Each セル2 In シート2.Range("A1:A" & シート2.Cells(シート2.Rows.Count, "A").End(xlUp).Row)
            ' 検索値1と検索値2が一致する場合
            If セル2.Value = 検索値1 And セル2.Offset(0, 1).Value = 検索値2 Then
                ' 結果セルに対応するシート2のC列の値を代入
                Set 結果セル = セル1.Offset(0, 2)
                結果セル.Value = セル2.Offset(0, 2).Value
                Exit For ' 一致したらループを抜ける
            End If
        Next セル2
    Next セル1
End Sub