Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


50332 / 76732 ←次へ | 前へ→

【31289】Re:5秒ごとにフォームを出す方法
発言  Kein  - 05/11/16(水) 16:49 -

引用なし
パスワード
   イマイチ何をしようとしているのか分からないので、OnTimeの再帰呼び出しをする
マクロを提示しておきます。このマクロの中で、変数 Lst の値は処理を繰り返す
時間を指定し、OnTime の引数の TimeValueの値で実行間隔を指定します。
処理を実行するのは Sub SC_Start() を一回のみで結構です。
やってみて、ご自分のマクロにどのように組み入れたらよいか、検討してみて下さい。

Declare Function sndPlaySound Lib "winmm.dll" Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Public Const SND_SYNC = &H0
Public Const SND_ASYNC = &H1

Sub SC_Start()
  Dim Lst As Date
 
  Lst = Time + TimeValue("00:00:15")
  Call MySC(Lst)
End Sub

Sub MySC(Lst As Date)
  Application.OnTime Time + TimeValue("00:00:05"), _
  "'Ck_File" & """" & Lst & "'"
End Sub

Sub Ck_File(Lst As Date)
  Dim Ret As Long
  Const Ph As String = _
  "C:\Documents and Settings\enokiz\My Documents\効果音\bubu.wav"

  If Time > Lst Then
   MsgBox "処理時間が経過したので終了します", 64: Exit Sub
  End If
  Ret = sndPlaySound(Ph, SND_ASYNC)
  Call MySC(Lst)
End Sub

あと、指定した秒数だけ出せる MsgBox があります。↓

 Dim WshShell As Object
 Set WshShell = CreateObject("WScript.Shell")
 WshShell.Popup "テストです。5秒間表示します", 5
 Set WshShell = Nothing

必要なら、これもうまく組み入れたら良いと思います。

0 hits

【31279】5秒ごとにフォームを出す方法 あゆ 05/11/16(水) 15:40 質問
【31289】Re:5秒ごとにフォームを出す方法 Kein 05/11/16(水) 16:49 発言
【31468】Re:5秒ごとにフォームを出す方法 あゆ 05/11/22(火) 12:07 質問
【31470】Re:5秒ごとにフォームを出す方法 Kein 05/11/22(火) 12:21 回答
【31471】Re:5秒ごとにフォームを出す方法 あゆ 05/11/22(火) 12:56 質問
【31472】Re:5秒ごとにフォームを出す方法 Kein 05/11/22(火) 13:09 回答
【31474】Re:5秒ごとにフォームを出す方法 あゆ 05/11/22(火) 13:24 お礼
【31478】Re:5秒ごとにフォームを出す方法 あゆ 05/11/22(火) 15:33 質問

50332 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free