从PowerPoint中的VBA中的文本框中读取信息

时间:2014-03-04 01:05:36

标签: vba powerpoint

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

- EDIT-- 基本上,我想阅读文本框的内容,就像那样简单。

- EDIT-- 这是我目前的代码:

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

2 个答案:

答案 0 :(得分:3)

尝试运行此宏并在“调试”窗口中检查结果(按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

答案 1 :(得分:1)

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

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