PlayWavFile

  • Thread starter Thread starter art
  • Start date Start date
A

art

Hello:

Does anybody know if there is any issues or problems with function
"PlayWavFile" in 2007? I tried using this but it keeps telling me function
not defined. Please help.
 
Art,

Sounds like the declaration was lost:

Declare Function PlayWavFile Lib "winmm.dll" Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long


Sub PlayMySound()
Call PlayWavFile("C:\WINDOWS\MEDIA\Jungle Error.WAV", 0)
End Sub
 
I have this in the worksheet:

Option Explicit
Public Declare Function sndPlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub PlayWavFile(WavFileName As String)
sndPlaySound WavFileName, 1
End Sub

and in the sheet module I have

Sub TestPlayWavFile()
PlayWavFile "C:\WINDOWS\Media\Windows XP Startup.Wav"
End Sub


Am I missing something? Please let me know.
 
Art,

Put it all into a regular codemodule, not in the sheet's codemodule..

HTH,
Bernie
MS Excel MVP
 
Can you please give me the whole code in one length since I'm not so famiar
with it. I tried but there is something wrong I'm doing. So please give me
the whole code I should use.

Thanks.
 
In a regular codemodule:

Option Explicit
Public Declare Function sndPlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub PlayWavFile(WavFileName As String)
sndPlaySound WavFileName, 1
End Sub

'This is the sub to run:
Sub TestPlayWavFile()
PlayWavFile "C:\WINDOWS\Media\Windows XP Startup.Wav"
End Sub


HTH,
Bernie
MS Excel MVP
 
Do I copy and paste the whole code in vba?

I got the error message "Compile Error, Constant, fixed length strings,
arrays, user defined types and delare ststaments not allowed as public
members of object moduls".

Please help me.
 
Yes, copy all that code - but you are putting the code into the codemodule of either a sheet object
or the thisworkbook object, not a regular codemodule.

In the VBE, use Insert / Module and paste the code into that module.

HTH,
Bernie
MS Excel MVP
 
In the VB editor, click Insert/Module on the menu bar and put this part of
Bernie's code in the code window that appears...

Public Declare Function sndPlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long

Sub PlayWavFile(WavFileName As String)
sndPlaySound WavFileName, 1
End Sub

Now, in the code window for your worksheet (where I think you originally
placed Bernie's code), delete the code you got from Bernie earlier and just
put this part of it in there instead...

Sub TestPlayWavFile()
PlayWavFile "C:\WINDOWS\Media\Windows XP Startup.Wav"
End Sub

This last code is actually a substitute for your own macro if you have one.
If you have your own macro, then put the PlayWavFile statement in it and run
that macro; if you do NOT have your own macro, then just run the
TestPlayWavFile macro instead.

Rick
 
Thanks your'e the best.

Bernie Deitrick said:
Yes, copy all that code - but you are putting the code into the codemodule of either a sheet object
or the thisworkbook object, not a regular codemodule.

In the VBE, use Insert / Module and paste the code into that module.

HTH,
Bernie
MS Excel MVP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top