• ベストアンサー

エクセルのVBAで質問です。

こんにちは。 リストで選んだ商品名に該当する注意書きを別のシートに用意してあります。その範囲を名前を付けて定義しています。 例えばマクロを実行する「入力」シートのA1で「商品ABC」という商品名を 選んだ場合、「注意書き」シートに定義している名前「商品ABC」を探して、「書出し」シートのA13のセルに該当する商品の注意書きをコピーするというようにしたいのですが、名前の定義しているのをどのように探してそれをコピーするのかやり方がわかりません。 教えていただけないでしょうか。宜しくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

VBAの御質問でしたね。先の回答でも、A1でリストからの名前選択は可能ですし、コメントの元の範囲を結合セルにしてしまえば機能すると思いますが、VBAでの実現例を次に記します。Sheet1のシートモジュールに記載してください。 Private Sub Worksheet_Change(ByVal Target As Range) '商品名=範囲名のリスト選択がA1にあるとき If Target.Address = "$A$1" Then Sheets("Sheet2").Range(Target.Value).Copy Sheets("Sheet1").Range("A2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False End If End Sub なお、自動記録結果を手直ししたためコピー&ペーストしていますが、単純に参照先セルの値を代入する事も当然可能です。

wait4u
質問者

お礼

mitarashiさんありがとうございました。ばっちりできました。 イベントっていうものですか?これ便利なものですね。お手本にします。今後とも宜しくお願いします。

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

.....A ..... 1... 名前1..← ここに名前を入れる 2... =INDIRECT(A1)..← 該当する名前の内容が表示される こういう事でしょうか?

wait4u
質問者

補足

こんにちは。説明不足で申し訳ありません。 まず「入力」シートのA1で入力規則のリストより、商品名を選択できるようにしています。 あと名前の定義は、、「注意書き」シートに 商品別の注意書きをしている範囲を選択して、左上の名前ボックスに「商品ABC」などと、「入力」シートのA1でリストになっている名前と同じにしています。

関連するQ&A