使用VBScript控制Microsoft单词选项

时间:2012-03-19 03:23:03

标签: vbscript ms-word

我编译了2个VBScript .vbs文件,试图控制在Microsoft Word中使用智能引号(也称为卷曲引号)。我正在尝试使用VBScript来承担Microsoft Word功能。

我想要的结果如下:在打开Microsoft Word文档的同时,我希望能够立即打开其中一个.vbs文件以使智能引号生效,反之则可以打开另一个.vbs文件立即生效智能报价。

不幸的是,在打开Microsoft Word文档的同时,通过双击相应的.vbs文件来运行这些脚本似乎没有任何效果。 但是,如果我在关闭Microsoft单词时打开(双击)其中一个.vbs文件,然后打开Microsoft单词,则智能引号设置将反映.vbs文件中的脚本。 我已经从下面的.vbs文件中复制了脚本。每一个都有一行垃圾代码,前面有一个撇号 - 正如我所说,我一直在试验。 如何修改脚本以实现上述结果? 非常感谢任何帮助。 Stuartzz

用于关闭智能引号的脚本(在.vbs文件中):

On Error Resume Next  
Set objWord = CreateObject("Word.Application")  
'objWord.Visible = True  
Set objOptions = objWord.Options  
objOptions.AutoFormatAsYouTypeReplaceQuotes = False  
objOptions.AutoFormatReplaceQuotes = False  
ObjWord.Quit  

用于打开智能引号的脚本(在.vbs文件中):

On Error Resume Next  
Set objWord = CreateObject("Word.Application")  
'objWord.Visible = True  
Set objOptions = objWord.Options  
objOptions.AutoFormatAsYouTypeReplaceQuotes = True  
objOptions.AutoFormatReplaceQuotes = True  
ObjWord.Quit  

VBScript版本5.8.7601.16978 .net框架版本v4.0.30319 Windows 7 Ultimate Service Pack 1 64位操作系统 Microsoft Office Professional Plus 2010 Microsoft Word 14.0.5128.5000(64位)

1 个答案:

答案 0 :(得分:0)

使用CreateObject将启动Word应用程序的新实例。它不会影响当前正在运行的。要获取当前正在运行的实例,您需要使用GetObject

所以,而不是:

Set objWord = CreateObject("Word.Application")

使用它来获取Word的第一个实例:

Set objWord = GetObject(, "Word.Application")

所有这些,如果您使用了用VBA编写的宏,它将始终在当前打开的文件中运行。您甚至可以应用工具栏按钮以便于访问。