在PowerPoint(VBA)中的演讲

在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给出的答

我希望能够用PowerPoint讲话,说点什么

我尝试了以下代码来让PP说话: 专用子命令按钮1\u单击 Application.Speech.Speak Hello World 端接头

但是代码不起作用,它不存在。我能做什么,这是正确的代码? 它表示:未找到编译错误方法或数据成员


抱歉,我的问题出错。

它不起作用的原因是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