[excel][vba]
excel2000以上なら ユーザーフォームにvbModeless指定でいける
DoEvents() はOSに溜まった仕事をさせる関数
Dim flag As Boolean
Private Sub CommandButton1_Click()
If MsgBox("中止しますか?", 292) = vbYes Then flag = True
End Sub
Private Sub UserForm_Activate()
Dim TotalSize As Long, buf As String
Me.Repaint
''ここから時間のかかる処理
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 Me
End Subネタ元