VBA
http://officetanaka.net/excel/vba/tips/tips21.htm
画面にメッセージを表示するにはMsgBox関数を使います。たとえば次のコードは、画面に「田中亨」という文字列を表示します。
Sub Sample()
MsgBox "田中亨"
End Sub
画面には[OK]ボタン付きのメッセージボックスが表示されます。
このメッセージボックスは、ユーザーが[OK]ボタンをクリックするまで、ずっと表示され続けます。では、指定した時間が経過したら自動的に閉じるようなメッセージボックスを表示するにはどうしたらいいでしょう?
残念ながらExcelのVBAには、そうした便利な関数は用意されていません。もしどうしても自動的に閉じるメッセージボックスを表示したいのでしたら、Windows Scripting Host(WSH)を使いましょう。WSHのPopupメソッドで表示したメッセージボックスは、指定した時間が経過すると自動的に閉じます。次のサンルは、表示したメッセージボックスを5秒後に閉じます。
Sub Sample2()
Dim WSH As Object
Set WSH = CreateObject("WScript.Shell")
WSH.Popup "5秒後、自動的に閉じます", 5, "Title", vbInformation
Set WSH = Nothing
End Sub
Popupメソッドの構文は次の通りです。
WSH.Popup(strText,[nSecondsToWait],[strTitle],[nType])
引数名 意味
strText メッセージボックスに表示する文字列。必ず指定します
nSecondsToWait メッセージボックスを閉じるまでの時間。省略可能
strTitle メッセージボックスのタイトル。省略可能
nType アイコンやボタンの種類。省略可能
引数nSecondsToWaitで指定した時間が来る前にユーザーがボタンを操作すれば、いつでもメッセージボックスを閉じることができます。
引数nTypeには次の数値を指定できます。
数値 VBAの定数 意味
0 vbOKOnly [OK]ボタンを表示します
1 vbOKCancel [OK]ボタンと[キャンセル]ボタンを表示します
2 vbAbortRetryIgnore [中止]ボタン、[再試行]ボタン、および[無視]ボタンを表示します
3 vbYesNoCancel [はい]ボタン、[いいえ]ボタン、および[キャンセル]ボタンを表示します
4 vbYesNo [はい]ボタンと[いいえ]ボタンを表示します
5 vbRetryCancel [再試行]ボタンと[キャンセル]ボタンを表示します
16 vbCritical アイコンを表示します
32 vbQuestion アイコンを表示します
48 vbExclamation アイコンを表示します
64 vbInformation アイコンを表示します
これらの数値は、VBAのMsgBox関数で使用できるvbYesNoやvbQuestionなどの定数にも同じ値が割り当てられています。
Popupメソッドで表示したメッセージボックスで、どのボタンがクリックされたかを調べるのもMsgBox関数と同じです。クリックされたボタンに応じて、それぞれ次の数値が返ります。
数値 VBAの定数 クリックされたボタン
1 vbOK [OK]ボタン
2 vbCancel [キャンセル]ボタン
3 vbAbort [中止]ボタン
4 vbRetry [再試行]ボタン
5 vbIgnore [無視]ボタン
6 vbYes [はい]ボタン
7 vbNo [いいえ]ボタン
これらの数値も、MsgBox関数の定数と同じです。また、指定した時間が経過して自動的にメッセージボックスが閉じたときは、-1が返ります。
[0回]