Eseguire un suono proveniente da un file esterno Mp3 chiamato R.

Anonimo
2021-05-21T18:40:35+00:00

Ciao,

per eseguire un suono che mi avverte del raggiungimento di un obiettivo all'interno della cartella di lavoro, uso il seguente codice ben funzionante:

Da un Modulo standard:

Option Explicit

#If Win64 Then

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

#Else

    Private Declare 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

#End If

Private sMusicFile As String

Private Play

Public Sub PlaySound()

sMusicFile = "C:\Users\Vladimiro\Desktop\R.Mp3"

Play = mciSendString("play " & sMusicFile, 0&, 0, 0)

If Play <> 0 Then

End If

End Sub

Public Sub StopSound()

sMusicFile = "R.mp3" 

Play = mciSendString("close " & sMusicFile, 0&, 0, 0) 

End Sub

Dal Modulo del foglio di lavoro:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("B4") > 3 Then

PlaySound 

End If

End Sub

Quello che mi serve è la possibilità di non specificare il percorso del file Mp3.

Mi spiego.

In Access c'è un'applicazione che fa in modo, una volta inserito file di Access e file Mp3 in una stessa cartella, di non dover di volta in volta specificarne il percorso una volta modificato:

sMusicFile = Application.CurrentProject.Path & "\R.Mp3"

Purtroppo in Excel non l'ho trovata.

In definitiva c'è un modo per modificare il seguente percorso?

sMusicFile = "C:\Users\Vladimiro\Desktop\R.Mp3"

Vladimiro

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2021-05-22T23:19:12+00:00

A me funziona benissimo.

Prova a lanciare la macro presente nel file Excel dopo averlo estratto

https://1drv.ms/u/s!AmEDljrOgi7EgZcFNKrYVp5anT_...

Attenzione che mciSendString fallisce se il "percorso" del file contiene spazi anche racchiudendolo tra virgolette.

E' proprio una limitazione di quella DLL, quindi devi estrarre quel file Zip in C: o

in C:\Desktop

o in qualsiasi cartella che non contenga spazi.

Es:

C:\Paolo Rossi non andrebbe bene.

La risposta è stata utile?

0 commenti Nessun commento

8 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2021-05-22T11:39:53+00:00

    Ciao Vladimiro,

    per eseguire un suono che mi avverte del raggiungimento di un obiettivo all'interno della cartella di lavoro, uso il seguente codice ben funzionante:

    Da un Modulo standard:

    Option Explicit

    #If Win64 Then

    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

    #Else

    Private Declare 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

    #End If

    Private sMusicFile As String

    Private Play

    Public Sub PlaySound()

    sMusicFile = "C:\Users\Vladimiro\Desktop\R.Mp3"

    Play = mciSendString("play " & sMusicFile, 0&, 0, 0)

    If Play <> 0 Then

    End If

    End Sub

    Public Sub StopSound()

    sMusicFile = "R.mp3"

    Play = mciSendString("close " & sMusicFile, 0&, 0, 0)

    End Sub

    Dal Modulo del foglio di lavoro:

    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Range("B4") > 3 Then

    PlaySound

    End If

    End Sub

    Quello che mi serve è la possibilità di non specificare il percorso del file Mp3.

    Mi spiego.

    In Access c'è un'applicazione che fa in modo, una volta inserito file di Access e file Mp3 in una stessa cartella, di non dover di volta in volta specificarne il percorso una volta modificato:

    sMusicFile = Application.CurrentProject.Path & "\R.Mp3"

    Purtroppo in Excel non l'ho trovata.

    In definitiva c'è un modo per modificare il seguente percorso?

    sMusicFile = "C:\Users\Vladimiro\Desktop\R.Mp3"

    Prova qualcosa del genere:

    '========>>

    Option Explicit

    '-------->>

    Public Sub Demo()

    Dim WB As Workbook 
    
    Dim sPath As String 
    
    Dim sMusicFile As String 
    
    sPath = GetDesktop 
    
    sMusicFile = sPath & "\R.Mp3" 
    

    End Sub

    '-------->>

    Public Function GetDesktop() As String

    Dim oShell As Object 
    
    Set oShell = CreateObject("WScript.Shell") 
    
    GetDesktop = oShell.SpecialFolders("Desktop") 
    
    Set oShell = Nothing 
    

    End Function

    '<<========

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2021-05-21T19:30:53+00:00

    Ciao, comunidade Benvenuto nella Microsoft. Piacere di aiutarti. Sono Sandro, un consulente indipendente.

    Ciao Sandro,

    è già la seconda volta che ti intrometti senza dare alcuna risposta.

    A che gioco stai giocando, anche perché nell'altro mio post hai scritto le stesse cose con gli stessi errori:

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2021-05-21T19:26:58+00:00

    potresti essere un po 'più chiaro per favore. Cosa vuoi che venga fatto?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2021-05-21T19:12:31+00:00

    Ciao, comunidade Benvenuto nella Microsoft. Piacere di aiutarti. Sono Sandro, un consulente indipendente.

    La risposta è stata utile?

    0 commenti Nessun commento