我有以下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
打开文件后,会导致相同的错误,就像我只是更改扩展
一样答案 0 :(得分:0)
对于宏,文件扩展名应为docm,即启用宏。所以更改文件名
wdDoc.SaveAs" c:\ docs_to_process \ document1.docm",wdFormatXMLDocumentMacroEnabled