2014-03-04 58 views
0

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

- 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

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

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

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

好的,谢谢你的简单回答,但我的问题是现在:你如何找到当前幻灯片上的文本框内容。 (请参阅我的编辑当前代码) –

+0

假设您在幻灯片上只有1个文本框,您将用1替换“形状(4)”中的4。此数字指的是幻灯片中形状的索引。 – Mike

相关问题