如何将“Microsoft Office中的’录制’创建的VBA宏中的功能”转换为可以在.vbs文件中的 Windows可执行VBScripts?
具体问题:
如何批量创建Word文档的缩略图以便在Windows资源管理器中查看?
替代问题:
在哪里可以找到有关使用VBS操作MS Word文档的文档?
我的最终目标是批量创建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可执行脚本来帮助集成/组合/无论两种方法,或者
>可以提供有关如何在Windows资源管理器中批量创建MS Word文档缩略图的建议,或者
>知道某些参考文档的存在,它提供了有关此CreateObject.(“Word.Application”)和.Documents.Add()以及.Selection和..SaveAs的更多信息 – 无论如何,各种各样.
希望我已经把这个问题措辞得很好了.提前感谢您的帮助.
Dim wdApp Set wdApp = CreateObject("Word.Application")
或获取对已运行的Word应用程序的引用:
Set wdApp = GetObject(,"Word.Application")
完成后,它们之间的代码几乎可以互换:
Dim wdDoc Set wdDoc = wdApp.Open("path\to\document.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