VBScript(WHS)やExcelVBAでWAVファイルを再生する方法

タイトルに「VBScript(WHS)」「ExcelVBA」と書いておきながら、中身はコマンドプロンプトからPowerShellを呼び出しているだけです。ライブラリを読み込んだり、MediaPlayerを呼び出したりする必要がないので楽かもしれません。

snd = "C:\Windows\Media\recycle.wav"
cmd = "powershell -NoProfile -ExecutionPolicy Unrestricted -Command ""& { (New-Object Media.SoundPlayer('" + snd + "')).PlaySync() }"""
CreateObject("WScript.Shell").Run cmd, 0

上をコピペして、VBSで保存すればWAVが再生されます。


ちなみに、素直にPowerShellを使えば、こんなにシンプルです。
ただ、PowerShellだと再生中はコマンド画面が表示されるので、用途によっては不向きかもしれません。

(New-Object Media.SoundPlayer('C:\Windows\Media\recycle.wav')).PlaySync()


こうすれば、一応コマンド画面が隠れるのですが、一瞬表示されるのは避けられないようです。

PowerShell -WindowStyle Hidden -Command Exit
(New-Object Media.SoundPlayer('C:\Windows\Media\recycle.wav')).PlaySync()