[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
ネタ元