vbscript将宏添加到MS Word

时间:2016-11-06 21:21:50

标签: vbscript ms-word macros

我有以下VBscript(based on this answer):

Set wdApp = CreateObject( "Word.Application" )
Set wdDoc = wdApp.Documents.Open( "c:\docs_to_process\document1.docx" )
Set xlmodule = wdDoc.VBProject.VBComponents.Add( 1 )
strCode = _
    "sub test()" & vbCr & _
    "   msgbox ""Inside the macro"" " & vbCr & _
    "end sub"
xlmodule.CodeModule.AddFromString strCode
wdDoc.Save
wdDoc.Close
wdApp.Quit

问题是:当我在保存文档之前运行它并停止脚本时,我可以在打开的Word文件中看到宏,但是当我进一步处理时,保存文档并退出脚本,之后如果我打开Word文档,我看不到宏。

我做错了什么?

p.s:我在这里为遇到同样问题的其他人提供了固定字符串:

wdDoc.SaveAs "c:\docs_to_process\document1.docm", 13
wdDoc.Close

重要提示: 而不仅仅是保存,给文档新名称和点 文档类型为 wdFormatXMLDocumentMacroEnabled 在枚举列表中为13 我不知道为什么,但将枚举类型指向为

wdDoc.SaveAs "c:\docs_to_process\document1.docm", wdFormatXMLDocumentMacroEnabled 
打开文件后,

会导致相同的错误,就像我只是更改扩展

一样

1 个答案:

答案 0 :(得分:0)

对于宏,文件扩展名应为docm,即启用宏。所以更改文件名

wdDoc.SaveAs" c:\ docs_to_process \ document1.docm",wdFormatXMLDocumentMacroEnabled