Как запустить макрос в Word перед сохранением?

Как заставить Microsoft Word запускать макрос VBA каждый раз перед сохранением любого документа? Можно ли это сделать без добавления макросов в сам документ?


Вы можете подписаться на события приложения в Document_Open , используя WithEvents и обычные имена методов ( VariableName_EventName ). Также работает в шаблонах.

Вы можете поместить этот код в объект ThisDocument или создать отдельный модуль класса, как описано здесь.

  Частное приложение WithEvents как Word.ApplicationPrivate Sub Document_Open () Set App = Word.ApplicationEnd SubPrivate Sub App_DocumentBeforeSave (ByVal Doc как документ, SaveAsUI как логическое, Отменить как логическое) MsgBox ("BeforeSave") End Sub  

Список всех событий приложения.


Вы должны добавить биты кода в нужном месте.

Это должно быть вверху вашей кодовой страницы среди ваших общедоступных переменных или постоянных отклонений

  Закрытое приложение WithEvents как Word.Application  

Затем добавьте это как событие открытия документа.

  Private Sub Document_Open () Set App = Word.ApplicationEnd Sub  

Это событие, которое запускается при выполнении команды сохранения Ctrl + s или сохранить значок. Я добавил свой собственный формат сохранения и печати, как я видел. Он наиболее полезен в случае, если люди заполняют формы, и вы не хотите, чтобы они перезаписывали исходный шаблон.

  Private Sub App_DocumentBeforeSave (ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean) '' сохраните файл с помощью команды saveas2. ActiveDocument.SaveAs2 FileName: = "YourDocumentNameORVariable" + _ "Date_" + Format (Now (),  "гг-мм-дд"), _FileFormat: = wdFormatDocumentDefault, _SaveFormsData: = True '' дополнение для печати файла при saveActiveDocument.PrintOut Фон: = True, Range: = wdPrintAllDocument, Copies: = 1, Collate:/= TrueEnd Sub  code> 

Подробнее о методах печати: Microsoft VBA — PrintOut

Подробнее о SaveAs2: Microsoft VBA — SaveAs2

Подробнее о формате файла для сохранения: Microsoft VBA — формат файла для сохранения


Вы должны добавить биты кода в ко правильное место.

Это должно быть вверху вашей кодовой страницы среди ваших общедоступных переменных или постоянных отклонений

  Private WithEvents App как Word.Application  

Затем добавьте это как событие открытия документа.

  Private Sub Document_Open () Set App = Word.ApplicationEnd Sub  

Это событие, которое запускается по команде сохранения Ctrl + s или значку сохранения. Я добавил свой собственный формат сохранения и печати, как я видел. Он наиболее полезен в случае, если люди заполняют формы, и вы не хотите, чтобы они перезаписывали исходный шаблон.

  Private Sub App_DocumentBeforeSave (ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean) '' сохраните файл с помощью команды saveas2. ActiveDocument.SaveAs2 FileName: = "YourDocumentNameORVariable" + _ "Date_" + Format (Now (),  "гг-мм-дд"), _FileFormat: = wdFormatDocumentDefault, _SaveFormsData: = True '' дополнение для печати файла при saveActiveDocument.PrintOut Фон: = True, Range: = wdPrintAllDocument, Copies: = 1, Collate:/= TrueEnd Sub  code> 

Подробнее о методах печати: Microsoft VBA — PrintOut

Подробнее о SaveAs2: Microsoft VBA — SaveAs2

Подробнее о FileFormat для сохранения: Microsoft VBA — FileFormat для сохранения


попробуйте сохранить ваш файл в .xlsm , затем закройте, откройте и снова сохраните. он должен работать нормально.


попробуйте сохранить файл в .xlsm , затем закройте, откройте и снова сохраните. он должен работать нормально.

Оцените статью
techsly.ru
Добавить комментарий