2016-11-06 2 views
0

У меня есть следующие 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 

вызывает такую ​​же ошибку после открытия файла, как если бы я просто менял расширение

ответ

0

Для макроса расширение файла должно быть docm i.e. macro enabled. Так изменить имя файла

wdDoc.SaveAs «C: \ docs_to_process \ document1.docm», wdFormatXMLDocumentMacroEnabled

+0

получил, спасибо за указание направления, и что, если слово документ ранее не имел макро и мой один первый вставить? Я попытался сохранить его только с расширением «.docm», но после этого - приложение Word сообщает, что документ имеет ошибки, должен ли я каким-то образом включить макрос в vbscript во время обработки файла .docx? –

+0

В таком случае прочитайте файл как docx. Добавить макрос и сделать SaveAs –

+0

Установить wdDoc = wdApp.Documents.Open ("c: \ docs_to_process \ document1.docx") wdDoc.SaveAs ("c: \ docs_to_process \ document1.docm") - дает ошибку, когда я пытаюсь чтобы открыть файл .docm выглядит как я должен был сделать некоторые действия с файловым конвертером, но я не могу найти нужную информацию для VBS, а не VBA –

Смежные вопросы