codice:
Public Const SND_ASYNC = &H1
Public Const SND_LOOP = &H8
Public Const SND_MEMORY = &H4
Public Const SND_NODEFAULT = &H2
Public Const SND_SYNC = &H0
Public Const SND_NOSTOP = &H10


'· lpszSound = percorso del suono da eseguire
'· fuSound = tipologia di riproduzione: ecco le seguenti opzioni
'       SND_ASYNC = esecuzione asincrona, la funzione ritorna subito dopo l'avvio del suono e per fermarlo
                    'occorre chiamare la funzione con lpszsound = NULL
'       SND_LOOP = esecuzione continua finchè non viene chiamata nuovamente la funzione con lpszsound = NULL
'       SND_MEMORY = riguarda l'immagine nella memoria, non ti interessa per il tuo scopo
'       SND_NODEFAULT = se non viene trovato il suono non viene eseguito
'       SND_NOSTOP = se il suono è già in esecuzione la funzione ritorna falso, e non viene eseguito il suono
'       SND_SYNC = esecuzione sincrona, la funzione non ritorna finchè non finisce il suono

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

Sub main()

Dim PercorsoFile As String

If Dir(PercorsoFile) <> "" Then

         sndPlaySound PercorsoFile, SND_ASYNC

end if

End Sub