• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【ExcelVBA】VLOOKUPの方法について。)

【ExcelVBA】VLOOKUPで商品名を表示する方法

このQ&Aのポイント
  • ExcelVBAを使用して、VLOOKUP関数を使って商品名を表示する方法について質問しています。
  • 具体的には、1桁の数字を編集して3桁の数字に変換し、別のファイルの一覧にある商品名をキーとしてVLOOKUP関数を利用してE列に表示させたいと考えています。
  • 質問者はVBA初心者であり、効率的でシンプルな処理方法についてアドバイスを求めています。

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

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

こんにちは。 結論的なものではありませんが、一応、ここを検索してみると分かりますが、マクロで、VLOOKUPは、あまり意味がないのです。特に、はっきりとした理由ではないのですが、引数として、Rangeオブジェクトの範囲を常に入れておく入れたりしても、VLOOKUPでは、途中で面倒になってしまうのです。 A1:C10  A  B  C あ  1  11 い  2  12 う  3  13 え  4  14 お  5  15 か  6  16 き  7  17 く  8  18 け  9  19 こ  10  20 E い あ う ------------------------------- 'Vlookup 関数を使わないで、検索する方法 Sub Test1() Dim i As Variant Dim c As Variant Dim myData As Range Set myData = Range("A1:C10") 'Application.ScreenUpdating = False For Each c In Range("E1", Range("E65536").End(xlUp))  i = Application.Match(c.Value, myData.Columns(1), 0)  If Not IsError(i) Then   'F 列に出力する   c.Offset(, 1).Value = myData.Cells(i, 3).Value  End If Next c 'Application.ScreenUpdating = True Set myData = Nothing End Sub ------------------------------------ それから、 <1>まず、キーとなる数字を編集してから、一番上の行~最終行にかけて、一気にVLOOKUPをかけた方がよいのでしょうか? <2>それともループの中で1行編集するごとに、VLOOKUP関数をキー列の隣に入れていった方がよいのでしょうか? VLookUp を使うのは別として、ループの中で1行ごとにほうが、コードとしては分かりやすいかと思います。 マクロの処理を速くする方法は、 Application.ScreenUpdating = False 'セルにアクセスするコードを入れる Application.ScreenUpdating = True

bari_saku
質問者

お礼

こんにちは。 ここの皆様のお陰で、無事完成しました。 書いて頂いたコードを既存のコードに組み込む方法がわからなくて、結局ループの中でVLOOKUPをかけたのですが、VBAの考え方など非常に参考になりました。 本当にありがとうございました。

関連するQ&A