この記事では、VBAマクロを使用してExcelのメッセージボックスを自動で閉じたり、特定の操作後に消えるように設定する方法について解説していきます。
ポイントとしてはTimer関数、MessageBox関数を使用することです。
なお、マクロ初心者でもわかりやすいように変数名をaaaaa変数aaaaaといった名称にしています。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロでメッセージボックスを自動で表示後8秒で閉じる方法
それではまず、メッセージボックスを自動で表示後8秒で閉じる方法について解説していきます。
Sub aaaaAutoCloseMsgBoxaaaa()
Dim aaaaStartaaaa As Double
aaaaStartaaaa = Timer
' 8秒間表示するメッセージボックス
Do While Timer < aaaaStartaaaa + 8
DoEvents ' 他の操作を可能にする
Loop
MsgBox "このメッセージは8秒後に自動的に閉じます。", vbInformation
End Sub
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
コードのAlt+F8を押し、マクロ選択画面でaaaaAutoCloseMsgBoxaaaa関数を実行します。
このマクロは、VBAのTimer関数を使用して現在の時間を取得し、それから8秒間経過するまでメッセージボックスを表示し続けます。その後、自動的にメッセージボックスが閉じます。
VBAマクロでメッセージボックスをでキャンセル押すと消える仕様【実行とキャンセルボタン】
続いては、ユーザーがメッセージボックスに表示された内容に対して確認(実行)かキャンセルかを選べる仕様の作成方法を解説していきます。
Sub aaaaCloseMsgBoxOnActionaaaa()
Dim aaaaUserResponseaaaa As Integer
' メッセージボックスに実行とキャンセルの選択肢を提示
aaaaUserResponseaaaa = MsgBox("処理を実行しますか?", vbQuestion + vbOKCancel, "確認")
If aaaaUserResponseaaaa = vbCancel Then
MsgBox "キャンセルされました。", vbExclamation
Exit Sub
End If
' 実行が選ばれた場合の処理
MsgBox "処理が実行されました。", vbInformation
End Sub
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
コードのAlt+F8を押し、マクロ選択画面でaaaaCloseMsgBoxOnActionaaaa関数を実行します。
このマクロでは、ユーザーがキャンセルボタンをクリックすると、メッセージボックスが表示されずにマクロが終了します。
実行ボタンを選択すると、処理が実行されたことを示す別のメッセージボックスが表示されます(適宜実行したい処理に応じて変えてくださいませ)
まとめ VBAマクロでメッセージボックスが処理後に消える設定方法【Timer関数、MessageBox関数】
ここでは、VBAマクロでメッセージボックスを自動で閉じる、処理後に消える設定方法【Timer関数、MessageBox関数】について解説しました。
マクロをマスターしさらに快適な生活を送っていきましょう。