プロが教えるわが家の防犯対策術!

こんばんは。
質問を読んでいただきありがとうございます。

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

A 回答 (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
----以上ソース----
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/12/02 21:03

こんばんは。



Excel の機能ではありませんから、VBA 必須です。

1. Media Player 等の音声プレイヤーソフトを起動して再生する
  
  [ Office TANAKA - Excel VBA(サウンドを再生する) ]
  http://www.officetanaka.net/excel/vba/tips/tips2 …

2. プレイヤーソフトを使わないで再生する

  [VB WAVファイルを再生する - PlaySound, mciSendString ]
  http://homepage1.nifty.com/rucio/main/Samples/s_ …
  
  ※ VB6.0 での解説ですが、多少の修正で VBA でも動きます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/02 21:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!