|
こんにちは。アドバイスありがとうございましたm(_._)m
ステップ的に教えていただいたので、changeの仕組みが
なぜ暴走するのか、理解が進み、助かりました。
色々とつたない私のやり方で試してみたら、アドバイスのおかげで
ちゃんと動くようになりました、また、新たな疑問も出てきましたが、
また再質問できましたら、よろしくお願いいたします。
--------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'イベントの暴走を食い止めるおまじないstart
Application.EnableEvents = False
Select Case Range("A1").Value
Case 1
Range("B1").Value = 2
Range("C1").Value = 3
Case 2
Range("B1").Value = 3
Range("C1").Value = 4
Case 3
Range("B1").Value = Range("A1").Value + 1
Range("C1").Value = Range("A1").Value + 2
Case Else
Range("B1").Value = 0
Range("C1").Value = 0
End Select
Select Case Range("A2").Value
Case Null
Range("A2").Value = Null
Range("B2").Value = Null
Range("C2").Value = Null
Case Else
Range("B2").Value = Range("A2").Value + 1
Range("C2").Value = Range("A2").Value + 2
'MsgBox Range("A2").Value
End Select
Dim hen As Integer
For hen = 3 To 100
Select Case ActiveSheet.Cells(hen, 1).Value
Case ""
ActiveSheet.Cells(hen, 2).Value = Null
ActiveSheet.Cells(hen, 3).Value = Null
Case Else
ActiveSheet.Cells(hen, 2).Value = ActiveSheet.Cells(hen, 1).Value + 1
ActiveSheet.Cells(hen, 3).Value = ActiveSheet.Cells(hen, 1).Value + 2
End Select
Next
'イベントの暴走を食い止めるおまじないend
Application.EnableEvents = True
End Sub
--------------------------------------------------------------------------
※新たな疑問というのはCase""とした時とCase Nullとした時動作が違うので・・・
?という感じですが、いま、調査中です。
|
|