UF

上のユーザーフォームの「Start」ボタンに書かれているのが、
CommandButton1_Click
です。

「Stop」ボタンに書かれているのが、
CommandButton2_Click
です。

「Start」とボタンで、長いFor文処理が始まります。
途中で、中止する為には「Stop」ボタンを押します。
「Stop」ボタンを押した後、キャンセルすると処理を継続します。

コピーして試してみてください。


Dim blnStop As Boolean

Private Sub CommandButton1_Click()
    Dim i As Long
    Dim lngSum As Long
    
    For i = 1 To 10000
        lngSum = lngSum + i
        
        ActiveSheet.Range("A1").Value = i
        
        DoEvents
        If blnStop = True Then
            If MsgBox("処理を中止します", vbExclamation + vbOKCancel) = vbOK Then
                GoTo StopNow
            Else
                blnStop = False
            End If
        End If
    Next i
    
    MsgBox "処理が完了しました", vbInformation
    Unload Me
    Exit Sub
    
StopNow:
    MsgBox "処理を中止しました", vbInformation
    Unload Me
    
End Sub

Private Sub CommandButton2_Click()
    blnStop = True
End Sub