2

У меня есть документ Word, который я использую для цитат. Каждый раз, когда я создаю новое, мне нужно изменить некоторые поля (название компании, адрес и т.д.). Я хочу, чтобы файл требовал, чтобы я заполнил эти поля во всплывающем окне при его открытии, чтобы я не пропустил ни одного. Это возможно?

1 ответ1

2

Вы можете использовать событие 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 - не отображается в печати, но если вы хотите удалить его, вы можете щелкнуть поле и нажать эту кнопку там же, где вы добавили его:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .