ich hätte mal wieder eine Fragestellung bei der ich selber ohne eure Hilfe nicht weiterkomme.
Ich habe ein Programm, welches mir eine Vokabel laut vorliest.
Private Sub SuperTalk(Words As String, Person As String, Rate As Long, Volume As Long)
Dim Voc As SpeechLib.SpVoice
Set Voc = New SpVoice
With Voc
If UCase(Person) = "ENGL" Then
Set .Voice = .GetVoices.Item(0)
ElseIf UCase(Person) = "GERM" Then
Set .Voice = .GetVoices.Item(1)
End If
.Rate = Rate
.Volume = Volume
.Speak Words
End With
End Sub
Aufgerufen wir das über ein SUB in der diese Zeile steht. Es wird hier vorgelesen, was in der Zelle F2 steht.SuperTalk Tabelle3.Range("F2"), "ENGL", 1, 100
Ich möchte nun warten, bis der Text in der Zelle F2 vollständig gesprochen wurde.
Dies hab ich bisher mit wait gelöst, was aber schlecht ist, weil die Texte unterschiedlich lang sein können.
Nun hab ich folgendes gefunden was ich einbauen wollte:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dies hab ich dann nach dem Sprachaufruf rein gemacht.
Do
Sleep 250
Loop Until .Busy = False
in der Hoffnung, das das Makro nun wartet bis zu ende gesprochen wurde.
Leider startet das Makro nun gar nicht mehr. Es kommt die Fehlermeldung:
Unzulässiger oder nicht ausreichend definierter Verweis. Das Wort Busy wird dabei markiert.
Kann ich das so nicht anwenden, oder was mache ich da falsch.
Leider sind meine VBA Kenntnisse immer noch in den Kinderschuhen...
Gruß
Stefan