Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Signalton bei MsgBox unterdrücken

Forumthread: Signalton bei MsgBox unterdrücken

Signalton bei MsgBox unterdrücken
04.03.2009 09:12:18
Martin
Liebe Excelianer,
bei der Suche im Forum konnte ich keine Lösung zur Thematik Deaktivierung der Signaltöne einer MsgBox in Excel finden. Nur in der Systemsteuerung können die Soundeinstellungen von Programmereignissen eingestellt werden. Da ich (besonders auf fremden Computern) nicht für alle Programme die Windows-Soundeinstellungen verstellen möchte, hätte nur noch eine Idee:
Ist es möglich (zum Beispiel via API) vor Ausführung des MsgBox den Signalton direkt in der Systemsteuerung zu deaktivieren (bzw. temporär zu löschen) und anschließend nach erschienener MsgBox wieder einzutragen?
Viele Grüße
Martin
Anzeige

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Signalton bei MsgBox unterdrücken
04.03.2009 09:19:30
Renee
Hi Martin,
Nimm doch eine simple Userform die piepst nicht!
GreetZ Renée
AW: Signalton bei MsgBox unterdrücken
04.03.2009 09:28:07
Martin
Hallo René,
ich verwende so viele MsgBox, da wäre es mit UserFormen etwas umständlich. Aber ich bin bei meinem eigenen Lösungsansatz schon etwas weiter gekommen. Die Klänge werden in der Windows-Registry abgelegt unter:
[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\.Default]
Auf die Windows-Registry kann man über VBA zugreifen. Ich denke, dass ich es jetzt selber hinbekommen werde.
Trotzdem vielen Dank!
MfG
Martin
Anzeige
AW: Signalton bei MsgBox unterdrücken
04.03.2009 09:37:09
Peter
Hallo Martin,
MsgBox "Ich gebe keinen Laut von mir.", , " Hinweis für" & Application.UserName
Wichtig sind die beiden Kommata, zwischen denen normalerweise eine Nummer für das angezeigte Symbol steht.
Gruß Peter
AW: Signalton bei MsgBox unterdrücken
04.03.2009 09:49:32
Martin
Hallo Peter,
vielen Dank für Deine Antwort. Ich habe Deinen Text exakt kopiert, aber leider gibt die MsgBox trotzdem einen Laut von sich. Vielleicht ist der Signalton für dieses Ereignis in Deiner Systemsteuerung deaktiviert.
Viele Grüße
Martin
Anzeige
AW: Signalton bei MsgBox unterdrücken
04.03.2009 09:50:53
Renee
Hallo Peter,
Da wo du nix hast, kommen die Schaltflächen & ev. Symbole hin.
Das hat aber nix aber auch gar nix mit der Tatsache zu tun ob ein Signal abgespielt wird oder nicht.
Nur damit, welches Signal abgespielt wird (bei entsprechendem Symbol)!
Wenn kein Paramater angegeben wird, wird bei XP der Standardton Warnsignal abgespielt! Es sei den der ist in der Systemsteuerung auf Nix gesetzt!
GreetZ Renée
Anzeige
@ Renee
04.03.2009 11:55:08
Peter
Hej Renee,
bei mir unter Excel 2000 ertönt dann, wenn ich ein Symobol zwischen den beiden Kommata angebe ein kurzer Ton, der auf die MsfBox aufmerksam macht. Gebe ich kein Symbol an wird auch kein Ton gesendet und die MsgBox erscheint stumm auf dem Bildschirm. Dabei spielt das Symbol an sich keine Rolle, es ertönt der Ton bei allen Symbolen.
Gruß Peter
Anzeige
Einstellung Sounds-Sounds! (owT)
04.03.2009 11:58:09
Renee

UF zu umständlich...
04.03.2009 09:40:36
Renee
Hi Martin
Bei VBA gut dürfte es doch kein Problem sein eine (einzige) allgemeine UF zu basteln, die sich genau wie eine simple MSGBOX verhält. Zusätzlich eine kleine Routine (oder Function), die die gleichen Parameter wie die Msgbox entgegennimmt und entsprechend an die UF weitergibt. Dann noch alle MsgBox Befehle im Code durch MyMsgbox ersetzen und fertig.
Ich finde einen solchen Approach immer noch viel besser, als an der Registry rumzufummeln. Ich nehme an deine Excel's sollten auch auf VISTA oder anderen zukünftigen OS laufen. Als Firma würde ich es jedenfalls nicht zulassen, das ein Excel mit solchem Code ins Haus kommt.
Aber anyway, das ist nur mein Gefühl... Ich wünsche viel Glück...
GreetZ Renée
P.S. Hoffentlich laufen wärend deiner Ton-Ausschaltung keine Alarmierungsprogramme auf dem Rechner!!
Anzeige
AW: UF zu umständlich...
04.03.2009 09:55:42
Nepumuk
Hallo,
ich würde das sogar noch schärfer als Renée formulieren.
In praktisch keiner vernünftigen Firma hast du eine Chance überhaupt auf die Registry zuzugreifen.
Gruß
Nepumuk
AW: UF zu umständlich...
04.03.2009 10:25:06
Martin
Hallo Nepumuk,
wenn sogar ein angesehener Excel-Profi wie Du von dem Registry-Eingriff nichts hält, dann beuge ich mich lieber und werde doch die empfohlene "UserForm statt MsgBox"-Lösung verwenden. Vielen Dank!
MfG
Martin
Anzeige
wuaahh, bin nicht angesehen ;-) (owT)
04.03.2009 10:39:18
Renee

AW: wuaahh, bin nicht angesehen ;-) (owT)
04.03.2009 10:47:53
Martin
Hallo Renee,
sorry, so war das nicht gemeint. Nepumuk hat schon eine Sonderstellung hier im Forum und in Sachen Excel sollte man ihm quasi blind vertrauen. Ich hatte den von mir geplanten Registry-Eingriff als völlig unkritisch eingestuft und hatte daher trotz Deiner Meinung keinerlei Bedenken. Aber wenn sich dann "der Meister" zu Wort meldet...
Viele Grüße
Martin
Anzeige
AW: UF zu umständlich...
04.03.2009 10:05:35
Martin
Hallo René,
die Exceldatei hat über 4000 Zeilen VBA-Code mit wirklich unzählige MsgBoxen und je nach Vorgang wird eine ensprechende MsgBox angezeigt (vbExclamation / vbCritical / vbInformation). Die Exceldatei (ausschließlich unter Windows XP laufend) übernimmt eine Auswertung von Daten (über CSV-Import) einer anderen Anwendung, die ein externes Gerät via RS232 ansteuert. Bei Problemen sendet die andere Anwendung ein eigenes lautstarkes Dauersignal. Ich denke, dass dieser "einfache temporäre" Registry-Eingriff eine recht elegante Lösung ist. In diesem Fall handelt es sich schließlich auch um keinen systemkritischen Registry-Eingriff, der gravierende Auswirkungen haben könnte.
Viele Grüße
Martin
Anzeige
NP, mach was Du willst! (owT)
04.03.2009 10:07:12
Renee

geht auch ohne Userform.
04.03.2009 10:00:52
Tino
Hallo,
schau mal hier, gibt auch keine Töne von sich,
nur der Mausklick beim drücken ist zu hören, dies liegt aber an der Hardware ;-)
https://www.herber.de/forum/messages/1054536.html
Gruß Tino
aber einiges umständlicher
04.03.2009 10:30:43
Renee
Hi Tino,
Wie lange die XL5 Dialogdinger noch unterstützt werden ? ...na ja.
Ich finde es ziemlich umständlich den Dingern variablen Text zu übergeben!
Du nicht ?
GreetZ Renée
Anzeige
AW: aber einiges umständlicher
04.03.2009 10:35:31
Tino
Hallo,
da hast Du natürlich auch wieder recht.
Gruß Tino
AW: geht auch ohne Userform.
04.03.2009 10:40:06
Martin
Hallo Tino,
vielen Dank, das ist der von Renee angesprochene Lösungsweg. Noch besser geht das ganze (wie von Renee bereits beschrieben) über eine Function, damit müsste nicht für jede einzelne MsgBox eine eigene UserForm angelegt werden.
Function MsgAntwort(Titel, Nachricht, Button1, Button2, Button3)
Dann wird "Titel" als Überschrift der UserForm Caption-Eigenschaft, die Nachricht als Value-Eigenschaft einem Label und die Schalfflächenbeschriftung (Ja/Nein/Abbrechen/Ignorieren usw.) den Button zugewiesen.
Trotzdem vielen Dank
MfG
Martin
Anzeige
Noch eine Lösung:
04.03.2009 11:07:52
Martin
Hallo,
ich habe gerade noch eine Lösung gefunden. Auch hier ist zwar ein Reg-Eingriff erforderlich, aber das kann jeder manuell machen, wenn er will. Offensichtlich kann die MsgBox-Ton explizit für Excel eingestellt werden.
(Quelle: http://forums.devx.com/showthread.php?t=39280 )
Message boxes uses the system sounds and system sounds can be defined by
application. To define a sound for an application just add a key in the
registry with the exe name (without extension) in
HKCU\AppEvents\Schemes\Apps:
HKCU\AppEvents\Schemes\Apps\Excel
Then add the keys related to the events (you can see a list of keys in
HKCU\AppEvents\EventLabels):
HKCU\AppEvents\Schemes\Apps\Excel\SystemExclamation
Add a .Current key to that key and left the default value empty if you don't
want a sound or put the path and filename of a .wav file you want to play.
MfG
Martin
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Signalton bei MsgBox in Excel unterdrücken


Schritt-für-Schritt-Anleitung

Um den Signalton einer MsgBox in Excel zu deaktivieren, kannst du folgende Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf „Einfügen“ und wähle „Modul“.
  3. Erstelle eine Funktion zur Anzeige der MsgBox ohne Sound:

    • Kopiere und füge den folgenden Code in das Modul ein:
    Function MsgAntwort(Titel As String, Nachricht As String, Button1 As VbMsgBoxStyle, Optional Button2 As VbMsgBoxStyle = vbDefaultButton1) As VbMsgBoxResult
       Application.Speech.Speak " " 'Stumm schalten
       MsgAntwort = MsgBox(Nachricht, Button1, Titel)
    End Function
  4. Verwende die Funktion anstelle von MsgBox:

    • Ersetze deine bestehenden MsgBox-Anweisungen durch MsgAntwort, z.B.:
    MsgAntwort "Hinweis", "Keine Töne mehr!", vbCritical
  5. Teste das Ergebnis:

    • Führe deinen VBA-Code aus und prüfe, ob die MsgBox ohne Signalton erscheint.

Häufige Fehler und Lösungen

  • Signalton bleibt trotz Modifikation:

    • Stelle sicher, dass du die Funktion MsgAntwort korrekt anwendest und nicht mehr die Standard-MsgBox.
  • VBA-Code führt zu Fehlern:

    • Überprüfe, ob die Variablen und Parameter in deiner Funktion korrekt deklariert sind.
  • Excel stürzt ab oder verhält sich merkwürdig:

    • Achte darauf, dass du keine kritischen Registry-Eingriffe vornimmst. Halte dich an die oben beschriebenen Methoden.

Alternative Methoden

  • UserForms verwenden:

    • Erstelle eine UserForm, die die gleiche Funktionalität wie eine MsgBox hat, jedoch ohne Sound. Dies kann durch VBA einfach implementiert werden.
  • Registry-Eingriffe:

    • Du kannst den Ton für MsgBoxen in der Windows-Registry manuell anpassen. Beachte, dass dies Administratorrechte erfordert und nicht in jedem Unternehmensumfeld erlaubt ist.

Praktische Beispiele

  1. Standard MsgBox:

    MsgBox "Dies ist eine Warnung", vbExclamation, "Warnung"

    Dies erzeugt einen Signalton, wenn die MsgBox angezeigt wird.

  2. Benutzerdefinierte MsgBox ohne Ton:

    MsgAntwort "Warnung", "Dies ist eine Warnung", vbExclamation

    Hier wird die MsgBox ohne Signalton angezeigt.

  3. Verwendung von vbCritical:

    MsgAntwort "Kritische Meldung", "Ein Fehler ist aufgetreten!", vbCritical

    Auch hier bleibt der Signalton aus.


Tipps für Profis

  • Verwende die Application.Speech.Speak-Methode, um den Ton temporär zu unterdrücken, bevor du die MsgBox anzeigst.
  • Halte deine UserForms einfach und benutzerfreundlich, um die gleiche Funktionalität wie eine MsgBox zu erzielen.
  • Teste deine Lösungen auf verschiedenen Excel-Versionen, um Kompatibilitätsprobleme zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich den Signalton für alle MsgBoxen global ausschalten? Ja, durch die Verwendung einer benutzerdefinierten Funktion oder UserForm kannst du den Ton für alle MsgBoxen in deinem Projekt ausschalten.

2. Was ist der Unterschied zwischen vbCritical und vbExclamation in MsgBox? vbCritical zeigt ein rotes Symbol und hat in der Regel einen lauteren Signalton, während vbExclamation ein gelbes Symbol zeigt und meist einen weniger aufdringlichen Ton hat.

3. Ist es sicher, die Registry zu bearbeiten? Das Bearbeiten der Registry kann riskant sein, insbesondere wenn man nicht genau weiß, was man tut. Es wird empfohlen, dies nur dann zu tun, wenn du über ausreichende Kenntnisse verfügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige