Hoe een geluid afspelen als een voorwaarde is voldaan in Excel?
In Excel kunnen we Voorwaardelijke opmaak gebruiken om cellen te formatteren en te markeren die aan de gewenste voorwaarde voldoen, maar soms wilt u misschien een geluid afspelen wanneer een voorwaarde is voldaan. Bijvoorbeeld, als de celwaarde in A1 groter is dan 300, wil ik dat er een geluid wordt afgespeeld. Excel ondersteunt deze functie niet, in dit artikel zal ik enkele VBA-codes introduceren om deze taak op te lossen.
Een standaard systeem piepgeluid afspelen gebaseerd op celwaarde met VBA-code
Een aangepast geluid afspelen gebaseerd op celwaarde met VBA-code
Een geluid afspelen als de celwaarde verandert in een specifieke kolom met VBA-code
Een standaard systeem piepgeluid afspelen gebaseerd op celwaarde met VBA-code
Hier is een handige code om een standaard systeem piepgeluid af te spelen wanneer een specifieke voorwaarde is voldaan, doe het volgende:
1. Houd de toetsen ALT + F11 ingedrukt, dan opent zich het Microsoft Visual Basic for Applications-venster.
2. Klik op Invoegen > Module, en plak de volgende code in het Modulevenster.
VBA-code: Een standaard systeem piepgeluid afspelen gebaseerd op een celwaarde:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. Sla vervolgens dit codevenster op en sluit het, ga terug naar het werkblad, en voer deze formule in: =IF(A1>300,BeepMe(),"") in een lege cel naast de cel die de waarde bevat waarop je een geluid wilt afspelen, en druk vervolgens op de Enter-toets, er zal niets worden weergegeven in de formulecel, zie screenshot:
4. En nu, als de ingevoerde waarde in cel A1 groter is dan 300, wordt een standaard systeem piepgeluid afgespeeld.
Een aangepast geluid afspelen gebaseerd op celwaarde met VBA-code
Als je een ander geluid wilt afspelen dan het standaard systeem piepgeluid, hier is ook een VBA-code die je kan helpen.
1. Houd de toetsen ALT + F11 ingedrukt, dan opent zich het Microsoft Visual Basic for Applications-venster.
2. Klik op Invoegen > Module, en plak de volgende code in het Modulevenster.
VBA-code: Een specifiek geluid afspelen gebaseerd op een celwaarde:
#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. Sla vervolgens dit codevenster op en sluit het, ga terug naar het werkblad, en voer deze formule in: =IF(A1>300,SoundMe(),"") in een lege cel naast de cel die de waarde bevat waarop je een geluid wilt afspelen, en druk vervolgens op de Enter-toets, er zal niets worden weergegeven in de formulecel, zie screenshot:
4. Vanaf nu, als een waarde groter dan 300 wordt ingevoerd in cel A1, wordt er direct een specifiek geluid afgespeeld.
Opmerkingen: In de bovenstaande code kunt u het geluids-wav-bestand naar uw behoefte wijzigen vanaf c:\windows\media\ bestandspad. Zie screenshot:
Een geluid afspelen als de celwaarde verandert in een specifieke kolom met VBA-code
Als u een geluid wilt afspelen wanneer de celwaarde verandert in een specifieke kolom, kunt u de volgende VBA-code gebruiken.
1. Klik met de rechtermuisknop op het bladtabblad waarop u een geluid wilt afspelen wanneer de waarde in een kolom verandert, kies dan Weergave Code uit het contextmenu, en in het geopende Microsoft Visual Basic for Applications-venster kopieert en plakt u de volgende code in de lege Module:
VBA-code: Een geluid afspelen als de celwaarde verandert in een kolom:
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
Opmerking: In de bovenstaande code is het getal 3 in het script Columns(3) het kolomnummer waarin u een geluid wilt afspelen wanneer de waarde in deze kolom verandert.
2. Sla vervolgens dit codevenster op en sluit het, nu, als een celwaarde verandert in de derde kolom, wordt een standaard systeem piepgeluid afgespeeld.
Beste Office-productiviteitstools
Versterk je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die je het meest nodig hebt...
Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
- Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!