関数 [WorksheetFunction.VLookup]の便利な使い方

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Public Function WorksheetFunctionVLookup(ByVal Geton As StringAs String
'********************************************
'[WorksheetFunction.VLookup]の便利な使い方VBA
'********************************************
Dim str(1 To 3, 1 To 5) As String, Ans As String

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Dim str(3, 5) As String
'注意 下記は上記と同じ変数ですが
'「Application.WorksheetFunction.VLookup」を使用する場合
'は上記のように範囲を1から○○までと指定しないと使えません。
'これはWorksheetFunctionではセル値に「0」が無く「1」から始まる為です。
'追記 str(3, 5)はstr(0 to 3, 0 to 5)と同じです。

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

'テーブル----------------------------------------------------------------------------
str(1, 1) = 1: str(1, 2) = "い": str(1, 3) = "A": str(1, 4) = "あ": str(1, 5) = "a"
str(2, 1) = 2: str(2, 2) = "ろ": str(2, 3) = "B": str(2, 4) = "い": str(2, 5) = "b"
str(3, 1) = 3: str(3, 2) = "は": str(3, 3) = "C": str(3, 4) = "う": str(3, 5) = "c"
'------------------------------------------------------------------------------------

Ans = ""
  On Error Resume Next ' エラーのトラップを留保します。
    Ans = Application.WorksheetFunction.VLookup(Geton, str(), 4, False)
  On Error GoTo 0 'エラーのトラップを無効にします。

WorksheetFunctionVLookup = Ans

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'
'VLOOKUP(検索値, 範囲, 列番号, 検索の型)
'
'検索値:範囲 の左端の列で検索する値を指定します。
'検索値には、値、セル参照、または文字列を指定します。
'英字の大文字と小文字は区別されません。
'
'範囲:目的のデータが含まれるテーブルを指定します。
'範囲の左端の列のデータは、文字列、数値、論理値のいずれでもかまいません。
'
'列番号:範囲内で目的のデータが入力されている列を、左端からの列数で指定します。
'列番号 に 1 を指定すると、範囲の左端の列の値が返され、
'列番号 に 2 を指定すると、範囲の左から 2 列目の値が返されます。
'列番号 が 1 より小さいときは、エラー値 #VALUE! が返され、
'列番号 が 範囲 の列数より大きいときは、エラー値 #REF! が返されます。
'
'検索の型 に TRUE を指定した場合、
'範囲の左端の列のデータは、昇順に並べ替えておく必要があります。
'検索の型に FALSE を指定した場合は、範囲のデータを並べ替えておく必要はありません。
'検索の型 検索値 と完全に一致する値だけを検索するか、
'その近似値を含めて検索するかを、論理値で指定します。
'TRUE を指定するか省略すると、検索値 が見つからない場合に、
'検索値 未満で最も大きい値が使用されます。
'FALSE を指定すると、検索値 と完全に一致する値だけが検索され、
'見つからない場合は エラー値 #N/A が返されます。
'
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
End Function



Private Sub test()
    MsgBox WorksheetFunctionVLookup("3")
End Sub
  • はてなブックマークに追加

 

2016年10月01日|[VBサンプルコード]:[関数]