• ベストアンサー

「メッセージボックスを開いて5秒間「OK」が押されなかったら 次のコードに進む」ことは可能ですか?

Sub test3() MsgBox "5秒反応がなかったら次へ進みます" 次のコード・・・ End Sub と言うことは可能でしょうか? Application.Wait (Now + TimeValue("00:00:05")) は関係ないですよね。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Sub Sample() Dim WSH As Object Set WSH = CreateObject("WScript.Shell") WSH.Popup "5秒反応がなかったら次へ進みます", 5, "Title", vbInformation Set WSH = Nothing ' 次のコード・・・ End Sub って感じですかね。

qwfgjo
質問者

お礼

WSHを使うのですね。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • chiezo2005
  • ベストアンサー率41% (634/1537)
回答No.3

VBAの話であれば、 Windows Scripting Hostを使うしかないみたいで、 http://officetanaka.net/excel/vba/tips/tips21.htm に詳しい解説があります。 VisualBasicであれば http://hanatyan.sakura.ne.jp/dotnet/msg01.htm#no3 にあります。 また、Windows Scripting Hostを使わない方法として、 http://www.mitene.or.jp/~sugisita/vbnet_smp.html があります。

qwfgjo
質問者

お礼

ありがとうございます。参考になりました。

すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

merlionXXです。 訂正します。さっきのでは反応があっても進んでしまいますね。 キャンセルという反応があれば進まないようにします。 Sub Sample2() Dim WSH As Object Set WSH = CreateObject("WScript.Shell") ans = WSH.Popup("5秒反応がなかったら次へ進みます", 5, "Title", vbOKCancel + vbInformation) Set WSH = Nothing If ans = vbCancel Then Exit Sub ' 次のコード・・・ End Sub

qwfgjo
質問者

お礼

すごい! できました。 ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A