質問: CreateObject("WScript.Shell") o_Shell.Run "C:\windows\Media\Alarm06.wav", 1, True 'アクション3 MsgBox "サウンド終了です" End Sub ### 試したこと 問題2については、アクション1の後に DoEvents や Application.Wait [Now()+"00:00:10"] を挿入しましたがうまく機能しませんでした。 ### 補足情報(言語/FW/ツール等のバージョンなど)
回答: > > 問題1:サウンド再生アプリ(メディアプレーヤー)を手動で終了させないと、アクション3のメッセージボックスが表示されない。(サウンド再生完了時に自動的にアプリを終了させたい) > > > 私は使ったことがありませんが、アプリは使わずAPIを使うことで、アプリ終了問題は解決できそうですね。 > > 問題2:アクション1のコメントが、アクション3のメッセージボックスのOKボタンを押すまで表示されない。(最初に表示させたい) > > > アクション1を`msgbox("サウンドが鳴ります")`としてしまえば、否応なしに以下の順番で処理ができそうな気がします。 * アクション1: 通知 * アクション2: 再生 * アクション3: 通知 mciSendStringの補足によれば、 > > mciSendString(TEXT("play sample.wav **notify**"), NULL, 0, hwnd); > > これにより、sample.wavが再生されることになります。 notifyというキーワードを必須ではありませんが、 これを指定すると**再生の終了時にメッセージを受け取ることができます。 この場合は、第4引数はウインドウハンドルを指定することになります。** > > > だそうですので、notifyとhwndをうまく使って終了時のイベントを受け取ればもっといろいろできそうですね。