メモとして残します。
mciSendString APIでwavファイルを音量小さく再生したかったのですが、
setaudio
コマンドが何故か効かない。
オープンした際にtype mpegvideo
がなかったのが原因だった。
■やり方
'APIを使えるように宣言
Public 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
Sub test()
SoundFile = Chr(34) & "C:\Windows\Media\chord.wav" & Chr(34)
rc = mciSendString("Close MySound", "", 0, 0)
'重量なのはこいつ↓ エイリアスの次に必ず「type mpegvideo」とつけないと音量が操作できない
rc = mciSendString("Open " & SoundFile & " alias MySound type mpegvideo", "", 0, 0)
rc = mciSendString("setaudio MySound volume to 1000", "", 0, 0)
rc = mciSendString("Play MySound", "", 0, 0)
End Sub
■さいごに
本業はwebエンジニアなので、本当はwebのノウハウを蓄積したいが、WEBに関しては自分がめちゃくちゃ苦戦したことって先駆者が遺産を残しているため、なかなかそれを超えるアウトプットをQiitaでできないのがつらみ。
VBAってノウハウがweb関係と違って圧倒的にノウハウがインターネットになくてきつい(;´・ω・)