用VBA宏代码,把幻灯片中所有文字,包括大纲视图中不显示的,快速提取到 Word |
您所在的位置:网站首页 › 怎么把ppt大纲提取出来 › 用VBA宏代码,把幻灯片中所有文字,包括大纲视图中不显示的,快速提取到 Word |
如题,用VBA宏代码,把幻灯片中所有文字,包括大纲视图中不显示的,快速提取到 Word。 造成大纲视图下不显示文字的原因是,创建幻灯片时,选择“空白”创建一个空白幻灯片,再在文本框内添加文字,或直接把文字复制到幻灯片中,在这两种情况下大纲视图都是不显示文字的,也无法把文字复制到 Word 或通过“创建讲义”方式转换成Word,主要是因为文本框中没有占位符。 而选择非“空白”幻灯片(如“标题幻灯片”或“标题和内容”),它们都有占位符(“单击此处添加标题”或“单击此处添加文本”便是占位符),这样添加完文字,在大纲视图下都是显示的。 那么下面我们开始用宏代码,把幻灯片中所有文字,快速提取到 Word: 在 PowerPoint 窗口,按 Alt + F11 打开 VBA 编辑窗口,单击“插入”,在弹出的菜单中选择“模块”,新建一个模块,把以下代码: Sub PPTToWord() On Error Resume Next Dim docObj As New Word.Document, shapeObj As Shape, slideObj As Slide For Each slideObj In ActivePresentation.Slides For Each shapeObj In slideObj.Shapes docObj.Range().Text = docObj.Range() + shapeObj.TextFrame.TextRange.Text Next shapeObj Next slideObj docObj.Application.Visible = True End Sub 复制到模块窗口,单击“工具”,然后选择“引用”,打开“引用”窗口,往下拖右边的滚动条一直找到 Microsoft Word Object Liblary(Word 对象类库),勾选它,单击“确定”,单击“运行”图标,则开始把PPT转Word,一会后转换完成,并自动用 Word 打开。这样,在 PowerPoint 的大纲视图中没有显示的内容也提取到了 Word。操作过程步骤,如图所示: 快速把幻灯片所有文字提取到 Word注意: 文字提取完,有可能顺序会出错,手动编辑下就好。 VBA 代码说明: A、On Error Resume Next 表示代码执行过程中发生错误后继续往下执行。 B、Dim docObj As New Word.Document 把 docObj 定义为 Word 的 Document(文档)对象,shapeObj As Shape 把 shapeObj 定义为Shape(形状)对象,slideObj As Slide 把 slideObj 定义为 Slide(幻灯片)对象。 C、ActivePresentation 表示活动(当前)窗口中的演示文稿,ActivePresentation.Slides 表示演示文稿中的所有幻灯片;slideObj.Shapes 表示形状对象 slideObj 中的所有形状,这里指所有幻灯片中的文本框。 D、Word 的 Range 对象用于表示文档中的一片连续区域,它有 Start 和 End 两个参数,Start 用于指定区域的开始字符,End 用于指定区域的结束字符,例如 Range(Start:=0, End:=5) 表示当前文档中从第 0 个到第 5 个字符;Range() 省略了参数,表示当前文档中所有字符,省略参数时,括号也可以省略,Range() 可以写为 Range;Range().Text(或 Range.Text)表示一片连续区域中的文字。 E、PowerPoint 中的 TextFrame 对象表示 Shape 对象中的文本框架;TextRange 表示文本框中的文本,用于操作文本的属性与方法。 F、For Each In ... Next 是循环语句,For Each slideObj In ActivePresentation.Slides ... Next 用于遍历当前窗口的演示文稿中 的每个幻灯片,第一次执行时,slideObj 表示第一个幻灯片;第二次执行时,slideObj 表示第二个幻灯片,其它的以此类推。 H、For Each shapeObj In slideObj.Shapes ... Next 用于遍历每个幻灯片中的所有文本框。 I、docObj.Range().Text = docObj.Range() + shapeObj.TextFrame.TextRange.Text 用于把遍历过的文本累加起来,docObj.Range() 表示已遍历过文本框中的文本,shapeObj.TextFrame.TextRange.Text 表示当前遍历文本框中的文本。 J、docObj.Application.Visible = True 用于把 Word 文档显示出来,Visible 是显示属性,设置为 True,表示显示,设置为 False,表示隐藏。 K、代码的意思是,先用外层循环遍历所有幻灯片,再用内层循环遍历每个幻灯片中的所有文本框,遍历完一个幻灯片后继续遍历下一个幻灯片,一直遍历完所有幻灯片。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |