2015年5月15日金曜日

VBAでWin32APIを利用したサウンドの再生と停止

VBAにはサウンドを再生するメソッドは標準で用意されていません。そこで、Win32APIを利用することになります。ここでの注意事情ですが、
  • VBAのアプリを終わらせてもサウンドは鳴り続けるので、終了処理において必ず停止させる必要がある。
  • 再生できるフォーマットはmp3、wav、mid
  • mp3については再生できない場合がある
最後のmp3についてですが、詳細はわかりませんが、OSの何かの設定の違いにより、mp3を読み込ませるとフリーズすることがあります。同一のプログラムを異なるPCで実行させた時に、片方は再生成功、片方は再生失敗(フリーズ)という状況が起こりました。そのPC自体がmp3を再生できないというわけではないので、何かの設定の問題でしょう。