回答編集履歴
1
追記
    
        answer	
    CHANGED
    
    | @@ -1,2 +1,26 @@ | |
| 1 1 | 
             
            For文の中で隣のセルの値を変える都度、このChangeイベントが走っているのではないでしょうか。
         | 
| 2 | 
            -
            なので、この処理の先頭で Application.EnableEvents = False にするのが良いと思います。
         | 
| 2 | 
            +
            なので、この処理の先頭で Application.EnableEvents = False にするのが良いと思います。
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            ```VBA
         | 
| 5 | 
            +
            Private Sub Worksheet_Change(ByVal Target As Range)
         | 
| 6 | 
            +
                'Eventの感知を停止
         | 
| 7 | 
            +
                Application.EnableEvents = False
         | 
| 8 | 
            +
                
         | 
| 9 | 
            +
                '処理時間測定用
         | 
| 10 | 
            +
                Dim startTime As Double, endTime As Double
         | 
| 11 | 
            +
                startTime = Timer
         | 
| 12 | 
            +
                
         | 
| 13 | 
            +
                Dim myRng As Range
         | 
| 14 | 
            +
                For Each myRng In Target
         | 
| 15 | 
            +
                    '値が入力されるセルは1列目=A列のみと仮定。
         | 
| 16 | 
            +
                    If myRng.Column = 1 Then myRng.Offset(, 1).Value = IIf(myRng.Value = "", "", "○")
         | 
| 17 | 
            +
                Next myRng
         | 
| 18 | 
            +
                
         | 
| 19 | 
            +
                '処理時間測定用
         | 
| 20 | 
            +
                endTime = Timer
         | 
| 21 | 
            +
                Debug.Print endTime - startTime
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                'Eventの感知を再開
         | 
| 24 | 
            +
                Application.EnableEvents = True
         | 
| 25 | 
            +
            End Sub
         | 
| 26 | 
            +
            ```
         |