在PowerPoint(VBA)中的演讲
我希望能够用PowerPoint讲话,说点什么 我尝试了以下代码来让PP说话: 专用子命令按钮1\u单击 Application.Speech.Speak Hello World 端接头 但是代码不起作用,它不存在。我能做什么,这是正确的代码? 它表示:未找到编译错误方法或数据成员在PowerPoint(VBA)中的演讲,vba,powerpoint,speech,Vba,Powerpoint,Speech,我希望能够用PowerPoint讲话,说点什么 我尝试了以下代码来让PP说话: 专用子命令按钮1\u单击 Application.Speech.Speak Hello World 端接头 但是代码不起作用,它不存在。我能做什么,这是正确的代码? 它表示:未找到编译错误方法或数据成员 抱歉,我的问题出错。它不起作用的原因是PPT对象模型中没有Application.Speech属性/方法。在某些地方,我见过调用Excel进行提升的代码,但下面是PPT Alchemy的John Wilson给出的答
抱歉,我的问题出错。它不起作用的原因是PPT对象模型中没有Application.Speech属性/方法。在某些地方,我见过调用Excel进行提升的代码,但下面是PPT Alchemy的John Wilson给出的答案,似乎更直接: 我们的网站上有一个关于聊天信息框的页面 它可以很容易地修改为在幻灯片放映模式下以一种形状说出文本
Sub speak(oshp As Shape)
Dim strSpeak As String
Dim SAPIObj As Object
Set SAPIObj = CreateObject("SAPI.SPvoice")
SAPIObj.Rate = -2
If oshp.HasTextFrame Then
If oshp.TextFrame.HasText Then
strSpeak = oshp.TextFrame.TextRange.Text
End If
End If
SAPIObj.speak "<pitch middle='-15'>" & strSpeak
End Sub
如果不需要从特定形状拾取文本,则应沿以下几行进行修改:
Sub SayThisAloud(sText as String)
Dim SAPIObj As Object
Set SAPIObj = CreateObject("SAPI.SPvoice")
SAPIObj.Rate = -2
SAPIObj.speak "<pitch middle='-15'>" & sText
End Sub
关于MSDN页面,需要进行一些编辑/修改才能将其转换为更有用的内容。例如,下面是一个示例,说明如何获取可用语音列表: 在声明部分:
Private V As Object
Private T As Object
然后
这句话似乎是对的。为什么/怎么不起作用?出了什么问题?发布你的完整代码。我不知道,这就是我来这里的原因!这是完整的代码。上面写着:找不到编译错误方法或数据成员。实际上,完整代码是:Private Sub CommandButton1\u Click Application.Speech.Speak Hello World End SubAny help,请?是的。在发布之前,我在这里再次测试了它,以确保。有没有办法改变语言?有没有办法改变语言?我不知道,但我会在这里开始探索:看新答案。这是一个开始。我尝试了该代码,但显然只有一种语音Microsoft Zira Desktop-English United States。我还注意到,在语音属性的控制面板中,有一个用于语音选择的just on选项。好的,我尝试下载了一种新语言,我安装了它,但它不起作用,我还重新启动了我的电脑。恐怕我只知道这些。也许其他人可以在这里跳更多的经验?嗯,通过一些研究和多次尝试,我知道如何安装它,有必要做一些修改Regestry,但不幸的是,它不适合我。。。也许你能帮我,林克:
Sub ListVoices()
On Error GoTo EH
Dim strVoice As String
Dim SAPIObj As Object
Set SAPIObj = CreateObject("SAPI.SPvoice")
'Get each token in the collection returned by GetVoices
For Each T In SAPIObj.GetVoices
strVoice = T.GetDescription 'The token's name
'List1.AddItem strVoice 'Add to listbox
Debug.Print strVoice
Next
Exit Sub
EH:
If Err.Number Then ShowErrMsg
End Sub
Private Sub ShowErrMsg()
' Declare identifiers:
Dim T As String
T = "Desc: " & Err.Description & vbNewLine
T = T & "Err #: " & Err.Number
MsgBox T, vbExclamation, "Run-Time Error"
End
End Sub