使用VBS实现word、excel批量转换为pdf

该文章介绍了一种使用VisualBasicScript(VBS)在32位Office2007系统中批量将Word(.doc,.docx)和Excel(.xls,.xlsx)文件转换为PDF的解决方案。用户需要先安装SaveAsPDFandXPS.exe插件,然后创建并运行一个VBS脚本来实现文件转换。脚本会遍历指定文件夹中的文档,对符合条件的文件进行转换,并在转换完成后关闭应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用VBS实现word、excel批量转换为pdf

由于最近我家tiger有这方面的需求,且她单位用的是office 2007的32位系统,网上python转换的方法无法奏效,所以使用通用性还可以的VBS来实现,首先要安装SaveAsPDFandXPS.exe,有这个文件支撑,office才能实现转成pdf,wps是不需要的。然后新建一个txt的文本文件,然后把代码复制进去,保存后把文件的后缀改成 .vbs即可。代码在32位系统已测试过,放心使用。

代码如下:

On Error Resume Next
Const wdExportFormatPDF = 17
Set oWord = WScript.CreateObject("Word.Application")
Set oExcel = WScript.CreateObject("Excel.Application")
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set fds=fso.GetFolder(".")
Set ffs=fds.Files
Set WordIsopen = 0
Set ExcelIsopen = 0
For Each ff In ffs
    If (LCase(Right(ff.Name,4))=".doc" Or LCase(Right(ff.Name,4))="docx" ) And Left(ff.Name,1)<>"~" Then
		WordIsopen = 1
        Set oDoc=oWord.Documents.Open(ff.Path)
        odoc.ExportAsFixedFormat Left(ff.Path,InStrRev(ff.Path,"."))&"pdf",wdExportFormatPDF
	ElseIf 	(LCase(Right(ff.Name,4))=".xls" Or LCase(Right(ff.Name,4))="xlsx" ) And Left(ff.Name,1)<>"~" Then
		ExcelIsopen = 1
		Set oWb = oExcel.Workbooks.Open(ff.Path)
		pdf = Left(ff.Path,InStrRev(ff.Path,".")) & "pdf"
		oExcel.displayalerts=false
		oWb.ExportAsFixedFormat 0,pdf,0,1,1,,,0
    End If
Next

If WordIsopen = 1 Then
	odoc.Close
	oword.Quit
End If

If ExcelIsopen = 1 Then
	oWb.Close
	oExcel.Quit
End If

Set oDoc=Nothing
Set oWord =Nothing
Set oWb=Nothing
Set oExcel =Nothing
MsgBox "All files have been converted to PDF! fishbarbar"

注:
Worksheet.ExportAsFixedFormat 方法 (Excel)用法

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脱壳潜行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值