无忧启动论坛

标题: 请教修改MS原生word转PDF的VBS的问题 [打印本页]

作者: tzxinqing    时间: 2023-7-7 09:02
标题: 请教修改MS原生word转PDF的VBS的问题
目前这个脚本会将文件夹下所有的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啦!"
复制代码



作者: yyz2191958    时间: 2023-7-7 09:18
谢谢分享
作者: yyz2191958    时间: 2023-7-7 09:38
本帖最后由 yyz2191958 于 2023-7-7 09:39 编辑

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


作者: ohte    时间: 2023-7-7 12:15
FSO已经淘汰了,新的WORD不支持

写了一个WORD程序,请试用
链接: pan.baidu.com/s/1WdcCkri03hBcNbRWxxHdIw?pwd=1212
作者: tzxinqing    时间: 2023-7-7 15:08
ohte 发表于 2023-7-7 12:15
FSO已经淘汰了,新的WORD不支持

写了一个WORD程序,请试用

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

作者: amwdi    时间: 2023-7-9 12:27
大概是这样
  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啦!"
复制代码

作者: tzxinqing    时间: 2023-7-10 08:39
amwdi 发表于 2023-7-9 12:27
大概是这样

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




作者: amwdi    时间: 2023-7-10 17:49
tzxinqing 发表于 2023-7-10 08:39
谢谢大佬,试了不行,提示“缺少对象”

不知道了,试过是可以的

作者: tzxinqing    时间: 2023-7-27 08:59
ohte 发表于 2023-7-7 12:15
FSO已经淘汰了,新的WORD不支持

写了一个WORD程序,请试用

请教大佬,“新的WORD不支持”是什么版本的MS OFFICE不支持?
作者: ohte    时间: 2023-7-27 18:06
tzxinqing 发表于 2023-7-27 08:59
请教大佬,“新的WORD不支持”是什么版本的MS OFFICE不支持?

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

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




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3