フォームを作って 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
ネタ元