Как сделать макросы в ворде
Перейти к содержимому

Как сделать макросы в ворде

  • автор:

Создание макросов в Word с помощью средства чтения с экрана

Эта статья предназначена для людей с нарушениями зрения или когнитивных функций, использующих программы чтения с экрана, такие как WindowsЭкранный диктор, JAWS или NVDA, с продуктами Microsoft 365. Эта статья входит в набор содержимого поддержки средства чтения с экрана Microsoft 365, где содержатся дополнительные сведения о специальных возможностях в наших приложениях. Чтобы получить справку общего характера, посетите службу поддержки Майкрософт.

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

  • Новые возможности Microsoft 365 становятся доступны подписчикам Microsoft 365 по мере выхода, поэтому в вашем приложении эти возможности пока могут отсутствовать. Чтобы узнать о том, как можно быстрее получать новые возможности, станьте участником программы предварительной оценки Office.
  • Дополнительные сведения о средствах чтения с экрана см. в статье О работе средств чтения с экрана в Microsoft 365.

В этом разделе

  • Создание макроса
  • Запуск макроса

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

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

Создание макроса, назначенного кнопке

  1. Чтобы открыть диалоговое окно Запись макроса, нажмите клавиши ALT+W, M, R.
  2. Фокус находится на текстовом поле Имя макроса . Введите имя макроса. Имя не может содержать пробелы.
  3. Чтобы написать необязательное описание макроса, нажимайте клавишу TAB, пока не услышите фразу «Описание», и введите описание.
  4. Чтобы определить, должен ли макрос быть доступен во всех Word документах или только в том, где вы записали макрос, нажимайте клавишу TAB, пока не услышите фразу «Сохранить макрос в», нажимайте клавишу СТРЕЛКА ВНИЗ, пока не услышите нужный параметр, а затем нажмите клавишу ВВОД.
  5. Чтобы назначить макрос кнопке, нажмите клавиши ALT+B. Откроется окно Настройка панели быстрого доступа .
  6. Чтобы добавить кнопку макроса на панель быстрого доступа, нажимайте клавишу TAB, пока не услышите фразу «Панель быстрого доступа, разделитель», нажимайте клавишу СТРЕЛКА ВНИЗ, пока не услышите фразу «Обычные, новые макросы», а затем имя нового макроса, а затем нажмите клавиши ALT+A.
  7. Чтобы назначить значок кнопке макроса, нажмите клавиши ALT+M. Откроется меню значка. Нажимайте клавиши SHIFT+TAB, пока не услышите первый значок и положение значка в списке всех значков. Нажимайте клавишу СТРЕЛКА ВНИЗ, пока не услышите нужный значок, а затем нажмите клавишу ВВОД, чтобы выбрать его. Нажимайте клавишу TAB, пока не услышите «ОК», и нажмите клавишу ВВОД. По завершении нажимайте клавишу TAB, пока не услышите «ОК», и нажмите клавишу ВВОД. Окно Настройкапанели быстрого доступа закроется, и фокус вернется к тексту документа.
  8. Теперь можно записать шаги для задачи, которую вы хотите автоматизировать. Перейдите к и выберите кнопки или пункты меню, например на ленте, или нажмите клавиши на клавиатуре для каждого шага задачи. Word записывает выбранные элементы и нажатия клавиш.
  9. Если необходимо приостановить запись, нажмите клавиши ALT+W, M, P. Чтобы возобновить запись, нажмите клавиши ALT+W, M, R, R.
  10. Чтобы остановить запись, нажмите клавиши ALT+W, M, R.

Создание макроса, назначенного сочетанию клавиш

  1. Чтобы открыть диалоговое окно Запись макроса, нажмите клавиши ALT+W, M, R.
  2. Фокус находится на текстовом поле Имя макроса . Введите имя макроса. Имя не может содержать пробелы.
  3. Чтобы написать необязательное описание макроса, нажимайте клавишу TAB, пока не услышите фразу «Описание», и введите описание.
  4. Чтобы определить, будет ли макрос доступен во всех Word документах или только в том, где вы записали макрос, нажимайте клавишу TAB, пока не услышите фразу «Сохранить макрос в», нажимайте клавишу СТРЕЛКА ВНИЗ, пока не услышите нужный параметр, а затем нажмите клавишу ВВОД.
  5. Чтобы назначить макрос клавиатуре, нажмите клавиши ALT+K. Откроется диалоговое окно Настройка клавиатуры. Фокус находится в текстовом поле Нажатие новой сочетания клавиш .
  6. Чтобы определить новое сочетание клавиш для макроса, нажмите клавиши, которые нужно назначить сочетанию клавиш на клавиатуре.
  7. Когда все будет готово, нажимайте клавишу TAB, пока не услышите сообщение «Назначить», и нажмите клавишу ВВОД. Затем нажимайте клавишу TAB, пока не услышите сообщение «Закрыть», и нажмите клавишу ВВОД. Фокус вернется в текст документа.
  8. Теперь можно записать шаги для задачи, которую вы хотите автоматизировать. Перейдите к и выберите кнопки или пункты меню, например на ленте, или нажмите клавиши на клавиатуре для каждого шага задачи. Word записывает выбранные элементы и нажатия клавиш.
  9. Если необходимо приостановить запись, нажмите клавиши ALT+W, M, P. Чтобы возобновить запись, нажмите клавиши ALT+W, M, R, R.
  10. Чтобы остановить запись, нажмите клавиши ALT+W, M, R.

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

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

  1. Чтобы запустить макрос, выполните одно из следующих действий:
    • Чтобы выбрать макрос в диалоговом окне Макросы, нажимайте клавиши ALT+W, M, V. Нажимайте клавишу СТРЕЛКА ВНИЗ, пока не услышите нужный макрос, а затем нажмите клавишу ВВОД.
    • Чтобы использовать сочетание клавиш, назначенное макросу, нажмите на клавиатуре сочетания клавиш.
    • Чтобы использовать кнопку, назначенную макросу, перейдите к кнопке и нажмите клавишу ВВОД. Например, если кнопка находится на панели быстрого доступа, нажимайте клавишу F6, пока не услышите фразу «Вкладки ленты», нажимайте клавиши SHIFT+TAB, нажимайте клавишу TAB или SHIFT+TAB, пока не услышите имя кнопки макроса, а затем нажмите клавишу ВВОД.

Word автоматически выполняет шаги, записанные в макросе.

Дополнительные сведения

Техническая поддержка пользователей с ограниченными возможностями

Корпорация Майкрософт стремится к тому, чтобы все наши клиенты получали наилучшие продукты и обслуживание. Если у вас ограниченные возможности или вас интересуют вопросы, связанные со специальными возможностями, обратитесь в службу Microsoft Disability Answer Desk для получения технической поддержки. Специалисты Microsoft Disability Answer Desk знакомы со многими популярными специальными возможностями и могут оказывать поддержку на английском, испанском, французском языках, а также на американском жестовом языке. Перейдите на сайт Microsoft Disability Answer Desk, чтобы узнать контактные сведения для вашего региона.

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

Создание и запуск макроса

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

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

Запись макроса, который запускается с помощью кнопки

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

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

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

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

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

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

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

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

Макрос и кнопка

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

Кнопка

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

Параметры кнопок в окне

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

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

Команда

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Команда

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

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

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

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

Команда

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

Как сделать макрос доступным во всех документах

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

Команда

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

Копка

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

Добавление кнопки макроса на ленту

  1. В меню Файл последовательно выберите пункты Параметры и Настроить ленту.
  2. В пункте Выбрать команды из выберите пункт Макросы.
  3. Выберите нужный макрос.
  4. В пункте Настройка ленты выберите вкладку и настраиваемую группу, в которую вы хотите добавить макрос.

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

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

Создание макроса с нуля в Visual Basic

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

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

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

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

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

Создание макроса и работа с ним

Для обеспечения корректного построения отчетов, содержащих макросы, требуется установить доверие на доступ к объектной модели VBA .

В Microsoft Word 2007 это осуществляется следующей последовательностью действий:

нажать кнопку Office в верхнем левом углу, нажать кнопку «Параметры Word»;

выбрать закладку «Центр управления безопасностью», нажать кнопку «Параметры центра управления безопасностью»;

выбрать закладку «Параметры макросов», в разделе «Параметры макросов для разработчика» установить опцию «Доверять доступ к объектной модели проектов VBA «.

В Microsoft Word 2010/2013/2016:

выбрать пункт меню «Файл → Параметры…»;

в окне «Параметры Word» выбрать закладку «Центр управления безопасностью», нажать кнопку «Параметры центра управления безопасностью»;

выбрать закладку «Параметры макросов», в разделе «Параметры макросов для разработчика» установить опцию «Доверять доступ к объектной модели проектов VBA «.

Примечание

VBA — Visual Basic for Applications (Visual Basic для приложений) — упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office.

Начало создания макроса

Макрос для отчетов формата Word

Для того, чтобы создать или просмотреть макрос для отчета формата Word необходимо:

открыть отчет в Мастере отчетов;

на ленте «Разработчик» в группе «Код» нажать кнопку «Visual Basic» (или сразу нажать Alt+F11). Откроется окно приложения «Microsoft Visual Basic for Application»;

В окне «Project – TemplateProject» в дереве открыть узел «TemplateProject — Microsoft Word Objects – ThisDocument»;

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

Рисунок 1. Вид окна среды VBA при работе с макросом для отчетов формата Word

Если макроса там не будет, его можно создать самостоятельно, введя в данном окне строки начала и конца макроса, а между ними — сам текст макроса:

Sub ПослеВыполненияОтчета(ob As Variant, app As Variant)

Внимание!

В Word 2007 закладка «Разработчик» по умолчанию скрыта. Чтобы вывести ее на показ необходимо:

запустить MS Word;

нажать кнопку Office в верхнем левом углу, нажать кнопку «Параметры Word»;

на закладке «Основные» в разделе «Основные параметры работы с Word» установить опцию «Показывать вкладку «Разработчик» на ленте»

Макрос для отчетов формата Excel

Для того, чтобы создать или просмотреть макрос для отчета формата Excel, необходимо:

открыть отчет в Мастере отчетов;
нажать кнопку «2. Редактировать шаблон»;

в MS Excel на ленте «Разработчик» в группе «Код» нажать кнопку «Visual Basic» (или сразу нажать Alt+F11). Откроется окно приложения «Microsoft Visual Basic for Application»;

В окне «Project – VBAProject» в дереве открыть узел «VBAProject — Modules – Module1»;

В правой части окна приложения, где приведен код, необходимо перейти к макросу «ПослеВыполненияОтчета».

Рисунок 2. Вид окна среды VBA при работе с макросом для отчетов формата Excel

Внимание!

В Excel 2007 закладка «Разработчик» по умолчанию скрыта. Чтобы вывести ее на показ необходимо:

запустить MS Excel;

нажать кнопку Office в верхнем левом углу, нажать кнопку «Параметры Excel»;

на закладке «Основные» в разделе «Основные параметры работы с Excel» установить опцию «Показывать вкладку «Разработчик» на ленте»

Макрос «ПослеВыполненияОтчета»

Любой отчет изначально содержит следующий макрос:

Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) ' MsgBox "MACRO ПослеВыполненияОтчета" + CStr(ob.Название) End Sub

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

Переменные, которые передаются в макрос:

«ob» − объект, от которого был вызван отчет;
«app» − приложение, от которого был вызван отчет, то есть Business Studio.

Внимание!

Просмотреть объектную модель Word для разработки макросов в редакторе Visual Basic можно по клавише F2.

Название привязки для макроса

При решении ряда задач средствами программирования бывает удобно оперировать данными привязок отчета. Для этого необходимо:

Знать название привязки.
Связать переменные в коде VBA с этим названием.

Ниже описано, как это это делается для привязок разных типов.

Тип привязки: Объект

В отчете такие привязки представлены полями.

Использование названия привязки в коде:

ПеременнаяВКоде = Application.ActiveDocument.Variables.Item("НазваниеПривязки").Value

Тип привязки: Список и Фильтр

В отчете такие привязки представлены таблицей.

Использование названия привязки в коде:

Set ТаблицДляОбработки = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1)

Работа с таблицами

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

Примеры ключевых функций, которые будут полезны при работы с таблицами, приведены ниже.

Работа с таблицей через название привязки

'переменная для работы с конкретной таблицей Set Table = Application.ActiveDocument.Bookmarks("НазваниеПривязки").Range.Tables(1) countColumn = Table.Columns.Count 'количество столбцов таблицы countRow = Table.Rows.Count 'количество строк таблицы СellText = Table.Cell(2,1).Range.Text 'значение ячейки во 2й строке 1го столбца

Работа с таблицей через её номер в документе

сountTables = ActiveDocument.Tables.Count 'количество таблиц в документе Selection.GoTo What:=wdGoToTable, Which:=wdGoToFirst, Count:=5, Name:="" 'перейти к таблице номер 5 countColumn = Selection.Tables(1).Columns.Count 'количество столбцов таблицы countRow = Selection.Tables(1).Rows.Count 'количество строк таблицы СellText = Selection.Tables(1).Cell(2,1).Range.Text 'значение ячейки во 2й строке 1го столбца

При работе с таблицами следует помнить ряд моментов:

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

On Error Resume Next ' игнорирование - ячейки таблицы имеют вертикальное объединение

При получении текста таблицы следует помнить, что полученное значение ячейки так же содержит в себе 2 служебных символа. Для обработки данных ячейки без этих служебных символов следует произвести «очистку» значения. Например:

СellText = Selection.Tables(1).Cell(3,2).Range.Text 'текст ячейки со служебными символами СellText = Left$(СellText, (Len(CellText) - 2)) 'убираем 2 последних символа ячейки - чистый текст

Приведенная выше информация не является полной для работы с таблицами, а лишь обращает внимание на наиболее возможные ситуации.

Определение направления формирования отчета

Один и тот же отчет Business Studio может рассматриваться из разных мест:

одиночный документ Word или Excel или несколько документов,
HTML -публикация,
Business Studio Portal.

При рассмотрение такого отчета в разных местах есть свои нюансы. Например, отчеты в HTML -публикации и Business Studio Portal не содержат колонтитулов, которые есть в отчете, сделанным отдельным документом Word.

Также могут быть и разные задачи по обработке отчета кодом в зависимости от направления формирования отчета. Для определения направления формирования отчета используются параметры: BSInThread, BSHtml и BSPortal.

Направление формирования отчета BSInThread BSHtml BSPortal
Одиночный файл (Word, Excel) False False False
Пакетное формирование (Word, Excel) True False False
HTML -публикация True True False
Business Studio Portal True True True

Таблица 1. Значения специальных переменных в зависимости от направления формирования отчета

Пример использования в коде:

Dim HTMLCreate As Boolean HTMLCreate = Application.ActiveDocument.Variables("BSHtml").Value 'True или False If HTMLCreate Then MsgBox "Выводим для HTML: HTML-публикация или Business Studio Portal" Else MsgBox "Выводим в одиночный файл или потоком файлов" End If
Примечание

При формировании отчета типа HTML ( HTML -публикация, Business Studio Portal) так же происходит формирование и отдельного файла типа Word.

Работа со ссылками в отчетах для HTML

При обработке кодом VBA отчета, сформированного для HTML -публикации или Business Studio Portal, следует помнить, что после формирования отчет представляет собой отображение не тех данных, что видны в браузере, а документ с показом кодов полей. Это не позволяет вести обработку гиперссылок.

Для «нормализации» отображения данных следует сначала использовать следующий код:

ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes 'Alt+F9 - видим не коды пол

Работа с копией отчета, содержащим макрос

При копировании отчета названия всех привязок изменяются.

Рисунок 3. Названия привязок в исходном отчете

Рисунок 4. Названия привязок в копии отчета

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

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

Пример проверки наличия привязки типа «Список». В документе это закладки.

Определяем название привязки типа «Список», которая представляет нужную таблицу (см. Руководство пользователя → Пример определения названия привязки типа «Список»).

BookmarkName = "Изменения_процесса_e1ded8b0" 'название привязки 'Проверка на корректность названия привязки Dim BookmarkIs As Boolean 'сначала считаем, что нужной закладки нет Dim Bkm As Bookmark 'переменная типа Закладка For Each Bkm InActiveDocument.Bookmarks 'перебираем все закладки в документе IfBkm.Name = BookmarkName Then 'если нашли закладку с нашим именем BookmarkIs = True 'отмечаем, что закладка есть 'получаем таблицу по названию привязки Set SettableStatus = Application.ActiveDocument.Bookmarks(BookmarkName).Range.Tables(1) End If Next If BookmarkIs Then 'если в документе закладка есть 'производим необходимые действия c таблицей End If

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

Пример проверки наличия привязки типа Объект

Определяем название привязки типа «Объект», которая представляет нужное поле в отчёте (см. статью Руководство пользователя → Пример определения названия привязки типа «Объект»).

VarName = "Статус_процесса_c9a10e8d" 'название привязки 'Проверка наличия указанной привязки в документе Dim VarIs As Boolean 'сначала считаем что привязки нет 'перебираем все переменные документа For Each aVar In ActiveDocument.Variables If aVar.Name = VarName Then 'если среди них есть с нашим именем VarIs = True 'отмечаем это 'получаем значение переменной по названию привязки MyVar = Application.ActiveDocument.Variables.Item(VarName).Value End If Next aVar If VarIs Then 'если в документе привязка есть 'производим необходимые действия с переменной End If
Примечание

Закладки, не относящиеся к привязкам, например, созданные пользователем самостоятельно, при копировании отчетов не изменяются.

Обращение к данным из базы

Из отчета можно напрямую обращаться к данным из базы бизнес-модели. Это делается двумя способами:

Через обращение к параметрам объекта, от которого был вызван отчет.
Через использование механизма OLE.

Обращение к параметрам объекта

Обращение к параметрам объекта, от которого был вызван отчет, происходит таким образом:

«ob» — объект, от которого был вызван отчет;

<СистемноеНазваниеПараметра>− это системное название параметра объекта, которое можно просмотреть в Объектной модели (см. Руководство пользователя → Объектная модель).

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

Name = ob.Название 'получаем Название объекта, от которого вызвали отчет

Использование механизма OLE

Механизм OLE предоставляет более широкие возможности по обращению к данным бизнес-модели и выводу этих данных в отчетах по сравнению с обращением просто как данным объекта, от которого был вызван отчет.

Описание механизма OLE подробно описано в главе Руководство технического специалиста → Работа с Business Studio через OLE. Для задействования OLE в отчетах конкретной базы нет необходимости во включении опции «Разрешено использование OLE».

Внимание!

В отчетах при работе с OLE недоступны все методы класса «Система.OleApplication», поскольку в макросе «ПослеВыполненияОтчета» есть аргумент «app», который является приложением Business Studio, а не «Система.OleApplication».

Несколько задач в одном макросе

Бывают ситуации, когда:

В рамках одного отчета необходимо решить более чем одну задачу. Например, форматирование полей типа RTF и вставка столбца в таблицу.

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

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

В таких случаях каждую решаемую задачу удобно оформлять отдельным макросом. А в ключевом макросе «ПослеВыполненияОтчета» лишь вызывать по очереди нужные макросы. Все эти макросы оформляются в том же окне, где и ключевой макрос и делается так:

Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) Call Macros1 Call Macros2 'любые другие макросы End Sub Sub Macros1 () 'В рамках этого макроса решается одна задача End Sub Sub Macros2 () 'В рамках этого макроса решается другая задача End Sub

Если такие макросы имеют одинаковые части кода, то их тоже можно (и рекомендуется) выносить в отдельные макросы или функции в том же окне с ключевым макросом. Например, функция для определения присутствия в отчете необходимой привязки типа «Список» (см. Работа с копией отчета, содержащим макрос) может быть следующей:

Function BookmarkIs(BookmarkName As String) As Boolean 'Проверка на корректность названия привязки Dim Bkm As Bookmark 'переменная типа Закладка BookmarkIs = False 'сначала считаем, что нужной закладки нет For Each Bkm In ActiveDocument.Bookmarks 'перебираем все закладки в документе If Bkm.Name = BookmarkName Then 'если нашли закладку с нашим именем BookmarkIs = True 'отмечаем, что закладка есть End If Next End Function

Использование этой функции из макроса может быть таким:

Sub MacrosN () BookmarkName = "НазваниеЗакладкиТипаСписок" If BookmarkIs(BookmarkName) Then 'если в документе закладка есть 'Выполняются необходимые действия End If End Sub

Отладка кода

Разработка макроса, как и любая другая работа, это определенный путь, в котором будут допущены ошибки и будет их исправление. Ошибки могут быть обнаружены сразу или не видны при первом взгляде. Более детально об этом описано в главе Подходы к отладке кода.

Примеры решения задач с использованием макросов

Примеры работы с отчетами при использовании макросов приведены в статье Примеры решения задач.

Грамотная работа с макросами в Word

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

Макросы в Microsoft Word

Что это такое

Макрокоманда — это, по сути, небольшая программа, которая позволяет автоматизировать и облегчить работу с текстом. В большинстве продуктов Microsoft реализована функция, сохраняющая историю действий пользователя, наиболее часто используемые инструменты и прочее. Всё это можно перевести в формат команд, и вместо того, чтобы каждый раз делать одно и то же, вы просто нажмёте клавишу на клавиатуре, и Word всё сделает за вас. Удобно? Ещё бы! На самом деле, это совсем не сложно. Далее в статье по порядку о том, как создать макрос.

Макросы позволяют выполнять несколько основных функций. Они предназначены для реализации следующих задач:

  • Ускоряют часто выполняемые процедуры и операции внутри текстового редактора Word. Это относится к редактированию, форматированию и не только.
  • Объединяют несколько команд в цельное действие «от и до». Как пример, используя макрос, можно простыми движениями моментально вставить таблицу, которая будет иметь определённые заданные размеры, а также получит нужное число столбцов и строк.
  • Упрощают получение доступа к некоторым функциям и инструментам для работы с текстом, графиков и пр. При этом они могут располагаться в разных окнах и разделах программы.
  • Автоматизируют сложные последовательные операции и действия.

Редактор Visual Basic

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

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

Алгоритм действий при создании команды следующий:

  • Определить порядок действий.
  • Выполнить.
  • Записать действия в макрос.

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

Кнопка «Макросы» Word

Допустим, нужная вторая колонка. Перемещение между столбцами таблицы осуществляется при помощи клавиши «Tab». Вы нажимаете «Tab» необходимое количество раз, пока не дойдёте до нужной колонки. Затем, если вам нужно выделить часть содержимого ячейки, снимаете выделение, нажав стрелку влево. Далее выделим два слова из ячейки. Выполните комбинацию Ctrl+Shift и нажмите стрелку вправо дважды (либо столько раз, сколько слов необходимо выделить). И последний шаг — сделать выделенную область полужирной с помощью комбинации Ctrl+B.

Теперь, определившись с порядком действий, запишите макрокоманду. Для этого, перейдите на вкладку «Вид» и отыщите в панели инструментов кнопку «Макросы». Кликнув по ней, вы увидите маленькое меню, в котором нужно выбрать пункт «Записать макрос». В появившемся окне введите название для команды и нажмите на кнопку «Записать». Сразу после этого, возле курсора появится иконка с кассетой, свидетельствующая о том, что началась запись. Выполните чётко по порядку все необходимые действия (в этом примере для выделения полужирным шрифтом нескольких слов из ячейки таблицы). После того как вы всё сделали, нажмите на значок «Стоп» (квадратик) в нижней части окна программы. Всё, макрос готов.

Как записать макрос

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

Пункт «Запись макроса»

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

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

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

Алгоритм действий можно представить в таком виде:

  • В зависимости от того, какая версия текстового редактора Word используется, откройте вкладку «Разработчик» или «Вид», где располагается кнопка «Макросы». Нужно просто кликнуть по пункту «Запись макроса».
  • У каждого макроса должно быть своё имя. Его можно задать сугубо на собственное усмотрение. Это на его функциональность никак влиять не будет.
  • Если дать макросу точно такое же имя, как и у стандартных макросов в программе Word, он будет выполнять его функции вместо основного. Поэтому не поленитесь заглянуть в меню «Макросы» и открыть раздел «Команды Word». Здесь прописаны все стандартные названия.
  • В строке, которая называется «Макрос доступен для» нужно выбрать, для чего именно он будет доступен.
  • В графу с описанием нужно ввести собственное описание создаваемого макроса.
  • Далее можно кликнуть на «Начните запись», либо же «Создайте кнопку». В первом случае запись макроса начнётся без его привязки к кнопке на панели управления или клавиатуре. Во втором макросу будет задана соответствующая клавиша или кнопка.
  • Добавьте один или несколько документов, куда следует добавить новый макрос. Это делается через «Параметры Word» во вкладке «Панель быстрого доступа».
  • В левом окне выберите нужный макрос для записи и кликните по кнопке «Добавить».
  • Для изменения настроек этой кнопки всегда есть возможность кликнуть на «Изменить».
  • Далее выбирайте символ, который хотите использовать для кнопки.
  • Укажите имя. Именно оно будет затем отображаться в соответствующем поле.
  • Дважды кликните ОК, чтобы начать запись макроса.
  • Когда потребуется остановить запись, жмите соответствующую клавишу в меню «Макросы».

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

Добавление макроса в Word

Запуск записи макроса в Word

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

Новое сочетание клавиш

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

Записанный макрос в дальнейшем можно будет использовать на своё усмотрение.

Использование макросов

Как же всё это использовать? А очень просто: в панели инструментов нажмите кнопку «Макросы» и одноимённый пункт в появившемся меню — перед вами откроется список всех макросов. Выберите сохранённый вами и нажмите «Выполнить». Существует более удобный вариант — создать специальную кнопку в панели инструментов. Делается это следующим образом: перейдите в меню «Файл», затем «Параметры» и кликните по пункту «Панель быстрого доступа». В разделе «Выбрать команды из:» укажите «Макросы» и выберите из них требуемый. После этого кликните по кнопке «Добавить». Также вы можете назначить иконку, которая будет отображаться для этой кнопки. Готово. В ленте инструментов появится соответствующая иконка, нажатием на которую вы запустите записанный вами алгоритм действий.

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

Выбор и запуск макроса в Word

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *