无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2921|回复: 9
打印 上一主题 下一主题

[求助] 请教修改MS原生word转PDF的VBS的问题

[复制链接]
跳转到指定楼层
1#
发表于 2023-7-7 09:02:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
目前这个脚本会将文件夹下所有的DOC和DOCX文件均转换成PDF,请教如何将这个调用MS OFFICE的VBS改为针对鼠标右键选中的1个或多个文件?参考http://bbs.wuyou.net/forum.php?mod=viewthread&tid=436438&page=1#pid4970895在右键执行

代码出处https://laojuhui.com/develop/10.html
  1. On Error Resume Next
  2.     Const wdExportFormatPDF = 17
  3.     Set oWord = WScript.CreateObject("Word.Application")
  4.     Set fso = WScript.CreateObject("Scripting.Filesystemobject")
  5.     Set fds=fso.GetFolder(".")
  6.     Set ffs=fds.Files
  7.     For Each ff In ffs
  8.     If (LCase(Right(ff.Name,4))=".doc" Or LCase(Right(ff.Name,4))="docx" ) And Left(ff.Name,1)<>"~" Then
  9.         Set oDoc=oWord.Documents.Open(ff.Path)
  10.         odoc.ExportAsFixedFormat Left(ff.Path,InStrRev(ff.Path,"."))&"pdf",wdExportFormatPDF
  11.         If Err.Number Then
  12.         MsgBox Err.Description
  13.         End If
  14.     End If
  15.     Next
  16.     odoc.Close
  17.     oword.Quit
  18.     Set oDoc=Nothing
  19.     Set oWord =Nothing
  20.     MsgBox "Word全部转换为PDF啦!"
复制代码


2#
发表于 2023-7-7 09:18:36 | 只看该作者
谢谢分享
回复

使用道具 举报

3#
发表于 2023-7-7 09:38:02 | 只看该作者
本帖最后由 yyz2191958 于 2023-7-7 09:39 编辑

我提供个思路:
在aa文件夹里面放置这个vbs,再新建一个bb.bat
bb.bat功能:
1.复制被选定文件到aa文件夹
2.运行这个vbs
3.移动转换成PDF到被选定文件所在文件夹
4.bb.bat添加到右键菜单

回复

使用道具 举报

4#
发表于 2023-7-7 12:15:21 | 只看该作者
FSO已经淘汰了,新的WORD不支持

写了一个WORD程序,请试用
链接: pan.baidu.com/s/1WdcCkri03hBcNbRWxxHdIw?pwd=1212

点评

请教大佬,“新的WORD不支持”是什么版本的MS OFFICE不支持?  详情 回复 发表于 2023-7-27 08:59
谢谢答复,看了下是VBA脚本,调用ExportAsFixedFormat,能实现转换,但不是我想要的。  详情 回复 发表于 2023-7-7 15:08
回复

使用道具 举报

5#
 楼主| 发表于 2023-7-7 15:08:55 | 只看该作者
ohte 发表于 2023-7-7 12:15
FSO已经淘汰了,新的WORD不支持

写了一个WORD程序,请试用

谢谢答复,看了下是VBA脚本,调用ExportAsFixedFormat,能实现转换,但不是我想要的。
回复

使用道具 举报

6#
发表于 2023-7-9 12:27:52 | 只看该作者
大概是这样
  1. On Error Resume Next
  2.     Const wdExportFormatPDF = 17
  3.     Set oWord = WScript.CreateObject("Word.Application")
  4.     Set fso = WScript.CreateObject("Scripting.Filesystemobject")
  5.     'Set fds=fso.GetFolder(".")
  6.     'Set ffs=fds.Files
  7.     'For Each ff In ffs
  8.     Set ff=fso.GetFile(WScript.Arguments.Item(0))
  9.     If (LCase(Right(ff.Name,4))=".doc" Or LCase(Right(ff.Name,4))="docx" ) And Left(ff.Name,1)<>"~" Then
  10.         Set oDoc=oWord.Documents.Open(ff.Path)
  11.         odoc.ExportAsFixedFormat Left(ff.Path,InStrRev(ff.Path,"."))&"pdf",wdExportFormatPDF
  12.         If Err.Number Then
  13.         MsgBox Err.Description
  14.         End If
  15.     End If
  16.     'Next
  17.     odoc.Close
  18.     oword.Quit
  19.     Set oDoc=Nothing
  20.     Set oWord =Nothing
  21.     'MsgBox "Word全部转换为PDF啦!"
复制代码

点评

谢谢大佬,试了不行,提示“缺少对象” [attachimg]529130[/attachimg]  详情 回复 发表于 2023-7-10 08:39
回复

使用道具 举报

7#
 楼主| 发表于 2023-7-10 08:39:16 | 只看该作者

谢谢大佬,试了不行,提示“缺少对象”



点评

不知道了,试过是可以的  详情 回复 发表于 2023-7-10 17:49
回复

使用道具 举报

8#
发表于 2023-7-10 17:49:04 | 只看该作者
tzxinqing 发表于 2023-7-10 08:39
谢谢大佬,试了不行,提示“缺少对象”

不知道了,试过是可以的
回复

使用道具 举报

9#
 楼主| 发表于 2023-7-27 08:59:04 | 只看该作者
ohte 发表于 2023-7-7 12:15
FSO已经淘汰了,新的WORD不支持

写了一个WORD程序,请试用

请教大佬,“新的WORD不支持”是什么版本的MS OFFICE不支持?

点评

记忆有点差错,FSO是有点老,用还是能用的。 一:主要是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,开启FSO功能即可, 在“运行”中执行regsvr32 scrrun.dll 二:如果javascript 脚本中报这个错  详情 回复 发表于 2023-7-27 18:06
回复

使用道具 举报

10#
发表于 2023-7-27 18:06:25 | 只看该作者
tzxinqing 发表于 2023-7-27 08:59
请教大佬,“新的WORD不支持”是什么版本的MS OFFICE不支持?

记忆有点差错,FSO是有点老,用还是能用的。

一:主要是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,开启FSO功能即可, 在“运行”中执行regsvr32 scrrun.dll
二:如果javascript 脚本中报这个错误是因为IE的 安全设置不允许运行未标记为安全的activeX控件 更改IE的安全设置 ,把相应的选项打开即可。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-18 00:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表