ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Macro to play wave file in current directory (https://www.excelbanter.com/excel-programming/297032-macro-play-wave-file-current-directory.html)

yo beee

Macro to play wave file in current directory
 
Hello all,
I am using the following code to play a wave file and it works
perfectly.

Sub PlayMe3()
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Dim retval As Long
retval = PlaySound("C:\ABCDirectory\ACDB\wavtest.wav", _
0, SND_ASYNC Or SND_FILENAME)
End Sub

However, if the directory name is changed it will not work without changing
the name in the macro as well. Can anyone suggest a change in the macro to
play the wave file in the directory what ever the name of the directory is?
The wave file is normally saved in the same directory as the excel file. So
basically the macro needs to call up the wave file in what ever the
directory is that the excel file resides in. I was thinking something like:

Sub PlayMe3()
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Dim retval As Long
retval = PlaySound("..\..\wavtest.wav", _
0, SND_ASYNC Or SND_FILENAME)
End Sub

....this did not work, by the way. Any help is appreciated.

TIA,
yo beee




Melanie Breden

Macro to play wave file in current directory
 
However, if the directory name is changed it will not work without changing
the name in the macro as well. Can anyone suggest a change in the macro to
play the wave file in the directory what ever the name of the directory is?
The wave file is normally saved in the same directory as the excel file. So
basically the macro needs to call up the wave file in what ever the
directory is that the excel file resides in. I was thinking something like:

Sub PlayMe3()
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Dim retval As Long
retval = PlaySound("..\..\wavtest.wav", _
0, SND_ASYNC Or SND_FILENAME)
End Sub


try this:

retval = PlaySound(ThisWorkbook.Path & "\wavtest.wav", _
0, SND_ASYNC Or SND_FILENAME)

--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)


Bob Phillips[_6_]

Macro to play wave file in current directory
 
Put it in a function as a first step to add flexibility.

Then use ThisWorkbook for the call

PlayWavFile ThisWorkbook/Path & "\wavtest.wav"

if you want to run it in the activeworkbook.directory, use

Play WavFile ActiveWorkbook & "\wavtest.wav"

'-----------------------------------------------------------------
Public Function PlayWavFile(WavFile As String) As String
'-----------------------------------------------------------------
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
PlaySound WavFile, 0, SND_ASYNC Or SND_FILENAME
PlayWavFile = ""
End Function


--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"yo beee" wrote in message
...
Hello all,
I am using the following code to play a wave file and it works
perfectly.

Sub PlayMe3()
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Dim retval As Long
retval = PlaySound("C:\ABCDirectory\ACDB\wavtest.wav", _
0, SND_ASYNC Or SND_FILENAME)
End Sub

However, if the directory name is changed it will not work without

changing
the name in the macro as well. Can anyone suggest a change in the macro to
play the wave file in the directory what ever the name of the directory

is?
The wave file is normally saved in the same directory as the excel file.

So
basically the macro needs to call up the wave file in what ever the
directory is that the excel file resides in. I was thinking something

like:

Sub PlayMe3()
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Dim retval As Long
retval = PlaySound("..\..\wavtest.wav", _
0, SND_ASYNC Or SND_FILENAME)
End Sub

...this did not work, by the way. Any help is appreciated.

TIA,
yo beee







All times are GMT +1. The time now is 01:45 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com