コンテンツにスキップ

Excel VBA 検索した値の隣のセルの値を取得する

Find

指定したセル範囲の情報を取得する
一致するデータが見つからなかった場合は Nothing を返す

Set rng = Worksheets(1).Range("A1:A500").Find("検索値")

処理も早いので重宝するメソッド

Offset

引数に渡したセル数だけ、移動したセルを取得する

Range("A1").Offset(0, 3).Select

Usage

' 引数にセル範囲・検索値を受け取って、取得した隣のセルの値を返す
Function sample_find(check_range As Range, id As Long) As String

    Set check_range = check_range.Find(id)

    If check_range Is Nothing Then
      Exit Function
    Else
       sample_find = check_range.Offset(0, 1).Value
    End If

End Function

' 実行
Sub sample_test()

    Dim rng As Range
    Set rng = Range("A2:A6")

    Dim str As String

    ' ここで上のファンクションを実行
    str = sample_find(rng, 2)
    MsgBox str

End Sub
サンプルでは、sample_findファンクションが、セル範囲と検索値を引数に受け取っている
next_value

sample_testで実行すると、検索した値の隣のセルの値がメッセージに表示される

Reference

Range.Find メソッド (Excel)
Range.Offset プロパティ (Excel)