У меня есть документ Word, который я использую для цитат. Каждый раз, когда я создаю новое, мне нужно изменить некоторые поля (название компании, адрес и т.д.). Я хочу, чтобы файл требовал, чтобы я заполнил эти поля во всплывающем окне при его открытии, чтобы я не пропустил ни одного. Это возможно?
1 ответ
Вы можете использовать событие VBA Document_Open для достижения этой цели. Вам нужно будет сохранить документ как файл .docm
чтобы он работал (документ Word с поддержкой макросов).
Нажмите Alt+F11 и добавьте этот код в объект ThisDocument
:
Sub Document_Open()
MsgBox "Don't forget to amend the fields!"
End Sub
Конечно, вы можете сделать гораздо больше, чем просто показать MsgBox .
Чтобы расширить это и фактически заполнить данные из приглашения, вы можете использовать поля ввода или пользовательскую форму. Я пройдусь по полям ввода здесь, так как формы немного длиннее и сложнее.
Во-первых, нам нужно добавить поля формы для данных, которые мы на самом деле хотим заполнить. Я покажу вам наиболее совместимый способ сделать это.
Для этого вам может потребоваться включить панель инструментов Developer
. Некоторые инструкции, чтобы охватить различные версии Word, здесь, для моего, я должен был включить его здесь:
Далее мы добавим поле формы:
Щелкните правой кнопкой мыши новое поле формы и выберите Properties
. Дайте полю Bookmark
которая четко ссылается на нее:
Теперь в VBA мы можем изменить это значение, используя текст из поля ввода:
Sub Document_Open()
ActiveDocument.FormFields("CompanyName").Result = InputBox("Enter your company name here")
End Sub
Очевидно, вы можете добавить столько, сколько пожелаете.
Примечание. Серый фон - field shading
- не отображается в печати, но если вы хотите удалить его, вы можете щелкнуть поле и нажать эту кнопку там же, где вы добавили его: