A No.3です。
>Sheet1のシートモジュールには既にもうひとつのコードがあり
既存のWorksheet_BeforeDoubleClickがあるという事でしょうか?
であれば、A No.3のコードの下記の部分で、Eventの起こるセル範囲を限定しておりますが、両方のコードを一つにまとめて、ダブルクリックしたセル位置に応じて処理を分岐する様にすれば良いでしょう。
If Not Intersect(Target, Sheets("Sheet1").Columns(3)) Is Nothing Then
'C列でWクリックしたときの処理
else
'他の位置でWクリックしたときの処理
end if
A No.1さんに一票
検索する対象データの範囲はXL2000のヘルプから持ってきたままですので、修正下さい。コードに対応する商品名はSheet2のB列としてあります。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim findValue As Variant
Dim c As Range
If Not Intersect(Target, Sheets("Sheet1").Columns(3)) Is Nothing Then
findValue = Target.Offset(0, -2).Value
With Worksheets("Sheet2").Range("a1:a500")
Set c = .Find(findValue, LookIn:=xlValues)
If Not c Is Nothing Then
Target.Value = c.Offset(0, 1).Value
End If
End With
End If
End Sub
お礼
ありがとうございました。最初どういうことか良くわからなかったのですが、やっと理解できました。このようにする必要があるのですね。勉強になりました。