有时候需要把大量的docx文件另存为其它格式,比如pdf、doc、rtf、txt,或者反向转换,可以用VBA批量处理。启动word,按下Alt+F11,打开Microsoft Visual Basic for Applications,点击 插入>模块,将下面的代码粘贴进去,然后按F5(某些笔记本电脑可能需要按Fn+F5),或者点击图中的绿色小三角形,便可以执行代码。代码中涉及到的路径要根据自己的实际情况进行修改。pdf文件除了能保持复杂的排版和数学公式不走样,还可以再借助Adobe Acrobat(不是Adobe Reader)另存为png、jpg等图片格式(pdf文件的每一页会成为一张单独的图片)。因为word本身不能直接另存为图片,所以需要借助pdf中转。下面的代码中用到了open函数,并且为名为Visible的参数赋值为msoFalse(msoFalse前面共有11个英文逗号),目的是打开文件时不在word窗口中显示文件的内容,加快转换速度。尝试过使用Application.ScreenUpdating = False来实现与Visible=msoFalse相同的效果,然而并不可行,不知是什么原因。Replace的作用是修改后缀名,SaveAs2的作用是“另存为”。

PowerPoint的批量转换参见 https://blog.csdn.net/pijianzhirui/article/details/85936272
          Excel的批量转换参见 https://blog.csdn.net/pijianzhirui/article/details/85939896

还有一个名为Office Tool Plus(官网:https://otp.landian.vip/zh-cn/)的工具也可以进行批量格式转换。

'docx转pdf、doc、rtf、txt
Option Explicit
Sub docx2other()
On Error Resume Next
Dim sEveryFile As String,sSourcePath As String,sNewSavePath As String
Dim CurDoc As Object
sSourcePath = "E:\DOCX文件\"
'假定待转换的docx文件全部在"E:\DOCX文件\"下,你需要按实际情况修改。
sEveryFile = Dir(sSourcePath &"*.docx")
Do While sEveryFile <> ""Set CurDoc = Documents.Open(sSourcePath & sEveryFile, , , , , , , , , , , msoFalse)sNewSavePath = VBA.Strings.Replace(sSourcePath & sEveryFile, ".docx", ".pdf")'如果想导出doc/rtf/txt等,就把上一行行尾的pdf换成doc/rtf/txt'转化后的文件也在"E:\DOCX文件\"下,当然你可以按需修改。CurDoc.SaveAs2 sNewSavePath, wdFormatPDF'pdf对应wdFormatPDF,doc对应wdFormatDocument,rtf对应wdFormatRTF,txt对应wdFormatText'更多格式可参见文末的截图WdSaveFormat EnumerationCurDoc.Close SaveChanges:=FalsesEveryFile= Dir
Loop
Set CurDoc = Nothing
End Sub
'pdf、doc、rtf、txt转docx
Option Explicit
Sub other2docx()
On Error Resume Next
Dim sEveryFile As String,sSourcePath As String,sNewSavePath As String
Dim CurDoc As Object
sSourcePath = "E:\PDF文件\"
'假定待转换的pdf文件全部在"E:\PDF文件\"下,你需要按实际情况修改。
sEveryFile = Dir(sSourcePath &"*.pdf")
Do While sEveryFile <> ""Set CurDoc = Documents.Open(sSourcePath & sEveryFile, , , , , , , , , , , msoFalse)CurDoc.Convert sNewSavePath = VBA.Strings.Replace(sSourcePath & sEveryFile, ".pdf", ".docx")'要把doc/rtf/txt转为docx,则把上面第9行和第13行两处".pdf"改为".doc"/".rtf"/".txt"'转化后的文件也在"E:\PDF文件\"下,当然你可以按需修改。CurDoc.SaveAs2 sNewSavePath, wdFormatDocumentDefaultCurDoc.Close SaveChanges:=FalsesEveryFile = Dir
Loop
Set CurDoc = Nothing
End Sub

pdf转docx时很容易报错,比如“运行时错误'5121':抱歉,在将您的 PDF 转化为 Word 文档时遇到问题。(xxx.pdf)”转换速度非常慢,有时候还会让word卡死,于是只能用任务管理器结束掉word。注意观察是哪个PDF文件导致卡死,然后把这个PDF文件挪到别的文件夹,不要再让word进行转化了,试试用Adobe Acrobat转换。在word 2016中测试,即使是扫描版(纯图片)PDF,word 2016也能进行文字识别,不确定更低版本的word能否将pdf转为docx,以及能否进行文字识别。


以下为一些函数的介绍。

Word VBA批量格式转换:docx转pdf、doc、rtf、txt以及反向转换相关推荐

  1. PowerPoint VBA批量格式转换:pptx转pdf、ppt以及反向转换

    这篇博客阅读量较大,借此为思杰马克丁做个广告. 揭露苏州小叶网络科技有限公司不齿行径  https://bbs.kafan.cn/thread-2095728-1-1.html 揭开软件行业毒瘤思杰马 ...

  2. Excel VBA批量格式转换:xlsx转pdf、xls、csv以及反向转换

    有时候需要把大量的xlsx文件另存为其它格式,比如pdf.xls.csv,或者反向转换,可以用VBA批量处理.启动Excel,按下Alt+F11,打开Microsoft Visual Basic fo ...

  3. 多个word vba批量替换文字(一个文件夹)

    多个word批量替换word文字! Sub 替换N个word文档()Dim Dm As DocumentDim MyPath As StringDim MyName As StringDim N As ...

  4. Word VBA(批量复制Excel表格和Word表格到Word中)

    Function Test()  '使用双字典          SearchPath = FolderDialog("请选择文件夹")     If SearchPath = & ...

  5. 【Python服务生活系列--2】实现WPS Office付费功能 word转换纯图pdf

    前言 大家好,今天来填上一次埋下的坑~~本期为大家讲解如何通过Python实现wps office当中的付费功能,word转换纯图pdf. 我的思路 前言 1:将word文件转换为普通pdf文件 2: ...

  6. openoffice命令行方式将word、excel、ppt转成pdf

    上一篇记录了安装libreoffice的方式将office文档转换成pdf,接下来将使用openoffice实现同样的功能. 首先到openoffice官网下载最新的rpm压缩包: https://w ...

  7. blue html中转换,BlueFox Free PDF to HTML Converter(PDF文件转换软件)

    BlueFox Free PDF to HTML Converter是一款pdf文件转换软件,能直接查看PDF文件和对PDF文件进行编辑,支持批量进行转换,使用非常方便,操作简单,有需要可以下载. 软 ...

  8. Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvc

    Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCo ...

  9. java 接口文档的格式化_Java Word API - 读写转换处理DOC DOCX HTML PDF HTML格式

    Java Word 文档处理API 先进功能 执行邮件合并 使用邮件合并生成报表 插入格式户文本,段落,图像,表格以及其他内容到Word文档中 使用数据库的检索数据填充到Word文档中的表格 创建邮件 ...

最新文章

  1. yum 安装指定版本php,怎样通过yum安装指定版本的php
  2. Qt QComboBox下拉框文字重叠解决方法
  3. php 上传大文件涉及的配置,upload_max_filesize,post_max_size
  4. java lists 引用包,在线等java【不在同一类,同一个包的两个LIst可以实现复制么?怎...
  5. 苹果将放弃PowerPC支持 全面Intel化
  6. js参数使用时常犯的一个低级错误
  7. Python3+Selenium3自动化测试-(一)
  8. 最小生成树之prim算法
  9. HDU 1244 DP
  10. jupyter 写sql_了解适用于SQL Server的Jupyter Notebooks
  11. 编译原理 - SLR(1)
  12. java中mysql.ini_为什么找不到mysql.ini文件,我是放在scr目录下的
  13. 轻松筹 html模板,水滴筹、轻松筹感人标题模板25个字怎么写?在朋友圈发求捐款语录怎么写?...
  14. 查找python array索引
  15. mysql mtq_Mysql常用简介 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
  16. 2021-2022年小学期 程序设计开发实践 随堂笔记
  17. linux相关命令------文件内容显示以及文件其他命令
  18. Android快递轨迹查询 “KD快递查询”
  19. 关于计算机专业励志的话,电脑行业励志语录
  20. Android - 开发者选项中的一些必知必懂必会

热门文章

  1. 软件测试基础(十一)测试UI界面检查
  2. oracle数据库offline,Oracle表空间Offline的三种参数--1
  3. 判断数组里面的对象是否相同与不相同
  4. 看完Spring源码记不住,是我脑子不太好吗?
  5. LeetCode622循环队列C语言实现
  6. Bagging 简述
  7. Swift - Selector
  8. 001上海市某区政府政务外网信息安全运维项目服务细则
  9. vue 父子组件传值
  10. redis重启后mysql丢失_Windows系统Redis重启后数据丢失的处理办法(待测)