2012-03-19 60 views
1

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

我想要的结果如下所示:在打开Microsoft Word文档的同时,我希望能够打开其中一个.vbs文件,以立即生效,并且相反地能够打开其他.vbs文件立即关闭智能报价。

不幸的是,在打开Microsoft word文档的同时,双击适当的.vbs文件运行这些脚本似乎没有任何效果。 但是,如果我打开(通过双击)其中一个.vbs文件,同时关闭Microsoft单词,然后打开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 framework版本v4.0.30319 Windows 7 Ultimate Service Pack 1 64位操作系统 Microsoft Office Professional Plus 2010 Microsoft Word 14.0.5128.5000(64位)

回答

0

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

所以,与其这样:

Set objWord = CreateObject("Word.Application") 

使用此抢词的第一个实例:

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

所有这样说,如果你使用VBA编写的宏,它会始终在当前打开的文件中运行。您甚至可以应用工具栏按钮以更轻松地访问。

+0

谢谢。我曾经尝试过GetObject,但没有使用逗号。您的答案会显示一个对话框,其中包含“保存”,“不保存”和“取消”。如果我按下退出键或点击“取消”,就可以了。有没有办法阻止对话框出现,或者我应该使用模拟按下转义键的脚本?在VBA中这个问题不存在。我对使用VBScript感兴趣,所以我可以将脚本放在语音识别宏中。 – Stuartzz 2012-03-23 13:17:23

+0

Microsoft Word的默认操作是在有意或当应用程序退出时关闭文档时提示保存更改,这正是脚本到达'objWord.Quit'时发生的情况。 Quit方法接受一个单独的参数,告诉Word如何处理这种情况。可接受的值是0,-1和-2,分别表示不退出保存更改,退出保存更改并提示保存更改。取决于你需要哪一个,请尝试像这样的东西。 'objWord.Quit 0' – Nilpo 2012-03-23 17:48:28

+0

非常感谢你。我将该行完全从脚本中删除,因此word文档没有关闭。 – Stuartzz 2012-03-25 01:26:43