ppt提取文字到word的代码(多种代码可选)

步骤有空再写

一、步骤

  1. 开启ppt中开发工具(如果选项卡中显示就跳过)
    点击文件——更多——选项——自定义功能区——勾选开发工具
    在这里插入图片描述
    在这里插入图片描述
  2. 按步骤进入,填入代码,代码在下一节。

开发者工具——查看代码——工具——引用。
在这里插入图片描述

找到Microsoft Word 开头的选项,勾选,确定。
在这里插入图片描述

插入——模块。在弹出的窗口填入代码,最后在插入选项卡下面找到绿色三角,点击即可运行代码。
在这里插入图片描述

二、代码

根据需要选其中一种就行。

1.提取文字到指定的文档,没有则新建。不能提取表格文字
Sub ExtractTextToWordDoc()
  Dim objPresentation As Presentation
  Dim objSlide As Slide
  Dim objShape As Shape
  Dim objTextFrame As TextFrame
  Dim objTextRange As TextRange
  Dim strOutput As String
  Dim objWord As Object
  Dim objDoc As Object

  Set objPresentation = ActivePresentation
  Set objWord = CreateObject("Word.Application")
  Set objDoc = objWord.Documents.Add

  For Each objSlide In objPresentation.Slides
    For Each objShape In objSlide.Shapes
      If objShape.HasTextFrame Then
        Set objTextFrame = objShape.TextFrame
        Set objTextRange = objTextFrame.TextRange
        strOutput = strOutput & objTextRange.Text & vbCrLf
      End If
    Next
  Next

  objDoc.Range.InsertAfter strOutput
  objDoc.SaveAs "C:\Output.docx"
  objDoc.Close
  objWord.Quit

  MsgBox "文本提取已完成!"
End Sub

2.会到开一个新文档,不能提取表格文字
Sub ExtractText()
Dim pptSlide As Slide
Dim pptShape As Shape
Dim wordApp As Object
Dim wordDoc As Object
Dim text As String
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
Set wordDoc = wordApp.Documents.Add()
For Each pptSlide In ActivePresentation.Slides
For Each pptShape In pptSlide.Shapes
If pptShape.HasTextFrame Then
text = pptShape.TextFrame.TextRange.text
wordDoc.Range.InsertAfter text
End If
Next pptShape
Next pptSlide
End Sub

3.会到开一个新文档,能提取表格文字,但表格中的文字会乱。
Sub ExtractText()
Dim pptSlide As Slide
Dim pptShape As Shape
Dim pptTable As Table
Dim wordApp As Object
Dim wordDoc As Object
Dim text As String
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
Set wordDoc = wordApp.Documents.Add()
For Each pptSlide In ActivePresentation.Slides
For Each pptShape In pptSlide.Shapes
If pptShape.HasTable Then ' 检查pptShape是否是Table
Set pptTable = pptShape.Table ' 将pptShape强制转换为表格对象
For i = 1 To pptTable.Rows.Count
For j = 1 To pptTable.Columns.Count
text = pptTable.Cell(i, j).Shape.TextFrame.TextRange.text
wordDoc.Range.InsertAfter text
wordDoc.Range.InsertAfter " " ' 用空格分隔每个单元格中的文字
Next j
Next i
ElseIf pptShape.HasTextFrame Then
text = pptShape.TextFrame.TextRange.text
wordDoc.Range.InsertAfter text
End If
Next pptShape
Next pptSlide
End Sub
4.文字也能提取,但我运行后显示错误

一下代码可以逐一尝试,但不保证可以顺利运行,我的报错如图。这些方法也是搜来的,我也不懂vbs。如果有懂得的大佬可以说说,感谢😋

报错信息

  1. 第一种
Sub ExtractText()
Dim pptSlide As Slide
Dim pptShape As Shape
Dim pptTable As Table
Dim wordApp As Object
Dim wordDoc As Object
Dim text As String
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
Set wordDoc = wordApp.Documents.Add()
For Each pptSlide In ActivePresentation.Slides
For Each pptShape In pptSlide.Shapes
If pptShape.HasTable Then
Set pptTable = pptShape.Table
For i = 1 To pptTable.Rows.Count
For j = 1 To pptTable.Columns.Count
text = pptTable.Cell(i, j).Shape.TextFrame.TextRange.Text
wordDoc.Tables.Add wordDoc.Range, 1, 1 ' 在Word文档中插入一个表格
wordDoc.Tables(1).Cell(i, j).Range.Text = text ' 将单元格中的文字插入到新表格中
Next j
Next i
ElseIf pptShape.HasTextFrame Then
text = pptShape.TextFrame.TextRange.Text
wordDoc.Range.InsertAfter text
End If
Next pptShape
Next pptSlide
End Sub
  1. 第二种
Sub ExtractText()
Dim pptSlide As Slide
Dim pptShape As Shape
Dim pptTable As Table
Dim wordApp As Object
Dim wordDoc As Object
Dim text As String
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
Set wordDoc = wordApp.Documents.Add()
For Each pptSlide In ActivePresentation.Slides
For Each pptShape In pptSlide.Shapes
If pptShape.HasTable Then
Set pptTable = pptShape.Table
Dim new_table As Table
Set new_table = wordDoc.Tables.Add(wordDoc.Range, pptTable.Rows.Count, pptTable.Columns.Count) ' 在 Word 文档中添加新表格
For i = 1 To pptTable.Rows.Count
For j = 1 To pptTable.Columns.Count
text = pptTable.Cell(i, j).Shape.TextFrame.TextRange.Text
new_table.Cell(i, j).Range.Text = text ' 将单元格中的文字插入到新表格中
Next j
Next i
ElseIf pptShape.HasTextFrame Then
text = pptShape.TextFrame.TextRange.Text
wordDoc.Range.InsertAfter text
End If
Next pptShape
Next pptSlide
End Sub
  1. 第三种
Sub ExtractText()
Dim pptSlide As Slide
Dim pptShape As Shape
Dim pptTable As Table
Dim wordApp As Object
Dim wordDoc As Object
Dim text As String
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
Set wordDoc = wordApp.Documents.Add()
For Each pptSlide In ActivePresentation.Slides
    For Each pptShape In pptSlide.Shapes
        If pptShape.HasTable Then
            Set pptTable = pptShape.Table
            Dim new_table As Table
            Set new_table = wordDoc.Tables.Add(wordDoc.Range(), pptTable.Rows.Count, pptTable.Columns.Count)
            For Each row In pptTable.Rows
                For Each column In pptTable.Columns
                    text = pptTable.Cell(row.Index, column.Index).Shape.TextFrame.TextRange.Text
                    new_table.Cell(row.Index, column.Index).Range!.Text = text
                Next column
            Next row
        ElseIf pptShape.HasTextFrame Then
            text = pptShape.TextFrame.TextRange.Text
            wordDoc.Range.InsertAfter(text)
        End If
    Next pptShape
Next pptSlide
End Sub

  1. 第四种
Sub ExtractText()
Dim pptSlide As Slide
Dim pptShape As Shape
Dim pptTable As Table
Dim wordApp As Object
Dim wordDoc As Object
Dim text As String
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
Set wordDoc = wordApp.Documents.Add()
For Each pptSlide In ActivePresentation.Slides
    For Each pptShape In pptSlide.Shapes
        If pptShape.HasTable Then
            Set pptTable = pptShape.Table
            Dim new_table As Table
            Set new_table = wordDoc.Tables.Add(wordDoc.Range(), pptTable.Rows.Count, pptTable.Columns.Count)
            For Each row In pptTable.Rows
                For Each column In pptTable.Columns
                    text = pptTable.Cell(row.Index, column.Index).Shape.TextFrame.TextRange.Text
                    new_table.Rows(row.Index).Cells(column.Index).Range.Text = text
                Next column
            Next row
        ElseIf pptShape.HasTextFrame Then
            text = pptShape.TextFrame.TextRange.Text
            wordDoc.Range.InsertAfter text
        End If
    Next pptShape
Next pptSlide
End Sub

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一、把PPTWORD形式的方法  1.利用"大纲"视图  打开PPT演示文稿,单击"大纲",在左侧"幻灯片/大纲”任务窗格的“大纲”选项卡里单击一下鼠标,按"Ctrl+A"组合健全选内容,然后使用"Ctrl+C"组合键或右键单击在快捷菜单中选择"复制"命令,然后粘贴到Word里。 提示:这种方法会把原来幻灯片中的行标、各种符号原封不动的复制下来。   2.利用"发送"功能巧换 打开要换的PPT幻灯片,单击"文件"→"发送"→"MicrosoftWord"菜单命令。然后选择"只使用大纲"单选按钮并单击"确定"按钮,等一会就发现整篇PPT文档在一个Word文档里被打开。  提示: 在换后会发现Word有很多空行。在Word里用替换功能全部删除空行可按"Ctrl+H"打开"替换"对话框,在"查找内容"里输入"^p^p",在"替换为"里输入"^p",多单击几次"全部替换"按钮即可。("^"可在英文状态下用"Shift+6"键来输入。)    3.利用"另存为"直接换    打开需要换的幻灯片,点击"文件"→"另存为",然后在"保存类型"列表框里选择存为"rtf"格式。现在用Word打开刚刚保存的rtf文件,再进行适当的编辑即可实现换。   4.PPTConverttoDOC软件换 PPTConverttoDOC是绿色软,解压后直接运行,在运行之前请将WordPPT程序都关闭。选中要换的PPT文件,直接拖曳到"PPTConverttoDOC"程序里。单击工具软件里的"开始"按钮即可换,换结束后程序自动退出。     提示:  如果选中"换时加分隔标志",则会在换好的word文档中显示当前内容在原幻灯片的哪一页。换完成后即可自动新建一个Word文档,显示该PPT文件中的所有文字。 ps: 第四种慎用,百度上很多所谓的那个软件都是有病毒的,毒性不小,一般的杀毒软件查不出~~ PDF文档的规范性使得浏览者在阅读上方便了许多,但倘若要从里面提取些资料,实在是麻烦的可以。 二把PDF换成Word的方法 Adobe Acrobat 7.0 Professional 是编辑PDF的软件。 用Adobe Acrobat 7.0 Professional 打开他另存为WORD试试看。 或者用ScanSoft PDF Converte,安装完成后不须任何设置,它会自动整合到Word中。当我们在Word中点击“打开”菜单时,在“打开”对话框的“文件类型”下拉菜单中可以看到“PDF”选项,这就意味着我们可以用Word直接打开PDF文档了! ScanSoft PDF Converter的工作原理其实很简单,它先捕获PDF文档中的信息,分离文字、图片、表格和卷,再将它们统一成Word格式。由于Word在打开 PDF文档时,会将PDF格式换成DOC格式,因此打开速度会较一般的文件慢。打开时会显示PDF Converter换进度。换完毕后可以看到,文档中的文字格式、版面设计保持了原汁原味,没有发生任何变化,表格和图片也完整地保存下来了,可以轻松进行编辑。 除了能够在Word中直接打开PDF文档外,右击PDF文档,在弹出菜单中选择“Open PDF in Word”命令也可打开该文件。另外,它还会在Outlook中加入一个工具按钮,如果收到的电子邮件附件中有PDF文档,就可以直接点击该按钮将它换成Word文件。 有时我们在网上搜索到PDF格式的文件,同样可以通过右键菜单的相关命令直接在Word中打开它。 三、Word换成PPT的方法 我们通常用Word来录入、编辑、打印材料,而有时需要将已经编辑、打印好的材料,做成PowerPoint演示文稿,以供演示、讲座使用。如果在PowerPoint中重新录入,既麻烦又浪费时间。如果在两者之间,通过一块块地复制、粘贴,一张张地制成幻灯片,也比较费事。其实,我们可以利用PowerPoint的大纲视图快速完成换。 首先,打开Word文档,全部选中,执行“复制”命令。然后,启动PowerPoint,如果是Word 2002版,选择“普通”视图,单击“大纲”标签(如图1);如果没有“大纲”和“幻灯片”选项卡,显示的方法是在“视图”菜单上,单击“普通(恢复窗格)”或在窗口的左下角,单击〔普通视图(恢复窗格)〕按钮;如果是Word 97/2000版,可直接选择“大纲”视图,将光标定位到第一张幻灯片处,执行“粘贴”命令,则将Word文档中的全部内容插入到了第一幻灯片中。接着,可根据需要进行文本格式的设置,包括字体、字号、字型、字的颜色和对齐方式等;然后将光标定位到需要划分为下一张幻灯片处,直接按回车键,即可创建出一张新的幻灯片;如果需要插入空行,按〔Shift+Enter〕。经过调整,很快就可以完成多张幻灯片的制作(如图2)。最后,还可以使用“大纲”工具栏,利用“升级”、“降级”、“上移”、“下移”等按钮进一步进行调整。 反之,如果是将PowerPoint演示文稿换成Word文档,同样可以利用“大纲”视图快速完成。方法是将光标定位在除第一张以外的其他幻灯片的开始处,按〔BackSpace〕(退格键),重复多次,将所有的幻灯片合并为一张,然后全部选中,通过复制、粘贴到Word中即可。 四将PDF换成TXT的方法 方法一: 用以上方法将PDFDOC,再用WORD将DOCTXT 方法二:用PDF2TXT 3.1汉化版 PDF2TXT 3.1汉化版可以快速把.pdf文件换为.txt或.htm(.html)文件的小工具.操作简单,快捷注:Adobe Acrobat Reader6.0以上版本可以直接把PDF文件另存为txt文件。 五、PDFBMP 方法一:用PDFTOOLS PDF是Adobe公司开发的作为全世界可移植电子文档的通用格式,它能够正确保存文件的字体、格式、颜色和图片,使文件的交流可以轻易跨越应用程序和系统平台的限制。但是,一些文档的特殊操作(如提取PDF文档中的一段文字或图片)对于一般用户来说,不是那么容易上手的。不过现在有了PDFTools这款神奇工具后,你就可以轻松地把PDF文档的内容换成HTM、TXT和BMP这三种常用的文件格式。 为了PDFTools能更好地为我们服务,我们首先得对它进行一番设置。在主界面中点击菜单“文件→设置”或直接按“Ctrl+D”组合键调出设置对话框。在“常规设置”标签页中设置页面的换范围,默认为全部换,你可以点击下拉按钮,选择“选择指定页”后,输入换的起始页和停止页。未注册版本只能换PDF文档的前五页内容。 “输出设置”框的内容是设置输入图片的像素和JPEG图片质量。选中“换后浏览”的复选框,那么当文档换完成后,程序就会调出对应程序打开换后的文件。“PDF2HTM”标签页只有一“使用完全处理模式”复选框,依实际情况决定。 六PDFHTM 的方法 HTM是网页的通用格式,但PDFTools换HTM文件后,所形成的HTM文件并不包含有PDF文档中的文字,而是将PDF文档的内容换成JPG图像文件,然后再用HTML语言将图片嵌入到网页中。生成的HTM文件是一个框架网页,即左边是各页面的链接窗口,右边的内容就是JPG图片了。如果你用的是IE6的话,当鼠标移到右边窗口后,就会浮出一排快捷工具栏。 首先选择菜单“工具→PDFHTM”,使其为HTM模式。接着打开文件有多种操作方式:通过菜单“文件→打开”直接按“Ctrl+F”键后调出打开对话框选择文件,或者直接把待换的PDF文档拖到PDFTools主界面中,软件马上开始换。换后的文件是保存在文件中,而且还有相应名称的子文件夹,里面就是一些JPG图片和其它资。最后弹出一个提示窗口,点击“确定”即可

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值