VBA Anwendung der Funktion application.speech.speak in Excel
Schritt-für-Schritt-Anleitung
-
VBA-Editor öffnen: Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu starten.
-
Neues Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul
.
-
Code einfügen: Kopiere den folgenden Code in das Modul:
Public Sub TestSprach()
Dim objSpeech As Object
Set objSpeech = CreateObject(Class:="SAPI.SpVoice.1")
Set objSpeech.Voice = objSpeech.GetVoices.Item(0) ' Stimme ändern
Call objSpeech.Speak("wait")
Set objSpeech.Voice = objSpeech.GetVoices.Item(1) ' Stimme ändern
Call objSpeech.Speak("bleiben")
Set objSpeech.Voice = objSpeech.GetVoices.Item(2) ' Stimme ändern
Call objSpeech.Speak("soigneux") ' Französisch aussprechen
Set objSpeech = Nothing
End Sub
-
Code ausführen: Führe den Code aus, indem du F5
drückst oder auf die Schaltfläche "Ausführen" klickst.
Häufige Fehler und Lösungen
-
Fehler: Keine Audioausgabe
Lösung: Stelle sicher, dass die Stimme in den Windows-Einstellungen installiert und aktiv ist. Überprüfe die Spracheinstellungen in Windows.
-
Fehler: Falsche Aussprache
Lösung: Du musst die richtige Stimme auswählen. Ändere das Item im Code, um die gewünschte Sprache (z.B. Französisch) auszuwählen.
-
Fehler: Anwendung spricht Englisch
Lösung: Verwende Set objSpeech.Voice = objSpeech.GetVoices.Item(x)
, wobei x
die Indexnummer der gewünschten Stimme ist (0 = Englisch, 1 = Deutsch, 2 = Französisch).
Alternative Methoden
Falls die application.speech.speak
Methode nicht funktioniert, kannst du die SAPI.SpVoice
-Klasse nutzen, um Text in Sprache umzuwandeln. Hier ist ein Beispiel:
Sub AlternativeSprach()
Dim speech As Object
Set speech = CreateObject("SAPI.SpVoice")
speech.Speak "Bonjour, comment ça va?" ' Französisch vorlesen lassen
Set speech = Nothing
End Sub
Diese Methode ist besonders nützlich, wenn du mehrere Sprachen zur Verfügung hast und die Aussprache steuern möchtest.
Praktische Beispiele
-
Englisch aussprechen lassen:
Sub EnglischVorlesen()
Dim speech As Object
Set speech = CreateObject("SAPI.SpVoice")
speech.Speak "Hello, how are you?"
Set speech = Nothing
End Sub
-
Französisch vorlesen lassen:
Sub FranzösischVorlesen()
Dim speech As Object
Set speech = CreateObject("SAPI.SpVoice")
Set speech.Voice = speech.GetVoices.Item(2) ' Stimme auf Französisch setzen
speech.Speak "Bonjour, comment ça va?"
Set speech = Nothing
End Sub
Tipps für Profis
- Stimmen anpassen: Experimentiere mit verschiedenen Stimmen, die in Windows installiert sind. Du kannst die Liste der verfügbaren Stimmen mit
speech.GetVoices
abrufen.
- Asynchrone Sprachausgabe: Verwende
SpeakAsync:=True
für eine nicht-blockierende Sprachausgabe. Das ermöglicht dir, andere Aufgaben während der Sprachausgabe zu erledigen.
- Anpassung der Lautstärke: Du kannst die Lautstärke mit
speech.Volume = 100
(Maximal) oder speech.Volume = 0
(Stumm) anpassen.
FAQ: Häufige Fragen
1. Wie kann ich die Sprache ändern?
Um die Sprache zu ändern, musst du die Indexnummer der Stimme im Code anpassen. Zum Beispiel, Set objSpeech.Voice = objSpeech.GetVoices.Item(2)
für Französisch.
2. Funktioniert das auch in Excel Online?
Nein, die application.speech.speak
Methode ist nur in der Desktop-Version von Excel verfügbar. Excel Online unterstützt diese Funktion nicht.
3. Gibt es Einschränkungen bei der Sprachausgabe?
Ja, die Qualität der Sprachausgabe hängt von den installierten Stimmen auf deinem Windows-System ab. Achte darauf, Sprachpakete für die gewünschten Sprachen zu installieren.