関数 [WorksheetFunction.VLookup]の便利な使い方
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Public Function WorksheetFunctionVLookup(ByVal Geton As String) As 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 |