HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Alwin Weisangler
20.06.2026 10:37:56
AW: Sprachausgabe in Excel
Hallo Udo,

bevor ich dir das deinen Dingen passend weiter baue, teste diesen per API-Funktion aufgebauten und asynchron zu VBA arbeitenden Vorschlag:


Option Explicit
Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, ByVal hModule As LongPtr, ByVal dwFlags As Long) As Long

Const SND_ASYNC As Long = &H1
Const SND_FILENAME As Long = &H20000
Const SND_NOSTOP As Long = &H10

Sub SprecheZweiTexte()
Dim wav1$, wav2$
wav1 = Environ$("TEMP") & "\tts1.wav" ' kann nach Bedarf erweitert werden
wav2 = Environ$("TEMP") & "\tts2.wav"
TextToWav "Ich spreche einen Text und dieser kann jederzeit abgebrochen werden ohne dass es zu irgenwelchen seltsamen Sachen kommen dürfte", wav1
TextToWav "ein weiterer gesprochender Text", wav2
' kann man sowohl mit Schleife als einzeln weiter bauen
PlayWavAndWait wav1
PlayWavAndWait wav2
End Sub

Sub StopSound() ' Das stoppt das jeweilige laufende Wave da asynchron direkt
PlaySound vbNullString, 0, 0
End Sub

Sub TextToWav(text As String, wavPath As String)
Dim spk As Object, fil As Object
Set spk = CreateObject("SAPI.SpVoice")
Set fil = CreateObject("SAPI.SpFileStream")
fil.Open wavPath, 3 ' SSFMCreateForWrite
Set spk.AudioOutputStream = fil
spk.Speak text
fil.Close
End Sub

Sub PlayWavAndWait(wavPath As String)
Dim i#: i = Timer
PlayWavAsync wavPath
Do While Timer < i + 0.1
DoEvents
Loop
Do While SoundIsPlaying()
DoEvents
Loop
End Sub

Sub PlayWavAsync(wavPath As String)
PlaySound wavPath, 0, SND_ASYNC Or SND_FILENAME
End Sub

Function SoundIsPlaying() As Boolean ' PlaySound mit SND_NOSTOP gibt 0 zurück, wenn gerade ein Sound läuft
SoundIsPlaying = (PlaySound(vbNullString, 0, SND_NOSTOP) = 0)
End Function

Was kann dieser Lösungsansatz (mehr ist es im Moment nicht):
- Die Wiedergabe arbeitet asynchron zu VBA
- Es kann jederzeit das aktuell laufende Wave abgebrochen werden (hat aber eine kleine treiberbedingte Latenz)
- Da eine Wave temporär erzeugt wird sollte die Wiedergabe störungsfrei sein

https://www.herber.de/bbs/user/180836.xlsm

Gruß Uwe
Als Antwort auf diesen Beitrag
Udo
20.06.2026 07:42:34
AW: Sprachausgabe in Excel
Ich muss mich entschuldigen, durch die viele herumprobiererei hab ich windows sound ausgeschaltet gehabt.
Es sprechen alle codes von euch,leider wird bei allen immer was verschluckt und abbrechen funktioniert auch nicht.
die codes was ich gesendet habe verschlucken nichts aber sie frieren mir mein excel ein und keine chance abbzubrechen vielleicht könntet wer die lösung finden.
Danke LG
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.