メディアの再生(MP3の音楽や効果音、動画も再生できるよって話)


別の動画で「VBAで任意の文字列を読み上げる」やり方をご紹介しました。その動画をご覧になったであろう知人から「合成音声じゃなく効果音をならしたい」「いっそ、好きな音楽(MP3)を再生できたら便利じゃね?」「動画は?動画も再生できるの?ねえ、動画は?」と、ありがたい反響を多数いただきました。全部できます。ここでご紹介します。いくつかの方法を解説しますけど、一番やっかいなのは効果音の再生です。これにはAPIが必須です。

↓左上にあるをクリックすると、チャンネル登録できます。ぜひ、チャンネル登録をお願いします。あなたのチャンネル登録が、私のやる気を維持向上してくれます(笑)

【関連動画】

セル内文字列だけじゃない!マクロで任意の文字列を読み上げる
https://youtu.be/oNtHJ0lPpF0

マクロで、なぜ文字列はダブルコーテーション("")で囲むのか?という、実は奥が深い問題
https://youtu.be/hk2j8ieKfFw

Sub 拡張子関連付けで開く1()
    CreateObject("Wscript.Shell").Run "C:\Work\Excel012.wmv"
End Sub

Sub 拡張子関連付けで開く2()
    With CreateObject("Wscript.Shell")
        .Run "C:\Work\Mr_Sunny_Face.mp3"
    End With
End Sub
Sub 指定したアプリで開く()
    Shell "C:\Program Files (x86)\Windows Media Player\wmplayer.exe C:\Work\Excel012.wmv", vbNormalFocus
End Sub
Declare PtrSafe 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

Sub APIで再生()
    mciSendString "Play C:\Work\Chime 2.wav", "", 0, 0
End Sub

Sub APIで再生_ファイル名にスペース()
    mciSendString "Open ""C:\Work\Chime 2.wav""", "", 0, 0
    mciSendString "Play ""C:\Work\Chime 2.wav"" wait", "", 0, 0
    mciSendString "Close ""C:\Work\Chime 2.wav""", "", 0, 0
End Sub

Sub 終わったら効果音()
    Dim i As Long
    For i = 1 To 2000
        Range("A1") = i
    Next i
    mciSendString "Play C:\Work\Chime.wav", "", 0, 0
End Sub

動画で使用したブックのダウンロード(20200720.xlsm)

Office TANAKAのYouTubeチャンネルはこちら(動画一覧ページ)