Wie spielt man einen Ton ab, wenn eine Bedingung in Excel erfüllt ist?
In Excel können wir die bedingte Formatierung anwenden, um Zellen zu formatieren und hervorzuheben, die den gewünschten Bedingungen entsprechen. Manchmal möchten Sie jedoch möglicherweise einen Ton abspielen, wenn eine Bedingung erfüllt ist. Zum Beispiel, wenn der Zellenwert in A1 größer als 300 ist, möchte ich, dass ein Ton abgespielt wird. Excel unterstützt diese Funktion nicht standardmäßig. In diesem Artikel stelle ich Ihnen einige VBA-Codes vor, um diese Aufgabe zu lösen.
Einen Standard-Systembeep-Ton basierend auf dem Zellenwert mit VBA-Code abspielen
Einen benutzerdefinierten Ton basierend auf dem Zellenwert mit VBA-Code abspielen
Einen Ton abspielen, wenn sich der Zellenwert in einer bestimmten Spalte ändert, mit VBA-Code
Einen Standard-Systembeep-Ton basierend auf dem Zellenwert mit VBA-Code abspielen
Hier ist ein praktischer Code, um einen Standard-Systembeep-Ton abzuspielen, wenn eine bestimmte Bedingung erfüllt ist. Gehen Sie wie folgt vor:
1. Halten Sie die Tasten ALT + F11 gedrückt, dann öffnet sich das Microsoft Visual Basic for Applications-Fenster.
2. Klicken Sie auf Einfügen > Modul und fügen Sie den folgenden Code im Modulfenster ein.
VBA-Code: Einen Standard-Systembeep-Ton basierend auf einem Zellenwert abspielen:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. Speichern und schließen Sie dieses Codefenster, gehen Sie zurück zum Arbeitsblatt und geben Sie diese Formel ein: =WENN(A1>300;BeepMe();"") in eine leere Zelle neben der Zelle, die den Wert enthält, für den Sie einen Ton abspielen möchten, und drücken Sie die Eingabetaste. Im Formelfeld wird nichts angezeigt, siehe Screenshot:
4. Und jetzt wird, wenn der eingegebene Wert in Zelle A1 größer als 300 ist, ein Standard-Systembeep-Ton abgespielt.
Einen benutzerdefinierten Ton basierend auf dem Zellenwert mit VBA-Code abspielen
Wenn Sie einen anderen Ton als den Standard-Systembeep-Ton abspielen möchten, kann Ihnen hier auch ein VBA-Code helfen.
1. Halten Sie die Tasten ALT + F11 gedrückt, dann öffnet sich das Microsoft Visual Basic for Applications-Fenster.
2. Klicken Sie auf Einfügen > Modul und fügen Sie den folgenden Code im Modulfenster ein.
VBA-Code: Einen spezifischen Ton basierend auf einem Zellenwert abspielen:
#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. Speichern und schließen Sie dieses Codefenster, kehren Sie zum Arbeitsblatt zurück und geben Sie diese Formel ein: =WENN(A1>300;SoundMe();"") in eine leere Zelle neben der Zelle, die den Wert enthält, für den Sie einen Ton abspielen möchten, und drücken Sie die Eingabetaste. Im Formelfeld wird nichts angezeigt, siehe Screenshot:
4. Ab sofort wird, wenn ein Wert größer als 300 in Zelle A1 eingegeben wird, sofort ein spezifischer Ton abgespielt.
Hinweis: Im obigen Code können Sie die Sound-WAV-Datei nach Bedarf aus dem Pfad c:\windows\media\ ändern. Siehe Screenshot:
Einen Ton abspielen, wenn sich der Zellenwert in einer bestimmten Spalte ändert, mit VBA-Code
Wenn Sie einen Ton abspielen möchten, wenn sich der Zellenwert in einer bestimmten Spalte ändert, können Sie den folgenden VBA-Code anwenden.
1. Klicken Sie mit der rechten Maustaste auf die Registerkarte des Blatts, in dem Sie einen Ton abspielen möchten, wenn sich der Wert in einer Spalte ändert, und wählen Sie Code anzeigen aus dem Kontextmenü. Kopieren und fügen Sie den folgenden Code im geöffneten Microsoft Visual Basic for Applications-Fenster in das leere Modul ein:
VBA-Code: Einen Ton abspielen, wenn sich der Zellenwert in einer Spalte ändert:
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
Hinweis: In dem obigen Code ist die Zahl 3 im Skript Columns(3) die Spaltennummer, in der Sie einen Ton abspielen möchten, wenn sich der Wert in dieser Spalte ändert.
2. Speichern und schließen Sie dieses Codefenster. Jetzt wird, wenn sich ein Zellenwert in der dritten Spalte ändert, ein Standard-Systembeep-Ton abgespielt.
Beste Büroproduktivitätswerkzeuge
Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen mit Registerkarten in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich hunderte von Mausklicks für Sie!