vbscript – 在Windows上使用VBS处理MS Word

前端之家收集整理的这篇文章主要介绍了vbscript – 在Windows上使用VBS处理MS Word前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一般问题:
如何将“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的更多信息 – 无论如何,各种各样.

希望我已经把这个问题措辞得很好了.提前感谢您的帮助.

最初的起点是不同的.在VBA中,您有一组内置对象,例如Application,它引用当前运行的Word应用程序.在VBS中,您必须创建一个新的Application对象并将其保存在变量中:
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

猜你在找的Windows相关文章