【问题标题】:Reading Information from a textbox in VBA in PowerPoint在 PowerPoint 中从 VBA 中的文本框中读取信息
【发布时间】:2014-04-05 08:01:51
【问题描述】:

我昨天刚刚发现了 VBA,我玩得很开心,但是我遇到了一个问题:你如何阅读文本框的内容。它是幻灯片上唯一的文本框,我希望它能够应用于 PowerPoint 中的所有幻灯片。如果这没有意义,请让我澄清一下。

--编辑-- 基本上,我想读取文本框的内容,就这么简单。

--编辑-- 这是我当前的代码:

Sub answer()
    Dim lCurrentView As Long
    Dim myInput As String
    Dim sld As Slide
    Set sld = Application.ActiveWindow.View.Slide
    myInput = sld.Shapes(4).TextFrame.TextRange.Text
    A = InputBox(prompt:="Your Answer:")
    MsgBox (myInput)
    If A = myInput Then
        MsgBox ("Correct!")
        ActivePresentation.SlideShowWindow _
        .View.GotoSlide Int(Rnd * _
        ActivePresentation.Slides.Count) + 1
    Else
        MsgBox ("Sorry, try again...")
    End If
End Sub

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    尝试运行此宏并在“调试”窗口中检查结果(按 Ctrl+G 将其打开)。一步一步执行(按F8)并放一些断点(按F9)并检查对象浏览器(选择一个变量并按Shift+F2)

    Sub Test()
      Dim Sld As Slide, Shp As Shape
      For Each Sld In ActivePresentation.Slides
        For Each Shp In Sld.Shapes
          Select Case Shp.Type
            Case MsoShapeType.msoTextBox
              Debug.Print Sld.Name, Shp.Name, Shp.TextFrame.TextRange.Text
            Case Else
              Debug.Print Sld.Name, Shp.Name, "This is not a text box"
          End Select
        Next Shp
      Next Sld
    End Sub
    

    【讨论】:

      【解决方案2】:

      在演示文稿第一张幻灯片的第一个文本框中键入一些文本。然后打开VBA编辑器,在“VBAProject”下右击,选择“Add Module”。在新模块中,粘贴以下代码并点击“播放”按钮。

      Sub Textbox_reader()
          Dim myInput As String
          myInput = ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text
          MsgBox (myInput)
      End Sub
      

      【讨论】:

      • 好的,感谢您的简单回答,但我现在的问题是:如何找到当前幻灯片上的文本框内容。 (查看我对当前代码的编辑)
      • 假设幻灯片上只有 1 个文本框,您可以将 Shapes(4) 中的 4 替换为 1。这个数字是指幻灯片上形状的索引。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 2011-06-08
      • 2021-02-02
      • 2014-05-27
      • 2010-11-30
      相关资源
      最近更新 更多