- ベストアンサー
EXCELの入力画面(VBAにて作成)内でのLOOKUP機能
EXCEL関係で教えて下さい m(_ _)m VBAを使用して作成した入力画面内で、VLOOKUP関数と 同様の機能は使えないものでしょうか? 具体的に言えば・・・商品出荷の手配書を作成したいと 思っています。入力画面で入力した商品マスターを 基にして、商品名等を入力画面内にも自動表示させ たいと考えています。 通常のEXCELであれば、LOOKUP関数で簡単に出来る 内容ですが、VBAの入力画面内での処理の方法が 分かりません。。恐れ入りますが、御教示下さい。。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ワークシートの式が =VLOOKUP(2,A1:B3,2,0) の場合、 =Application.VLookup(2, Range("A1:B3"), 2, 0) のような形で使えます。
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 私自身は、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
お礼
具体的なサンプルまで作成して頂き、 ありがとうございます。ただ、正直なところ、 小生には難し過ぎるかも・・・。 VBAはこれから勉強を進めるところなので、 今後の課題として取り組んでみます。
お礼
早速のご返答ありがとうございます。 これで試してみます。