| 
    
     |  | 入力したい値には一定のパターンが見られるので、数式で処理することが出来ます。 とうぜん手入力でも出来ますが、あえてVBAマクロでやるとしたら
 
 With Range("E7:E100")
 .Formula = "=IF(OR($D7<1,$D7>3),0,$D7)"
 .Offset(, 1).Formula = "=IF(OR($D7<1,$D7>3),0,$D7*10)"
 .Resize(, 2).Copy
 .PasteSpecial xlPasteValues
 End With
 Application.CutCopyMode = False
 
 というコードで出来ます。ただし、これは既にD7:D100の全てのセルに数値が入力済み
 のときに、イベントではなく普通のマクロとして実行する場合のコードです。
 もしセル入力イベントにしたいなら
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("D7:D100")) Is Nothing Then Exit Sub
 With Target
 If .Count > 1 Then Exit Sub
 If IsEmpty(.Value) Then Exit Sub
 If Not IsNumeric(.Value) Then Exit Sub
 Application.EnableEvents = False
 Select Case .Value
 Case 1 To 3
 .Offset(, 1).Value = .Value
 .Offset(, 2).Value = .Value * 10
 Case Else
 .Offset(, 1).Value = 0
 .Offset(, 2).Value = 0
 End Select
 End With
 Application.EnableEvents = True
 End Sub
 
 ぐらいで出来るでしょう。
 
 |  |