- ベストアンサー
VBAでwaveを再生する方法
こんばんは。 質問を読んでいただきありがとうございます。 EXCEL2003のVBAでボタンを押すとwave音源の再生されるようにしたいのですがが、さっぱり分かりません。 どうかアドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>wave音源 wave音源とはwavファイルのことですか? もし違ったらこの回答は無視してください。(^^; 音楽再生用の関数作ってあるので良かったら使ってください。 (wav,mid,wma,mp3の再生が出来ます。) mciPlay("c:\temp\test.wav") で再生 mciStop("c:\temp\test.wav") で停止 ----以下ソース---- 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 Public Declare Function GetShortPathName Lib "kernel32" _ Alias "GetShortPathNameA" _ (ByVal lpszLongPath As String, _ ByVal lpszShortPath As String, _ ByVal cchBuffer As Long) As Long Sub mciPlay(fn As String) Dim rc As Long If Dir(fn) <> "" Then rc = mciSendString("Play " & ApiGetShortPathName(fn), "", 0, 0) End If End Sub Sub mciStop(fn As String) Dim rc As Long If Dir(fn) <> "" Then rc = mciSendString("Stop " & ApiGetShortPathName(fn), "", 0, 0) End If End Sub Function ApiGetShortPathName(lPath As String) As String Dim strShortPath As String * 255 Dim lngRet As Long Dim lngSiz As Long lngSiz = Len(strShortPath) lngRet = GetShortPathName(lPath, strShortPath, lngSiz) ApiGetShortPathName = Left(strShortPath, InStr(strShortPath, Chr(0)) - 1) End Function ----以上ソース----
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんばんは。 Excel の機能ではありませんから、VBA 必須です。 1. Media Player 等の音声プレイヤーソフトを起動して再生する [ Office TANAKA - Excel VBA(サウンドを再生する) ] http://www.officetanaka.net/excel/vba/tips/tips22.htm 2. プレイヤーソフトを使わないで再生する [VB WAVファイルを再生する - PlaySound, mciSendString ] http://homepage1.nifty.com/rucio/main/Samples/s_mm1.htm ※ VB6.0 での解説ですが、多少の修正で VBA でも動きます。
お礼
リンク・ページ大変参考になりました。 ありがとうございました!
お礼
ありがとうございます! ソースまでつけていただき本当に助かります。 さっそく使わせていただきます。 ありがとうございました!