• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAを使って、あるセルに入力したコードに対応する品名を表)

Excel VBAを使って、コードに対応する品名を表示する方法

このQ&Aのポイント
  • Excel VBAを使用して、特定のコードに対応する品名を表示する方法について教えてください。
  • 現在、セルにコードを入力するとモジュールに飛び、品名を書き込むとモジュールを抜け、再度モジュールに入るという問題が発生しています。
  • 解決のためには、どのような方法がありますか?また、一般的にこのような目的の場合、どのような手法が一般的ですか?

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

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.1

イベント連鎖しないように、イベント発生時に以下の設定をすれば 処理中は他のイベントを止めることができます。  Application.EnableEvents = False 処理終了後はイベントを可能にしてください。  Application.EnableEvents = True

endlessriver
質問者

お礼

早速、ありがとうございました。ばっちりでした。 エラー処理とかがあるので、これを使って、もう少し検討してみます。

その他の回答 (2)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

単に「2」の処理が目的なら、シートでVlookup関数を使うのがもっとも手軽です。 マクロ処理上の対策しては、他の方が提示したApplication.EnableEvents で処理するのが簡単です。 何でもマクロで~ではなくて、使える関数をチェックして関数だけで実現可能なのか、マクロで行うのが適切なのか、両者を組み合わせる方がベストなのかを検討する方が良いでしょう。 VBAでは多くのワークシート関数を呼び出して使う事が可能なので、必要な関数があればVBAで自由に利用出来ます。 例えば、VBAにVlookup関数を書き込めば任意の表の値をピックアップする事も出来ます。

endlessriver
質問者

お礼

ありがとうございました。できました。

  • syowest
  • ベストアンサー率0% (0/3)
回答No.2

Application.EnableEvents =false でイベントを禁止にするのも手ですが、マスターからコード品番をキーにしてデータを引っ張ってくるだけなのであれば、VBA ではなく、単純に関数 VLOOKUP を使ったほうがいいのではないでしょうか? =VLOOKUP((検索値, 範囲, 列番号, False) 範囲の指定は、絶対座標 $A1:$C100 等で指定 最終のパラメータは、False で指定します。

endlessriver
質問者

お礼

ありがとうございます。ばっちりでした。 ただ、範囲の取り方が説明を読んでもよくわからず苦労しました。 今回は、データとしてマスタのアドレスを書き込むので VLOOKUPでは難しそうでした。

関連するQ&A