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を指定すると、検索値と完全に一致する値だけが検索されます。
   見つからない場合は、エラー値が返されます。




戻る


Excel Word Access VBA! モーグ