Примеры макросов в word: Пример макроса, который использует цикл для поиска текста в документах Word
Содержание
Пример макроса, который использует цикл для поиска текста в документах Word
Microsoft Word 2000 версия этой статьи содержатся в разделе 211458.
170725версию Microsoft Word 97 в данной статье, см.
Microsoft Word 98 версии этой статьи содержатся в разделе 183643.
Обзор
Приведенный ниже макрос выполняет поиск указанного стиля в документе Microsoft Word 2002, Microsoft Office Word 2003 или Microsoft Office Word 2007 и добавляет текст в начало каждого вхождения, которое оно находит.
Дополнительные сведения
Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без явных или подразумеваемых гарантий. Это включает, но не ограничиваясь, подразумеваемые гарантии товарной пригодности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры, но не выполнять модификации примеров для обеспечения дополнительных функциональных возможностей или создания процедур для определенных требований.
Sub EditFindLoopExample()
'This example inserts "Tip: " at the beginning of
' every paragraph formatted with the Heading 3 style.
With ActiveDocument.Content.Find
.ClearFormatting
.Style = wdStyleHeading3
'The Do...Loop statement repeats a series of
' actions each time this style is found.
Do While .Execute(Forward:=True, Format:=True) = True
With .Parent
'If the found text is the last
' paragraph in the document...
If .End = ActiveDocument.Content.End Then
.StartOf Unit:=wdParagraph, Extend:=wdMove
.InsertAfter "Tip: "
Exit Do
'If the found text is *not* the last
' paragraph in the document...
Else
.StartOf Unit:=wdParagraph, Extend:=wdMove
.InsertAfter "Tip: "
. Move Unit:=wdParagraph, Count:=1
End If
End With
'Goes back to the beginning of the Do...Loop statement.
Loop
End With
End Sub
Ссылки
Дополнительные сведения о поиске текста в документах Word, в окне редактора Visual Basic в меню Справка пункт Справка: Microsoft Visual Basic , введите в поле помощника Office или мастера ответов найти объект и нажмите кнопку Найти для просмотра раздела.
Дополнительные сведения о том, как использовать примеры кода в этой статье щелкните следующий номер статьи базы знаний Майкрософт:
290140 OFFXP: запуск кода примера из статей базы знаний
Дополнительные сведения о получении справки по Visual Basic для приложений щелкните следующий номер статьи базы знаний Майкрософт:
305326 OFFXP: программные ресурсы для Visual Basic для приложений
Создание и запуск макроса — Служба поддержки Майкрософт
В Word можно автоматизировать часто выполняемые задачи с помощью макросов. Макрос — это набор команд и инструкций, группируемых вместе в виде единой команды для автоматического выполнения задачи.
Чтобы сэкономить время при выполнении часто повторяющихся задач, объедините несколько действий в макрос. Сначала необходимо записать макрос. Затем вы сможете запускать его нажатием кнопки на панели быстрого доступа или с помощью сочетания клавиш. Способ запуска зависит от того, как вы настроите макрос.
-
В меню Вид последовательно выберите пункты Макросы и Записать макрос.
-
Введите имя макроса.
-
Чтобы запускать макрос нажатием кнопки, выберите пункт Кнопка.
-
Щелкните новый макрос (у него будет имя примерно следующего вида: Normal.NewMacros.<имя вашего макроса>), а затем нажмите кнопку Добавить.
-
Выберите изображение для кнопки, введите нужное имя и дважды нажмите OK.
-
Теперь необходимо записать все шаги макроса. Выбирайте команды или нажимайте клавиши для каждого шага задачи. Word будет записывать все, что вы щелкаете мышью, и все клавиши, которые вы нажимаете.
Примечание: Во время записи макроса для выделения текста используйте клавиатуру. Макрос не записывает выделения, сделанные с помощью мыши.
-
Чтобы остановить запись, в меню Вид последовательно выберите пункты Макросы и Остановить запись.
org/ListItem»>
Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить изменения в указано значение Всех документов (Normal.dotm).
org/ListItem»>
Нажмите кнопку Изменить.
На панели быстрого доступа появится кнопка для вашего макроса.
Чтобы запустить макрос, нажмите эту кнопку.
-
В меню Вид последовательно выберите пункты Макросы и Записать макрос.
-
Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить изменения в указано значение Всех документов (Normal.dotm).
-
Чтобы запускать макрос с помощью сочетания клавиш, выберите пункт Клавиатура.
-
Проверьте, не назначено ли такое же сочетание клавиш какой-либо другой команде. Если такое сочетание клавиш назначено какой-либо другой команде, то попробуйте использовать другое сочетание клавиш.
-
Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить в указано значение Normal.dotm.
-
Нажмите кнопку Назначить.
-
Теперь необходимо записать все шаги макроса. Выбирайте команды или нажимайте клавиши для каждого шага задачи. Word будет записывать все, что вы щелкаете мышью, и все клавиши, которые вы нажимаете.
Примечание: Во время записи макроса для выделения текста используйте клавиатуру. Макрос не записывает выделения, сделанные с помощью мыши.
-
Чтобы остановить запись, в меню Вид последовательно выберите пункты Макросы и Остановить запись.
org/ListItem»>
Введите имя макроса.
org/ListItem»>
Введите сочетание клавиш в поле Новое сочетание клавиш.
Чтобы запустить макрос, нажмите сочетание клавиш.
Чтобы запустить макрос, нажмите кнопку на панели быстрого доступа, нажмите сочетание клавиш или запустите макрос из списка Макросы.
-
В меню Вид последовательно выберите пункты Макросы и Просмотр макросов.
-
В пункте Имя макроса выберите в списке макрос, который вы хотите запустить.
-
Нажмите кнопку Запустить.
Чтобы сделать макрос в одном документе доступным во всех новых документах, добавьте его в шаблон Normal. dotm.
-
Откройте документ, в котором содержится макрос.
-
В меню Вид последовательно выберите пункты Макросы и Просмотр макросов.
-
Нажмите кнопку Организатор.
-
Щелкните макрос, который вы хотите добавить в шаблон Normal. dotm, а затем нажмите кнопку Копировать.
-
В меню Файл последовательно выберите пункты Параметры и Настроить ленту.
-
В пункте Выбрать команды из выберите пункт Макросы.
-
Выберите нужный макрос.
-
В пункте Настройка ленты выберите вкладку и настраиваемую группу, в которую вы хотите добавить макрос.
Если у вас нет настраиваемой группы, то нажмите кнопку Новая группа. Затем нажмите кнопку Переименовать и введите имя настраиваемой группы.
-
Нажмите кнопку Добавить.
-
Чтобы изменить изображение для макроса и ввести нужное имя, нажмите кнопку Переименовать.
-
Дважды нажмите кнопку OK.
На вкладке Разработчик в группе Код нажмите кнопку Макросы.
В поле Имя макроса введите имя нового макроса.
Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Word, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, выберите пункт Команды Word в списке Макросы из.
В списке Макросы из щелкните шаблон или документ, в котором нужно сохранить макрос.
Чтобы макрос был доступен во всех документах, выберите Normal.dotm.
Нажмите кнопку Создать, чтобы вызвать редактор Visual Basic.
После запуска редактора Visual Basic могут потребоваться дополнительные сведения о работе с языком Visual Basic для приложений. Для получения сведений выберите в меню Help (Справка) пункт Microsoft Visual Basic Help (Справка по Microsoft Visual Basic) или нажмите клавишу F1.
Вы можете записать последовательность действий или создать макрос с нуля, введя код на языке Visual Basic для приложений в редактор Visual Basic.
Примечание: Чтобы работать с макросами в приложении Office Word 2007, необходимо отобразить вкладку Разработчик.
Нажмите кнопку Microsoft Office , а затем — Параметры Word.
Выберите категорию Основные.
В группе Основные параметры работы с Word установите флажок Показывать вкладку «Разработчик» на ленте.
Примечание: Лента входит в Пользовательский интерфейс Microsoft Office Fluent.
- org/ListItem»>
-
В поле Имя макроса введите имя нового макроса.
Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Office Word 2007, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, на вкладке Разработчик в группе Код нажмите кнопку Макросы. В списке Макросы из выберите вариант Команды Word.
-
В списке Макрос доступен для щелкните шаблон или документ, в котором нужно сохранить макрос.
Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.
-
Введите описание макроса в поле Описание.
-
Выполните одно из указанных ниже действий.
-
Начните запись. Чтобы начать запись макроса, не связывая его с кнопкой на панели быстрого доступа или сочетанием клавиш, нажмите кнопку ОК. -
Щелкните кнопке.
-
В группе Настройка панели быстрого доступа выберите документ или все документы, для которых требуется добавить макрос на панель быстрого доступа.
Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.
Создайте кнопку. Чтобы связать макрос с кнопкой на панели быстрого доступа, сделайте следующее:В диалоговом окне Выбрать команды из выберите макрос, который требуется записать, и нажмите кнопку Добавить.
-
-
Чтобы настроить кнопку, нажмите кнопку Изменить.
-
В поле Символ выберите нужный символ для кнопки.
-
В поле Отображаемое имя введите имя макроса, которое должно отображаться.
На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
org/ListItem»>
Чтобы начать запись макроса, нажмите кнопку ОК два раза.
На панели быстрого доступа будет показан выбранный символ. Заданное имя отображается при наведении указателя на символ.
Назначьте сочетание клавиш. Чтобы назначить макросу сочетание клавиш, сделайте следующее:
-
Выберите пункт Клавиатура.
org/ListItem»>
В списке Команды выберите макрос, который требуется записать.
В поле Новое сочетание клавиш введите любую последовательность клавиш и нажмите кнопку Назначить.
Чтобы начать запись макроса, нажмите кнопку Закрыть.
Выполните действия, которые следует включить в макрос.
Примечание: При записи макроса вы можете с помощью мыши щелкать команды и параметры, но не выделять текст. Для выделения текста необходимо использовать клавиатуру. Дополнительные сведения о выделении текста с помощью клавиатуры см. в статье Выделение текста.
Чтобы остановить запись макрокоманд, выберите команду Остановить запись в группе Код.
Изменение сочетания клавиш для макроса
-
Нажмите кнопку Microsoft Office , а затем — Параметры Word.
-
Выберите команду Настройка .
-
Рядом с полем Сочетания клавиш нажмите Настройка.
-
В списке Категории выберите пункт Макросы.
-
В списке Макросы выберите макрос, который нужно изменить.
-
В поле Текущие сочетания проверьте, не используется ли назначаемое сочетание для выполнения другой задачи.
-
В списке Сохранить изменения в выберите вариант, который соответствует месту, в котором должен запускаться макрос.
Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.
-
Нажмите кнопку Закрыть.
org/ListItem»>
Щелкните поле Новое сочетание клавиш и нажмите клавиши, которые следует назначить.
-
На вкладке Разработчик в группе Код выберите пункт Макросы.
-
В списке Имя макроса выберите макрос, который необходимо запустить.
-
Нажмите кнопку Выполнить.
- org/ListItem»>
-
В поле Имя макроса введите имя нового макроса.
Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Office Word 2007, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, выберите пункт Команды Word в списке Макросы из.
-
В списке Макросы из щелкните шаблон или документ, в котором нужно сохранить макрос.
Чтобы макрос был доступен во всех документах, выберите Normal.dotm.
-
Нажмите кнопку Создать, чтобы вызвать редактор Visual Basic.
На вкладке Разработчик в группе Код нажмите кнопку Макросы.
После запуска редактора Visual Basic могут потребоваться дополнительные сведения о работе с языком Visual Basic для приложений. Для получения сведений выберите в меню Help (Справка) пункт Microsoft Visual Basic Help (Справка по Microsoft Visual Basic) или нажмите клавишу F1.
Чтобы быстро выполнять часто повторяющиеся задачи, в классической версии Word вы можете объединить шаги в макросы, а затем запускать их одним щелчком мыши. В Word в Интернете такие задачи придется выполнять вручную.
Если у вас есть Word, нажмите кнопку Открыть в Word, чтобы открыть документ в Word.
Затем следуйте инструкциям для классических версий Word.
Если вы запустите макрос в Word и сохраните документ, вы увидите результаты работы макроса при повторном открытии документа в Word в Интернете.
Макросы Word: четыре примера для автоматизации ваших документов
Макросы Word — это чудеса одним щелчком мыши, которые позволяют вам программировать сложные процедуры для запуска по вашему запросу. Вот несколько примеров для начала. Один создает фирменный бланк вашей компании; второй вставляет предварительно отформатированные таблицы; а третий определяет и разрабатывает пользовательские форматы книг.
ПРИМЕЧАНИЕ. Вы увидите некоторые инструкции со строками нажатий клавиш, которые представляют собой макрокоманды для изменения положения курсора. Обязательно скопируйте их точно так, как написано.
Настройка, определение и запись макросов
Шаг 1. Настройка макроса
A. Выберите вкладку «Вид», затем нажмите Макросы > Записать макрос .
B. В диалоговом окне «Запись макроса» введите имя и описание макроса. Соблюдайте следующие правила для имени:
- Имена макросов должны начинаться с буквы и содержать либо буквы, либо цифры. Вы не можете использовать пробелы, не буквенно-цифровые символы или точки.
- Имена макросов могут содержать не более 80 символов
- Имена макросов не должны конфликтовать с зарезервированными командами или ключевыми словами программы, такими как «Печать», «Сохранить», «Копировать», «Вставить».
- Описания — это просто примечания, которые обобщают функции макроса.
C. В поле Сохранить макрос в выберите Все документы , чтобы запустить этот макрос во всех документах Word, или выберите текущий документ (отображаемый по имени файла), чтобы использовать этот макрос только в текущем документе. Нажмите OK .
D. Затем на панели «Назначить макрос» нажмите Кнопка или Клавиатура (сочетание клавиш) для метода, используемого для доступа и запуска макроса.
Примечание: Большинство сочетаний клавиш уже используются системой. Несмотря на то, что вы можете перезаписать многие из этих ярлыков, гораздо проще прикрепить свой макрос к кнопке.
Настроить макрос Word.
Шаг 2. Добавьте кнопку макроса на панель быстрого доступа
A. Нажмите кнопку , и откроется экран «Параметры Word/Настройка панели быстрого доступа». На этом экране найдите свой макрос, выберите/выделите его, затем нажмите Добавить . Word копирует макрос с левой панели «Макросы» на правую панель «Панель быстрого доступа».
B. Нажмите Изменить , выберите значок, представляющий кнопку макроса, затем нажмите OK .
C. Когда закончите, нажмите OK еще раз, чтобы выйти.
Добавить кнопку макроса на панель быстрого доступа.
Шаг 3: Запишите макрос
Введите нажатия клавиш, которые должен записать макрос. (См. «A» ниже.)
Шаг 4: Остановить запись
По завершении снова выберите вкладку «Вид», затем нажмите Остановить запись . (См. «B» ниже.)
Примечание: Обратите внимание, что кнопка настроенного вами макроса появляется на панели быстрого доступа. Чтобы снова запустить макрос, просто нажмите эту кнопку.
Как записать макрос, а затем остановить макрос.
Три быстрых и простых макроса
Макрос 1: Бланки компании
Большинство компаний сменили печатные бланки на цифровые. Потратьте немного времени один раз, чтобы записать этот макрос, и вы сможете вставить свой фирменный бланк в документ за одну легкую секунду.
Повторите шаги 1 и 2 выше. Назовите макрос (для этого примера) BranchesLetterhead. Затем на шаге 3 (макрос запущен) выполните следующие инструкции для макроса:
A. На вкладке «Вставка» выберите Изображения . Перейдите к папке с логотипом вашей компании, выберите это изображение и нажмите Вставить .
B. В диалоговом окне «Параметры макета» выберите один из параметров переноса текста, затем закройте диалоговое окно. Нажмите клавишу Esc, чтобы отменить выбор изображения, затем один раз нажмите клавишу End и один раз клавишу Tab.
Запишите макрос для создания бланка компании.
C. Введите название компании: Branches, Inc
. Выделите имя. Щелкните раскрывающийся список в группе «Шрифт»; выбрать гарнитуру и размер шрифта. Нажмите клавишу End один раз, затем нажмите клавишу Enter три раза. Затем дважды нажмите стрелку вверх, затем нажмите Shift + Down, Down (нажмите и удерживайте клавишу Shift, одновременно дважды нажимая клавишу со стрелкой вниз).
D. Выберите гарнитуру (в этом примере я выбираю шрифт без засечек, например Arial или Helvetica), выберите размер (в данном примере – 11 пунктов), затем один раз нажмите клавишу «Домой» и дважды клавишу Tab. .
E. Введите информацию об адресе, затем нажмите клавишу Enter три раза.
F. В главном меню нажмите Вставить > Текст , затем нажмите кнопку Вставить дату и время . Выберите формат даты в диалоговом окне «Дата и время», установите флажок Обновлять автоматически , затем нажмите OK .
G. Выделите и измените шрифт даты и времени на стандартный шрифт документа вашей компании.
H. Наконец, выделите букву «B» в «Отраслях» и увеличьте размер шрифта до 60.
I. Начиная с шага 4 выше, снова выберите вкладку «Вид» и нажмите Остановить запись .
Теперь, когда вам понадобится фирменный бланк, просто нажмите кнопку макроса BranchesLetterhead на панели быстрого доступа.
Запишите макрос для создания бланка компании, продолжение.
Макрос 2: вставка предварительно разработанных таблиц
Моя подруга Кэрри создала еженедельный отчет, который включал таблицу с определенными измерениями, столбцами, строками и заголовками. Раньше она копировала и вставляла созданный ею шаблон таблицы в каждый новый документ, но он всегда был непоследовательным и искаженным. Макрос таблицы был лучшим решением.
Повторите шаги 1 и 2 выше. Назовите макрос (в данном примере — CorpRptTable). Затем на шаге 3 (макрос запущен) выполните следующие инструкции для макроса:
A. На вкладке «Вставка» щелкните Таблица .
B. В диалоговом окне «Вставить таблицу» проведите курсором горизонтально по сетке, чтобы выбрать необходимое количество столбцов, затем проведите пальцем вниз, чтобы выбрать строки. Когда сетка станет нужного размера, щелкните мышью.
C. Введите следующие заголовки в верхней строке: Участник, Род занятий, Местоположение, Проект и Пожертвование.
D. Когда курсор все еще находится в конце слова «Пожертвование» в столбце 5, строке 1: нажмите и удерживайте клавиши Ctrl и Shift, затем пять раз нажмите клавишу со стрелкой влево.
E. Выделив первую строку, перейдите на вкладку «Главная» и нажмите Группа абзацев . Щелкните значок для текста с выравниванием по центру, затем в группе «Шрифты» щелкните Bold . Нажмите клавишу со стрелкой влево один раз, чтобы переместить курсор в ячейку A1.
Примечание: Когда курсор находится в любом месте таблицы, на ленте отображается новый набор вкладок под названием «Дизайн инструментов для работы с таблицами» и «Макет инструментов для работы с таблицами».
F. Не снимая курсора с A1, выберите Работа с таблицами > Макет . В группе Размер ячейки нажмите кнопку Ширина столбца таблицы и с помощью стрелок отрегулируйте ширину столбца вверх или вниз. Установите первый столбец на 1,2 дюйма. Нажмите клавишу Tab один раз, затем стрелку влево, чтобы переместить курсор в следующий столбец.
Примечание: Если выделен заголовок столбца, новая ширина столбца влияет только на эту единственную строку.
G. С курсором во втором столбце перед буквой O в поле «Род занятий» перейдите в «Инструменты таблицы» и нажмите «Макет» > «Размер ячейки», группа и установите «Ширина столбца таблицы» > 1,2 дюйма.
H. Настройте оставшиеся столбцы на следующие параметры: «Местоположение» — 1,7 дюйма, «Проект» — 1,5 дюйма и «Пожертвования» — 1,0 дюйма.
I Нажмите Ctrl+End, чтобы переместить курсор сразу за пределы и под таблицу, затем введите: Рисунок 1
.
J. На шаге 4 выше снова выберите вкладку «Вид» и нажмите Остановить запись .
Запишите макрос, который вставляет предварительно разработанные таблицы.
Макрос 3: создание пользовательских форматов книг
Если вы создаете собственные публикации, создайте макрос, который устанавливает пользовательский формат для каждого из них. На самом деле, вы можете просто создать один формат, затем отредактировать его и пересохранить, чтобы он соответствовал отдельным форматам.
Повторите шаги 1 и 2 выше. Назовите макрос (для этого примера) Book8x5Format. Затем, для шага 3 (макрос запущен), следуйте этим инструкциям макроса:
A. На вкладке «Макет страницы» щелкните Параметры страницы > Размер .
B. Выберите Другие форматы бумаги в раскрывающемся меню.
C. В диалоговом окне «Параметры страницы» выберите вкладку «Бумага», нажмите Размер бумаги , затем выберите Пользовательский из раскрывающегося списка.
D. Введите ширину 5,5 дюймов и высоту 8,5 дюймов и нажмите OK .
E. Опять же, на вкладке «Разметка страницы» в группе «Параметры страницы» щелкните значок Маржа кнопка.
F. Выберите Пользовательские поля из раскрывающегося списка.
G. В диалоговом окне «Параметры страницы» выберите вкладку «Поля».
Примечание. Сначала необходимо настроить параметры страниц, выбрав «Несколько страниц», поскольку этот параметр изменяет поля полей.
H. Из Страниц > Несколько страниц выберите Обычный из раскрывающегося списка. Для Листов в брошюре выберите Все .
I. Введите поля: верхнее = 1, нижнее = 1, левое = 0,5, правое = 0,5, переплет = 0,3 и положение переплета = левое.
J. Для Ориентации выберите Книжная , затем нажмите OK .
Примечание: Изображение на панели предварительного просмотра показывает этот макет с полями и промежутками.
Запишите макрос, который создает пользовательские форматы книг.
K. Затем выберите Параграф на вкладке Разметка страницы. Перейдите на вкладку Indents and Spacin g.
L. На панели Общие выберите Выравнивание = По ширине; Уровень контура = основной текст.
M. На панели «Отступ» выберите «Слева» = 0; справа = 0; Специальный = Первая линия; По = 0,25.
N. На панели «Интервал» выберите «До» = 0; После = 0; Межстрочный интервал = Несколько; В = 1,25. И нажмите OK .
O. Введите абзац или около того общего текста. Щелкните правой кнопкой мыши и выберите Стили во всплывающем контекстном меню. В диалоговом окне «Стили» выберите из списка таблицу стилей вашей компании (CorpStyle).
ПРИМЕЧАНИЕ. Если в вашей компании нет таблицы стилей, выберите Обычный . Не стесняйтесь читать наши инструкции по созданию таблиц стилей после того, как вы закончите этот макрос.
Отступы, интервалы и стили для пользовательских форматов книг.
P. Далее выберите вкладку «Вставка» и перейдите в группу «Верхний и нижний колонтитулы». Нажмите кнопку Заголовок и выберите стиль из списка, затем введите текст заголовка.
Примечание: Обратите внимание, что появилось меню «Дизайн верхнего и нижнего колонтитула».
В. В группе «Параметры» установите флажки для Разные четные и нечетные страницы . Щелкните правой кнопкой мыши для контекстного меню, выберите абзац и выберите Выравнивание: по правому краю (для нечетного заголовка страницы). Затем прокрутите вниз до раздела нижнего колонтитула: щелкните правой кнопкой мыши, выберите Номер страницы > Нижняя часть страницы > Обычный номер 3 (размещение по правому краю).
R. Вставьте разрыв страницы, затем повторите описанные выше шаги P и Q, чтобы добавить верхние и нижние колонтитулы к четным страницам.
S. Начиная с шага 4 выше, снова выберите вкладку «Вид» и нажмите Остановить запись .
Заголовки, нижние колонтитулы и страницы для пользовательских форматов книг.
Word Macro Examples & VBA Tutorial
In this Article
- VBA PDF (Free Downloads)
- Word VBA Examples “CheatSheet”
- Select / Go To
- Bookmarks
- Document
- Columns
- Font
- Insert
- Петли
- Пункт
- Word VBA Macro Tutorial
- Simple Word Macro Example
- Word Macro Basics
- Word Document Object
- Application
- Documents
- Document Methods
- Range, Selection, Paragraphs
- Range 100020
Добро пожаловать в наш Мега-руководство по Word VBA и макросам!
Эта страница содержит:
- Word VBA Учебник в формате PDF (бесплатная загрузка)
- Word VBA «Шпаргалка», содержащая список наиболее часто используемых фрагментов кода Word VBA
- Полное руководство по Word VBA/макросам.
- Список всех наших руководств по макросам Word VBA с возможностью поиска
Вас также может заинтересовать наше интерактивное руководство по VBA для Excel. Хотя некоторые примеры/упражнения относятся к Excel VBA, большая часть содержимого является общей для всех VBA, и вам может быть полезно изучить такие понятия, как операторы If, циклы, окна сообщений и другие.
VBA PDF (бесплатная загрузка)
Загрузите наш бесплатный учебник по Microsoft Word VBA! Или учебные пособия по VBA для других программ Office!
Скачать
Примеры Word VBA «CheatSheet»
Ниже вы найдете простые примеры кода VBA для работы с Microsoft Word.
Выбрать/Перейти к
Backspace
Selection.TypeBackspace
Выбрать весь документ
Selection.HomeKey Unit:=wdStory
Selection.Extend
Копировать
Selection.Copy
Удалить
Selection.Delete Unit:=wdCharacter, Count:=1
Insert After
Selection. InsertAfter «text»
Unit=
3 Selection: Начало строки wdLine
Конец строки
Selection.EndKey Unit:=wdLine
Вставить
Selection.Paste
Select All
Selection.WholeStory
Selection.WholeStory
Select Entire Line.WholeStory
Select Entire Line. вдекстенд
Вверх по абзацу
Selection.MoveUp Unit:=wdParagraph, Count:=1
Вправо на один символ
Selection.MoveRight Unit:=wdCharacter, Count:=1
Вправо на одну ячейку в таблице
Selection .MoveRight Unit:=wdCell
Перейти к началу документа
Selection.HomeKey Unit:=wdStory
Перейти к концу документа
Selection.EndKey Unit:=wdStory
Перейти к странице 1
9000 Выбор Что :=wdGoToPage, Который:=wdGoToNext, Имя:=”1″
Перейти к началу страницы
Selection.GoTo What:=wdGoToBookmark, Name:=”\Page”
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Вернуться к началу
Закладки
2
9
Добавить С ActiveDocument. Bookmarks
.Add Range:=Selection.Range, Name:=”Name”
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
Count
Dim n as Integer
n = ActiveBookmarksDocument.
Удалить
ActiveDocument.Bookmarks(«BookmarkName»). Удалить
Существует?
If ActiveDocument.Bookmarks.Exists(«BookmarkName») = True then
‘Сделайте что-нибудь
End If
Перейти к
Selection.GoTo What:=wdGoToBookmark, Name:=»BookmarkName»
Select
ActiveDocument Bookmarks(«BookmarkName»). Select
Заменить текст
Selection.GoTo What:=wdGoToBookmark, Name:=»BookmarkName»
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.InsertAfter «Новый текст»
ActiveDocument.Bookmarks.Add Range:=Selection.Range, _
Имя:=»BookmarkName»
Вернуться к началу
Документ
Активировать
Документы («Example.doc») .Активировать
Добавить в переменную
Затемнить документ как документ
Установить документ = Документы. FormDoc.doc», _
NewTemplate:=False
Закрыть
Документы(«Example.doc»). Закрыть
Закрыть – Сохранить изменения
Документы(«Example.doc»). Закрыть SaveChanges:=wdSaveChanges
Закрыть – Не сохранять
Документы(«Пример .doc»). Example.doc»).SaveAs(«C:\Example\Example.doc»)
Сохранить
Документы («Пример.doc»). Сохранить
Защитить
Документы («Пример.doc»). Непротечный пароль: = «Пароль»
Количество страниц
Dim VarnumberPages как вариант
varnumberpages = _
Activedocument.content.information (wdactiveendJustedPagenumber)
Печать
Документы («Пример. Топ
Кодирование VBA стало проще
Остановить поиск кода VBA в сети. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области программирования и множеством функций, позволяющих сэкономить время для всех пользователей!
Узнать больше
Шрифт
Размер
Selection. Font.Size = 12
Bold
Selection.Font.Bold = True
Курсив
Selection.Font.Italic = True
подчеркнуть
Selection.font.underline = wdunderlinesingling
All Caps
Selection.font.allcaps = True
Color
Selection.font.TextColor = VBRED
Имя
SELECTE.
Подстрочный индекс
Selection.Font.Subscript = True
Надстрочный индекс
Selection.Font.Superscript = True
Цвет выделения
Selection.Range.HighlightColorIndex = wdYellow
Style
Selection.Style = ActiveDocument.Styles(“Normal”)
Вернуться к началу
Insert
Insert AutoText
Selection.TypeText Text:=”a3″
Selection.Range2 Date.InsertAutoText3
0
Вставить файл
Selection.InsertFile («C:\Docs\Something.doc»)
Вставить разрыв страницы
Selection.InsertBreak Type:=wdPageBreak (182)
Вставка вкладка
Выбор. Typetext Текст: = vbtab
Вставить текст
Выбор. Вернуться к началу
Циклы
Делать до конца документа
Делать до ActiveDocument.Bookmarks(«\Sel») = ActiveDocument.Bookmarks(«\EndOfDoc»)
‘Выполнить что-то
Sub
Для каждого документа в Документах
Dim doc As Document
ForEach doc In Documents
‘Do Something
Next doc
Цикл по абзацам
Sub через абзацы
Dim i As Long, iParCount As Long
iParCount = 4ParCount = 90Paragraphs1 ToCountForiForiFori ActiveDocument.Paragraphs(i).Alignment = wdAlignParagraphLeft
Далее i
Вернуться к началу
Программирование на VBA | Генератор кода работает на вас!
Абзац
KeepLinesTogether
Selection.paragraphformat.keeptogether = true
Keepwithnext
Selection.paragraphformat.shipwithnext = true
Пространство после
Selection.parachformat.spacefter = 12
Пространство до
Selection. parphformat.pacefter = 12
. Центр
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Выровнять по правому краю
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Совместно влево
Selection.paragraphformat.alignment = wdalignparagraphleft
левый отступ
. Selection.paragraphformat.leftindent = incheStopoints (3,75)
Правый отступ
Selection.paragrapformat.
С Selection.ParagraphFormat
.LineSpacingRule = wdLineSpaceExactly
.LineSpacing = 12
Конец с
Цикл по всем абзацам
Подпункты по абзацам
Dim i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.CountFori = 1 To iParCount
ActiveDocument.Paragraphs(i).Alignment = wdAlignParagraphLeft
Next i
Вернуться к началу
Это учебник по использованию VBA с Microsoft Word. В этом руководстве вы узнаете, как написать простой макрос и взаимодействовать с документами, диапазонами, выделениями и абзацами.
Примечание. Если вы новичок в макросах/VBA, вам также может быть полезна эта статья: Как писать макросы VBA с нуля.
VBA — это язык программирования, используемый для автоматизации программ Microsoft Office, включая Word, Excel, Outlook, PowerPoint и Access.
Макросы — это блоки кода VBA, выполняющие определенные задачи.
Когда вы Запишите макрос , Word запишет код VBA в макрос, что позволит вам повторить ваши действия. Вы можете увидеть список всех доступных макросов из Вид > Макросы .
После записи макроса вы сможете редактировать макрос из списка макросов:
Когда вы нажимаете Edit , вы открываете редактор VBA . Используя редактор VBA, вы можете редактировать записанные макросы или писать макросы Word с нуля. Для доступа к редактору VBA используйте сочетание клавиш ALT + F11 или нажмите Visual Basic на ленте разработчика .
Пример макроса Simple Word
Это простой пример макроса Word VBA. Он выполняет следующие задачи:
- Открывает документ Word
- Запись в документ
- Закрывает и сохраняет документ Word.
Sub WordMacroExample() 'Открыть документ и назначить переменной Dim oDoc как документ Установите oDoc = Documents.Open("c:\Users\someone\NewDocument.docx") 'Напишите доку Selection.TypeText "www.automateexcel.com" Selection.TypeParagraph 'Сохранить и закрыть документ oDoc.Сохранить oDoc.Закрыть Конец суб
Основы работы с макросами Word
Весь код VBA должен храниться в рамках подобных процедур. Чтобы создать процедуру в VBA, введите «Sub WordMacroExample» (где «WordMacroExample» — имя желаемого макроса) и нажмите ENTER . VBA автоматически добавит скобки и End Sub.
Объект документа Word
При взаимодействии с Microsoft Word в VBA вы часто будете ссылаться на «Объекты» Word. Наиболее распространенные объекты:
Application Object — Microsoft Word
Document Object — документ Word
Range Object — часть документа Word
Selection Object — выбранный диапазон или положение курсора.
Автомакрос | Окончательная надстройка VBA | Нажмите для бесплатной пробной версии!
Приложение
Приложение является объектом «верхнего уровня». Через него можно получить доступ ко всем другим объектам в Word.
В дополнение к доступу к другим объектам Word можно применить настройки «уровня приложения»:
Application.Options.AllowDragAndDrop = True
Это пример доступа к «Выбору» «Windows(1)» в приложении:
Application.Windows(1).Selection.Characters.Count
Однако , к наиболее распространенным объектам Word можно обращаться напрямую, не вводя полную иерархию. Вместо этого вы можете (и должны) просто ввести:
Selection. Characters.Count
Documents
ActiveDocument
Часто у вас будет два или более документов, открытых в Word, и вам нужно будет указать, какой именно документ Word взаимодействовать с. Один из способов указать, какой документ использовать Активный Документ . Например:
ActiveDocument.PrintOut
… распечатает ActiveDocument. ActiveDocument — это документ в Word, который «имеет фокус»
Чтобы переключить ActiveDocument, используйте команду Activate:
Documents("Example.docx").Activate
ThisDocument
Вместо использования ActiveDocument для ссылки на активный документ , вы можете использовать ThisDocument для ссылки на документ, в котором хранится макрос. Этот документ никогда не изменится.
ThisDocument.PrintOut
Переменные документа
Однако для более сложных макросов может быть сложно отслеживать активный документ. Также может быть неудобно переключаться между документами.
Вместо этого вы можете использовать переменные документа.
Этот макрос назначит ActiveDocument переменной, а затем распечатает документ, используя переменную:
Sub VarExample() Dim oDoc как документ Установите oDoc = ActiveDocument oDoc.PrintOut Конец суб
Document Methods
Open Document
Чтобы открыть документ Word:
Documents.Open "c:\Users\SomeOne\Desktop\Test PM.docx"
открытие:
Dim oDoc as Document Set oDoc = Documents.Open("c:\Users\SomeOne\Desktop\Test PM.docx")
Создать новый документ
Чтобы создать новый документ Word:
Documents.Add
Мы можем указать Word для создания нового документа на основе некоторого шаблона:
Documents.Add Template:="C:\Program Files\Microsoft Office\Templates\MyTemplate.dotx"
Как всегда, полезно и избавляет от огромных проблем назначение документа переменной при создании или открытии:
Dim oDoc как документ Set oDoc = Documents. Add (Template:="C:\Program Files\Microsoft Office\Templates\MyTemplate.dotx")
Сохранить документ
Чтобы сохранить документ:
ActiveDocument.Save
или Сохранить как:
ActiveDocument.SaveAs FileName:= c:\Users\SomeOne\Desktop\test2.docx", FileFormat:=wdFormatDocument
Close Document
To close a Document and save changes:
ActiveDocument.Close wdSaveChanges
or without saving changes:
ActiveDocument.Close wdDoNotSaveChanges
Print Document
This will print the active Document:
ActiveDocument.PrintOut
Диапазон, Выбор, Абзацы
Диапазон и Выбор , вероятно, являются самыми важными объектами в Word VBA и, безусловно, наиболее часто используемыми.
Диапазон относится к некоторой части документа, обычно, но не обязательно, к тексту.
Выделение относится к выделенному тексту (или другому объекту, например изображениям) или, если ничего не выделено, к точке вставки.
Абзацы представляют собой абзацы в документе. Это менее важно, чем кажется, потому что вы не можете получить прямой доступ к тексту абзаца (вам нужно получить доступ к определенному диапазону абзаца, чтобы внести изменения).
Автомакрос | Окончательная надстройка VBA | Нажмите для бесплатной пробной версии!
Диапазон
Диапазон может быть любой частью документа, включая весь документ:
Dim oRange As Range Установите oRange = ActiveDocument.Content
, или он может быть меньше одного символа.
Другой пример, этот диапазон будет относиться к первому слову в документе:
Dim oRange As Range Установите oRange = ActiveDocument.Range.Words(1)
Обычно вы хотите получить диапазон, который относится к определенной части документа, а затем изменить его.
В следующем примере мы сделаем первое слово второго абзаца полужирным:
Dim oRange As Range Установите oRange = ActiveDocument.Paragraphs(2).Range.Words(1) oRange.Bold = True
Установить текст диапазона
Чтобы установить текстовое значение диапазона:
Dim oRange As Range Установите oRange = ActiveDocument.Paragraphs(2).Range.Words(1) oRange.Text = «Hello »
(Совет: обратите внимание на пробел после «Hello». Поскольку объект слова включает пробел после слова, просто «hello» мы получим «Hellonext word»)
С диапазонами можно делать сотни вещей. Всего несколько примеров (здесь предполагается, что вы уже создали объектную переменную oRange , относящуюся к интересующему диапазону):
Изменить шрифт
oRange.Font.Name = "Arial"
Отображать в окне сообщения номер символов в определенном диапазоне
MsgBox oRange. Characters.Count
Вставить текст перед ним
oRange.InsertBefore "это вставленный текст"
Добавить сноску в диапазон
ActiveDocument.Footnotes.Add Range:=oRange, _ Text:="Подробнее читайте на сайтеautomateexcel.com."
Скопировать в буфер обмена
oRange.Copy Часто вам нужно перейти к тому, что относится к конкретному диапазону. Таким образом, вы можете начать его начало и конец oRange.Start = 5 oRange.End = 50
После приведенного выше кода oRange будет ссылаться на текст, начинающийся с пятого и заканчивающийся 50-м символом в документе.
Selection
Selection даже более широко используется, чем Range , потому что с Selections проще работать, чем с Ranges , ЕСЛИ ваш макрос ТОЛЬКО взаимодействует с ActiveDocument.
Сначала выберите нужную часть документа. Например, выберите второй абзац в активном документе:
ActiveDocument. Paragraphs(2).Range.Select
Затем вы можете использовать объект выделения для ввода текста:
Selection.TypeText "Некоторый текст"
Мы можем ввести несколько абзацев ниже «Некоторый текст»:
Selection.TypeText "Некоторый текст" Selection.TypeParagraph
Часто необходимо знать, выделен какой-то текст или у нас просто точка вставки:
Если Selection.Type <> wdSelectionIP Then Выбор.Шрифт.Полужирный = Истина Еще MsgBox "Вам нужно выделить текст." End If
При работе с объектом Selection мы хотим поместить точку вставки в определенное место и выполнять команды, начиная с этой точки.
Начало документа:
Selection.HomeKey Unit:=wdStory, Extend:=wdMove
Начало текущей строки:
Selection.HomeKey Unit:=wdLine, Extend:=wdLine, Extend2 908 Параметр wdMove перемещает точку вставки. Вместо этого вы можете использовать wdExtend, который выделит весь текст между текущей точкой вставки.Selection.HomeKey Unit:=wdLine, Extend:=wdExtendПереместить выделение
Наиболее полезным методом изменения положения точки вставки является перемещение. Чтобы переместить выделение на два символа вперед:
Selection.Move Unit:=wdCharacter, Count:=2для перемещения назад используйте отрицательное число для параметра Count:
Selection.Move Unit:=wdCharacter, Count:=-2Параметр Unit может быть wdCharacter , wdWord, wdLine и т. д. (для просмотра других используйте справку Word VBA).
Чтобы вместо этого переместить слова:
Selection.Move unit:=wdWord, Count:=2
С выделением легче работать (по сравнению с диапазонами), поскольку оно похоже на робота, использующего Word, имитирующего пользователя-человека. Там, где точка вставки – произойдет какое-то действие. Но это означает, что вы должны позаботиться о том, где находится точка вставки! Это непросто после многих шагов в коде. В противном случае Word изменит текст в нежелательном месте.
В случае, если вам нужно какое-то свойство или метод, недоступный в объекте Selection, вы всегда можете легко получить диапазон, связанный с выделением:
Set oRange = Selection.Rangeс использованием диапазонов, но и намного медленнее (важно при работе с большими документами)
Paragraphs
Вы не можете напрямую использовать объект Paragraphs для изменения текста:
ActiveDocument.Paragraphs(1).Text = "Нет, это будет не работает"Выше не сработает (на самом деле выдаст ошибку). Сначала вам нужно получить диапазон, связанный с конкретным абзацем:
ActiveDocument.Paragraphs(1).Range.Text = "Теперь работает :)"Но вы можете напрямую изменить его стиль:
ActiveDocument.Paragraphs(1). Style = "Normal"или измените форматирование на уровне абзаца:
ActiveDocument.Paragraphs(1).LeftIndent = 10или, может быть, вы хотите сохранить этот абзац на одной линии со следующим абзацем:
ActiveDocument. Paragraphs(1).KeepWithNext = TrueСделать абзац центрированным:
ActiveDocument.Paragraphs(1).Alignment = wdAlignParagraphCenterОЧЕНЬ полезно назначить конкретный абзац объектной переменной. Если мы назначаем конкретный абзац переменной, нам не нужно беспокоиться, станет ли первый абзац вторым, потому что мы вставили один абзац перед ним:
dim oPara as Paragraph Установите oPara = Selection.Paragraphs(1) ‘здесь мы назначаем первый абзац текущего выбора переменнойВот пример, когда мы вставляем абзац над первым абзацем, но мы все еще можем ссылаться на старый первый абзац, потому что он был назначен переменной:
Sub ParagraphExample() Dim oPara As Paragraph Установить oPara = ActiveDocument.Paragraphs(1) MsgBox oPara.Range.Text oPara.Range.InsertParagraphBefore 'Вставить абзац MsgBox oPara.Range.Text End SubОбъект абзаца очень часто используется в циклах:
Sub LoopThroughParagraphs() Dim oPara As Paragraph Для каждого oPara в ActiveDocument. Paragraphs 'сделай что-нибудь с этим. Мы просто покажем 'текст абзаца, если его стиль "Заголовок 4" Если oPara.Style = "Заголовок 4" Тогда MsgBox oPara.Range.Text Конец, если Следующий oPara End SubУчебное пособие по Word VBA Заключение
В этом учебном пособии рассмотрены основы Word VBA. Если вы новичок в VBA, вам также следует ознакомиться с нашим общим учебным пособием по VBA, чтобы узнать больше о переменных, циклах, окнах сообщений, настройках, условной логике и многом другом.
Автомакрос | Окончательная надстройка VBA | Нажмите для бесплатной пробной версии!
Примеры макросов Word
Часто задаваемые вопросы по Word VBA
Что такое макрос Word?
Макрос — это общий термин, который относится к набору программных инструкций, автоматизирующих задачи. Макросы Word автоматизируют задачи в Word с помощью языка программирования VBA.
Есть ли в Word VBA?
Да, в Microsoft Word есть редактор VBA.