• ベストアンサー

EXCELの入力画面(VBAにて作成)内でのLOOKUP機能

EXCEL関係で教えて下さい m(_ _)m VBAを使用して作成した入力画面内で、VLOOKUP関数と 同様の機能は使えないものでしょうか? 具体的に言えば・・・商品出荷の手配書を作成したいと 思っています。入力画面で入力した商品マスターを 基にして、商品名等を入力画面内にも自動表示させ たいと考えています。 通常のEXCELであれば、LOOKUP関数で簡単に出来る 内容ですが、VBAの入力画面内での処理の方法が 分かりません。。恐れ入りますが、御教示下さい。。

質問者が選んだベストアンサー

  • ベストアンサー
  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.1

ワークシートの式が =VLOOKUP(2,A1:B3,2,0) の場合、 =Application.VLookup(2, Range("A1:B3"), 2, 0) のような形で使えます。

mashy_ok
質問者

お礼

早速のご返答ありがとうございます。 これで試してみます。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 私自身は、VBAは、Vlookupのような、2次元で使う関数は、めったに用いませんね。理由は特にないのですが。ちょっとサンプル・プロシージャを作ってみました。 Sub VlookupFunctionTest() Dim Ret As Variant Dim myRange As Range Dim strSearchWord As String Dim myCol As Integer Set myRange = ActiveSheet.Range("A1").CurrentRegion strSearchWord = "A" '検索語 myCol = 3 '列   On Error Resume Next   Ret = WorksheetFunction.VLookup(strSearchWord, myRange, myCol, 0)   On Error GoTo 0   If Ret > 0 Then     MsgBox Ret     Ret = Empty   Else     MsgBox strSearchWord & "は、見つかりません。", vbInformation   End If End Sub '====================================================== 'こちらは、私が良く使う方法です。 '------------------------------------------------------ Sub MatchFunctionTest() Dim Ret As Long Dim myRange As Range Dim strSearchWord As String Dim myCol As Integer Set myRange = ActiveSheet.Range("A1").CurrentRegion strSearchWord = "A" '検索語 myCol = 3 '列   On Error Resume Next   Ret = WorksheetFunction.Match(strSearchWord, myRange.Columns(1), 0)   On Error GoTo 0   If Ret > 0 Then     MsgBox myRange.Cells(Ret, myCol).Value     Ret = 0   Else     MsgBox strSearchWord & "は、見つかりません。", vbInformation   End If End Sub

mashy_ok
質問者

お礼

具体的なサンプルまで作成して頂き、 ありがとうございます。ただ、正直なところ、 小生には難し過ぎるかも・・・。 VBAはこれから勉強を進めるところなので、 今後の課題として取り組んでみます。

関連するQ&A

専門家に質問してみよう