• ベストアンサー

excel VBAを使って、データを自動的に表示させるには!?

excelのVBA・マクロの書き方について教えてください!! 商品データ(商品名、数量、産地、担当者、商品コード)を入力したシートがあります。 別のシートに、商品名を入力するだけで、商品データを参照して、数量・産地・担当者・商品コードが自動で入力されるマクロを作成したいです。 本を見ながらやっていたのですが、なかなか上手くいきません! (商品名を入力する)セルをあらかじめ指定し、そこに商品名を入力して表示させる方法はあったのですが・・・ セルを指定せずに、A列ならどこに商品名を入力しても、自動でデータが表示される方法はありますか??

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

マクロでなくて、VLOOKUP関数ではダメなのでしょうか? Shhet1に  A   B   C    D    E 商品名、数量、産地、担当者、商品コード とあるとして 別シートのA列に 商品名をいれたとして B列に =Vlookup(A2,Sheet1!A:E,2,FALSE) C列に =Vlookup(A2,Sheet1!A:E,3,FALSE) ・・・といれておけば良いです。 もし、VBAでいえば、そのままVLOOKUP関数をVBAで使用した例ですが、 別シートの名前のタグを右クリックして、コードの表示 VBエディターが起動しますので Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Target.Offset(0, 1).Value = WorksheetFunction.VLookup(Target.Value, Sheets("Sheet1").Range("A2:F100"), 2, False) Target.Offset(0, 1).Value = WorksheetFunction.VLookup(Target.Value, Sheets("Sheet1").Range("A2:F100"), 3, False) Target.Offset(0, 1).Value = WorksheetFunction.VLookup(Target.Value, Sheets("Sheet1").Range("A2:F100"), 4, False) End If End Sub と入れていけば如何でしょうか?検索値が見つからなかった時のエラー処理はしていません。

a-nya1231
質問者

補足

できました!!ありがとうございました☆ もうひとつ質問ですが、 商品名が同じで数量が違う場合は、片方のものしか表示されません。 「商品名」と「数量」二つの条件を入力して、表示させる方法はありますか? よろしくお願いします。