Come riprodurre un suono se una condizione è soddisfatta in Excel?
In Excel, possiamo applicare la Formattazione Condizionale per formattare ed evidenziare le celle in base alle condizioni desiderate, ma a volte potresti voler riprodurre un suono quando una condizione è soddisfatta. Ad esempio, se il valore della cella A1 è maggiore di 300, voglio che venga riprodotto un suono. Excel non supporta questa funzionalità, quindi in questo articolo introdurrò alcuni codici VBA per risolvere questo compito.
Riproduci un suono di beep di sistema predefinito basato sul valore della cella con il codice VBA
Riproduci un suono personalizzato basato sul valore della cella con il codice VBA
Riproduci un suono se il valore della cella cambia in una colonna specifica con il codice VBA
Riproduci un suono di beep di sistema predefinito basato sul valore della cella con il codice VBA
Ecco un pratico codice per riprodurre un suono di beep di sistema predefinito quando viene soddisfatta una condizione specifica, segui queste istruzioni:
1. Tieni premuti i tasti ALT + F11, quindi si aprirà la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo e incolla il seguente codice nella finestra del Modulo.
Codice VBA: Riproduci un suono di beep di sistema predefinito basato sul valore di una cella:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. Salva e chiudi questa finestra del codice, torna al foglio di lavoro e inserisci questa formula: =SE(A1>300;BeepMe();"") in una cella vuota accanto alla cella che contiene il valore per cui vuoi riprodurre un suono, quindi premi il tasto Invio, non verrà visualizzato nulla nella cella della formula, vedi screenshot:
4. Ora, se il valore inserito nella cella A1 è maggiore di 300, verrà riprodotto un suono di beep di sistema predefinito.
Riproduci un suono personalizzato basato sul valore della cella con il codice VBA
Se vuoi riprodurre un suono diverso dal beep di sistema predefinito, ecco un altro codice VBA che può aiutarti.
1. Tieni premuti i tasti ALT + F11, quindi si aprirà la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo e incolla il seguente codice nella finestra del Modulo.
Codice VBA: Riproduci un suono specifico basato sul valore di una cella:
#If Win64 Then
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
'Updateby Extendoffice 20161223
Call PlaySound("c:\windows\media\Speech On.wav", _
0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
3. Salva e chiudi questa finestra del codice, torna al foglio di lavoro e inserisci questa formula: =SE(A1>300;SoundMe();"") in una cella vuota accanto alla cella che contiene il valore per cui vuoi riprodurre un suono, quindi premi il tasto Invio, non verrà visualizzato nulla nella cella della formula, vedi screenshot:
4. Da ora in poi, se viene inserito un valore maggiore di 300 nella cella A1, verrà riprodotto immediatamente un suono specifico.
Nota: Nel codice sopra riportato, puoi cambiare il file wav del suono secondo le tue esigenze dal percorso c:\windows\media\. Vedi screenshot:
Riproduci un suono se il valore della cella cambia in una colonna specifica con il codice VBA
Se vuoi riprodurre un suono quando il valore della cella cambia in una colonna specifica, puoi applicare il seguente codice VBA.
1. Fai clic con il tasto destro sulla scheda del foglio in cui vuoi riprodurre un suono quando il valore cambia in una colonna, quindi scegli Visualizza Codice dal menu contestuale, e nella finestra aperta di Microsoft Visual Basic for Applications, copia e incolla il seguente codice nel Modulo vuoto:
Codice VBA: Riproduci un suono se il valore della cella cambia in una colonna:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20161223
Dim xCell As Range
On Error Resume Next
If Target.Columns.Count = 1 Then
If Intersect(Target, Columns(3)) Is Nothing Then
Exit Sub
Else
For Each xCell In Columns(3)
On Error Resume Next
If (xCell.Value = Target.Value) And (xCell.Value <> "") Then
Beep
Exit For
End If
Next
End If
End If
End Sub
Nota: Nel codice sopra riportato, il numero 3 nello script Colonne(3) è il numero della colonna in cui vuoi riprodurre un suono quando il valore cambia in questa colonna.
2. Salva e chiudi questa finestra del codice, ora, se il valore di una cella cambia nella terza colonna, verrà riprodotto un suono di beep di sistema predefinito.
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!