Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA apllication.speech.speak

Forumthread: VBA apllication.speech.speak

VBA apllication.speech.speak
05.08.2021 11:56:13
stef26
Hallo liebe Excelprofis,
ich hätte da mal eine Frage auf die ich im Internet nicht wirklich was dazu gefunden habe.
VBA apllication.speech.speak
Über diese Funktion kann man sich Wörter aussprechen lassen.
Ich hatte es schon mal soweit, dass ich deutsch und englisch mir Wörter aussprechen lassen konnte.
Aktuell geht nur noch englisch und ich weiß nicht einmal genau was ich da geändert habe.
Nun würde ich gerne mir die Wörter auf französisch vorlesen lassen.
Wer kann mir sagen wie ich das hin bekomme.
Unter Windows Sprache habe ich Deutsch, Englisch und nun auch Französisch bereits installiert.
Liebe Grüsse
Stef26
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA apllication.speech.speak
05.08.2021 12:14:19
stef26

Sub TestSprach()
Dim speech As New SpVoice
Set speech.Voice = speech.GetVoices.Item(0)
'MsgBox "You have " & speech.GetVoices.Count & " voices installed"
Application.speech.Speak ("connaître"), SpeakAsync:=True
Application.speech.Speak ("wait"), SpeakAsync:=True
Application.speech.Speak ("bleiben"), SpeakAsync:=True
End Sub
Ich stelle das item von 0 andere Werte, jedoch keine Veränderung der Sprache. Bei mir ist 0-3 möglich, jedoch ohne Änderung der Sprache?
Anzeige
AW: VBA apllication.speech.speak
05.08.2021 12:39:35
Nepumuk
Hallo Stef,
du musst natürlich die Sprache angeben in der ein Wort gesprochen wird:

Sub TestSprach()
Dim speech As New SpVoice
Set speech.Voice = speech.GetVoices.Item(0)
speech.Speak ("wait"), SVSFlagsAsync
Set speech.Voice = speech.GetVoices.Item(1)
speech.Speak ("bleiben"), SVSFlagsAsync
Set speech.Voice = speech.GetVoices.Item(3)
speech.Speak ("connaître"), SVSFlagsAsync
End Sub
Gruß
Nepumuk
Anzeige
AW: VBA apllication.speech.speak
05.08.2021 12:45:08
Nepumuk
Ooooooooops,
bei französisch natürlich Item(2)
Gruß
Nepumuk
AW: VBA apllication.speech.speak
05.08.2021 15:54:24
stef26
Hallo, danke für die Rückmeldung,

Sub TestSprach()
Dim speech As New SpVoice
Set speech.Voice = speech.GetVoices.Item(2)
Application.speech.Speak ("soigneux"), SpeakAsync:=True
End Sub
Das mit dem Ändern des Item hab ich schon gemacht. Aber keines der Item spricht das Wort in französisch aus...?
Wo kann ich erkennen, auf was für Sprache die Items zugreifen?
Ich denke dort liegt bei mir dann das Problem...
Gruß
Stefan
Anzeige
AW: VBA apllication.speech.speak
05.08.2021 15:58:29
Nepumuk
Hallo Stefan,
du musst Application. weg lassen, das ist die Stimme von Excel in englisch.
Teste mal damit:

Public Sub TestSprach()
Dim objSpeech As Object
Set objSpeech = CreateObject(Class:="SAPI.SpVoice.1")
Set objSpeech.Voice = objSpeech.GetVoices.Item(0)
Call objSpeech.Speak("wait")
Set objSpeech.Voice = objSpeech.GetVoices.Item(1)
Call objSpeech.Speak("bleiben")
Set objSpeech.Voice = objSpeech.GetVoices.Item(2)
Call objSpeech.Speak("soigneux")
Set objSpeech = Nothing
End Sub
Gruß
Nepumuk
Anzeige
DANKE!!!
05.08.2021 16:17:03
stef26
Hallo Nepumuk,
danke das war es !!!
Dankeschön für eure Hilfe
Gruß
Stefan
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

VBA Anwendung der Funktion application.speech.speak in Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Neues Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.

  3. 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
  4. 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

  1. 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
  2. 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.

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