|
入力したい値には一定のパターンが見られるので、数式で処理することが出来ます。
とうぜん手入力でも出来ますが、あえて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
ぐらいで出来るでしょう。
|
|