vbscript – 在Windows上使用VBS处理MS Word
一般问题:
如何将“Microsoft Office中的’录制’创建的VBA宏中的功能”转换为可以在.vbs文件中的 Windows可执行VBScripts? 具体问题: 替代问题: 我的最终目标是批量创建MS Word文档缩略图的过程. 我人性化的方法是: >打开一个Word文档 我发现from a small website VBS,以.vbs文件的形式,可以操作Word文档.可以通过在Windows资源管理器中双击.vbs文件来执行的示例: 'in a file called "something.vbs" Set objWord = CreateObject("Word.Application") objWord.Visible = True Set objDoc = objWord.Documents.Add() Set objSelection = objWord.Selection objSelection.Font.Name = "Arial" objSelection.Font.Size = "18" objSelection.TypeText "Network Adapter Report" objSelection.TypeParagraph() objSelection.Font.Size = "14" objSelection.TypeText "" & Date() objSelection.TypeParagraph() 我还发现通过’录制宏’,我可以得到一些VBA代码,用于保存带有缩略图的文档.这是我记录的一个宏: Sub save_with_thumbnail() ' ' save_with_thumbnail Macro ' ' ChangeFileOpenDirectory _ "E:" ActiveDocument.SaveAs2 FileName:="as90520.doc",FileFormat:= _ wdFormatDocument,LockComments:=False,Password:="",AddToRecentFiles:= _ True,WritePassword:="",ReadOnlyRecommended:=False,EmbedTrueTypeFonts:= _ False,SaveNativePictureFormat:=False,SaveFormsData:=False,_ SaveAsAOCELetter:=False,CompatibilityMode:=0 End Sub 这两种方法中的每一种都解决了我的部分问题,但我无法将它们整合在一起.因此,我问是否有人 – >可以通过将VBA宏转换为Windows可执行脚本来帮助集成/组合/无论两种方法,或者 希望我已经把这个问题措辞得很好了.提前感谢您的帮助.
最初的起点是不同的.在VBA中,您有一组内置对象,例如Application,它引用当前运行的Word应用程序.在VBS中,您必须创建一个新的Application对象并将其保存在变量中:
Dim wdApp Set wdApp = CreateObject("Word.Application") 或获取对已运行的Word应用程序的引用: Set wdApp = GetObject(,"Word.Application") 完成后,它们之间的代码几乎可以互换: Dim wdDoc Set wdDoc = wdApp.Open("pathtodocument.docx") 请记住,在VBA变量中可以有一个类型.而不是以前的变量声明(Dim wdDoc),在VBA中你可以看到: Dim wdDoc As Word.Document 'alternatively: 'Dim wdDoc As Document 此外,VBA通常可以访问枚举常量,例如wdFormatDocument.在VBScript中,您可以手动定义常量: Const wdFormatDocument = 0 或者直接使用常量的值: wdApp.ActiveDocument.SaveAs2 FileName:="as90520.doc",FileFormat:= 0 可以在here找到Word对象模型的参考. 就您的具体问题而言,ActiveDocument是Application对象的属性(参见here).所以在VBS中,相应的代码可能如下所示: Dim wdApp Set wdApp = CreateObject("Word.Application") 'When you open Word from the Start menu,it automatically adds a blank document for you 'When manipulating Word in a program,we need to do this by hand 'Generally we would store this in a variable,but we don't need to store it in order 'to use the ActiveDocument property; it just has to exist wdApp.Documents.Add 'copied and pasted from before wdApp.ActiveDocument.SaveAs2 FileName:="as90520.doc",FileFormat:= _ wdFormatDocument,AddToRecentFiles:= _ True,EmbedTrueTypeFonts:= _ False,_ SaveAsAOCELetter:=False,CompatibilityMode:=0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-phone-7 – 购买Windows Phone 7手机进行开发时,我
- windows – 无法在我的桌面和远程桌面之间复制粘贴
- .net – 缺少调试|项目的任何CPU构建配置,并在Windows x64上
- 如何在Windows上获取磁盘标识符?
- windows-server-2012-r2 – 用户文件夹被重命名为“我的文档
- windows-server-2012-r2 – Windows Server – 任何阻止文件
- [Windows Phone 8]如何绘制矩形?
- 将Windows截图捕获位图渲染为DirectX纹理
- winapi – 在运行时的Windows API调整大小窗口中?
- windows – 为什么单击子窗口并不总是将应用程序带到前台?
- windows-7 – Windows 7上的多个鼠标光标
- windows-server-2008 – 什么是只读域控制器实际
- 如何在一秒钟内在ESXi Windows虚拟机上同步时间?
- .net – 以编程方式使用“Microsoft另存为PDF”加
- Learning OSG programing---Multi Camera in Mul
- windows-server-2008 – Windows 2008 R1上的IIS
- windows – 客户端计算机从睡眠状态恢复时随机删
- 2018-2019-2 20165235《网络对抗技术》Exp2 后门
- 如何检查我的程序是否由用户以管理员身份运行(Vi
- 难道真的不可能写一个隐藏Windows密码的php cli密