フォームを作って vbModelessで表示
UserFormを強制表示させる効果があります。念のために書くおまじない。
【標準モジュール】
Public flag As Boolean
Sub Sample5()
Dim TotalSize As Long, buf As String
UserForm1.Show vbModeless
UserForm1.Repaint
flag = False
''ここから時間のかかる処理
buf = Dir("C:\Windows\System32\*.*")
Do While buf <> ""
DoEvents
If flag = True Then Exit Do
TotalSize = TotalSize + FileLen("C:\Windows\System32\" & buf)
buf = Dir()
Loop
Unload UserForm1
End Sub【UserForm1】
Private Sub CommandButton1_Click()
If MsgBox("中止しますか?", 292) = vbYes Then flag = True
End Subネタ元