Макросы для word язык

Содержание

  • Области использования макросов:
  • Включение макросов
  • Запись макросов
  • Изменение комбинаций клавиш для макроса
  • Запуск макроса
  • Создание нового макроса
  • Вопросы и ответы

Как создать макрос в Ворде

Макрос — это набор определенных действий, команд и/или инструкций, которые сгруппированы в одну целостную команду, обеспечивающую автоматическое выполнение той или иной задачи. Если вы активный пользователь MS Word, вы тоже можете автоматизировать часто выполняемые задачи, создав для них соответствующие макросы.

Именно о том, как включить макросы в Ворд, как их создавать и использовать для упрощения, ускорения рабочего процесса и пойдет речь в этой статье. И все же, для начала не лишним будет более подробно разобраться в том, зачем вообще они нужны.

Области использования макросов:

    1. Ускорение часто выполняемых операций. В числе таковых форматирование и редактирование.

    2. Объединение нескольких команд в целостное действие “от и до”. Например, с помощью макроса можно вставить таблицу заданного размера с необходимым количеством строк и столбцов.

    3. Упрощение доступа к некоторым параметрам и инструментам, расположенным в различных диалоговых окнах программы.

    4. Автоматизация сложных последовательностей действий.

Последовательность макросов может быть записана или создана с нуля путем введения кода в редактор Visual Basic на одноименном языке программирования.

Включение макросов

По умолчанию макросы доступны не во всех версиях MS Word, точнее, они просто не включены. Чтобы активировать их необходимо включить средства разработчика. После этого на панели управления программы появится вкладка “Разработчик”. О том, как это сделать, читайте ниже.

Примечание: В версиях программы, в которых макросы доступны изначально (например, Ворд 2016), средства для работы с ними находятся во вкладке “Вид” в группе “Макросы”.

Кнопка Макросы в Word

1. Откройте меню “Файл” (кнопка “Microsoft Office” ранее).

2. Выберите пункт “Параметры” (ранее “Параметры Word”).

3. Откройте в окне “Параметры” категорию “Основные” и перейдите в группе “Основные параметры работы”.

4. Установите галочку напротив пункта “Показывать вкладку “Разработчик” на ленте”.

5. На панели управления появится вкладка “Разработчик”, в которой и будет находиться пункт “Макросы”.

Lumpics.ru

Запись макросов

1. Во вкладке “Разработчик” или, в зависимости от используемой версии Ворда, во вкладке “Вид”, нажмите кнопку “Макросы” и выберите пункт “Запись макроса”.

Запись макроса в Word

2. Задайте имя для создаваемого макроса.

Окно Запись макроса в word

Примечание: Если вы, создавая новый макрос, даете ему точно такое же имя, как у встроенного в программу, действия, записанные вами в новый макрос, будут выполняться взамен стандартным. Для просмотра макросов, доступных в MS Word по умолчанию, в меню кнопки “Макросы” выберите “Команды Word”.

3. В пункте “Макрос доступен для” выберите то, для чего он будет доступен: шаблон или документ, в который его следует сохранить.

Выбор места для применения макроса в Word

    Совет: Если вы хотите, чтобы создаваемый макрос был доступен во всех документах, с которыми вы работаете в дальнейшем, выберите параметр “Normal.dotm”.

4. В поле “Описание” введите описание для создаваемого макроса.

Описание макроса в Word

5. Выполните одно из действий, указанных ниже:

  • Начните запись — чтобы приступить к началу записи макроса, не связывая его при этом с кнопкой на панели управления или комбинацией клавиш, нажмите “ОК”.
  • Создайте кнопку — чтобы связать создаваемый макрос с кнопкой, расположенной на панели управления, выполните следующее:
      • Нажмите “кнопке”;
      • Выберите документ или документы, в которых требуется добавить создаваемый макрос на панель быстрого доступа (раздел “Настройка панели быстрого доступа”);

    Параметры макроса в Word

      Совет: Чтобы создаваемый макрос был доступен для всех документов, выберите параметр “Normal.dotm”.

    Доступ к макросу в Word

    В окне “Макрос из” (ранее “Выбрать команды из”) выберите макрос, который следует записать, нажмите “Добавить”.

    Добавить макрос в Word

      • Если вы хотите настроить эту кнопку, нажмите “Изменить”;
      • Выберите подходящий символ для создаваемой кнопки в поле “Символ”;
      • Введите имя макроса, которое будет отображаться в дальнейшем в поле “Отображаемое имя”;
      • Для начала записи макроса дважды кликните по кнопке “ОК”.

    Запись макроса ОК в Word

    Символ, который вы выбрали, будет отображаться на панели быстрого доступа. При наведении указателя курсора на этот символ, будет отображаться его имя.

  • Назначьте сочетание клавиш — Для того, чтобы назначить комбинацию клавиш для создаваемого макроса, выполните следующие действия:
      • Кликните по кнопке “Клавишами” (ранее “Клавиатура”);

    Запись макроса клавишами в Word

      • В разделе “Команды” выберите макрос, который необходимо записать;

    Настройка клавиатуры в Word

      • В разделе “Новое сочетание клавиш” введите любую удобную для вас комбинацию, после чего нажмите кнопку “Назначить”;

    Настройка комбинаций клавиатуры в Word

      • Для начала записи макроса нажмите “Закрыть”.

    6. Выполните поочередно все те действия, которые необходимо включить в макрос.

    Примечание: Во время записи макроса нельзя использовать мышь для выделения текста, а вот для выбора команд и параметров нужно использовать именно ее. При необходимости, выделить текст можно с помощью клавиатуры.

    Урок: Горячие клавиши в Ворде

    7. Для остановки записи макроса нажмите “Остановить запись”, эта команда расположена в меню кнопки “Макросы” на панели управления.

    остановить запись макроса в Word

    Изменение комбинаций клавиш для макроса

    1. Откройте окно “Параметры” (меню “Файл” или кнопка “MS Office”).

    2. Выберите пункт “Настройка”.

    3. Нажмите на кнопку “Настройка”, расположенную рядом с полем “Сочетание клавиш”.

    4. В разделе “Категории” выберите “Макросы”.

    5. В открывшемся списке выберите макрос, который необходимо изменить.

    6. Кликните по полю “Новое сочетание клавиш” и нажмите клавиши или комбинацию клавиш, которые вы хотите назначить для конкретного макроса.

    Настройка клавиатуры в Word

    7. Убедитесь, что назначенное вами сочетание клавиш не используется для выполнения другой задачи (поле “Текущее сочетание”).

    8. В разделе “Сохранить изменения” выберите подходящий вариант (место) для сохранения места, где макрос будет запускаться.

    Сохранить Настройки клавиатуры в word

      Совет: Если вы хотите, чтобы макрос был доступен к использованию во всех документах, выберите параметр “Normal.dotm”.

    9. Нажмите “Закрыть”.

    Запуск макроса

    1. Нажмите на кнопку “Макросы” (вкладка “Вид” или “Разработчик”, в зависимости от используемой версии программы).

    Открыть макросы в Word

    2. Выберите макрос, который хотите запустить (список “Имя макроса”).

    3. Нажмите “Выполнить”.

    Выбор Макроса в Word

    Создание нового макроса

    1. Нажмите кнопку “Макросы”.

    Кнопка макросы в Word

    2. Задайте имя для нового макроса в соответствующем поле.

    Имя Макроса в Word

    3. В разделе “Макросы из” выберите шаблон или документ, для которого будет сохранен создаваемый макрос.

    Создать Макрос в Word

      Совет: Если вы хотите, чтобы макрос стал доступен во всех документах, выберите параметр “Normal.dotm”.

    4. Нажмите “Создать”. Будет открыт редактор Visual Basic, в котором и можно будет создать новый макрос на языке Visual Basic.

    Microsoft Visual Basic for Applications - Normal

    На этом все, теперь вы знаете, что такое макросы в MS Word, зачем они нужны, как их создавать и как с ними работать. Надеемся, информация из этой статьи будет полезной для вас и действительно поможет упростить, ускорить работу со столь продвинутой офисной программой.

    Angry word helper

    Возможно, у вас есть ощущение, что тема макросов в Ворде достаточно маргинальная. Кто ими может пользоваться-то вообще? Ну, малварь делают иногда… Да и пишутся они на давно забытом VBA (Visual Basic for Applications, он же несколько урезанный Visual Basic 6 в интерпретируемом виде), фу!

    Но на самом деле у многих ведь возникает потребность то какой-нибудь отчётик в ворде написать, то курсовую оформить, то резюме перед отправкой в компанию вашей мечты подправить… А у некоторых работа напрямую связана с Word. Часто различные системы документации предлагают экспорт в форматы doc или docx, которые нужны вашим заказчикам. И бывает, что документы после экспорта выглядят фигово, приходится их исправлять.

    Работа в ворде нередко подразумевает выполнение каких-то однообразных повторяющихся действий, которые иногда (но далеко не всегда!) решаются грамотной настройкой стилей и их применением, а также использованием шаблонов. Как же автоматизировать всё остальное? Тут-то нам на помощь приходят те самые макросы.

    Что же в них такого хорошего? Ну, например, они автоматически и достаточно быстро выполняют за вас однообразные действия. Могут что-то подсчитать, переформатировать документ, пометить аннотациями подозрительные места, — словом, всё, что запрограммируете. Могут даже в режиме реального времени что-то исправлять и о чем-то предупреждать, пока вы пишете документ. VBA в Word позволяет автоматизировать практически все действия, которые вы можете выполнить с документом вручную.

    Макросы можно прикрепить как к конкретному документу (в чём для нас мало пользы, а для писателей троянов это единственная опция), так и к самому ворду, что позволяет применять макросы к любому документу, с которым вы работаете.

    Макросы работают в любой версии Word и требуют минимум правок при переносе с одной версии на другую (а чаще всего вообще не требуют). На макросах можно даже реализовать полноценный пользовательский интерфейс с формами!

    Давайте же занырнём в Visual Basic и напишем что-нибудь полезное! В качестве первого примера я покажу, как сделать макрос, который заменит два и более последовательных перевода строки на единственный. Это часто требуется при исправлении документов после экспорта из систем документации, или если вы хотите удалить случайно проставленные лишние переводы строк в собственноручно написанном документе. Макрос сделаем добротный, с пользовательским интерфейсом и прогрессом выполнения операции.

    Чтобы начать писать или использовать макросы, сначала требуется убедиться, что в Word’е отображается панель «Разработчик» («Developer»). Если она у вас не отображается, следует зайти после создания нового документа в меню «Файл» («File») -> «Параметры» («Options») -> «Настроить ленту» («Customize Ribbon»), после чего найти там и установить флажок «Разработчик» («Developer»).

    Enable Word developer tab

    После этого нужно зайти на вкладку «Разработчик» и выбрать меню «Visual Basic».

    Word Visual Basic button

    В открывшемся окне слева вы увидите два проекта: «Normal» и проект, относящийся к текущему открытому документу. Возможно, в проекте «Normal» у вас уже будет какой-то файл в каталоге «Modules». В любом случае, создайте новый модуль, кликнув правой кнопкой по проекту «Normal» и выбрав «Insert» -> «Module».

    Word insert new module

    Созданный модуль представляет из себя файл, куда мы и будем писать код макросов. Можно переименовать модуль (по умолчанию его имя будет «Module1») в окне «Properties» -> «Name». Я назову свой модуль «AllMacros». Теперь откроем код модуля, дважды кликнув по его имени, и приступим к созданию макроса. Напомню, что наша цель — заменить два и более последовательных перевода строки на единственный, произведя замены по всему документу. Очевидно, нам потребуется функция, которая осуществляет поиск по тексту, ведь мы хотим найти несколько последовательных переводов строки. В Word это эквивалентно началу нового параграфа. Вы могли бы осуществить поиск начала нового параграфа через обычное окно поиска, введя в поле поиска ^p, ^13 или ^013 (что соответствует ASCII-коду перевода строки). Функция поиска будет выглядеть так:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    Private Function FindNextText(text As String, useWildcards As Boolean)

        Selection.Find.ClearFormatting

        Selection.Find.Replacement.ClearFormatting

        With Selection.Find

            .Text = text

            .Forward = True

            .Format = False

            .MatchCase = False

            .MatchWholeWord = False

            .MatchKashida = False

            .MatchDiacritics = False

            .MatchAlefHamza = False

            .MatchControl = False

            .MatchWildcards = useWildcards

            .MatchSoundsLike = False

            .MatchAllWordForms = False

            .Wrap = wdFindStop

        End With

        Selection.Find.Execute

        FindNextText = Selection.Find.Found

    End Function

    Давайте разберём, что тут происходит. Мы объявляем функцию с двумя параметрами. Первый имеет тип String — это текст для поиска, а второй Boolean говорит о том, нужно ли использовать символы подстановки (wildcards). Про них я поговорю позже. В следующих двух строках 2 и 3 мы очищаем форматирование для строки поиска и строки замены, если оно было задано пользователем. Word позволяет задать форматирование строки поиска/замены, а для нашей задачи это не требуется. Далее мы задаём набор параметров для объекта Selection.Find: выставляем неинтересные нам параметры в False, параметр Text — это текст, который мы хотим найти, а параметр MatchWildcards указывает на использование символов подстановки. Параметр Wrap говорит о том, следует ли продолжать поиск, когда мы дошли до той точки, с которой поиск начали, и у нас его значение установлено в wdFindStop, так как мы хотим остановиться, когда дойдём до конца документа, и не зацикливать поиск.

    Вообще, всё это обилие свойств и объектов из объектной модели Word, Excel и PowerPoint (да, там тоже есть макросы) хорошо описано в MSDN. Например, вот тут перечислены свойства и методы объекта Find. Есть русская документация (скажем, эта страница), но она выполнена совершенно кринжовым машинным переводом, невозможно читать:

    Есть совершенно смехотворные страницы:

    В общем, лучше читайте на английском. :D

    Кроме того, все доступные объекты, их свойства и методы можно посмотреть прямо в редакторе VBA в самом Word’е. Для этого нужно нажать F2 или выбрать меню «View» -> «Object browser», что приведет к открытию браузера объектов (Object browser), в котором можно пролистать или поискать то, что вам доступно.

    Word object browser

    Но вернёмся к нашей функции. На строке 19 мы непосредственно выполняем поиск заданного текста с указанными параметрами. Строка 20 — эта конструкция, аналогичная return в си-подобных языках, указывает возвращаемое значение функции. Мы возвращаем булевое значение Selection.Find.Found, которое говорит о том, было ли что-то найдено.

    Хочу заметить, что использование объекта Selection.Find и изменение его свойств заменит их значения и для пользователя. Например, если вы в Word искали что-то хитроумное с конкретно заданными параметрами, то выполнение макроса заменит ваши параметры поиска на те, которые мы задали в макросе. В идеале, их можно запомнить, а потом вернуть, но мы не будем так сильно заморачиваться, а просто всё за собой подчистим. Сделаем функцию, которая сбрасывает параметры в значения по умолчанию:

    Private Sub ClearFindAndReplaceParameters()

        With Selection.Find

           .ClearFormatting

           .Replacement.ClearFormatting

           .Text = «»

           .Replacement.Text = «»

           .Forward = True

           .Wrap = wdFindStop

           .Format = False

           .MatchCase = False

           .MatchWholeWord = False

           .MatchWildcards = False

           .MatchSoundsLike = False

           .MatchAllWordForms = False

        End With

    End Sub

    Обратите внимание, что это уже Sub, а не Function, потому что мы не хотим из этой процедуры возвращать никакое значение. Это аналог функции void в си-подобных языках.

    Теперь нужно определить, как нам найти два или более последовательных перевода строки. Для этого нам и потребуются упомянутые ранее wildcards. Word поддерживает символы подстановки при поиске, и по своей функциональности они напоминают регулярные выражения. Кстати, вы можете ими пользоваться и без макросов из окна расширенного поиска:

    Word wildcards

    Хорошее описание символов подстановки я нашел здесь, правда, на английском языке. Составим регулярное выражение для поиска двух и более последовательных переводов строки: [^013]{2,}. Это очень похоже на классическое регулярное выражение Perl или PCRE, но в квадратных скобках в уникальном стиле Word мы задаем символ перевода строки. Фигурные скобки указывают, что символов перевода подряд должно быть два или более. Тут, кстати, есть нюанс: не во всех версиях/локализациях Word такая регулярка заработает. В некоторых случаях вместо запятой потребуется указать точку с запятой (да, в Microsoft иногда делают крайне странные вещи). Чтобы сделать наш макрос более универсальным, напишем функцию, которая вернёт регулярное выражение, пригодное для поиска в той версии Word, в которой эту функцию запустили:

    Private Function GetLineBreakSearchRegExp()

        On Error GoTo Err

        FindNextText «[^013]{2,}», True

        GetLineBreakSearchRegExp = «[^013]{2,}»

        Exit Function

    Err:

        GetLineBreakSearchRegExp = «[^013]{2;}»

    End Function

    Здесь мы сначала пытаемся осуществить поиск с помощью wildcard’а [^013]{2,}. Если всё окей, то вернём из функции этот самый wildcard как рабочий (строка 4). В противном случае произойдёт ошибка, но мы готовы её обработать: мы установили обработчик всех ошибок в строке 2. Нас перекинет на метку Err, и тут мы вернём wildcard, который пригоден для других ревизий Word (в котором запятая внутри фигурных скобок заменена на точку с запятой).

    Далее напишем функцию, которая будет заменять несколько последовательных переводов строки на единственный:

    Private Sub RemoveNextEnters()

        Selection.MoveStart wdWord, 1

        If Selection.Range.Start <> Selection.Range.End Then Selection.Delete

    End Sub

    Эта функция подразумевает, что вызывать её будут тогда, когда объект Selection указывает на найденные несколько переводов строки. В строке 2 перемещаем начало выделения (а в выделены у нас будут все найденные последовательные переводы строки) на один символ вперед, а затем в строке 3, если начало выделения не совпадает с его концом, удаляем его содержимое. Таким образом, если было выделено три перевода строки, мы отступаем вперед на 1 символ (оставляя один перевод строки нетронутым), а затем удаляем оставшиеся два.

    Осталось написать последнюю функцию, которая будет всем управлять.

    Sub RemoveExcessiveEnters()

        Dim lineBreakSearchRegExp As String

        lineBreakSearchRegExp = GetLineBreakSearchRegExp()

        Selection.HomeKey Unit:=wdStory

        While FindNextText(lineBreakSearchRegExp, True) = True

            RemoveNextEnters

        Wend

        ClearFindAndReplaceParameters

    End Sub

    Здесь мы оперируем ранее написанными функциями. Сначала получаем текст регулярного выражения (wildcard’а) для поиска нескольких переводов строки подряд, затем вызовом HomeKey в строке 5 переходим в самое начало документа (перемещаем туда курсор), а затем в цикле ищем все интересующие нас места и удаляем излишние переводы строки. В конце сбрасываем параметры поиска на значения по умолчанию.

    Finished word macro

    Вот и всё, макрос можно запускать! Обратите внимание, что все функции, кроме последней, мы пометили Private. Мы не хотим, чтобы их вызывали напрямую. Доступной для вызова снаружи будет только функция RemoveExcessiveEnters. Перед запуском макроса стоит убедиться, что макросы включены. Если вылазит такая панель, то нужно нажать «Включить содержимое» («Enable content»):

    Word enable content

    Если такой панели нет, то можно зайти в меню «Файл» («File») -> «Сведения» («Info») и включить макросы уже оттуда:

    Word enable content from info menu

    Вы можете включить макросы на время одного сеанса Word (это по умолчанию и происходит, если нажимаете «Включить содержимое»), так что после перезапуска Word макросы снова будут отключены. Для запуска макроса возвращаемся в Word на панель «Разработчик» и нажимаем кнопку «Макросы» («Macros»), выбираем наш макрос RemoveExcessiveEnters и нажимаем «Выполнить» («Run»). Разумеется, у вас должен быть открыт какой-нибудь подопытный документ, где имеются лишние переводы строк. В качестве бонуса наш макрос ещё и удалит пустые элементы списков, потому что они представляют из себя точно такие же несколько переводов строки подряд.

    Word macro: before and after

    Макрос выполняется достаточно быстро. Его действие можно отменить (каждый шаг независимо), открыв меню выполненных действий:

    Undo Word macro

    Макросы можно отлаживать через окно VBA, в котором мы писали макрос. Кликнув слева от строки кода, можно, как и в других средах разработки, поставить точку останова, а потом запустить макрос кнопкой «Run». Запустится та функция, на которой у вас находится курсор. Если вы поставите курсор на функцию с параметрами, то появится обычный запрос на выбор макроса для запуска, как при нажатии на кнопку «Макросы» в Word.

    Debug Word macros

    Думаю, что материала для одной статьи уже вполне достаточно. Я, конечно, пообещал горы функционала в виде интерфейса пользователя, отслеживания прогресса выполнения, и всё это обязательно будет, но в следующей публикации.

    Код макроса можно скачать тут. Вы сможете его импортировать к себе в Word, кликнув правой кнопкой на «Normal» -> «Import file…» и выбрав загруженный файл.

    P.S. Кстати, рекомендую создавать бэкапы своих макросов, экспортируя их куда-нибудь на диск. Даже лицензионный Word имеет свойство их иногда по какой-то причине удалять из шаблона Normal, в котором мы их создавали.

    Word для Microsoft 365 Word для Интернета Word 2021 Word 2019 Word 2016 Word 2013 Word 2010 Word 2007 Еще…Меньше

    В Word можно автоматизировать часто выполняемые задачи с помощью макросов. Макрос — это набор команд и инструкций, группируемых вместе в виде единой команды для автоматического выполнения задачи.

    Чтобы сэкономить время при выполнении часто повторяющихся задач, объедините несколько действий в макрос. Сначала необходимо записать макрос. Затем вы сможете запускать его нажатием кнопки на панели быстрого доступа или с помощью сочетания клавиш. Способ запуска зависит от того, как вы настроите макрос.

    1. В меню Вид последовательно выберите пункты Макросы и Записать макрос.

      Запись макрокоманды

    2. Введите имя макроса.

      Поле имени макроса

    3. Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить изменения в указано значение Всех документов (Normal.dotm).

      Поле для выбора места сохранения макроса

    4. Чтобы запускать макрос нажатием кнопки, выберите пункт Кнопка.

      Выберите этот пункт, чтобы назначить макрос кнопке

    5. Щелкните новый макрос (у него будет имя примерно следующего вида: Normal.NewMacros.<имя вашего макроса>), а затем нажмите кнопку Добавить.

      Макрос и кнопка "Добавить"

    6. Нажмите кнопку Изменить.

      Кнопка "Изменить" в окне "Настройка панели быстрого доступа"

    7. Выберите изображение для кнопки, введите нужное имя и дважды нажмите OK.

      Параметры кнопок в окне "Изменение кнопки"

    8. Теперь необходимо записать все шаги макроса. Выбирайте команды или нажимайте клавиши для каждого шага задачи. Word будет записывать все, что вы щелкаете мышью, и все клавиши, которые вы нажимаете.

      Примечание: Во время записи макроса для выделения текста используйте клавиатуру. Макрос не записывает выделения, сделанные с помощью мыши.

    9. Чтобы остановить запись, в меню Вид последовательно выберите пункты Макросы и Остановить запись.

      Команда "Остановить запись"

    На панели быстрого доступа появится кнопка для вашего макроса.

    Кнопка макроса на панели быстрого запуска

    Чтобы запустить макрос, нажмите эту кнопку.

    1. В меню Вид последовательно выберите пункты Макросы и Записать макрос.

      Запись макрокоманды

    2. Введите имя макроса.

      Поле имени макроса

    3. Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить изменения в указано значение Всех документов (Normal.dotm).

      Поле для выбора места сохранения макроса

    4. Чтобы запускать макрос с помощью сочетания клавиш, выберите пункт Клавиатура.

      Выберите этот пункт, чтобы назначить макрос сочетанию клавиш на клавиатуре

    5. Введите сочетание клавиш в поле Новое сочетание клавиш.

    6. Проверьте, не назначено ли такое же сочетание клавиш какой-либо другой команде. Если такое сочетание клавиш назначено какой-либо другой команде, то попробуйте использовать другое сочетание клавиш.

    7. Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить в указано значение Normal.dotm.

    8. Нажмите кнопку Назначить.

    9. Теперь необходимо записать все шаги макроса. Выбирайте команды или нажимайте клавиши для каждого шага задачи. Word будет записывать все, что вы щелкаете мышью, и все клавиши, которые вы нажимаете.

      Примечание: Во время записи макроса для выделения текста используйте клавиатуру. Макрос не записывает выделения, сделанные с помощью мыши.

    10. Чтобы остановить запись, в меню Вид последовательно выберите пункты Макросы и Остановить запись.

      Команда "Остановить запись"

    Чтобы запустить макрос, нажмите сочетание клавиш.

    Чтобы запустить макрос, нажмите кнопку на панели быстрого доступа, нажмите сочетание клавиш или запустите макрос из списка Макросы.

    1. В меню Вид последовательно выберите пункты Макросы и Просмотр макросов.

      Команда "Просмотр макросов"

    2. В пункте Имя макроса выберите в списке макрос, который вы хотите запустить.

    3. Нажмите кнопку Запустить.

    Чтобы сделать макрос в одном документе доступным во всех новых документах, добавьте его в шаблон Normal.dotm.

    1. Откройте документ, в котором содержится макрос.

    2. В меню Вид последовательно выберите пункты Макросы и Просмотр макросов.

      Команда "Просмотр макросов"

    3. Нажмите кнопку Организатор.

      Копка "Организатор" в поле "Просмотр макросов"

    4. Щелкните макрос, который вы хотите добавить в шаблон Normal.dotm, а затем нажмите кнопку Копировать.

    1. В меню Файл последовательно выберите пункты Параметры и Настроить ленту.

    2. В пункте Выбрать команды из выберите пункт Макросы.

    3. Выберите нужный макрос.

    4. В пункте Настройка ленты выберите вкладку и настраиваемую группу, в которую вы хотите добавить макрос.

    Если у вас нет настраиваемой группы, то нажмите кнопку Новая группа. Затем нажмите кнопку Переименовать и введите имя настраиваемой группы.

    1. Нажмите кнопку Добавить.

    2. Чтобы изменить изображение для макроса и ввести нужное имя, нажмите кнопку Переименовать.

    3. Дважды нажмите кнопку OK.

    1. На вкладке Разработчик в группе Код нажмите кнопку Макросы.

    2. В поле Имя макроса введите имя нового макроса.

      Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Word, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, выберите пункт Команды Word в списке Макросы из.

    3. В списке Макросы из щелкните шаблон или документ, в котором нужно сохранить макрос.

      Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

    4. Нажмите кнопку Создать, чтобы вызвать редактор Visual Basic.

    После запуска редактора Visual Basic могут потребоваться дополнительные сведения о работе с языком Visual Basic для приложений. Для получения сведений выберите в меню Help (Справка) пункт Microsoft Visual Basic Help (Справка по Microsoft Visual Basic) или нажмите клавишу F1.

    Вы можете записать последовательность действий или создать макрос с нуля, введя код на языке Visual Basic для приложений в редактор Visual Basic.

    Примечание: Чтобы работать с макросами в приложении Office Word 2007, необходимо отобразить вкладку Разработчик.

    1. Нажмите кнопку Microsoft Office Изображение кнопки Office, а затем — Параметры Word.

    2. Выберите категорию Основные.

    3. В группе Основные параметры работы с Word установите флажок Показывать вкладку «Разработчик» на ленте.

      Примечание: Лента входит в Пользовательский интерфейс Microsoft Office Fluent.

    1. На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

      Группа "Код" на вкладке "Разработчик"

    2. В поле Имя макроса введите имя нового макроса.

      Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Office Word 2007, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, на вкладке Разработчик в группе Код нажмите кнопку Макросы. В списке Макросы из выберите вариант Команды Word.

    3. В списке Макрос доступен для щелкните шаблон или документ, в котором нужно сохранить макрос.

      Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

    4. Введите описание макроса в поле Описание.

    5. Выполните одно из указанных ниже действий.

      • Начните запись.    Чтобы начать запись макроса, не связывая его с кнопкой на панели быстрого доступа или сочетанием клавиш, нажмите кнопку ОК.

      • Создайте кнопку.    Чтобы связать макрос с кнопкой на панели быстрого доступа, сделайте следующее:

        1. Щелкните кнопке.

        2. В группе Настройка панели быстрого доступа выберите документ или все документы, для которых требуется добавить макрос на панель быстрого доступа.

          Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

        3. В диалоговом окне Выбрать команды из выберите макрос, который требуется записать, и нажмите кнопку Добавить.

        4. Чтобы настроить кнопку, нажмите кнопку Изменить.

        5. В поле Символ выберите нужный символ для кнопки.

        6. В поле Отображаемое имя введите имя макроса, которое должно отображаться.

        7. Чтобы начать запись макроса, нажмите кнопку ОК два раза.

          На панели быстрого доступа будет показан выбранный символ. Заданное имя отображается при наведении указателя на символ.

      • Назначьте сочетание клавиш.    Чтобы назначить макросу сочетание клавиш, сделайте следующее:

        1. Выберите пункт Клавиатура.

        2. В списке Команды выберите макрос, который требуется записать.

        3. В поле Новое сочетание клавиш введите любую последовательность клавиш и нажмите кнопку Назначить.

        4. Чтобы начать запись макроса, нажмите кнопку Закрыть.

    6. Выполните действия, которые следует включить в макрос.

      Примечание: При записи макроса вы можете с помощью мыши щелкать команды и параметры, но не выделять текст. Для выделения текста необходимо использовать клавиатуру. Дополнительные сведения о выделении текста с помощью клавиатуры см. в статье Выделение текста.

    7. Чтобы остановить запись макрокоманд, выберите команду Остановить запись в группе Код.

    Изменение сочетания клавиш для макроса

    1. Нажмите кнопку Microsoft Office Изображение кнопки Office, а затем — Параметры Word.

    2. Выберите команду Настройка .

    3. Рядом с полем Сочетания клавиш нажмите Настройка.

    4. В списке Категории выберите пункт Макросы.

    5. В списке Макросы выберите макрос, который нужно изменить.

    6. Щелкните поле Новое сочетание клавиш и нажмите клавиши, которые следует назначить.

    7. В поле Текущие сочетания проверьте, не используется ли назначаемое сочетание для выполнения другой задачи.

    8. В списке Сохранить изменения в выберите вариант, который соответствует месту, в котором должен запускаться макрос.

      Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

    9. Нажмите кнопку Закрыть.

    1. На вкладке Разработчик в группе Код выберите пункт Макросы.

      Группа "Код" на вкладке "Разработчик"

    2. В списке Имя макроса выберите макрос, который необходимо запустить.

    3. Нажмите кнопку Выполнить.

    1. На вкладке Разработчик в группе Код нажмите кнопку Макросы.

      Группа "Код" на вкладке "Разработчик"

    2. В поле Имя макроса введите имя нового макроса.

      Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Office Word 2007, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, выберите пункт Команды Word в списке Макросы из.

    3. В списке Макросы из щелкните шаблон или документ, в котором нужно сохранить макрос.

      Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

    4. Нажмите кнопку Создать, чтобы вызвать редактор Visual Basic.

    После запуска редактора Visual Basic могут потребоваться дополнительные сведения о работе с языком Visual Basic для приложений. Для получения сведений выберите в меню Help (Справка) пункт Microsoft Visual Basic Help (Справка по Microsoft Visual Basic) или нажмите клавишу F1.

    Чтобы быстро выполнять часто повторяющиеся задачи, в классической версии Word вы можете объединить шаги в макросы, а затем запускать их одним щелчком мыши. В Word в Интернете такие задачи придется выполнять вручную.

    Если у вас есть Word, нажмите кнопку Открыть в Word, чтобы открыть документ в Word.

    Изображение команды "Открыть в настольном приложении"

    Затем следуйте инструкциям для классических версий Word.

    Если вы запустите макрос в Word и сохраните документ, вы увидите результаты работы макроса при повторном открытии документа в Word в Интернете.

    Нужна дополнительная помощь?

    Содержание

    • VBA PDF (бесплатные загрузки)
    • Примеры Word VBA «Шпаргалка»
    • Учебное пособие по макросам Word VBA
    • Пример простого макроса Word
    • Объект документа Word
    • Документы
    • Диапазон, выделение, абзацы
    • Примеры макросов Word

    Добро пожаловать в наше мега-руководство по Word VBA / макросам!

    Эта страница содержит:

      1. Учебное пособие по Word VBA в формате PDF (бесплатная загрузка)
      2. Word VBA «Шпаргалка», содержащая список наиболее часто используемых фрагментов кода Word VBA.
      3. Полное руководство по Word VBA / Macro.
      4. Список всех наших руководств по макросам Word VBA с возможностью поиска

    Возможно, вас заинтересует наше интерактивное руководство по VBA для Excel. Хотя некоторые из примеров / упражнений относятся к Excel VBA, большая часть содержимого является общим для всех VBA, и вам может быть полезно изучить такие концепции, как If, Loops, MessageBoxes и т. Д.

    VBA PDF (бесплатные загрузки)

    Загрузите наше бесплатное руководство по Microsoft Word VBA! Или учебники VBA для других программ Office!

    Скачать

    Ниже вы найдете простые примеры кода VBA для работы с Microsoft Word.

    Выбрать / перейти к

    ОписаниеКод VBABackspaceSelection.TypeBackspaceВыбрать весь документSelection.HomeKey Unit: = wdStory
    Selection.ExtendКопироватьSelection.CopyУдалитьSelection.Delete Unit: = wdCharacter, Count: = 1Вставить послеSelection.InsertAfter «текст»Начало строкиSelection.HomeKey Unit: = wdLineКонец линииSelection.EndKey Unit: = wdLineВставитьSelection.PasteВыбрать всеSelection.WholeStoryВыбрать всю строкуSelection.EndKey Unit: = wdLine, Extend: = wdExtendВверх по абзацуSelection.MoveUp Unit: = wdParagraph, Count: = 1Переместить вправо на один символSelection.MoveRight Unit: = wdCharacter, Count: = 1Переместить вправо на одну ячейку в таблицеSelection.MoveRight Unit: = wdCellПерейти к началу документаSelection.HomeKey Unit: = wdStoryПерейти в конец документаSelection.EndKey Unit: = wdStoryПерейти на страницу 1Selection.GoTo What: = wdGoToPage, Which: = wdGoToNext, Name: = ”1 ″Перейти к началу страницыSelection.GoTo What: = wdGoToBookmark, Name: = ” Page”
    Selection.MoveLeft Unit: = wdCharacter, Count: = 1

    Return to Top

    Закладки

    ОписаниеКод VBAДобавлятьС ActiveDocument.Bookmarks
    .Add Range: = Selection.Range, Name: = «Name».
    .DefaultSorting = wdSortByName
    .ShowHidden = Ложь
    Конец сСчитатьDim n as Integer
    n = ActiveDocument.Bookmarks.CountУдалитьActiveDocument.Bookmarks («Имя закладки»). УдалитьСуществуют?Если ActiveDocument.Bookmarks.Exists («BookmarkName») = True, то
    ‘Сделай что-нибудь
    Конец, еслиПерейти кSelection.GoTo What: = wdGoToBookmark, Name: = ”BookmarkName”ВыбиратьActiveDocument.Bookmarks («Имя закладки»). ВыберитеЗаменить текстSelection.GoTo What: = wdGoToBookmark, Name: = ”BookmarkName”
    Selection.Delete Unit: = wdCharacter, Count: = 1
    Selection.InsertAfter «Новый текст»
    ActiveDocument.Bookmarks.Add Range: = Selection.Range, _
    Name: = ”BookmarkName”

    Return to Top

    Документ

    ОписаниеКод VBAАктивироватьДокументы («Example.doc»). АктивироватьДобавить в переменнуюDim doc As Document
    Установить doc = Documents.AddДобавлятьDocuments.AddДобавить (из другого документа)Documents.Add Template: = ”C: Forms FormDoc.doc”, _
    NewTemplate: = FalseЗакрыватьДокументы («Example.doc»). ЗакрытьЗакрыть — сохранить измененияДокументы («Example.doc»). Закройте SaveChanges: = wdSaveChangesЗакрыть — не сохранятьДокументы («Example.doc»). Закройте SaveChanges: = wdDoNotSaveChanges.Закрыть — запрос на сохранениеДокументы («Example.doc»). Закройте SaveChanges: = wdPromptToSaveChanges.

    Return to Top

    Столбцы

    ОписаниеКод VBAСохранить какДокументы («Example.doc»). SaveAs («C: Example Example.doc»)СохранитьДокументы («Example.doc»). СохранитьЗащищатьДокументы («Example.doc»). Защитить пароль: = «пароль»Снять защитуДокументы («Example.doc»). Снять пароль: = «пароль»Число страницDim varNumberPages как вариант
    varNumberPages = _
    ActiveDocument.Content.Information (wdActiveEndAdjustedPageNumber)РаспечататьДокументы («Example.doc»). Распечатать

    Return to Top

    Устали искать примеры кода VBA? Попробуйте AutoMacro!

    Шрифт

    ОписаниеКод VBAРазмерSelection.Font.Size = 12ЖирныйSelection.Font.Bold = TrueКурсивSelection.Font.Italic = TrueПодчеркиваниеSelection.Font.Underline = wdUnderlineSingleВсе заглавные буквыSelection.Font.AllCaps = TrueЦветSelection.Font.TextColor = vbRedИмяSelection.Font.Name = «Абади»Нижний индексSelection.Font.Subscript = TrueSuperScriptSelection.Font.Superscript = TrueЦвет выделенияSelection.Range.HighlightColorIndex = wdYellowСтильSelection.Style = ActiveDocument.Styles («Нормальный»)

    Return to Top

    Вставлять

    ОписаниеКод VBAВставить автотекстSelection.TypeText Текст: = ”a3 ″
    Selection.Range.InsertAutoTextВставить код датыВставить файлSelection.InsertFile («C: Docs Something.doc»)Вставить разрыв страницыSelection.InsertBreak Тип: = wdPageBreakВставить символ абзацаSelection.TypeText Text: = Chr $ (182)Вставить вкладкуSelection.TypeText Текст: = vbTabВставить текстSelection.TypeText Text: = «Любой текст»Вставить абзац типаSelection.TypeParagraphВставить абзацSelection.InsertParagraph

    Return to Top

    Петли

    ОписаниеКод VBAСделать до конца документаСделать до ActiveDocument.Bookmarks (« Sel») = ActiveDocument.Bookmarks (« EndOfDoc»)
    ‘Сделай что-нибудь
    SubДля каждого документа в ДокументахDim doc As Document
    Для каждого документа в документах
    ‘Сделай что-нибудь
    Следующий документЦикл по абзацамПодпункты через абзацы
    Dim i As Long, iParCount As Long
    iParCount = ActiveDocument.Paragraphs.CountFori = 1 На iParCount
    ActiveDocument.Paragraphs (i) .Alignment = wdAlignParagraphLeft
    Далее я

    Return to Top

    Пункт

    ОписаниеКод VBAKeepLinesTogetherSelection.ParagraphFormat.KeepTogether = TrueKeepWithNextSelection.ParagraphFormat.KeepWithNext = ИстинаПробел послеSelection.ParagraphFormat.SpaceAfter = 12Пространство доSelection.ParagraphFormat.SpaceBefore = 0Выровнять по центруSelection.ParagraphFormat.Alignment = wdAlignParagraphCenterВыровнять по правому краюSelection.ParagraphFormat.Alignment = wdAlignParagraphRightВыровнять по левому краюSelection.ParagraphFormat.Alignment = wdAlignParagraphLeftЛевый отступSelection.ParagraphFormat.LeftIndent = InchesToPoints (3,75)Правый отступSelection.ParagraphFormat.RightIndent = InchesToPoints (1)Межстрочный интервалС Selection.ParagraphFormat
    .LineSpacingRule = wdLineSpaceExactly
    .LineSpacing = 12
    Конец сПеребрать все абзацыПодпункты через абзацы
    Dim i As Long, iParCount As Long
    iParCount = ActiveDocument.Paragraphs.CountFori = 1 На iParCount
    ActiveDocument.Paragraphs (i) .Alignment = wdAlignParagraphLeft
    Далее я

    Return to Top

    Учебное пособие по макросам Word VBA

    Это руководство по использованию VBA с Microsoft Word. Это руководство научит вас писать простой макрос и взаимодействовать с документами, диапазонами, выделениями и абзацами.

    Примечание. Если вы новичок в Macros / VBA, вам также может быть полезна эта статья: Как писать макросы VBA с нуля.

    VBA — это язык программирования, используемый для автоматизации программ Microsoft Office, включая Word, Excel, Outlook, PowerPoint и Access.

    Макросы представляют собой блоки кода VBA, которые выполняют определенные задачи.

    Когда ты Записать макрос, Word запишет код VBA в макрос, что позволит вам повторять ваши действия. Вы можете увидеть список всех доступных макросов из Просмотр> Макросы.

    После записи макроса вы сможете редактировать макрос из списка макросов:

    Когда вы нажимаете Редактировать, вы открываете Редактор VBA. Используя редактор VBA, вы можете редактировать записанные макросы или писать макрос Word с нуля. Для доступа к редактору VBA используйте ярлык ALT + F11 или щелкните Visual Basic от Лента разработчика.

    Пример простого макроса Word

    Это простой пример макроса Word VBA. Он выполняет следующие задачи:

    • Открывает документ Word
    • Записывает в документ
    • Закрывает и сохраняет документ Word.
    123456789101112131415 Sub WordMacroExample ()’Открыть документ и назначить переменнойDim oDoc как документУстановите oDoc = Documents.Open («c: Users something NewDocument.docx»).’Написать в документSelection.TypeText «www.automateexcel.com»Selection.TypeParagraph’Сохранить и закрыть документoDoc.SaveoDoc.CloseКонец подписки

    Основы работы с макросами Word

    Весь код VBA должен храниться в подобных процедурах. Чтобы создать процедуру в VBA, введите «Sub WordMacroExample» (где «WordMacroExample» — желаемое имя макроса) и нажмите ВХОДИТЬ. VBA автоматически добавит круглые скобки и End Sub.

    Объект документа Word

    При взаимодействии с Microsoft Word в VBA вы часто будете ссылаться на Word «Объекты». Наиболее распространенные объекты:

    Объект приложения — сам Microsoft Word

    Объект документа — документ Word

    Объект диапазона — Часть документа Word

    Объект выделения — Выбранный диапазон или положение курсора.

    заявка

    Приложение — это объект «верхнего уровня». Через него можно получить доступ ко всем остальным объектам Word.

    Помимо доступа к другим объектам Word, можно применить настройки «уровня приложения»:

    1 Application.Options.AllowDragAndDrop = True

    Это пример доступа к «Выборке» в «Windows (1)» в Приложении:

    1 Application.Windows (1) .Selection.Characters.Count

    Однако к наиболее распространенным объектам Word можно получить доступ напрямую, без ввода полной иерархии. Поэтому вместо этого вы можете (и должны) просто ввести:

    1 Selection.Characters.Count

    Документы

    ActiveDocument

    Часто у вас есть два или более документов, открытых в Word, и вам нужно указать, с каким конкретным документом Word следует взаимодействовать. Один из способов указать, какой документ использовать ActiveDocument. Например:

    1 ActiveDocument.PrintOut

    … Напечатал бы ActiveDocument. ActiveDocument — это документ в Word, который «имеет фокус»

    Чтобы переключить ActiveDocument, используйте команду Activate:

    1 Документы («Example.docx»). Активировать

    Этот документ

    Вместо использования ActiveDocument для ссылки на активный документ вы можете использовать ThisDocument для ссылки на документ, в котором хранится макрос. Этот документ никогда не изменится.

    Переменные документа

    Однако для более сложных макросов может быть сложно отслеживать активный документ. Также может быть неприятно переключаться между документами.

    Вместо этого вы можете использовать переменные документа.

    Этот макрос назначит ActiveDocument переменной, а затем распечатает документ, используя переменную:

    12345 Sub VarExample ()Dim oDoc как документУстановите oDoc = ActiveDocumentoDoc.PrintOutКонец подписки

    Документ Методы

    Открыть документ

    Чтобы открыть документ Word:

    1 Documents.Open «c: Users SomeOne Desktop Test PM.docx»

    Мы рекомендуем всегда назначать документ переменной при его открытии:

    12 Dim oDoc как документУстановите oDoc = Documents.Open («c: Users SomeOne Desktop Test PM.docx»).

    Создать новый документ

    Чтобы создать новый документ Word:

    Мы можем указать Word создать новый документ на основе некоторого шаблона:

    1 Documents.Add Template: = «C: Program Files Microsoft Office Templates MyTemplate.dotx»

    Как всегда, присвоение документа переменной при создании или открытии помогает избавить от серьезных проблем:

    12 Dim oDoc как документУстановите oDoc = Documents.Add (Template: = «C: Program Files Microsoft Office Templates MyTemplate.dotx»)

    Сохранить документ

    Чтобы сохранить документ:

    или Сохранить как:

    1 ActiveDocument.SaveAs FileName: = c: Users SomeOne Desktop test2.docx «, FileFormat: = wdFormatDocument

    Закрыть документ

    Чтобы закрыть документ и сохранить изменения:

    1 ActiveDocument.Close wdSaveChanges

    или без сохранения изменений:

    1 ActiveDocument.Close wdDoNotSaveChanges

    Распечатать документ

    Это напечатает активный документ:

    1 ActiveDocument.PrintOut

    Диапазон, выделение, абзацы

    Диапазон а также Выбор являются, вероятно, наиболее важными объектами в Word VBA и, безусловно, наиболее часто используемыми.

    Диапазон относится к некоторой части документа, обычно, но не обязательно, к тексту.

    Выбор относится к выделенному тексту (или другому объекту, например изображениям) или, если ничего не выделено, к точке вставки.

    Абзацы представляют абзацы в документе. Это менее важно, чем кажется, потому что у вас нет прямого доступа к тексту абзаца (вам нужно получить доступ к определенному диапазону абзацев, чтобы внести изменения).

    Диапазон

    Диапазон может быть любой частью документа, включая весь документ:

    12 Dim oRange As RangeУстановите oRange = ActiveDocument.Content

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

    Другой пример, этот диапазон будет относиться к первому слову в документе:

    12 Dim oRange As RangeУстановите oRange = ActiveDocument.Range.Words (1)

    Обычно вам нужно получить диапазон, который относится к определенной части документа, а затем изменить его.

    В следующем примере мы выделим первое слово второго абзаца жирным шрифтом:

    123 Dim oRange As RangeУстановите oRange = ActiveDocument.Paragraphs (2) .Range.Words (1)oRange.Bold = True

    Установить текст диапазона

    Чтобы установить текстовое значение диапазона:

    123 Dim oRange As RangeУстановите oRange = ActiveDocument.Paragraphs (2) .Range.Words (1)oRange.Text = «Привет»

    (Совет: обратите внимание на пробел после «Hello». Поскольку слово «объект» включает пробел после слова, просто «hello» мы получим «Hellonext word»)

    С диапазонами можно делать сотни вещей. Всего несколько примеров (предполагается, что вы уже сделали объектную переменную апельсин относится к интересующему диапазону):

    Изменить шрифт

    1 oRange.Font.Name = «Arial»

    Отображение в окне сообщения количества символов в определенном диапазоне

    1 MsgBox oRange.Characters.Count

    Вставьте текст перед ним

    1 oRange.InsertBefore «это вставленный текст»

    Добавить сноску к диапазону

    12 ActiveDocument.Footnotes.Add Диапазон: = oRange, _Text: = «Подробнее читайте на easyexcel.net.»

    Скопируйте в буфер обмена

    1234 oRange.CopyЧасто вам нужно перейти к конкретному диапазону. Итак, вы можете начать, начать и закончитьoRange.Start = 5oRange.End = 50

    После приведенного выше кода oRange будет относиться к тексту, начинающемуся с пятого и заканчивающемуся 50-м символом в документе.

    Выбор

    Выбор используется даже шире, чем Диапазон, потому что с ним легче работать Выборы чем Диапазоны, ЕСЛИ ваш макрос взаимодействует ТОЛЬКО с ActiveDocument.

    Сначала выберите желаемую часть вашего документа. Например, выберите второй абзац в активном документе:

    1 ActiveDocument.Paragraphs (2) .Range.Select

    Затем вы можете использовать объект выбора для ввода текста:

    1 Selection.TypeText «Какой-то текст»

    Мы можем ввести несколько абзацев ниже «Некоторый текст»:

    12 Selection.TypeText «Какой-то текст»Selection.TypeParagraph

    Часто необходимо знать, выделен ли какой-то текст или у нас есть только точка вставки:

    12345 Если Selection.Type wdSelectionIP ТогдаSelection.Font.Bold = TrueЕщеMsgBox «Вам нужно выделить текст».Конец, если

    При работе с объектом Selection мы хотим поместить точку вставки в определенное место и запускать команды, начиная с этой точки.

    Начало документа:

    1 Selection.HomeKey Unit: = wdStory, Extend: = wdMove

    Начало текущей строки:

    1 Selection.HomeKey Unit: = wdLine, Extend: = wdMove

    Параметр Extend wdMove перемещает точку вставки. Вместо этого вы можете использовать wdExtend, который выделит весь текст между текущей точкой вставки.

    1 Selection.HomeKey Unit: = wdLine, Extend: = wdExtend

    Переместить выделение

    Самый полезный метод изменения положения точки вставки — «Перемещение». Чтобы переместить выделение на два символа вперед:

    1 Selection.Move Unit: = wdCharacter, Count: = 2

    чтобы переместить его назад, используйте отрицательное число для параметра Count:

    1 Selection.Move Unit: = wdCharacter, Count: = — 2

    Параметр единицы измерения может быть wdCharacter, wdWord, wdLine или другим (используйте справку Word VBA, чтобы увидеть другие).

    Чтобы вместо этого переместить слова:

    1 Selection.Move unit: = wdWord, Count: = 2

    С выделением легче работать (по сравнению с диапазонами), потому что он похож на робота, использующего Word, имитирующего человека. Где находится точка вставки — какое-то действие произойдет. Но это означает, что вы должны позаботиться о том, где находится точка вставки! Это непросто после многих шагов в коде. В противном случае Word изменит текст в нежелательном месте.

    Если вам нужно какое-то свойство или метод, недоступный в объекте Selection, вы всегда можете легко получить диапазон, связанный с выбором:

    1 Установите oRange = Selection.Range.

    СОВЕТ: Использование Выбор часто проще, чем использование диапазонов, но также и медленнее (важно, когда вы имеете дело с большими документами)

    Абзацы

    Вы не можете напрямую использовать объект Paragraphs для изменения текста:

    1 ActiveDocument.Paragraphs (1) .Text = «Нет, это не сработает»

    Выше не сработает (на самом деле выдаст ошибку). Вам нужно сначала получить диапазон, связанный с конкретным абзацем:

    1 ActiveDocument.Paragraphs (1) .Range.Text = «Теперь работает :)»

    Но вы можете напрямую изменить его стиль:

    1 ActiveDocument.Paragraphs (1) .Style = «Нормальный»

    или измените форматирование на уровне абзаца:

    1 ActiveDocument.Paragraphs (1) .LeftIndent = 10

    или, может быть, вы хотите сохранить этот абзац на одной строке со следующим абзацем:

    1 ActiveDocument.Paragraphs (1) .KeepWithNext = True

    Сделайте абзац по центру:

    1 ActiveDocument.Paragraphs (1) .Alignment = wdAlignParagraphCenter

    ОЧЕНЬ полезно назначить конкретный абзац объектной переменной. Если мы присвоим переменной конкретный абзац, нам не нужно беспокоиться, станет ли первый абзац вторым, потому что мы вставили перед ним один абзац:

    12 dim oPara как абзацУстановите oPara = Selection.Paragraphs (1) ‘здесь мы присваиваем первый абзац текущего выделения переменной

    Вот пример, в котором мы вставляем абзац над первым абзацем, но мы все еще можем ссылаться на старый первый абзац, потому что он был назначен переменной:

    1234567 Sub ParagraphExample ()Dim oPara как абзацУстановить oPara = ActiveDocument.Paragraphs (1)MsgBox oPara.Range.TextoPara.Range.InsertParagraphBefore ‘Вставить абзацMsgBox oPara.Range.TextКонец подписки

    Объект абзаца очень часто используется в циклах:

    123456789101112 Sub LoopThroughParagraphs ()Dim oPara как абзацДля каждого параметра в ActiveDocument.Paragraphs«Сделай что-нибудь с этим. Мы просто покажем’текст абзаца, если его стиль — «Заголовок 4″Если oPara.Style = «Заголовок 4», тоMsgBox oPara.Range.TextКонец, еслиДалее oParaКонец подписки

    Word VBA Tutorial Заключение

    В этом руководстве были рассмотрены основы Word VBA. Если вы новичок в VBA, вам также следует ознакомиться с нашим общим руководством по VBA, чтобы узнать больше о переменных, циклах, окнах сообщений, настройках, условной логике и многом другом.

    Примеры макросов Word

    Примеры макросов Word
    Шаблоны
    Добавить новые документы
    Подсчет слов в выделенном фрагменте
    Текстовые поля
    Сохранить как PDF
    Закладки
    Таблицы
    Найти, найти и заменить
    Открытые документы

    Word VBA: часто задаваемые вопросы

    Что такое макрос Word?

    Макрос — это общий термин, обозначающий набор инструкций по программированию, которые автоматизируют задачи. Макросы Word автоматизируют задачи в Word с помощью языка программирования VBA.

    Есть ли в слове VBA?

    Да, в Microsoft Word есть редактор VBA. Доступ к нему можно получить, нажав клавиши ALT + F11 или перейдя в раздел «Разработчик»> «Visual Basic».

    Как использовать VBA в Word?

    1. Откройте редактор VBA (ALT + F11 или Разработчик> Visual Basic).
    2. Выберите «Вставить»> «Модуль», чтобы создать модуль кода.
    3. Введите «Sub HelloWorld» и нажмите Enter.
    4. Между строками «Sub HelloWorld» и «End Sub» введите «MsgBox« Hello World! »
    5. Вы создали макрос!
    6. Теперь нажмите «F5», чтобы запустить макрос.

    Устали выполнять повторяющиеся задачи в Microsoft Word? В программе похоронен мощный инструмент автоматизации, который может избавить вас от этой работы. Мы говорим о макросах, и хотя эта функция опирается на Microsoft Visual Basic для приложений (VBA), вы можете использовать ее, даже если идея кодирования вызывает у вас хиби-джиби.

    При нажатии кнопки Word записывает ваши действия, создавая макрос, который вы можете воспроизводить так часто, как захотите. Если вы любите приключения, вы можете легко изменить макрос для дополнительной степени автоматизации.

    Здесь мы покажем вам один простой, но полезный пример: как автоматизировать функцию поиска и замены Word.

    Запись макроса

    В этом примере вы уважаемый президент Общества сохранения антикварной стоматологической техники. У вас есть десятки документов Word об исторических зубных протезах и тому подобном, и все они имеют заметное упоминание имени общества. Затем внезапно правление голосует за изменение названия на Лигу сохранения стоматологического антиквариата. Теперь вам нужен простой способ обновить документы.

    Вы можете начать с нового пустого документа или открыть существующий. Если вы еще этого не сделали, вам нужно включить вкладку «Разработчик».

    Перейдите в Файл> Параметры> Настроить ленту . Справа в разделе « Основные вкладки» установите флажок « Разработчик» . Выберите ОК и выйдите.

    Теперь создадим наш макрос.

    1. Щелкните Разработчик> Записать макрос .
    2. Вам будет предложено назвать макрос. Введите «ChangeSocietyName» или любое другое имя, которое вам подходит. При именовании макросов избегайте пробелов, точек, восклицательных знаков и специальных символов, иначе вы получите сообщение об ошибке. Вы можете использовать числа, но первым символом должна быть буква.
    3. Вы можете назначить макрос кнопке и / или сочетанию клавиш, но это не обязательно. Если вы выберете кнопку, Word позволит вам добавить ее на панель быстрого доступа. Вы также можете добавить краткое описание макроса.
    4. Нажмите ОК , и Word запишет ваши действия. Нажмите Ctrl + H, чтобы открыть диалоговое окно « Найти и заменить ».
    5. Введите «Общество сохранения старинной стоматологической техники» в поле «Найти» и «Лига сохранения антиквариата» в поле «Заменить».
    6. Нажмите « Заменить все», чтобы выполнить операцию «Найти и заменить». Это единственное действие, которое вы хотите записать. Не имеет значения, заменяет ли макрос какой-либо текст. Дело в том, чтобы сохранить его для других документов.
    7. Это важно: щелкните Разработчик> Остановить запись . В противном случае макрос будет включать все последующие действия.

    А теперь посмотрим на вашу работу. Откройте документ, содержащий название общества. Щелкните Разработчик> Макросы . Если дважды щелкнуть ChangeSocietyName, Word автоматически выполнит операцию «Найти и заменить».

    Совет: Во время записи макроса вам может потребоваться выполнить действие, которое вы не хотите записывать. Например, вы можете захотеть скопировать и вставить текст в диалоговое окно «Найти и заменить», а не вводить его вручную. Нет проблем: просто нажмите « Разработчик»> «Приостановить запись» , скопируйте и вставьте текст, затем нажмите « Разработчик»> «Продолжить запись» . Затем вы можете завершить запись макроса, как описано выше.

    Хотя мы сосредоточились здесь на Microsoft Word, вы также можете использовать макросы для повышения производительности в Excel . И есть много макросов для экономии времени для Microsoft OneNote .

    Погружение в код

    Теперь мы более подробно рассмотрим наш новый макрос Word. Перейдите в « Разработчик»> «Макросы» , но вместо двойного щелчка по макросу выберите его и нажмите « Изменить» . Это открывает редактор Visual Basic, автономную среду для создания приложений VBA.

    Это может показаться устрашающим, но вы можете игнорировать меню и большинство панелей. Вместо этого сосредоточьтесь на окне, содержащем код. Как видите, Word только что написал макрос, который выполняет поиск и замену.

     
    Sub ChangeSocietyName()
    '
    ' ChangeSocietyName Macro
    ' Rename Society for the Preservation of Antique Dental Appliances
    '
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "Society for the Preservation of Antique Dental Appliances"
    .Replacement.Text = "Dental Antiques Preservation League"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    End Sub

    Давайте объясним, что здесь происходит.

    «Подпрограмма» в первой строке является сокращением от «подпрограммы», небольшой программы, которая может работать сама по себе или как часть более крупного приложения VBA. Строки, перед которыми стоят одинарные кавычки, предназначены для комментариев. Кавычки указывают VBA игнорировать любые утверждения в этих строках.

    Затем мы переходим к сути кода: коду, который выполняет операцию поиска и замены . Как видите, он определяет значения для каждого параметра в диалоговом окне «Найти и заменить», включая текст и текст замены в кавычках. Команда Selection.Find.Execute в конце эквивалентна нажатию кнопки «Заменить все».

    Модификация макроса

    Чтобы использовать макросы, вам не нужно возиться с кодом или даже смотреть на него. Но вы можете получить больше от этой функции, если захотите погрузиться в нее. Например, предположим, что вы допустили опечатку при записи макроса. Вместо того, чтобы перезаписывать это, вы можете зайти в Visual Basic и исправить.

    Вы также можете настроить макрос, чтобы сделать его более полезным, и этим мы здесь и займемся. Когда вы запускаете «Найти и заменить» вручную или с помощью макроса, Word запоминает найденный и заменяющий текст. В следующий раз, когда вы откроете диалоговое окно «Найти и заменить», оно будет выглядеть следующим образом.

    Было бы лучше очистить значения, чтобы получить чистое диалоговое окно. Мы сделаем это с помощью второго макроса, но на этот раз мы сделаем это непосредственно в Visual Basic.

    1. В редакторе Visual Basic выберите всю подпрограмму от первой строки до End Sub. Нажмите Ctrl + C, чтобы скопировать его.
    2. Поместите курсор под End Sub и нажмите Ctrl + V. Вы только что продублировали подпрограмму.
    3. Измените имя с ChangeSocietyName на ClearFindReplace (или любое другое имя, которое вам подходит). Это важно, потому что VBA выдаст сообщение об ошибке, если вы попытаетесь запустить макросы с повторяющимися именами.
    4. В значениях .Text и Replacement.Text удалите текст, но оставьте кавычки. По сути, вы говорите Word ничего не найти и ничего не заменить, но вы также очищаете эти значения.

    Результат должен выглядеть так:

     
    Sub ClearFindReplace()
    '
    ' ClearFindReplace Macro
    ' Clear Text from Find and Replace dialog
    '
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    End Sub

    Теперь вернемся к макросу ChangeSocietyName. Под кодом поиска и замены, но перед End Sub введите ClearFindReplace (без скобок в конце).

    Правильно: вам не нужно вводить весь код, который вы только что создали, только имя макроса.

     
    Sub ChangeSocietyName()
    '
    ' ChangeSocietyName Macro
    ' Rename Society for the Preservation of Antique Dental Appliances
    '
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "Society for the Preservation of Antique Dental Appliances"
    .Replacement.Text = "Dental Antiques Preservation League"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ClearFindReplace
    End Sub

    Когда Word запускает ChangeSocietyName, сначала выполняется исходная функция «Найти и заменить». Затем он интерпретирует ClearFindReplace как команду для запуска второго макроса.

    Идем дальше с VBA

    Как видите, функция записи макросов Word может помочь вам сэкономить время множеством способов. Вы можете создавать макросы для автоматизации практически любой операции, а в редакторе Visual Basic вы можете настраивать макросы, вставлять один макрос в другой или создавать подпрограмму, которая выполняет несколько макросов один за другим.

    Поскольку VBA – это полноценный язык программирования, вы можете включать подпрограммы в более крупные приложения с переменными, циклами, условными операторами и т. Д. И как только вы изучите основы VBA в Word, вы сможете применить многие из этих знаний для создания макросов в Microsoft Excel и Access.

    Чтобы пойти дальше, вы захотите узнать больше о соглашениях VBA и редакторе Visual Basic, например о том, как организовать свой код и как бороться с ошибками. Но даже если вы хотите придерживаться простых функций, подобных описанным здесь, вы можете значительно улучшить свою производительность.

    Понравилась статья? Поделить с друзьями:
  • Макросы для подсчета excel
  • Макросы для word рамки
  • Макросы для подбора параметра в excel
  • Макросы для word примеры
  • Макросы для пароля в excel