• ベストアンサー

VBA初心者です

例 sheet1                      sheet2 商品名 | 金額 | 果物|100 果物  |                 野菜|200   野菜  |                 魚  |300     魚   | VBAでsheet2から、商品を検索して隣の金額の値をsheet1の商品の隣に金額を転記したいのですが、関数だとVLOOKUPでできるのですが、VBAではどういうプログラムになるのか教えてください、商品数は100以上あるとしてお願いします、宜しくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

VLOOKUP関数ででもできるよ。 Findなど使うのは、初心者には難しいだろう。 ーー 例データ Sheet1 A1:B4 品物 価格 魚 野菜 果物 ーー Sheet2 A1:B4  検索表 品物 価格 果物 200 野菜 100 魚 150 ーー コード 標準モジュールに Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") d = sh1.Range("A65536").End(xlUp).Row For i = 1 To d x = sh1.Cells(i, "A") sh1.Cells(i, "B") = WorksheetFunction.VLookup(x, sh2.Range("A1:b100"), 2, False) Next i End Sub ーーー 検索表範囲のsh2.Range("A1:b100")は適当に設定のこと。 可変にすることも出来るが、まずは大筋を勉強してから。 結果 Sheet1 A1:B4 品物 価格 魚 150 野菜 100 果物 200 見つからない場合が考えられるので、その手当ては考えてください。 http://myrtus21.com/blog/2007/06/vbavlookup.html など読めば判る。

bolujo
質問者

お礼

早速の回答ありがとうございました、うまく表示することが出来ました。

関連するQ&A

  • VBA初心者

    いつも大変に参考にさせて頂いております。 Sheet1 に値を入力し、Sheet3には表がありSheet1の計算結果を関数にて表示するようにしております。 VBAにて、Sheet3の内容のみを新しいExcelファイルとして保存したいのですが、どなたか分かるかたご教示頂けないでしょうか。 条件は Sheetは複数ある(5シートほど) 値のみ貼付け としてから、関数の無い状態で保存したい。 こちら分かる方はご教示頂けませんでしょうか

  • VBAに関して質問です

    VBA初心者のため教えてくれますと助かります。 シート1にリストが記載されています。 チェックボックスで選択されている値を取得して(シート1のA列の商品名から)、チェックされている値のデータを転記するようなコードを作成したいと思っております。(別途シート追加する) 知識不足でうまく動きません。よろしくお願いします。

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • エクセルVBAで、シート1の値をシート2へ移すには?

    エクセルVBAの質問です。初心者です。 ■シート1のA1に「123」と打ったら、シート2のA1に「123」と表示される。そして、A2に「456」と打ったら、シート2のA2に「456」と表示される。続いてシート1のA3の値をシート2のA3に・・・とどんどん繰り返してたくさんの値を別のシートに移せるようにしたいです。 関数で言えば、VLOOKUP と似ている機能を作りたいと思ってます。 よろしくお願いします。

  • チェックボックスに関して(vba)

    VBA初心者のためコードを教えてくれますと助かります。 シート1にリストが記載されています。 チェックボックスで選択されている値を取得して(シート1のA列の商品名から)、チェックされている値のデータを転記するようなコードを作成したいと思っております。(別途シート追加する) 知識不足でうまく動きません。よろしくお願いします。

  • セル参照内容を利用する

    A1に、関数「=Sheet2!B5」と入れると、B1はSheet2!C5の値を取得、 A1に、関数「=Sheet2!G10」と入れると、B1はSheet2!H10の値を取得、 というように隣の参照した先のすぐ隣を持ってくるようにするには、 B1にどんな設定をすればよいですか。またそれは可能でしょうか。 VBAを使ったり、 Vlookupを使って再検索させるのでなく、 単純にセルの参照内容を利用する方法でしたいのです。

  • 【VBA】ハイパーリンク付の項目をフィルタで抽出後に転記する方法

    現在、データベースに検索をかけて抽出された項目を別シートに転記するプログラムを組んでいます。 そこで、フィルタ後に表示された可視セルをコピーで転記すると、データベース内に貼ってあるハイパーリンクがなくなってしまい困っています。 <例> 果物   注文個数   業者サイト名(ハイパーリンクあり) りんご  1個      スーパーA店 みかん  2個      スーパーB店 バナナ  5個      スーパーB店 りんご  3個      スーパーC店 例えば、上記のようなデータからフィルタで「果物=りんご」を検索し、その結果の行を別のシートに転記する場合に「業者サイト名」に貼り付けてあるハイパーリンクも同時に転記する場合のプログラムをご教示願えませんでしょうか。 以前作成したハイパーリンクをコピーするプログラムでは、If文でハイパーリンクの有無を確認してから、コピーを行っていましたが、それをさらに可視セルかどうかを確認して行うとなるとどうしていいか分からなくなっています。 VBA初心者のため、少し複雑なプログラムになると書くことができなくて困っており、知見のある方にアドバイスをいただければと思います。

  • VBAの書き方を教えてください

    EXCEL2003を使用しています。 特定のセルの値を取得して、値と同じシート名を検索して移動する事はVBAで可能でしょうか? 具体的に、sheet1のA1はVLOOKUPにて検索後の値(りんご)が表示されています。 コマンドボタンにて、A1の値(りんご)を取得して、数十枚あるシートの中からA1と同じ値(りんご)の名前のシートに移動したいのです。 いろいろ探したのですが、よく分からなかったので教えて下さい。

  • VLOOKUP関数をVBAで書くには

    EXCEL VBAの初心者です VLOOKUP関数をVBAで書きたいのですが、よくわかりません すいませんがどなたかご教授、願えないでしょうか? sheet1     sheet2 A    B  A    B      名称 CD    名称 CD 滋賀県 25     滋賀県  25 京都府 26     大阪府 27 大阪府 27 兵庫県 28     兵庫県 28 sheet2のA列をキーにsheet1のA列と照合して sheet2のB列にsheet1で一致した行のB列をコピーする VLOOKUP関数を使うと、sheet2のB2は =IF($A2="","",VLOOKUP($A2,Sheet1!$A$2:$B$5,2,0)) としたら、25を得ることができました VBAでする場合、どのように書けばいいのでしょうか? よろしくお願いします

  • vbaでvlookup

    エクセルのVBAについて。 指定した範囲の中から検索条件に一致したデータを検索し、取り出してくれる関数vlookup をVBAで実現したいのですが、 目標として、エクセルのセル(列)に、値を入力されているとします。 VBAを実行するボタンをクリックすると、、、 その値に対応する文字列(事前に用意)をその値の右のセルに自動で入力させたいです。 このVBAを作ることが目標です。 vbaでvlookupを実現でなくても、それよりも簡単な方法があれば教えていただきたいです。 お手数ですが、よろしくお願いします。

専門家に質問してみよう