Я использую VBA в Excel для создания этикетки доставки в Word из шаблона Word. Однажды, после того, как документ Word был успешно открыт и заполнен моими данными, я случайно сохранил свой исходный шаблон, когда закрыл его.
Я хочу помешать пользователю сделать это. Если они закрывают документ Word, не сохранив его в первую очередь, я хочу, чтобы их приглашали в SaveAs, а не сохранять поверх существующего шаблона, и я хочу, чтобы SaveAs предлагал по умолчанию использовать файл .doc или .docx, а не шаблон .dotx. файл. Если они нажимают кнопку «Сохранить» или Ctrl + S вместо того, чтобы просто закрыть документ, я хочу, чтобы вместо того, чтобы перезаписать мой шаблон, должно появиться то же приглашение SaveAs.
Для справки, я включу код, который открывает мой шаблон Word. Я объявляю свои объекты, используя Object вместо Word.Application, чтобы предотвратить пропущенные ошибки ссылок для пользователей, у которых нет ссылок на библиотеку объектов Word, настроенную на их компьютерах. Это будет использоваться на нескольких разных компьютерах, и они не все имеют одинаковую версию Office, поэтому, если вы можете придумать что-нибудь еще, что я могу сделать для обеспечения совместимости, я хотел бы услышать это.
Поскольку это связано с сохранением документа Word, сгенерированного из книги Excel, я не уверен, как написать для этого обработку событий. Любая помощь могла бы быть полезна. Спасибо.
Dim wdApp As Object
Dim objRange As Object
Dim objDoc As Object
Set wdApp = CreateObject("Word.Application")
Set objDoc = wdApp.Documents.Open("[template file location]")
With wdApp
.Visible = True
.Activate
'Code that places strings at bookmark locations
Set objRange = objDoc.Bookmarks("bookmarkName").Range
objRange.InsertAfter (stringName)
End With