プロが教える店舗&オフィスのセキュリティ対策術

VBAで音楽を再生させた後、Windows Media Playerを消したいのですが、
手作業で×ボタンを押すしかないのでしょうか?

Sub 終了音を鳴らす()
Dim SoundFile As String

SoundFile = "C:\終了音.wav"

Shell "c:\program files\windows media player\wmplayer.exe /play /close " & SoundFile
End Sub

で、音楽は鳴らせるのですが、添付画像のように
Windows Media Playerは開いたままです。

音楽を鳴らした後に、Windows Media Playerも閉じる方法をご教授ください。
ご回答よろしくお願いします。

「VBAで音楽を再生させた後」の質問画像

A 回答 (1件)

Book以外のウィンドウをすべて閉じた状態でなら以下でほぼ失敗はないと思いますが


不安定なsendkeysなので。。。
それと、待ち時間を4秒に固定してあるので、ここは曲の長さ+2秒くらいがいいかと思います。

 これらのことを勘案すると、シートかuserformにWindows media player コントロールを配置してそのプロパティを使ってコントロールするのが妥当です。マルチメディアファイルの構造の勉強が必要になりますが、今回ご呈示のような簡易な再生でなく曲の長さなども取得できるのですべてをきちんと処理できます。 

 あるいは、mcisendstringというAPIもよく使われるようです。コマンドを指定していくだけなのですが、間違っていてもエラーメッセージが出ないことが多いので、よく調べないとうまく再生できない場合が多くなります。


Sub 終了音を鳴らす()
Dim SoundFile As String
Application.Visible = False
SoundFile = "C:\test\ringout.wav"

Shell "c:\program files\windows media player\wmplayer.exe \play \close " & SoundFile, vbNormalFocus
DoEvents: DoEvents: DoEvents

Application.Wait Now() + 4 / 86400
DoEvents: DoEvents: DoEvents
SendKeys "%FX"

Application.Visible = True
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2012/10/24 22:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!