
Pred nedávnom som riešil podobný problém. Vyriešené pomocou Windows API. Možno pomôže.
- Win7 32, 64
- Cesta nesmie obsahovať medzery!
Option Explicit
Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim sMusicFile As String
Dim Play
Sub Sound() 'prehraje zvuk
sMusicFile = ThisWorkbook.Path & "\zvuk.mp3"
Play = mciSendString("play " & sMusicFile, 0&, 0, 0)
End Sub
Sub StopSound() 'zastavi aktualne spusteny zvuk.
Play = mciSendString("close " & sMusicFile, 0&, 0, 0)
End Sub
xlnc(14.6.2016 21:40)citovat#031759 
Drobné úpravy (cesta natvrdo s mezerami):
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
Dim strSouborMP3 As String
Sub PrehratMP3() 'prehraje zvuk
strSouborMP3 = "D:\testovací soubor.mp3"
'ukončení případného přehrávání
mciSendString "Close """ & strSouborMP3 & """", 0, 0, 0
'otevření souboru (příprava)
mciSendString "Open """ & strSouborMP3 & """", 0&, 0, 0
DoEvents
For i = 1 To 10000
'cyklus
Next i
'spuštění souboru
mciSendString "Play """ & strSouborMP3 & """", 0&, 0, 0
End Sub
Sub ZastavitMP3()
'ukončení případného přehrávání
mciSendString "Close """ & strSouborMP3 & """", 0&, 0, 0
End Sub
Mezery v cestě nejsou problém, holt musí být kompletní cesta v příkazu v uvozovkách.
API funkce má i příkaz pro otevření, čili doporučuji přípravu spolu s DoEvents před samotným spuštěním.
Pozn. Bohužel API funkce sndPlaySoundA neumí MP3, jen WAV.
timi(16.6.2016 19:16)citovat#031784 
děkuji za rady a ještě bych potřeboval spustit mp3 např v čase 0:02:00. šlo by to?
xlnc(7.9.2016 18:55)citovat#032713 
@bamboocha:
Svého času jsem měl vlastní funkci (UDF), kde ve výsledku funkce KDYŽ bylo spuštění zvuku (nejsnazší je ovšem spouštět WAV, lze i asynchronně).