Home > 即効テクニック > Excel VBA > 関数関連のテクニック > VLookup関数を使ってセルの値を取得する

即効テクニック

関数関連のテクニック

VLookup関数を使ってセルの値を取得する

( - )
●詳細●
テキストボックスで指定された値に対応するデータを、セル範囲内から取り出します。

サンプルでは、対応データのセル範囲に名前を付けて、左端の列で特定の値を検索し、範囲内の対応するセルの値を取得しています。
テキストボックス1で1〜4(1月〜4月)を指定すると、テキストボックス2に陰暦、テキストボックス3に祝日、テキストボックス4に陰暦と祝日が組み合わされて表示されます。

対応データは以下のとおりです。 

A列  B列  C列 
 1  睦月  成人の日 
 2  如月  建国記念の日 
 3  弥生  春分の日 
 4  卯月  みどりの日 

*”A1:C4”に、”data”という名前を付けて対応データとしています。

*サンプルマクロには、ユーザーフォームにテキストボックスを4個(TextBox1・TextBox2・TextBox3・TextBox4)が必要です。
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 

    Dim x As Integer
    
    '<テキストボックスの値を取得します。>
    x = TextBox1.Value
    With ActiveSheet

    '<テキストボックス2にB列の陰暦が表示されます。>
    TextBox2.Value = Application.WorksheetFunction .VLookup(x, Range("data"), 2) ←(1)

    '<テキストボックス3にC列の祝日が表示されます。>

    TextBox3.Value = Application.WorksheetFunction .VLookup(x, Range("data"), 3) 

    '<テキストボックス4に陰暦と祝日が表示されます。>
    TextBox4.Value = Application.WorksheetFunction .VLookup(x, Range("data"), 2) & "・" & _
                     Application.WorksheetFunction .VLookup(x, Range("data"), 3) 

    End With 
End Sub 

(1)VLookup関数の書式は、”VLookup(検索値,範囲, 列番号, 検索の型)” です。 
“検索の型”は、検索値と完全に一致する値だけか、近似値を含めて検索するかを指定します。
TRUEを指定するか省略すると、検索値が見つからない場合に、検索値未満で最も大きい値が使用されます。

FALSEを指定すると、検索値と完全に一致する値だけが検索されます。
見つからない場合は、エラー値が返されます。