我在Microsoft Word上使用VBA。 我已经创建了SAPI.SpVoice对象:
Set speech = CreateObject("SAPI.SpVoice")
我正在用它来阅读所选段落:
Selection.Next(wdParagraph).Select
speech.Speak Selection.Text, 3
效果很好。现在,当“说话”结束时,我希望程序自动移至下一段并阅读。即再次运行上述两行代码。
当我在C#中执行类似的操作时,我使用了SpeechSynthesizer.SpeakCompleted事件来调用“移至下一段并阅读”功能。我正在寻找VBA中的等效项。
有什么想法吗?
答案 0 :(得分:1)
找到了解决方案。显然,该解决方案本身很简单,但由于我在VBA中的引用错误,因此无法正常工作。
在VBA>工具>参考中,“ Microsoft Speech Object Library”有两种外观。
有人引用了C:\ Windows \ System32 \ Speech_OneCore \ common \ sapi_onecore.dll 另一个是引用C:\ Windows \ System32 \ Speech \ Common \ sapi.dll
第二个是正确的。
解决此问题后,我仅使用了简单的集成事件:
Private Sub speech_EndStream(ByVal StreamNumber As Long, ByVal StreamPosition As Variant)
'Do stuff
End Sub