• ベストアンサー

VBAでwaveを再生する方法

こんばんは。 質問を読んでいただきありがとうございます。 EXCEL2003のVBAでボタンを押すとwave音源の再生されるようにしたいのですがが、さっぱり分かりません。 どうかアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#22650
noname#22650
回答No.1

>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 ----以上ソース----

Abideby
質問者

お礼

ありがとうございます! ソースまでつけていただき本当に助かります。 さっそく使わせていただきます。 ありがとうございました!

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんばんは。 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 でも動きます。

Abideby
質問者

お礼

リンク・ページ大変参考になりました。 ありがとうございました!