Excel VBAでサウンドを再生する3種類の方法:実行コード掲載

PlaySound、mciSendString、Windows Media Playerの3種類でサウンドを再生するVBAコードです。



Homeに戻る > Excel ブックのTipsへ

Windows API「PlaySound」の構文

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

戻り値:成功するとTRUE、失敗するとFALSEが返ります。

引数

  • lpszName:サウンド(WAV)ファイル名を指定指定します。vbNullStringを指定すると停止します。
  • hModule:0を指定します。
  • dwFlags:再生方法を指定します。SND_ASYNCで再生、SND_LOOPで繰り返し再生

Windows API「mciSendString」の構文

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

戻り値:成功すると0、失敗すると0以外の値が返ります。

引数

  • lpstrCommand:コマンドを指定します。「Play サウンド(WAV)ファイル名」で再生、stopで停止します。
  • lpstrReturnString:コマンドにstatusを指定した場合、ここに取得値が入ります。それ以外はNULLを指定します。
  • uReturnLength:lpstrReturnStringのバッファサイズを指定します。
  • hwndCallback:通常使いません。

Windows Media Playerを使用するには、mplay32.exeを実行します。

実行は「/play」オプションで再生し、「/close」オプションで再生終了後、mplay32.exeを終了します。

ExeファイルをVBAで実行するにはShell関数を使用します。

mplay32.exeは通常存在するフォルダを指定しなくても実行できるはずです。


関連する「WAVEファイルを再生する」を掲載していますので参照してください。



サウンドを再生するVBA

Excel VBAでサウンドファイルを再生するのは、いくつかの方法があります。

ここでは3種類の方法で行います。


PlaySound Windows APIで再生するExcel VBAコード

Option Explicit

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
        (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
        
Private Sub CommandButton1_Click()
    PlaySound "c:\notify.wav", 1, 1
End Sub


※.notify.wavはWindows付属のWAVファイルです。

mciSendString Windows APIで再生するExcel VBAコード

Option Explicit

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
    (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
    ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
        
Private Sub CommandButton1_Click()
    Dim lRet As Long
    
    lRet = mciSendString("Play c:\notify.wav", "", 0, 0)
End Sub


Windows Media Playerで再生するExcel VBAコード

Option Explicit

Private Sub CommandButton1_Click()
    'Windows Media Player
    Shell "mplay32.exe /play /close c:\notify.wav"
End Sub



Homeに戻る > Excel ブックのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved