У меня есть следующие VBscript (based on this answer):VBScript, чтобы добавить макрос в MS Word
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, я не вижу в нем макроса.
Что я делаю неправильно?
пс: Я обеспечить фиксированные строки здесь для кого-то сталкивался с таким же вопросом:
wdDoc.SaveAs "c:\docs_to_process\document1.docm", 13
wdDoc.Close
Важное примечание: вместо того, чтобы просто сохранить, дать документ новое имя и точка тип документа, как wdFormatXMLDocumentMacroEnabled это 13 в списке перечислений Я не знаю, почему, но указывать тип перечисления, как
wdDoc.SaveAs "c:\docs_to_process\document1.docm", wdFormatXMLDocumentMacroEnabled
вызывает такую же ошибку после открытия файла, как если бы я просто менял расширение
получил, спасибо за указание направления, и что, если слово документ ранее не имел макро и мой один первый вставить? Я попытался сохранить его только с расширением «.docm», но после этого - приложение Word сообщает, что документ имеет ошибки, должен ли я каким-то образом включить макрос в vbscript во время обработки файла .docx? –
В таком случае прочитайте файл как docx. Добавить макрос и сделать SaveAs –
Установить wdDoc = wdApp.Documents.Open ("c: \ docs_to_process \ document1.docx") wdDoc.SaveAs ("c: \ docs_to_process \ document1.docm") - дает ошибку, когда я пытаюсь чтобы открыть файл .docm выглядит как я должен был сделать некоторые действия с файловым конвертером, но я не могу найти нужную информацию для VBS, а не VBA –