酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Excel2003のExcel VBAでWAVファイルを再生する方法

ボタンクリック音を鳴動させる

まずは、ボタンを押したらクリック音を鳴らすようにして欲しいとの事。

'指定されたサウンドを再生します。
Private Declare Function PlaySound Lib "winmm.dll" _
    Alias "PlaySoundA" (ByVal lpszName As String, _
    ByVal hModule As Long, _
    ByVal dwFlags As Long) As Long

'非同期再生フラグ
Private Const SND_ASYNC = &H1

'ボタンクリック音
Private Const ClickSoundFile = "ButtonClick.wav"

'*****************************************
'ボタンクリック音鳴動
'*****************************************
Public Sub PlayBottonClickSound()
    Dim FilePath As String

    FilePath = ThisWorkbook.Path & "\" & ClickSoundFile

    ' WAVファイルを再生する
    Call PlaySound(FilePath, 0, SND_ASYNC)
End Sub

適当なボタンを押した時に

Call PlayBottonClickSound

と「PlayBottonClickSound」をコールしてくれればOKですよ。

リピートで再生しつづける

次に、ボタンを押したら警告音を延々と鳴らすようにして欲しいとの事。

'指定されたサウンドを再生します。
Private Declare Function PlaySound Lib "winmm.dll" _
    Alias "PlaySoundA" (ByVal lpszName As String, _
    ByVal hModule As Long, _
    ByVal dwFlags As Long) As Long

'非同期再生フラグ
Private Const SND_ASYNC = &H1

'繰り返し再生(SND_ASYNCと一緒に指定する必要有り)
Private Const SND_LOOP = &H8

'警告音
Private Const WarningSoundFile = "Warning.wav"

'*****************************************
'警告音鳴動
'*****************************************
Public Sub PlayWarningSound()
    Dim FilePath As String

    FilePath = ThisWorkbook.Path & "\" & WarningSoundFile

    ' WAVファイルを再生する
    Call PlaySound(FilePath, 0, SND_ASYNC Or SND_LOOP)
End Sub

適当なボタンを押した時に

Call PlayWarningSound

と「PlayWarningSound」をコールしてくれればOKですよ。