Разное

Как макросы создать: Создание и запуск макроса — Word

Содержание

Создание и запуск макроса — 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

    , а затем — Параметры 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

    , а затем — Параметры 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 в Интернете.

Краткое руководство: создание макроса — Служба поддержки Office


Если у вас есть задачи в Microsoft Excel, которые вы повторяете, вы можете записать макрос, чтобы автоматизировать эти задачи. Макрос — это действие или набор действий, которые можно выполнить сколько угодно раз. При создании макроса записуются щелчки мышью и нажатия клавиш. После создания макроса его можно отредактировать, чтобы внести незначительные изменения в его работу.

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

Процедура



Перед записью макроса    

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».



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

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

  2. При желании введите имя макроса в поле Имя макроса, введите сочетания клавиш в поле Сочетания клавиш и описание в поле Описание, а затем нажмите кнопку ОК, чтобы начать запись.

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

  4. На вкладке Разработчик щелкните Остановить запись.



Подробнее о макросах    

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

Чтобы изменить макрос, в группе Код на вкладке Разработчик нажмите кнопку Макрос, выберите имя макроса и нажмите кнопку Изменить. Будет запускается редактор Visual Basic.

Узнайте, как записанные действия отображаются как код. Возможно, какой-то код вам понятен, а часть может показаться немного неявным.

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрите, не произойдет ли что-то другое!

Дальнейшие действия

Процедура



Перед записью макроса    

Убедитесь, что на ленте отображается вкладка Разработчик. По умолчанию вкладка Разработчик не отображается, поэтому сделайте следующее:

  1. Перейдите в >Excel… > ленты & панель инструментов.

  2. В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.



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

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

  2. При желании введите имя макроса в поле Имя макроса, введите сочетания клавиш в поле Сочетания клавиш и описание в поле Описание, а затем нажмите кнопку ОК, чтобы начать запись.

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

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



Подробнее о макросах    

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

Чтобы изменить макрос, на вкладке Разработчик нажмите кнопку Макрос ,выберите имя макроса и нажмите кнопку Изменить. Будет запускается редактор Visual Basic.

Узнайте, как записанные действия отображаются как код. Возможно, какой-то код вам понятен, а часть может показаться немного неявным.

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрите, не произойдет ли что-то другое!

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

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Создание макроса и работа с ним [BS Docs 4]

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

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

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

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

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

<Текст макроса>

End Sub

Внимание!

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

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

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

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

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

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

Внимание!

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

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

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

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

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

End Sub

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

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

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

Внимание!

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

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

  1. Знать название привязки.

  2. Связать переменные в коде 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 ' игнорирование <error 5991> - ячейки таблицы имеют вертикальное объединение
 
  • При получении текста таблицы следует помнить, что полученное значение ячейки так же содержит в себе 2 служебных символа. Для обработки данных ячейки без этих служебных символов следует произвести «очистку» значения. Например:

СellText = Selection.Tables(1).Cell(3,2).Range.Text 'текст ячейки со служебными символами

СellText = Left$(СellText, (Len(CellText) - 2)) 'убираем 2 последних символа ячейки - чистый текст
 

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

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

При рассмотрение такого отчета в разных местах есть свои нюансы. Например, отчеты в 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.

При обработке кодом 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
Примечание

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

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

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

  2. Через использование механизма OLE.

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

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

ob.<СистемноеНазваниеПараметра>,

где

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

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

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

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

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

Внимание!

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

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

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

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

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

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

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

     Добрый день!

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

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

     Если вы никогда не слышали о макросе, то самым точным его определением будет таким, это действия которые запрограммированы на определённую последовательность и записаны в среде программирования на языке Visual Basic for Applications (VBA). Запуск макроса может производиться многократно и это заставит Excel выполнять любую последовательность необходимых нам действий, которые вручную выполнять нам просто не нравится или не хочется. Несмотря на великое множество языков программирования для всего комплекса Microsoft Office стандартом является именно VBA и он работает в любом приложении офисного пакета.

     Итак, создать макрос в Excel возможно 2 способами:

  1. Создать макрос в Excel с помощью макрорекордера;
  2. Создать макрос в Excel в редакторе Visual Basic.

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

     Макрорекордер – это вшитая в Excel небольшая программка, которая интерпретирует любое действие пользователя в кодах языка программирования VBA и записывает в программный модуль команды, которые получились в процессе работы. То есть, если мы при включенном макрорекордере, создадим нужный нам ежедневный отчёт, то макрорекордер всё запишет в своих командах пошагово и как итог создаст макрос, который будет создавать ежедневный отчёт автоматически.

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

  • Записать макрорекордер может только то, что может пощупать, а значит записывать действия он может только в том случае, когда используются кнопки, иконки, команды меню и всё в этом духе, такие варианты как сортировка по цвету для него недоступна;
  • В случае, когда в период записи была допущена ошибка, она также запишется. Но можно кнопкой отмены последнего действия, стереть последнюю команду которую вы неправильно записали на VBA;
  • Запись в макрорекордере проводится только в границах окна MS Excel и в случае, когда вы закроете программу или включите другую, запись будет остановлена и перестанет выполняться.

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

  • в версии Excel от 2007 и к более новым вам нужно на вкладке «Разработчик» нажать кнопочку «Запись макроса»;
  • в версиях Excel от 2003 и к более старым (они еще очень часто используются) вам нужно в меню «Сервис» выбрать пункт «Макрос» и нажать кнопку «Начать запись».

     Следующим шагом в работе с макрорекордером станет настройка его параметров для дальнейшей записи макроса, это можно произвести в окне «Запись макроса», где:

  • поле «Имя макроса» — можете прописать понятное вам имя на любом языке, но должно начинаться с буквы и не содержать в себе знаком препинания и пробелы;
  • поле «Сочетание клавиш» — будет вами использоваться, в дальнейшем, для быстрого старта вашего макроса. В случае, когда вам нужно будет прописать новое сочетание горячих клавиш, то эта возможность будет доступна в меню «Сервис» — «Макрос» — «Макросы» — «Выполнить» или же на вкладке «Разработчик» нажав кнопочку «Макросы»;
  • поле «Сохранить в…» — вы можете задать то место, куда будет сохранен (но не послан) текст макроса, а это 3 варианта:

    • «Эта книга» — макрос будет записан в модуль текущей книги и сможет быть выполнен только в случае, когда данная книга Excel будет открыта;
    • «Новая книга» — макрос будет сохранен в тот шаблон, на основе которого в Excel создается пустая новая книга, а это значит, что макрос станет доступен во всех книгах, которые будут создаваться на этом компьютере с этого момента;
    • «Личная книга макросов» — является специальной книгой макросов Excel, которая называется «Personal.xls» и используется как специальное хранилище-библиотека макросов. При старте макросы из книги «Personal.xls» загружаются в память и могут быть запущены в любой книге в любой момент.
  • поле «Описание» — здесь вы можете описать, что и как должен делать макрос, для чего он создавался и какие функции несет, это чисто информативное поле, что называется на память.

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

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

    Запуск редактора программ на VBA происходит по-разному, в зависимости от версии вашей программы Excel:

  • в версиях Excel 2003 и более старше, нам нужно в меню «Сервис», выбрать пункт «Макрос» и нажать «Редактор Visual Basic»;
  • в версиях Excel 2007 и более новее, нам нужно на вкладке «Разработчик» нажать кнопку «Редактор Visual Basic». В случае когда вы не находите эту вкладку вам нужно ее активировать выбрав пункт меню «Файл» — «Параметры» — «Настройка ленты» и в диалоговом окне флажком активируем вкладку «Разработчик».

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

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

     Все наши макросы будут храниться в так называемых программных модулях. В любой из книг любой версии Excel нам доступно создание любых программных модулей в любом количестве и размещать в них все созданные нами макросы. Один модуль в состоянии содержать в себе любое количество нужных вам или созданных макросов. Модули доступны в окне «Project Explorer» и размещаются в верхнем левом углу редактора макросов (так же его можно вызвать комбинацией клавиш CTRL+R).

     Программные модули в редакторе VBA существуют в нескольких видах и используются для разных вариантов и ситуаций:

  • Обычные модули – самый распространённый вариант при создании макросов. Если вам нужно создание именно такого модуля, тогда выберете в пункте меню «Insert», пункт «Module». В открывшемся новом пустом окне нового модуля теперь можно вводить нужные команды на VBA посредством клавиатуры или же попросту копируя их с других источников, например с моего сайта;
  • Модуль «Эта книга» — размещен там же где и предыдущий в том же окне «Project Explorer» и в данный модуль сохраняют макросы, которые срабатывают при определенных действиях, которые имеют место в книге Excel, это могут быть отправка файла на печать, открытие или закрытие документа и т.п.
  • Модуль листа – может быть доступен там, где и предыдущие, а также через контекстное меню ярлыка листа, выбрав пункт «Исходный текст». В этот модуль записывают те макросы, которые нужно исполнять при выполнении событий на листе, такие как пересчёт листа, изменение данных в ячейке, удаление или копирование листа ну и т.д.

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

     Рассмотрим на примере работающего макроса «Расширенный фильтр»:

  • Все макросы в обязательном порядке будут начинаться с оператора Sub, после которого следует имя вашего макроса и список аргументов в скобочках. В случаях, когда аргументы отсутствуют скобки нужно оставить пустыми;
  • В обязательном порядке все макросы заканчиваются оператором End Sub;
  • Данные что находятся между операторами Sub и End Sub, является телом макроса, которое будет работать при запуске макроса. В примере, макрос проверяет диапазон данных и при вводе данных находит их в списке базы данных и накладывает фильтр, выводя указанное по критериям значение.

     Как видите второй способ более труден в использовании и понимании, если у вас отсутствует опыт в программировании вообще или в частности в VBA. Очень сложно понять и разобраться какие команды и как вводятся, какие аргументы он использует для того чтобы макрос начал выполнять свою работу в автоматическом режиме. Но дорогу осилит идущий, как говорили древние мудрецы и поэтому и вам не стоит опускать руки, а следовать заповедям дедушки Ленина…

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

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

  1. Кнопка в панели инструментов в MS Excel 2003 и более старше. Вам нужно в меню «Сервис» в пункте «Настройки» перейти на доступную вкладку «Команды» и в окне «Категории» выбрать команду «Настраиваемая кнопка» обозначена жёлтым колобком или смайликом, кому как понятней или удобней. Вытащите эту кнопку на свою панель задач и, нажав правую кнопку мыши по кнопке, вызовите ее контекстное меню, в котором вы сможете отредактировать под свои задачи кнопку, указав для нее новую иконку, имя и назначив нужный макрос.
  2. Кнопка в панели вашего быстрого доступа в MS Excel 2007 и более новее. Вам нужно клацнуть правой кнопкой мышки на панели быстрого доступа, которое находится в верхнем левом углу окна MS Excel и в открывшемся контекстном меню выбираете пункт «Настройка панели быстрого доступа». В диалоговом окне настройки вы выбираете категорию «Макросы» и с помощью кнопки «Добавить» вы переносите выбранный со списка макрос в другую половинку окна для дальнейшего закрепления этой команды на вашей панели быстрого доступа.

    Создание графической кнопки на листе Excel

     Данный способ доступен для любой из версий MS Excel и заключается он в том, что мы вынесем кнопку прямо на наш рабочий лист как графический объект. Для этого вам нужно:

  • В MS Excel 2003 и более старше переходите в меню «Вид», выбираете «Панель инструментов» и нажимаете кнопку «Формы».
  • В MS Excel 2007 и более новее вам нужно на вкладке «Разработчик» открыть выпадающее меню «Вставить» и выбрать объект «Кнопка».

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

Как создать пользовательские функции на VBA

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

     К примеру, для создания пользовательской функции налога на добавленную стоимость, он же НДС, нам нужно открыть наш редактор VBA и добавить новый модуль, выбрать в меню «Insert» пункт «Module» и ввести туда текст для нашей функции:      Следует заметить, что главное отличие функции от макроса это заголовок Function заменило Sub и в наличии заполненный список аргументов, в нашем примере это Summa. После того как наш код будет введен, он станет доступен в стандартном окне Мастера функций, который находится в меню «Формулы», пункт «Вставить функцию».        И выбираем категорию «Определенные пользователем» в которой и будет отображаться наша написанная функция «NDS».      После выбора нашей функции можно установить курсор на ячейку с аргументом, в которой будет содержаться та сумма, для которой мы считаем НДС, всё происходит, как и с обычной функцией.        А на этом у меня всё! Я очень надеюсь что статья о том как создать макрос в Excel вам была понятной и полезной. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!

      P.S. Если вам очень интересно как работает макрос и где он применяется. С примерами вы сможете ознакомиться у меня на сайте в следующих статьях:

  1. «Как использовать расширенный фильтр в Excel»
  2. «8 способов как сравнить две таблицы в Excel»
  3. «5 вариантов, как удалить пустые строки в Excel»
  4. «Как скрыть в Excel значение ячеек»
  5. «5 быстрых способов как заменить точки на запятые в Excel»
  6. «Как правильно скрыть лист в Excel»

       Не забудьте поблагодарить автора!

Не уметь переносить бедность постыдно; не уметь избавиться от неё трудом – ещё постыднее. Перикл

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

Запуск и создание макросов в Excel для чайников

VBA коды для простых программ макросов необходимых при работе с таблицами на каждый день.

Создание и выполнение макросов

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

Макрос для выделения ячеек со снятой защитой на листе Excel.
Исходный код с примером и описанием для VBA-макроса выделения ячеек у которых, снятая защита от ввода значений данных и редактирования.
Макрос для поиска ячеек в Excel с выпадающим списком и условным форматированием.
Исходный VBA-код макроса для поиска выпадающих списков на рабочем листе. Исходный код VBA-макроса для поиска ячеек с условным форматированием.
Макрос для выделения ячеек Excel по условию больше меньше.
2 исходных кода макросов для выделения ячеек по условию больше равно или меньше равно относительно их числовых значений.
Макрос для выборочного выделения ячеек на листе Excel.
Исходный код макроса для автоматического выделения отдельных ячеек по заданному условию в критериях поиска значений. Как быстро выделять несмежные диапазоны макросом?
Макрос для добавления строк с заданной высотой в таблицу Excel.
Пошаговое руководство по написанию кода макроса VBA для умной вставки пустых строк между ячейками таблицы. Как автоматически вставить строки через одну ячейку?
Как сделать границы ячеек макросом в таблице Excel.
Как автоматически рисовать границы в таблицах с помощью макроса? Автоматизированное форматирование границ ячеек по разным цветам, стилям и толщине линий используя макрос.
Макрос для объединения повторяющихся ячеек в таблице Excel.
Практический пример и пошаговый разбор исходного VBA-кода макроса для автоматического объединения повторяющихся одинаковых ячеек в строках таблицы.

1
2
3
4

Как создать макрос преобразования данных в Excel советы от Excelpedia

Автор Дмитрий Якушев На чтение 2 мин. Просмотров 1.6k.

Что делает макрос: Этот макрос позволяет очищать и стандартизировать данные.

Как макрос работает

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

Код макроса

Sub MakrosPreobrazovaniyaDannih()
'Шаг 1: Объявляем переменные
Dim MyRange As Range
Dim MyCell As Range
'Шаг 2: Сохранить книгу прежде, чем изменить ячейки?
Select Case MsgBox("Перед изменением ячеек. " &amp; _
"Сохранить книгу?", vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select
'Шаг 3: Выполнить "Текст по столбцам"
Set MyRange = Range("F6:I17")
For Each MyCell In MyRange
If Not IsEmpty(MyCell) Then
MyCell.Value = MyCell.Value
End If
Next MyCell
'Шаг 4: Дополнение нумерации клиентов нулями
Set MyRange = Range("B6:B17")
For Each MyCell In MyRange
If Not IsEmpty(MyCell) Then
MyCell.NumberFormat = "@"
MyCell = "0000000000" &amp; MyCell
MyCell = Right(MyCell, 10)
End If
Next MyCell
'Шаг 5: Усечение почтовых индексов до 5 знаков
Set MyRange = Range("C6:C17")
For Each MyCell In MyRange
If Not IsEmpty(MyCell) Then
MyCell = Left(MyCell, 5)
End If
Next MyCell
'Шаг 6: Добавить код области в телефонный номер
Set MyRange = Range("D6:D17")
For Each MyCell In MyRange
If Not IsEmpty(MyCell) Then
MyCell = "(972) " &amp; MyCell
End If
Next MyCell
'Шаг 7: Удаляем лишние пробелы из номеров продуктов
Set MyRange = Range("E6:E17")
For Each MyCell In MyRange
If Not IsEmpty(MyCell) Then
MyCell = Trim(MyCell)
End If
Next MyCell
'Шаг 8: Заменить пробелы нулями
Set MyRange = Range("F6:I17")
For Each MyCell In MyRange
If Len(MyCell.Value) = 0 Then
MyCell = 0
End If
Next MyCell
End Sub

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

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Как записать макрос в Excel? Пошаговая инструкция

Для начала немного о терминологии. 


Макрос — это код, написанный на встроенном в Excel языке VBA (Visual Basic for Application). Макросы могут создаваться как вручную, так и записываться автоматически с помощью так называемого макрорекодера.


Макрорекодер — это инструмент в Excel, который пошагово записывает все что вы выполняете в Excel и преобразует это в код на языке VBA. Макрорекодер создает очень подробный код (как мы увидим позже), который вы сможете при необходимости отредактировать в дальнейшем.


Записанный макрос можно будет запускать неограниченное количество раз и Excel повторит все записанные шаги. Это означает, что даже если вы ничего не знаете о VBA, вы можете автоматизировать некоторые задачи, просто записав свои шаги и затем повторно использовать их позже.


Теперь давайте погрузимся и посмотрим, как записать макрос в Excel.


Отображение вкладки «Разработчик» в ленте меню


Перед тем как записывать макрос, нужно добавить на ленту меню Excel вкладку «Разработчик». Для этого выполните следующие шаги:


  1. Щелкните правой кнопкой мыши по любой из существующих вкладок на ленте и нажмите «Настроить ленту». Он откроет диалоговое окно «Параметры Excel».
  2. В диалоговом окне «Параметры Excel» у вас будут параметры «Настроить ленту». Справа на панели «Основные вкладки» установите флажок «Разработчик».
  3. Нажмите «ОК».

В результате на ленте меню появится вкладка «Разработчик»



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


Теперь давайте запишем очень простой макрос, который выбирает ячейку и вводит в нее текст, например «Excel».


Вот шаги для записи такого макроса:


  1. Перейдите на вкладку «Разработчик».
  2. В группе «Код» нажмите кнопку «Запись макроса». Откроется одноименное диалоговое окно.
  3. В диалоговом окне «Запись макроса» введите имя для своего макроса, например «ВводТекста». Есть несколько условий именования, которые необходимо соблюдать при назначении макроса. Например, вы не можете использовать пробелы между ними. Обычно я предпочитаю сохранять имена макросов как одно слово, с разными частями с заглавным первым алфавитом. Вы также можете использовать подчеркивание для разделения двух слов — например, «Ввод_текста».
  4. Если вы хотите, то можете задать сочетание клавиш. В этом случае мы будем использовать ярлык Ctrl + Shift + N. Помните, что сочетание, которое вы указываете, будет отменять любые существующие горячие клавиши в вашей книге. Например, если вы назначили сочетание Ctrl + S, вы не сможете использовать это для сохранения рабочей книги (вместо этого, каждый раз, когда вы его используете, он выполняет макрос).
  5. В поле «Сохранить в» убедитесь, что выбрана опция «Эта книга». Этот шаг гарантирует, что макрос является частью рабочей книги. Он будет там, когда вы сохраните его и снова откроете, или даже если вы поделитесь файлом с кем-то.
  6. Введите описание при необходимости. Обычно я этого не делаю, но если у вас много макросов, лучше указать, чтобы в будущем не забыть что делает макрос.
  7. Нажмите «ОК». Как только вы нажмете OK, Excel начнет записывать ваши действия. Вы можете увидеть кнопку «Остановить запись» на вкладке «Разработчик», которая указывает, что выполняется запить макроса.
  8. Выберите ячейку A2.
  9. Введите текст «Excel» (или вы можете использовать свое имя).
  10. Нажмите клавишу Enter. Вы попадете на ячейку A3.
  11. Нажмите кнопку «Остановить запись» на вкладке «Разработчик».

Поздравляем! Вы только что записали свой первый макрос в Excel. Хотя макрос не делает ничего полезного, но он поможет нам понять как работает макрорекордер в Excel. 


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


  1. Удалите текст в ячейке A2. Это нужно, чтобы проверить будет ли макрос вставлять текст в ячейку A2 или нет.
  2. Выберите любую ячейку — кроме A2. Это нужно проверить, выбирает ли макрос ячейку A2 или нет.
  3. Перейдите на вкладку «Разработчик».
  4. В группе «Код» нажмите кнопку «Макросы».
  5. В диалоговом окне «Макрос» щелкните макрос «ВводТекста».
  6. Нажмите кнопку «Выполнить».

Вы увидите, что как только вы нажмете кнопку «Выполнить», текст «Excel» будет вставлен в ячейку A2 и выбрана ячейка A3. Это происходит за миллисекунды. Но на самом деле макрос последовательно выполнил записанные действия.


Примечание. Вы также можете запустить макрос с помощью сочетания клавиш Ctrl + Shift + N (удерживайте клавиши Ctrl и Shift, а затем нажмите клавишу N). Это тот же самый ярлык, который мы назначили макросу при его записи.


Что записывает макрос?


Теперь перейдем к редактору кода и посмотрим что у нас получилось.


Вот шаги по открытию редактора VB в Excel:


  1. Перейдите на вкладку «Разработчик».
  2. В группе «Код» нажмите кнопку «Visual Basic».

     

Вы также можете использовать комбинацию клавиш Alt + F11 и перейти в редактор кода VBA.


Рассмотрим сам редактор кода. Далее коротко опишем интерфейс редактора.



  • Панель меню: содержит команды, которые можно использовать во время работы с редактором VB.
  • Панель инструментов — похожа на панель быстрого доступа в Excel. Вы можете добавить к ней дополнительные инструменты, которыми часто пользуетесь.
  • Окно проектов (Project Explorer) — здесь Excel перечисляет все книги и все объекты в каждой книге. Например, если у нас есть книга с 3 рабочими листами, она появится в Project Explorer. Здесь есть несколько дополнительных объектов, таких как модули, пользовательские формы и модули классов.
  • Окно кода — собственно сам код VBA размещается в этом окне. Для каждого объекта, указанного в проводнике проекта, есть окно кода, например, рабочие листы, книги, модули и т. д. В этом уроке мы увидим, что записанный макрос находится в окне кода модуля.
  • Окно свойств — вы можете увидеть свойства каждого объекта в этом окне. Я часто использую это окно для обозначения объектов или изменения их свойств. 
  • Immediate Window (окно предпросмотра) — На начальном этапе оно вам не пригодится. Оно полезно, когда вы хотите протестировать шаги или во время отладки. Он по умолчанию не отображается, и вы можете его отобразить, щелкнув вкладку «View» и выбрав опцию «Immediate Window».

Когда мы записали макрос «ВводТекста», в редакторе VB произошли следующие вещи:


  • Был добавлен новый модуль.
  • Макрос был записан с именем, которое мы указали — «ВводТекста»
  • В окне кода добавлена новая процедура.

Поэтому, если вы дважды щелкните по модулю (в нашем случае модуль 1), появится окно кода, как показано ниже.



 


Вот код, который записан макрорекодером:



Sub ВводТекста()
'
' ВводТекста Макрос
'

'
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "Excel"
    Range("A3").Select
End Sub


В VBA, любая строка , которая следует за ‘ (знак апострофа) не выполняется. Это комментарий, который предназначен только для информационных целей. Если вы удалите первые пять строк этого кода, макрос по-прежнему будет работать.


Теперь давайте пробежим по каждой строке кода и опишем что и зачем. 


Код начинается с Sub, за которым следует имя макроса и пустые круглые скобки. Sub — сокращение для подпрограммы. Каждая подпрограмма (также называемая процедурой) в VBA начинается с Sub и заканчивается End Sub.


  • Range(«A2»).Select — эта строка выбирает ячейку A2.
  • ActiveCell.FormulaR1C1 = «Excel» — эта строка вводит текст «Excel» в активной ячейке. Поскольку мы выбрали ячейку A2 в качестве первого шага, она становится нашей активной ячейкой.
  • Range(«A3»).Select — выбор ячейки A3. Это происходит, когда мы нажимаем клавишу Enter после ввода текста, результатом которого является выбор ячейки A3.

Надеюсь, что у вас есть некоторое базовое понимание того, как записывать макрос в Excel.


Обращаем внимание, что код, записанный через макрорекордер, как правило, не является эффективным и оптимизированным кодом. Макрорекордер часто добавляет дополнительные ненужные действия. Но это не значит, что не нужно пользоваться макрорекодером. Для тех, кто только изучает VBA , макрорекордер может быть отличным способом проанализировать и понять как все работает в VBA.


Абсолютная и относительная запись макроса


Вы уже знаете про абсолютные и относительные ссылки в Excel? Если вы используете абсолютную ссылку для записи макроса, код VBA всегда будет ссылаться на те же ячейки, которые вы использовали. Например, если вы выберете ячейку A2 и введете текст «Excel», то каждый раз — независимо от того, где вы находитесь на листе и независимо от того, какая ячейка выбрана, ваш код будет вводить текст «Excel» в ячейку A2.


Если вы используете параметр относительной ссылки для записи макроса, VBA не будет привязываться к конкретному адресу ячейки. В этом случае программа будет «двигаться» относительно активной ячейки. Например, предположим, что вы уже выбрали ячейку A1, и вы начинаете запись макроса в режиме относительной ссылки. Теперь вы выбираете ячейку A2, вводите текст Excel и нажмите клавишу Enter. Теперь, если вы запустите этот макрос, он не вернется в ячейку A2, вместо этого он будет перемещаться относительно активной ячейки. Например, если выбрана ячейка B3, она переместится на B4, запишет текст «Excel» и затем перейдет к ячейке K5.


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


  1. Выберите ячейку A1.
  2. Перейдите на вкладку «Разработчик».
  3. В группе «Код» нажмите кнопку «Относительные ссылки». Он будет подсвечиваться, указывая, что он включен.
  4. Нажмите кнопку «Запись макроса».
  5. В диалоговом окне «Запись макроса» введите имя для своего макроса. Например,  имя «ОтносительныеСсылки».
  6. В опции «Сохранить в» выберите «Эта книга».
  7. Нажмите «ОК».
  8. Выберите ячейку A2.
  9. Введите текст «Excel» (или другой как вам нравится).
  10. Нажмите клавишу Enter. Курсор переместиться в ячейку A3.
  11. Нажмите кнопку «Остановить запись» на вкладке «Разработчик».

Макрос в режиме относительных ссылок будет сохранен.


Теперь сделайте следующее.


  1. Выберите любую ячейку (кроме A1).
  2. Перейдите на вкладку «Разработчик».
  3. В группе «Код» нажмите кнопку «Макросы».
  4. В диалоговом окне «Макрос» кликните на сохраненный макрос «ОтносительныеСсылки».
  5. Нажмите кнопку «Выполнить».

Как вы заметите, макрос записал текст «Excel» не в ячейки A2. Это произошло, потому что вы записали макрос в режиме относительной ссылки. Таким образом, курсор перемещается относительно активной ячейки. Например, если вы сделаете это, когда выбрана ячейка B3, она войдет в текст Excel — ячейка B4 и в конечном итоге выберет ячейку B5.


Вот код, который записал макрорекодер:




Sub ОтносительныеСсылки()
'
' ОтносительныеСсылки Макрос
'

'
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "Excel"
    ActiveCell.Offset(1, 0).Range("A1").Select
End Sub


Обратите внимание, что в коде нет ссылок на ячейки B3 или B4. Макрос использует Activecell для ссылки на текущую ячейку и смещение относительно этой ячейки.


Не обращайте внимание на часть кода Range(«A1»). Это один из тех случаев, когда макрорекодер добавляет ненужный код, который не имеет никакой цели и может быть удален. Без него код будет работать отлично.


Что нельзя сделать с помощью макрорекодера?


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


  • Вы не можете выполнить код без выбора объекта. Например, если вы хотите, чтобы макрос перешел на следующий рабочий лист и выделил все заполненные ячейки в столбце A, не выходя из текущей рабочей таблицы, макрорекодер не сможет этого сделать. В таких случаях вам нужно вручную редактировать код.
  • Вы не можете создать пользовательскую функцию с помощью макрорекордера. С помощью VBA вы можете создавать пользовательские функции, которые можно использовать на рабочем листе в качестве обычных функций.
  • Вы не можете создавать циклы с помощью макрорекордера. Но можете записать одно действие, а цикл добавить вручную в редакторе кода. 
  • Вы не можете анализировать условия: вы можете проверить условия в коде с помощью макрорекордера. Если вы пишете код VBA вручную, вы можете использовать операторы IF Then Else для анализа условия и запуска кода, если true (или другой код, если false).

Расширение файлов Excel, которые содержат макросы


Когда вы записываете макрос или вручную записываете код VBA в Excel, вам необходимо сохранить файл с расширением файла с поддержкой макросов (.xlsm).


До Excel 2007 был достаточен один формат файла — .xls. Но с 2007 года .xlsx был представлен как стандартное расширение файла. Файлы, сохраненные как .xlsx, не могут содержать в себе макрос. Поэтому, если у вас есть файл с расширением .xlsx, и вы записываете / записываете макрос и сохраняете его, он будет предупреждать вас о сохранении его в формате с поддержкой макросов и покажет вам следующее диалоговое окно:



Если вы выберете «Нет», Excel сохранить файл в формате с поддержкой макросов. Но если вы нажмете «Да», Excel автоматически удалит весь код из вашей книги и сохранит файл как книгу в формате .xlsx. Поэтому, если в вашей книге есть макрос, вам нужно сохранить его в формате .xlsm, чтобы сохранить этот макрос.

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

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

Показать вкладку разработчика

Прежде чем вы сможете создавать или использовать макросы, вам необходимо включить вкладку «Разработчик».

  1. Щелкните вкладку Файл .
  2. Выберите Параметры .

    Откроется окно «Параметры Word».

  3. Щелкните вкладку Настроить ленту слева.

    Столбец справа определяет, какие вкладки ленты включены.

  4. Установите флажок Developer .
  5. Щелкните ОК .

Вкладка «Разработчик» теперь отображается в конце ленты.

Включить макросы

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

  1. Щелкните вкладку Developer .
  2. Нажмите кнопку Macro Security .

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

  3. Выберите подходящий уровень безопасности.

    Существует четыре уровня безопасности макросов:

    • Первый уровень полностью отключает макросы, блокируя их без уведомления. Это самый безопасный вариант, но он не позволяет запускать макросы вообще — даже макросы, которые вы записываете сами.
    • По умолчанию макросы блокируются, но отображается уведомление. Это уведомление позволяет вам включать макросы в индивидуальном порядке.Этот вариант безопасен, если вы знаете, что можете доверять разрешенным макросам.
    • Вы можете автоматически включить макросы с цифровой подписью. Вам по-прежнему будет предложено ввести большинство макросов, но доверенные макросы будут разрешены без запроса.
    • Наконец, вы можете включить все макросы без запроса. Это может быть опасно, поэтому используйте эту команду с осторожностью.
  4. Щелкните ОК .

Выбранный параметр защиты от макросов включен.

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

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

  1. Поместите курсор в то место, где вы хотите начать запись макроса.
  2. Нажмите кнопку Запись макроса .

    Откроется окно «Запись макроса», в котором вы можете настроить имя макроса, описание и механизм запуска перед его записью.

  3. Дайте макросу имя.

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

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

  4. Нажмите кнопку Клавиатура .
  5. Нажмите сочетания клавиш, которые вы хотите использовать.

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

  6. Щелкните Назначить .
  7. Щелкните Закройте .

    Макрос немедленно начинает запись.

  8. Запишите макрос.

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

    A Stop кнопка также будет отображаться в строке состояния во время записи макроса.

  9. Нажмите кнопку Остановить , когда закончите запись.

Запись останавливается, и макрос сохраняется.

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

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

  1. Щелкните в том месте, где вы хотите запустить макрос.
  2. Щелкните вкладку Developer .
  3. Нажмите кнопку «Макросы » .

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

  4. Выберите макрос.
  5. Выберите макрос и нажмите кнопку Edit , чтобы открыть макрос в редакторе Visual Basic.Оттуда вы можете просмотреть шаги, которые использует макрос, удалить ненужные шаги или даже изменить свойства шага, чтобы настроить макрос еще больше.

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

Выбранный макрос запущен.

Быстрый старт: создание макроса

Если у вас есть задачи в Microsoft Excel, которые вы выполняете неоднократно, вы можете записать макрос для автоматизации этих задач. Макрос — это действие или набор действий, которые вы можете запускать сколько угодно раз.Когда вы создаете макрос, вы записываете щелчки мыши и нажатия клавиш. После создания макроса вы можете отредактировать его, чтобы внести незначительные изменения в способ его работы.

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

Как?

Перед записью макроса

Макросы

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

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

  1. В группе Code на вкладке Developer щелкните Record Macro .

  2. При желании введите имя макроса в поле Имя макроса , введите сочетание клавиш в поле Сочетание клавиш и описание в поле Описание , а затем нажмите ОК, , чтобы начать запись.

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

  4. На вкладке Developer щелкните Остановить запись .

Присмотритесь к макросу

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

Чтобы отредактировать макрос, в группе Code на вкладке Developer щелкните Macros , выберите имя макроса и щелкните Edit . Это запустит редактор Visual Basic.

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

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос.На этот раз посмотрите, не случится ли что-нибудь другое!

Следующие шаги

Как?

Перед записью макроса

Убедитесь, что на ленте видна вкладка Developer .По умолчанию вкладка Developer не отображается, поэтому выполните следующие действия:

  1. Перейдите в Excel > Настройки… > Лента и панель инструментов .

  2. В категории Настроить ленту в списке Основные вкладки установите флажок Developer , а затем нажмите Сохранить .

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

  1. На вкладке Developer щелкните Record Macro .

  2. При желании введите имя макроса в поле Имя макроса , введите сочетание клавиш в поле Сочетание клавиш и описание в поле Описание , а затем нажмите ОК, , чтобы начать запись.

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

  4. На вкладке Developer в группе Code щелкните Stop Recording .

Присмотритесь к макросу

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

Чтобы отредактировать макрос, на вкладке Developer щелкните Macros , выберите имя макроса и щелкните Edit . Это запустит редактор Visual Basic.

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

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос.На этот раз посмотрите, не случится ли что-нибудь другое!

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

Вы всегда можете спросить эксперта в техническом сообществе Excel, получить поддержку в сообществе Answers или предложить новую функцию или улучшение в Excel User Voice.

Создать макрос в Excel

Вкладка разработчика | Командная кнопка | Назначить макрос | Редактор Visual Basic

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

Вкладка разработчика

Чтобы включить вкладку «Разработчик», выполните следующие действия.

1. Щелкните правой кнопкой мыши в любом месте ленты и выберите «Настроить ленту».

2. В разделе «Настройка ленты» в правой части диалогового окна выберите «Основные вкладки» (при необходимости).

3. Установите флажок Разработчик.

4. Щелкните OK.

5. Вы можете найти вкладку «Разработчик» рядом с вкладкой «Просмотр».

Командная кнопка

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

1. На вкладке «Разработчик» нажмите «Вставить».

2. В группе ActiveX Controls нажмите кнопку Command.

3. Перетащите командную кнопку на рабочий лист.

Назначить макрос

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

1. Щелкните правой кнопкой мыши CommandButton1 (убедитесь, что выбран режим «Дизайн»).

2. Щелкните Просмотреть код.

Откроется редактор Visual Basic.

3. Поместите курсор между Private Sub CommandButton1_Click () и End Sub.

4. Добавьте строку кода, показанную ниже.

Примечание: окно слева с именами Sheet1 (Sheet1) и ThisWorkbook называется Project Explorer. Если обозреватель проекта не отображается, щелкните «Просмотр», «Обозреватель проекта».Если окно кода для Sheet1 не отображается, щелкните Sheet1 (Sheet1). Вы можете пока игнорировать оператор Option Explicit.

5. Закройте редактор Visual Basic.

6. Щелкните командную кнопку на листе (убедитесь, что режим «Дизайн» не выбран).

результат:

Поздравляю. Вы только что создали макрос в Excel!

Редактор Visual Basic

Чтобы открыть редактор Visual Basic, на вкладке Разработчик щелкните Visual Basic.

Откроется редактор Visual Basic.

Как создать макрос Excel

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

Макросы — вы, наверное, слышали это слово раньше и, возможно, даже слышали, как люди говорят о том, какие они замечательные. Но в чем же весь этот ажиотаж?

Когда дело доходит до работы с электронными таблицами в Excel 2013, некоторые процессы могут быть повторяющимися (и, смею сказать, скучными). Один из примеров — форматирование отчета. Хотя редактирование стилей текста и корректировка ячеек может показаться рутинной задачей, представление ваших данных очень важно для тех, кто позже получит смысл из отчета.Но здесь вам могут помочь макросы: вы можете создать макрос Excel, который превратит 10 минут щелчка в один щелчок!

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

Диалоговое окно «Запись макроса в Excel» с выборками образцов.

Чтобы начать создавать макросы, сначала нужно добавить вкладку «Разработчик» на ленту. Прочтите наш блог о том, как добавлять и удалять вкладки с ленты Office 2013, чтобы узнать, как это сделать.

После добавления вкладки «Разработчик» выполните следующие действия, чтобы создать макрос Excel:

  1. Перейдите на вкладку «Разработчик» и нажмите кнопку «Запись макроса» в группе «Код» ИЛИ нажмите кнопку в нижнем левом углу экрана. выглядит как электронная таблица с красной точкой в ​​верхнем левом углу.
  2. Придумайте имя для вашего макроса. Пробелы не допускаются, но вместо них можно использовать подчеркивание. На рисунке на этой странице мы назвали наш макрос «Format_Report».
  3. Выберите сочетание клавиш. Обязательно выберите букву, которая еще не используется в качестве сочетания клавиш, поскольку она заменит исходную (т. Е. Не используйте Ctrl + Z, если вы не хотите потерять сочетание клавиш для отмены). Используя Shift, вы можете расширить свои параметры (то есть вместо этого вы можете использовать Ctrl + Shift + Z). На нашей иллюстрации мы обозначили Ctrl + Shift + R в качестве сочетания клавиш.
  4. Выберите, где сохранить макрос. Обычно вы хотите сохранить свой макрос в этой книге, что мы и выбрали в нашем примере. Если вы хотите, чтобы он был доступен всякий раз, когда вы используете Excel, выберите в раскрывающемся меню «Персональная книга макросов».
  5. Введите краткое описание того, что будет делать ваш макрос, в поле «Описание».
  6. Нажмите ОК.

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

Когда вы закончите, нажмите кнопку «Остановить запись» в группе «Код» на вкладке «Разработчик» ИЛИ щелкните синий квадрат в нижнем левом углу окна Excel.

Поздравляем! Вы только что узнали, как создать макрос Excel!

Изучите VBA, чтобы стать экспертом в создании макросов Excel

Хотя вы можете начать с простых примеров, макросы могут оказаться невероятно сложными. Основой макроса является Visual Basic для приложений (VBA), который является языком программирования для приложений Office, таких как Excel.Чтобы действительно стать экспертом в макросах, вы также должны хорошо разбираться в VBA. Чтобы запланировать групповое занятие по изучению VBA, свяжитесь с нашим координатором обучения. Этот курс предназначен для продвинутых профессионалов Microsoft Excel, которым необходимо автоматизировать задачи с электронными таблицами Excel с помощью Visual Basic для приложений (VBA).

Дополнительный совет: абсолютные ссылки и относительные ссылки

Ведущий инструктор Microassist, Энди Уивер, рассказывает об абсолютных и относительных ссылках в этом виртуальном классе.

Дополнительные ресурсы Excel

Это лишь поверхностный обзор того, что вы можете узнать в Microsoft Excel! Мы предлагаем несколько курсов по Excel 2013, от ознакомления с Excel для начинающих, до продвинутых, до классов по сводным таблицам и многого другого.

Ознакомьтесь с нашим графиком курса

, чтобы узнать, что будет дальше!


Подпишитесь на новости обучения

Как создать макрос с нуля в Excel

«Секрет успеха в том, чтобы начать» — Марк Твен.

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

Давайте начнем с быстрого взгляда, что такое макросы?

Что такое макросы Excel?

Термин «Макросы Excel» вызывает большую путаницу. Вкратце, макросы Excel относятся к языку программирования VBA, который встроен в Excel.

Когда используются термины Макросы Excel или VBA , они относятся к одному и тому же.Вообще говоря, кто-то, кто новичок в VBA, будет использовать термин Macros , а как только они станут знакомыми, они будут использовать термин VBA .

Что такое VBA?

VBA — это язык программирования Visual Basic для приложений. Этот язык предустановлен в Excel. Это очень мощный инструмент, который позволяет расширить функциональные возможности Excel.

VBA также входит в пакет со всеми другими приложениями Microsoft Office, такими как Microsoft Word, Access и Outlook.

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

Sub (сокращение от Subroutine) — это просто набор строк кода VBA, который выполняет определенные задачи. Любое приложение VBA, которое вы создаете, по сути представляет собой набор Subs.

Итак, теперь мы понимаем фон, давайте создадим макрос.

Шаг 1 Сделайте вкладку разработчика видимой

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

1. Щелкните ленту правой кнопкой мыши. В появившемся списке выберите «Настроить ленту»

.

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

Шаг 2 Проверьте настройки безопасности

Следующим шагом является проверка правильности настроек макроса.На ленте разработчика нажмите кнопку «Безопасность макросов» в разделе «Код».

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

Шаг 3 Сохранить как правильный тип файла

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

Выберите «Файл» -> «Сохранить как» и выберите «Книга с поддержкой макросов» в типе файла. Затем нажмите «Сохранить».

Шаг 4 Войдите в редактор Visual Basic

Чтобы войти в редактор Visual Basic, щелкните значок Visual Basic на вкладке «Разработчик» на ленте. В качестве альтернативы вы можете нажать Alt + F11 на клавиатуре

Шаг 5 Создайте модуль

Макросы хранятся в модулях, поэтому создайте модуль.

Посмотрите в окне проекта VBA. Если окно не отображается, выберите в меню «Вид» -> «Проводник проекта» (сочетание клавиш Ctrl и R).

Выберите книгу, в которую вы хотите поместить код. Рабочие книги будут заключены в скобки рядом с «VBAProject». Каждая открытая книга будет иметь такую ​​запись в окне проекта VBA

.

Щелкните правой кнопкой мыши книгу, в которую вы хотите поместить код. Выберите «Вставить», а затем «Модуль».

появится новый модуль:

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

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

Введите «Sub MyFirstMacro» в главном окне кода и нажмите клавишу возврата.У вас должны быть следующие

Шаг 7 Добавьте код в свой макрос

Используйте MsgBox «Hello World» . Это отобразит диалоговое окно с «Hello World» для пользователя

.

Шаг 8 Запустите макрос

Для запуска макроса:

  1. Щелкните в любом месте макроса
  2. Выберите Run-> Run Sub / UserForm

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

Вы должны увидеть это диалоговое окно

Заключение

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

Теперь вы готовы начать работу с VBA / макросами. Возможно, вы захотите ознакомиться с The Ultimate VBA Tutorial, предназначенным для начинающих.

Что дальше?

Бесплатное руководство по VBA Если вы новичок в VBA или хотите отточить свои существующие навыки VBA, почему бы не попробовать The Ultimate VBA Tutorial.

Связанное обучение: Получите полный доступ к обучающим вебинарам по Excel VBA и всем учебным материалам.

( ПРИМЕЧАНИЕ: Планируете создание приложения VBA или управление им? Узнайте, как создать 10 приложений Excel VBA с нуля.)

Получите бесплатную электронную книгу

Не стесняйтесь подписаться на мой информационный бюллетень и получать эксклюзивный контент VBA, который вы не можете найти здесь, в блоге, а также бесплатный доступ к моей электронной книге How to Ace the 21 Most Common Question in VBA , которая полна примеров, которые вы можете использовать в своем собственном коде.

Как создать и запустить макрос в Word

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

Самое замечательное в создании макросов в Word заключается в том, что вам не нужно знать, как программировать. Если вы можете нажать запись и остановить, вы можете это сделать.

Макросы не опасны?

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

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

В этом примере вы собираетесь создать макрос в Word, чтобы вставить свою подпись в конец документа.

  1. В открытом Word перейдите на вкладку View .
  2. Щелкните стрелку вниз под кнопкой Macros .
  3. Выберите Запись макроса… откроется новое окно.
  1. В поле Имя макроса: введите значимое имя для макроса. Пробелы не допускаются. Используйте подчеркивание или тире.
  2. В раскрывающемся списке Сохранить макрос в: вы можете выбрать, какие документы вы хотите использовать для этого макроса.Если вы выберете Все документы (Normal.dotm), макрос будет доступен вам в каждом новом документе Word, который вы создаете с этого момента. Если вы выберете один документ, он будет применяться только к этому единственному документу. Обычно лучше выбрать Все документы .
  1. В поле Описание: напишите, что делает макрос. Это простой макрос с описательным именем, но по мере освоения макросов вы будете выполнять более сложные задачи, поэтому описание всегда будет хорошей идеей.
  2. Вы можете выбрать Назначить макрос для либо кнопку, которую вы создадите с помощью кнопки , либо горячие клавиши, которые можно выбрать с помощью кнопки Keyboard . Для Word уже существует множество сочетаний клавиш, поэтому лучше всего использовать кнопку. Выберите Кнопка . Откроется новое окно под названием Word Options .
  1. Здесь вы назначите макросу кнопку на ленте Word. Выберите Настроить ленту .
  2. В раскрывающемся списке Выбрать команды из: выберите Макросы .Это покажет нам наши макросы в области под ним.
  1. Нужно где-нибудь на ленте поставить макрос. В этом примере выберите Home в области «Основные вкладки». Затем выберите Новая группа .
  2. Выберите Переименовать , чтобы дать ему осмысленное имя.
  3. В окне Переименовать выберите один из значков для представления группы, затем введите Мои макросы в поле Отображаемое имя .
  4. Выберите ОК , чтобы применить.Вы увидите изменение в области Основные вкладки .
  1. Выбрав новые «Мои макросы» в области «Основные вкладки», выберите макрос Normal.NewMacros.Insert_Signature .
  2. Выберите Добавить , чтобы вставить его в группу «Мои макросы».
  1. Конечно, вы захотите его переименовать. Выбрав макрос в области «Основные вкладки», выберите Переименовать…
  2. В окне «Переименовать» выберите значок и введите простое имя в поле Отображаемое имя: .
  3. Выберите ОК , чтобы подтвердить изменение. Вы увидите изменение в области основных вкладок.
  4. Выберите OK под областью основных вкладок, чтобы завершить создание кнопки для макроса.
  1. Создайте любой блок подписи, который вам нравится. Добавьте скан своей подписи или другие изображения. Как хотите. Когда это будет сделано, нажмите стрелку вниз под кнопкой Macros .
  2. Выберите Остановить запись . Это оно.Макрос вставки подписи создан.
  1. Проверьте это, найдя кнопку Вставить подпись , которую вы создали на вкладке «Главная», и выберите ее. Ваш блок подписи должен волшебным образом выглядеть именно так, как вы его создали.

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

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

  1. Вам нужен доступ к вкладке Developer , которая по умолчанию скрыта в Word. В верхнем левом углу Word выберите File .
  1. В левом нижнем углу выберите Параметры .
  1. В открывшемся окне выберите Настроить ленту .
  2. Справа найдите Developer и поставьте рядом с ним галочку.
  3. Выберите ОК , чтобы закрыть окно. Откроется вкладка Developer .
  1. Выберите вкладку Developer .
  2. Нажмите кнопку Macros .
  1. Введите значащее имя в Имя макроса: Оставьте макрос в: как Normal.dotm, чтобы он применялся ко всем документам Word. Всегда вводите описание в поле Описание: .
  2. Выберите Создать . Откроется средство разработки Microsoft Visual Basic для приложений .
  1. Код, показанный в зеленых прямоугольниках ниже, уже должен быть там с небольшим промежутком между ними. Скопируйте и вставьте в это место следующий код:

Dim s As Range
Dim numWords As Integer
Dim numSentences As Integer
numSentences = 0
numWords = 0

для каждого с в ActiveDocument.Предложения
numSentences = numSentences + 1
numWords = numWords + s.Words.Count
Следующие

MsgBox «Среднее количество слов в предложении» + Str (Int (numWords / numSentences)) + «. Лучше меньше 15 ».

  1. Нажмите кнопку Выполнить , чтобы проверить код. Если он не работает должным образом, редактируйте код до тех пор, пока он не запустится так, как вам нужно.
  1. Нажмите кнопку Сохранить и закройте окно проявки.
  1. Создайте кнопку на ленте Word, используя тот же метод, который показан в инструкциях «Как записать макрос» выше.
  2. Найдите только что созданную кнопку и проверьте ее.

Мой макрос не работает, когда я сохраняю документ Word

Word по умолчанию сохраняет файл с расширением .docx, что не позволяет макросам запускаться автоматически. Если вы хотите, чтобы макрос запускался, вам нужно изменить тип файла на Word Macro-Enabled Document (* .docm).

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

Что еще можно делать с макросами?

Вы можете создавать макросы в Excel, Outlook и даже PowerPoint. Все, что вы сейчас делаете вручную, у вас должна быть возможность записать или написать макрос для этого. Использование макросов в Word вместе с отличными сочетаниями клавиш Windows повысит вашу продуктивность в десять раз.

10 профессиональных советов по созданию макросов Excel

Макросы

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

1. Имена макросов

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

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

2. Используйте относительные (не абсолютные) адреса ячеек

Абсолютный означает, что точные местоположения ячеек записываются в макрос — жестко запрограммированные адреса ячеек, такие как A6 или B12. Абсолютные ссылки ограничивают возможность макроса работать, если что-либо изменяется, добавляются / удаляются новые данные или список становится длиннее. Относительный означает, что нажатие клавиш в макросе совпадает с положением начальной ячейки.

По умолчанию в Excel установлено значение «Абсолютный», но вы можете изменить это значение на «Относительное» на панели инструментов «Остановить запись»:

Щелкните Developer > Record Macro .

  1. В диалоговом окне Запись макроса введите имя макроса и горячую клавишу (если применимо). Выберите Personal Macro Workbook из Store Macro. В раскрывающемся списке вариантов введите описание (при желании) и нажмите OK .
  2. Диалоговое окно исчезнет, ​​а кнопка Запись макроса изменится на кнопку Остановить запись . Затем нажмите кнопку Relative Reference — она ​​станет темно-зеленой, чтобы указать, что она активна.
  3. Введите сочетания клавиш, формулы и т. Д., Затем нажмите кнопку Остановить запись и запустите макрос.

JD Sartain / IDG

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

3. Всегда начинайте с домашней позиции

Всегда начинайте с начальной позиции (ячейка A1) — с курсора и ваших данных. Если вы сохранили свой макрос в личной книге макросов (рекомендуется), вы можете повторно использовать этот макрос на других листах с аналогичными данными.

Независимо от того, где находится ваш курсор, когда вы начинаете запись макроса, даже если он уже находится в ячейке A1, ваше первое нажатие клавиши макроса должно быть Ctrl + Home , чтобы убедиться, что вы начинаете с Home.

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

  1. Создайте новую книгу в Excel (например, апрельский отчет). Ваш курсор автоматически окажется в исходной позиции (A1).Не перемещайте его для размещения заголовков, заголовков полей или чего-либо еще. Он должен быть расположен в A1.
  2. Откройте книгу первой ветви и скопируйте данные всей электронной таблицы (без заголовков столбцов) в ячейку A1 в таблице апрельского отчета. Данные начинаются с A1 и заканчиваются G55.
  3. Откройте рабочую книгу второй ветви и скопируйте данные всей электронной таблицы (без заголовков столбцов) в ячейку A56 в таблице апрельского отчета. Продолжайте этот процесс, пока данные из всех книг не будут скопированы в электронную таблицу апрельского отчета.
  4. Если данные других таблиц содержат формулы, выберите Вставить > Специальные > Значения для параметров вставки. Не копируйте формулы или форматы.
  5. На этом этапе не беспокойтесь о заголовке листа, заголовках столбцов или форматировании (например, о ширине столбца, шрифтах и ​​т. Д.). Просто скопируйте данные и запустите макрос.
  6. После вычисления данных вы можете использовать «Вставить строки» для добавления заголовков столбцов, заголовков таблиц и другой информации.Затем вы можете отформатировать ширину столбцов, изменить шрифты, добавить атрибуты и разместить границы или поля, если хотите. (Вы также можете создать дополнительный макрос для выполнения задач форматирования.)

4. Всегда используйте клавиши направления.

Используйте клавиши направления (End-Down, Ctrl + Up и т. Д.) Для размещения курсора, чтобы вы могли добавлять, изменять или удалять данные внутри электронной таблицы по мере необходимости. Если вы жестко запрограммируете адреса ячеек, любые изменения или правки в электронной таблице могут сделать недействительными функции макроса.Например, если вы закодируете макрос для суммирования от A1 до A20, а затем добавите больше строк (например, от A1 до A35), формула не будет включать дополнительные ячейки, и общая сумма будет неправильной.

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

5. Делайте макросы маленькими и конкретными

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

JD Sartain / IDG

Выполните макрос Excel с помощью F8.

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

Если макрос не работает, вы можете устранить его, пройдя по одной строке за раз. Это похоже на замедленное движение, только вы контролируете каждый раз, когда происходит следующее событие, с помощью клавиши F8. Щелкните Developer > Macro , выберите макрос из списка, затем нажмите кнопку Step Into . Уменьшите размер окна Code и поместите его в правом нижнем углу экрана, чтобы вы могли видеть свою электронную таблицу за ним. Нажимайте F8 каждый раз, когда вы хотите, чтобы макрос перешел к следующему шагу.Макрос останавливается, когда достигает ошибки. Затем вы можете исправить ошибку или записать новый макрос.

6. Введите статические данные заранее

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

7. Сохранение электронной таблицы

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

JD Sartain / IDG

Сохранение электронной таблицы как книги с поддержкой макросов

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

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

1. Выберите Файл > Параметры > Панель быстрого доступа .

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

3. В диалоговом окне ниже Excel отображает список всех макросов в этой книге.

4. Выберите макрос SumTotals , затем нажмите кнопку Добавить , чтобы переместить макрос в диалоговое окно Customize Quick Access Toolbar .

5. Выделив макрос SumTotals , нажмите кнопку Modify внизу этой диалоговой панели.

6. Просмотрите диалоговое окно Modify Button и выберите значок, который лучше всего идентифицирует ваш новый макрос (мы выбрали калькулятор).

7. Затем введите описательное имя для вашего макроса в поле Отображаемое имя .

8. И, наконец, дважды нажмите кнопку OK .

9. Затем проверьте новую кнопку на панели быстрого доступа.Нажмите эту кнопку один раз, чтобы запустить макрос.

JD Sartain / IDG

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

9. Добавьте кнопку макроса в настраиваемую группу в меню ленты

1. Выберите Файл > Параметры > Настроить ленту .

2. Сначала убедитесь, что флажок Developer установлен на панели Main Tabs в разделе Customize the Ribbon .

3.Выберите вкладку для своих пользовательских макросов или выберите / выделите группу надстроек на вкладке Developer и нажмите кнопку New Group .

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

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

6. Затем просмотрите диалоговое окно Symbols и выберите значок, который лучше всего идентифицирует этот макрос (мы выбрали песочные часы), затем щелкните OK .

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

8. В диалоговом окне ниже Excel отображает список всех макросов в этой книге.

9. Выберите макрос SumTotals, затем нажмите кнопку Добавить , чтобы переместить макрос в новую группу под названием Custom Macros.

10. При желании снова нажмите кнопку Переименовать и выберите значок в диалоговом окне «Символы» (мы снова выбрали калькулятор, так же, как кнопку на панели быстрого доступа.

11. Дважды щелкните OK , чтобы закрыть экран Customize .

JD Sartain / IDG

Добавьте кнопку макроса в настраиваемую группу в меню ленты.

10. Предупреждение безопасности макросов

Когда вы открываете книгу, содержащую макрос, вы получаете следующее сообщение:

«Предупреждение безопасности: макросы отключены», за которым следует кнопка с надписью Включить содержимое .

Если вы хотите использовать свой макрос, вы должны нажать эту кнопку.Но что за хлопот!

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

Параметры макроса центра управления безопасностью

1. Выберите Файл> Параметры> Центр управления безопасностью.

2. Нажмите кнопку Настройки центра управления безопасностью .

3. Выберите в меню Macro Settings .

4. Отметьте Включить все макросы , затем щелкните ОК .

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

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

Примечание. Параметры изменения макроса в центре управления безопасностью влияют только на текущую программу.

JD Sartain / IDG

Измените предупреждение системы безопасности в Центре управления безопасностью.

Панель сообщений

5. Выберите Файл> Параметры> Центр управления безопасностью.

6. Нажмите кнопку Настройки центра управления безопасностью .

7. Выберите в меню Сообщение B ar.

8. Установите флажок Никогда не показывать информацию о заблокированном содержимом , затем щелкните ОК .

Примечание. Если выбрать Отключить все макросы без уведомления на панели «Параметры макроса» в Центре управления безопасностью, панель сообщений не отображается.

Примечание. Когда вы покупаете что-то после перехода по ссылкам в наших статьях, мы можем получить небольшую комиссию.

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

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