Die hier gezeigten Funktionen beziehen sich auf Systemklänge. Das Abspielen beliebiger Sounddateien, wie z. B. MP3 oder WAV, ist mit ShellExecute möglich.
VBA bringt von Haus aus die VBA-Prozedur
Beep mit, die, je nach
Systemeinstellung des PCs, einen einzelnen Ton abspielt. Wer es individueller und
unabhängig von den Soundeinstellungen des PCs benötigt, kann die gleichnamige
API-Funktion nutzen. Die folgende Beispielfunktion hat aber auch einen Nachteil:
Solange ein Ton abgespielt wird, wartet die Anwendung. Des weiteren überschreibt
in diesem Beispiel die API-Funktion Beep
die VBA-Funktion Beep
.
Falls man das nicht wünscht, muss man hier in der Deklaration noch einen
Alias einfügen.
#If VBA7 Then Public Declare PtrSafe Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Boolean 'dwFreq zwischen 37 und 32767 #Else Public Declare Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Boolean #End If
Public Sub demoGötterfunken() 'Frequenzen: Tonleiter für 2 Oktaven Const c1 = 262, d1 = 294, e1 = 330, f1 = 349, g1 = 392, a1 = 440, h1 = 494 Const c2 = 523, d2 = 587, e2 = 659, f2 = 698, g2 = 784, a2 = 880, h2 = 988 Dim lngViertel As Long lngViertel = 500 'Länge einer Viertelnote in ms Beep e1, lngViertel 'Freu Beep e1, lngViertel 'de Beep f1, lngViertel 'schö Beep g1, lngViertel 'ner Beep g1, lngViertel 'Göt Beep f1, lngViertel 'ter Beep e1, lngViertel 'fun Beep d1, lngViertel 'ken Beep c1, lngViertel 'Freu Beep c1, lngViertel 'de Beep d1, lngViertel 'aus Beep e1, lngViertel 'E Beep e1, lngViertel * 1.5 'ly Beep d1, lngViertel / 2 'si Beep d1, lngViertel * 2 'um End Sub
Spielt einen Ton ab, in Abhängigkeit vom Soundschema, das der User in den Systemeinstellungen ausgewählt hat. Die Anwendung läuft weiter, ohne das Abspielen des Tons abzuwarten.
#If VBA7 Then Public Declare PtrSafe Function MessageBeep Lib "user32" _ (ByVal uType As eType) As Boolean #Else Public Declare Function MessageBeep Lib "user32" _ (ByVal uType As eType) As Boolean #End If Public Enum eType MB_OK = 0 'Standard Sound MB_ICONERROR = &H10 'Kritischer Stop MB_ICONQUESTION = &H20 'Frage MB_ICONWARNING = &H30 'Warnung MB_ICONINFORMATION = &H40 'Information End Enum