• ベストアンサー

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

  • エクセルVBAでLOOKUP関数がうまくできません

    エクセルVBAでLOOKUP関数がうまくできません。 入力シートと判別用のシートがあり入力シートで入力した品名を検索値 として判別用シートで数値に置き換えた値をLOOKUPで検索したいのですが WorksheetFunctionクラスのVLOOKUPプロパティを取得できませんと 実行時エラーが出ます。検索しましたが修正方法がわかりません。 構文のどこが原因なのか教えてください。 VBA初心者です。よろしくお願いします。 sub test() Dim データ行 As Long Dim データ数 As Long データ行 = Cells(Rows.Count,8).End(xlUp).Row For データ数 = 11 To データ行 Cells(データ数 ,32) = Application.WorksheetFunction.VLookup(cells(データ数,8),Worksheets("判別シート").Range("B11:E110"),5,False) Next データ数 End sub

  • アクセスのルックアップフィールドでルックアップリストを変えても既入力データが変わらないでほしいのですが

    アクセスでルックアップフィールドを使って商品型番を簡単に選択して入力したいのです。 商品型番は通常6種類程度と少ないのですが、時々型番が変わるのでルックアップリストを修正すると既入力データも変わってしまうので困っています。 既入力データ(ルックアップフィールド列データ)を変えずに行う方法はないものでしょうか? 商品型番は6種類と少ないので古いものもリストに残せばいいという考えもありますが、不要な型番が蓄積したリストというのも見にくいですし。 ルックアップフィールド以外の方法で回避する方法でもかまいませんが、VBAなどはまだかじってませんので、よろしくお願いします。

  • エクセル 関数を自動的に入力するVBAで困っています

    VBA初心者です。 エクセルの入力シートで行ごとにデータを下記のように入力しています。      A      B       C 1   日付    品番     商品 2   10/25    10     りんご 3   10/26    20     みかん 4 5 6 2行目から順にデータを入力すると自動的にC列にVBAで VLOOKUP関数をセットして商品を検索したいのですが 上手くできませんでした。 教えてください。よろしくお願いします。

  • エクセルのLOOKUPの簡単な質問

    エクセルのLOOKUPで    A   B      C        D 1             商品番号    商品名 2   1  りんご     3       みかん 3   2  バナナ     15       いちご 4   3  みかん     1       りんご といった表をつくったとして、A・BにLOOKUP用のリストを入れておいて、Cに番号を入力すればDに商品が表示されるようにしたいのですが その場合にDに =LOOKUP(C2,$A$2:$A$20,$B$2:$B$20) といった関数を入れて、ずーっと下のほうまでコピーすることで表を 作成できたのですが、 まだ入力していない行のDのところに「#N/A」と表示されるのを、非表示(真っ白なセルのように)することは出来ますか??

  • ファイルメーカーのルックアップ機能と計算機能について

    現在、商品管理をファイルメーカーPro8.5で行っています。 (OS:WindowsXP) 使い方で、手ほどき頂きたい点がございますのでどなたか ご教授下さい。 ----現在利用中のファイル---- ファイル名:【商品データベース】 ファイル名:【出荷リスト】 ※【商品データベース】には、商品に関する情報が全て入っています。 ※【出荷リスト】は、文字通り出荷した時のリストです。 【商品データベース】 商品コード(SH1001など) 商品名 メーカー 【出荷リスト】 商品コード 商品名(【商品データベース】からルックアップ) メーカー(【商品データベース】からルックアップ) 出荷日 ------------------ それでは質問を述べさせて頂きます。 今現在、 【出荷リスト】で商品コードを入れた時に、商品名を【商品データベース】からルックアップで自動入力するようにしているのですが、 これだと、商品名が変更した時に、再ルックアップをかけなければいけないので 少し面倒を感じています。 今までルックアップをかけていた場所は、過去のレコード含めて 全てリアルタイムに反映させたいので、ルックアップ機能ではなく、 計算機能を使おうかと思っています。 (【出荷リスト】の商品名を、【商品データベース】から計算機能で引っ張ってくるという使い方) この時、ルックアップから計算機能に切り替える事で発生する 弊害というのは何か思いつきますでしょうか? (例えばサーバーの負荷がルックアップに比べて ものすごくかかってしまうとか) 自分の中では、リアルタイムで変更されるし、計算機能だと フィールドを入力を禁止にする事も出来るので ミスが減ってくれるのでは無いかと期待しております。 それでは何卒宜しくお願い致します。

  • 〔VBA・マクロ〕EXCELからACCESSデータをひっぱるには?

    当方のレベルはアクセス初級者(基本的な操作)、 エクセルはごく簡単なVBAをいじる中級者です。 アクセスにて顧客マスター、商品マスターを作成しています。 エクセルで納品書を作成しています。 現状では外部データの取り込みをつかって エクセルシートに顧客データ(シート1)と商品データ(シート2)を 取り込んだ後に、納品書(シート3)でシート1、2に VLOOKUP関数をかけて、納入先と商品情報を 伝票におとしこんでいます。 こんなまどろっこしいことをせずに、 エクセルからアクセスのテーブルへ直接データを取り込む方法は ないものでしょうか? どなたかよろしくお願いいたします。

  • excel VBA 自動入力

    excel VBA 自動入力 こんにちは excelから現在バックグランドで開いているアプリケーションやWebブラウザのフォームなどに excelの値をVBAで入力するにはどのような指定の仕方をしたらよいでしょうか? 指定方法としては、"Alt+Tab"を1回押した時にアクティブになる部分、 つまり、作成予定のexcelファイルをアクティブにする直前にアクティブだった入力フォームへ 入力するという指定がしたいです。 どうかご教示お願いします。

  • Excelでセルに入力するとVBA関数が呼び出される

    標記件、あるExcelファイルでセルに入力を行うと、入力後にVBAのある関数が自動で呼び出されるのですが、どこでこの設定を行う事ができるのでしょうか? VBAをOPENし、"ThisWorkbook"と"Sheet"内を開いても、何も記述はありません。通常はここで設定を行うと思うのですが・・・ (SelectionChangeなどで。) なお、呼び出される関数は、標準モジュール内に入っています。 以上、よろしくお願い致します。

  • エクセルの関数LOOKUPなどについて

    Office2007のエクセルに関して質問です。 関数の挿入のfxを押してLOOKUP関数を入れたときに 検査値をセル指定をし、そのセルの中の数字で検索したいのですが、なぜかできません。 直接数字を入れればできるのですが、それでは関数を使う意味がないので・・・。 fxでのLOOKUPのダイアログで検査値を セル指定をした場合="数値" 直接数値を入力した場合=数値 となるので、「""」がおかしいのかと思うのですが「""」を外すこともできず困っております。 初心者の質問で恐縮ですが、お答えいただければと思います。

  • エクセル2003で作成したエクセルデータを、2007で加工したら、セルに関数が入力されているのに計算してくれなくなった

    2003で作成したエクセル表を2007で加工しました。 2003の時点でセルにはSUM関数やVLOOKUP関数が入っていたのですが、 どのセルに入力しても計算してくれなくなりました。 関数を再度入れなおしましたが、ダメでした。 関数を見ると正しく入力されています。 苦労して作成した表なのでとてもショックです。 解決策はありませんでしょうか??

専門家に質問してみよう