| 
    
     |  | ちょっと出かけますので、とりあえずあてずっぽで m(_ _)m 
 '入力のあったセルが [E2]のときは (1) を実行し、
 '[D6:D10]のときは (2)を実行するように If〜 Else〜 End If構文で分岐処理して
 'ください
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rg As Range
 Dim c As Range
 '(1) -----------------------------------------------------------
 If Target.Address(0, 0) = "E2" Then
 Dim m As Variant
 With Worksheets("詳細") '別シートのコード照合セル範囲
 Set Rg = .Range("E2", .Cells(.Rows.Count, "E").End(xlUp))
 End With
 Application.EnableEvents = False
 If IsEmpty(Target) Then
 Target.Offset(1).ClearContents
 Else
 m = Application.Match(Target, Rg, 0) 'Match関数で検索
 If IsNumeric(m) Then
 Target.Offset(1).Value = Rg.Item(m, 2).Value
 Else
 Target.Offset(1).ClearContents
 MsgBox "入力されたコードはありません"
 End If
 End If
 Application.EnableEvents = True
 
 '(2) -----------------------------------------------------------
 Else
 Set Rg = Intersect(Target, Range("D6:D10"))
 If Rg Is Nothing Then Exit Sub
 
 Application.EnableEvents = False
 For Each c In Rg
 If Not IsEmpty(c.Value) Then
 c.Offset(, -1).Value = Range("E3").Value
 End If
 Next
 Application.EnableEvents = True
 
 End If
 End Sub
 
 |  |