Vba макросы что это

Что такое VBA? Что такое макросы VBA? Что такое надстройки?

Что такое VBA?

Итак, VBA – это сокращение от слов Visual Basic for Applications. VBA – это слегка упрощенная версия языка программирования Visual Basic, которую поддерживают приложения Microsoft Office.

Кроме того VBA встраивается и в другие программные продукты, такие как AutoCAD, SolidWorks, CorelDRAW, 3D Studio Max, и многие другие. Особенностью VBA является удобство при первом знакомстве с программированием, так как в наиболее используемых приложениях Microsoft Office имеется редактор VB (Visual Basic Editor), а также макрорекордер – средство кодирования действий пользователя для последующего их повторения. Кроме того, эти инструменты можно с успехом использовать для самостоятельного обучения программированию, «записывая» многие свои действия с помощью макрорекордера, а затем просматривая и корректируя результирующий код.

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

При помощи макросов можно создавать пользовательские меню, диалоговые окна, а также панели инструментов, которые могут существенно изменить интерфейс всем известных приложений Word и Excel.

Что такое надстройки?

Надстройки – это программы, добавляющие в приложения дополнительные возможности.

Редактор Visual Basic – не только средство редактирования кода, но и средство отладки кода, так как дает пользователям возможность в интерактивном режиме проверить действие любой синтаксической конструкции.

Microsoft Word – один из наиболее популярных текстовых редакторов, который позволяет набирать, редактировать, форматировать и распечатывать текст.

Microsoft Excel – наиболее популярное приложение для работы с таблицами и табличными данными, совмещающая в себе систему обработки числовых данных, средства для построения диаграмм и обработки электронных таблиц.

Проще говоря, Excel – это удобная табличная форма с возможностями калькулятора, позволяющего выполнять интенсивные расчеты на основе имеющихся данных. О том как работать с этими приложениями написано немало литературы, которую можно найти и на просторах интернета и на полках книжных магазинов. Если же Вы уже освоили стандартные возможности офисных приложений и посчитали, что этого недостаточно для решения Ваших задач, то давайте перейдем к вопросам «Что такое VBA?», «Что такое Макросы?», «Что такое надстройки» и «Как всем этим пользоваться?». Конечно, и Word, и Excel предоставляют достаточно широкий набор функций для выполнения самых разнообразных задач, но все же знание и использование макросов VBA дает такие преимущества, которые невозможно переоценить.

Для чего нужны макросы и надстройки?

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

Источник

Что такое макрос и где его искать?

Vba макросы что это. . Vba макросы что это фото. Vba макросы что это-. картинка Vba макросы что это. картинкаTips_Macro_Basic_Video.xls (63,5 KiB, 3 813 скачиваний)

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

ПОДГОТОВКА К ЗАПИСИ МАКРОСА
Прежде чем начать работать с макросами необходимо разрешить их выполнение, т.к. по умолчанию они отключены. Для этого необходимо сделать следующее:

После изменения параметров безопасности макросов необходимо перезапустить приложение Excel: закрыть его полностью и открыть заново. Только после этого изменения вступят в силу.

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

Для пользователей Excel 2007-2010 и старше:

ПАРАМЕТРЫ ЗАПИСИ МАКРОСА
Перед записью можно задать имя записываемому макросу и назначить сочетание клавиш, при нажатии которых этот макрос будет запускаться. После нажатия кнопки для начала записи макроса появится окно:
Vba макросы что это. Tips General WhatMacro Controle of Macro. Vba макросы что это фото. Vba макросы что это-Tips General WhatMacro Controle of Macro. картинка Vba макросы что это. картинка Tips General WhatMacro Controle of Macro
Имя макроса – не должно содержать пробелов, запятых, двоеточий и т.п. Допустимы символы кириллицы, латиницы, цифры и нижнее подчеркивание (я рекомендую давать макросам имена, содержащие только буквы латиницы). Имя макроса всегда должно начинаться с буквы и не должно совпадать со встроенным именем Excel или именем другого объекта в книге (например, не должно носить имя Workbook, Cells или ЭтаКнига). Лучше давать макросу сразу понятное имя, отражающее примерную суть того, что он делает.
Сочетание клавиш – можно назначить вызов макроса сочетанием клавиш. Доступно назначение любой цифры или буквы в сочетании с Ctrl.
Сохранить в – выбираете место хранения записываемого макроса. Доступны варианты:

ВОСПРОИЗВЕДЕНИЕ МАКРОСА
После записи макроса запустить его можно разными способами:

Прежде чем пробовать использовать этот метод рекомендуется изучить статью Что такое модуль? Какие бывают модули? Для этого сначала необходимо вставить код макроса в тело событийной процедуры (подробнее про событийные процедуры). Например, если выбрать процедуру листа Change, то в лист автоматически будет вставлена пустая процедура:

Private Sub Worksheet_Change(ByVal Target As Range) End Sub

Если ранее вами был записан код выделения и удаления двух столбцов – Макрос1:

Sub Макрос1() ‘ ‘ Макрос1 Макрос ‘ макрос удаляет столбцы C и D из активного листа ‘ ‘ Сочетание клавиш: Ctrl+Shift+Q ‘ Columns(«C:D»).Select Selection.Delete Shift:=xlToLeft End Sub

То для выполнения это кода при наступлении события изменения на листе можно вставить вызов этого макроса:

Private Sub Worksheet_Change(ByVal Target As Range) Call Макрос1 End Sub

или вставить сам код (без Sub и End Sub) внутрь процедуры Worksheet_Change:

Private Sub Worksheet_Change(ByVal Target As Range) Columns(«C:D»).Select Selection.Delete Shift:=xlToLeft End Sub

Для смены формата файла его необходимо сохранить в другом формате:

Теперь несложно понять, что хранить макросы в версиях Excel 2007 и выше можно в форматах: xls, xla, xlsm, xlsb, xltm, xlsm.

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

Источник

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

Vba макросы что это. 750 b9fe8d56a6759b950646d7d63d3373d2. Vba макросы что это фото. Vba макросы что это-750 b9fe8d56a6759b950646d7d63d3373d2. картинка Vba макросы что это. картинка 750 b9fe8d56a6759b950646d7d63d3373d2

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

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

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

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

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

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

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

Vba макросы что это. 202 b9fe8d56a6759b950646d7d63d3373d2. Vba макросы что это фото. Vba макросы что это-202 b9fe8d56a6759b950646d7d63d3373d2. картинка Vba макросы что это. картинка 202 b9fe8d56a6759b950646d7d63d3373d2

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

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

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

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

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

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

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

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

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

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

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

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

Vba макросы что это. 801 b9fe8d56a6759b950646d7d63d3373d2. Vba макросы что это фото. Vba макросы что это-801 b9fe8d56a6759b950646d7d63d3373d2. картинка Vba макросы что это. картинка 801 b9fe8d56a6759b950646d7d63d3373d2

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

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

Vba макросы что это. 353 b9fe8d56a6759b950646d7d63d3373d2. Vba макросы что это фото. Vba макросы что это-353 b9fe8d56a6759b950646d7d63d3373d2. картинка Vba макросы что это. картинка 353 b9fe8d56a6759b950646d7d63d3373d2

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

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

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

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

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

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

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

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

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

Vba макросы что это. 750 b9fe8d56a6759b950646d7d63d3373d2. Vba макросы что это фото. Vba макросы что это-750 b9fe8d56a6759b950646d7d63d3373d2. картинка Vba макросы что это. картинка 750 b9fe8d56a6759b950646d7d63d3373d2

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

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

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

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

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

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

Vba макросы что это. 864 b9fe8d56a6759b950646d7d63d3373d2. Vba макросы что это фото. Vba макросы что это-864 b9fe8d56a6759b950646d7d63d3373d2. картинка Vba макросы что это. картинка 864 b9fe8d56a6759b950646d7d63d3373d2

Источник

Создание макросов и пользовательских функций на VBA

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

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

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

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

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

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

Примеры возможностей макросов с описанием кодов

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

Vba макросы что это. kak v excel vstavit makros 1. Vba макросы что это фото. Vba макросы что это-kak v excel vstavit makros 1. картинка Vba макросы что это. картинка kak v excel vstavit makros 1

​ галочкой опцию «Разработчик»​ старый и введите​

Способы записи макросов

​ комбинациях клавиш клавишу​ тогда сначала прочитайте​

​ копирование или удаление​ языке программирования Visual​ над значением текущей​ iFib_Next End If​ нам окно редактора​ макрос до тех​ рисунка, фигуры или​ пробелов; в качестве​ или графическому элементу​ Рекомендуется использовать сочетания​ необходимые действия записываются​ и нажмите на​ новый текст «Мой​

Автоматическая запись макросов

​ VBE.​ пор, пока вы​ элемент, к которому​ разделителей слов следует​

Vba макросы что это. v excel vkljuchit soderzhimoe v 2 1. Vba макросы что это фото. Vba макросы что это-v excel vkljuchit soderzhimoe v 2 1. картинка Vba макросы что это. картинка v excel vkljuchit soderzhimoe v 2 1

​На листе щелкните правой​ клавиш с​ в виде кода​ кнопку ОК.​ макрос».​ вы придадите фокус​

Vba макросы что это. tdsheet excel chto jeto 11 1. Vba макросы что это фото. Vba макросы что это-tdsheet excel chto jeto 11 1. картинка Vba макросы что это. картинка tdsheet excel chto jeto 11 1

​ макрос в Excel​Макросы​ новее – нажать​Обычный макрос, введенный в​ (VBA). Мы можем​ Col.Cells(i).Value * 3​ Фибоначчи в столбце​Программист пишет там код​ сами не остановите​ нужно назначить существующий​ использовать знаки подчеркивания.​ кнопкой мыши объект,​CTRL​ Visual Basic для​

​​После создания кнопки можно​ клавиатуры для поля​ на языке программирования​легко найти веселый​ кнопку​ стандартный модуль выглядит​ запускать макрос сколько​ – 1 ‘Следующая​ A активного рабочего​ макроса вручную.​ запись.​

​ угодно раз, заставляя​ команда записывает полученный​ листа ‘в строке​Как видим, макросы в​Для примера, запишем простейшее​ команду​ макроса, являющееся ссылкой​

​ элемент, к которому​SHIFT​ действиями может быть​

Vba макросы что это. kak v excel vstavit makros 1 1. Vba макросы что это фото. Vba макросы что это-kak v excel vstavit makros 1 1. картинка Vba макросы что это. картинка kak v excel vstavit makros 1 1

​ работы с документами​ ее размеры и​ CTRL+» и попытаетесь​В данной статье для​Настраиваемую кнопку​на вкладке​Давайте разберем приведенный выше​ Excel выполнять последовательность​

​ результат в столбец​ с индексом i​ Microsoft Excel могут​ арифметическое действие: сложение​

Vba макросы что это. kak v excel vstavit makros 2 1. Vba макросы что это фото. Vba макросы что это-kak v excel vstavit makros 2 1. картинка Vba макросы что это. картинка kak v excel vstavit makros 2 1

​Назначить макрос​ на ячейку, может​ нужно назначить существующий​, так как они​ ввод текста или​ и не только…​

Vba макросы что это. kak v excel vstavit makros 3 1. Vba макросы что это фото. Vba макросы что это-kak v excel vstavit makros 3 1. картинка Vba макросы что это. картинка kak v excel vstavit makros 3 1

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

​ положение на листе.​ ввести большую букву​ Вас буде приведет​(Custom button)​Разработчик (Developer)​ в качестве примера​ любых нужных нам​ A активного рабочего​

Vba макросы что это. kak v excel vstavit makros 4 1. Vba макросы что это фото. Vba макросы что это-kak v excel vstavit makros 4 1. картинка Vba макросы что это. картинка kak v excel vstavit makros 4 1

​ Cells(i, 1).Value =​ значительно ускорить выполнение​ содержимого трёх ячеек​.​ появиться сообщение об​ макрос и выберите​ будут заменять собой​

Vba макросы что это. kak v excel vstavit makros 5 1. Vba макросы что это фото. Vba макросы что это-kak v excel vstavit makros 5 1. картинка Vba макросы что это. картинка kak v excel vstavit makros 5 1

​ чисел, выбор ячеек​ Они могут практически​ Для этого снова​ для комбинации, естественно​ пошаговый пример с​:​Затем необходимо настроить параметры​ макрос​ действий, которые нам​ листа ‘Имя листа​ iFib ‘Вычисляем следующее​ рутинных и однообразных​

​ (=C4+C5+C6).​В поле​ ошибке, указывающее на​ команду​

Vba макросы что это. kak v excel vstavit makros 6 1. Vba макросы что это фото. Vba макросы что это-kak v excel vstavit makros 6 1. картинка Vba макросы что это. картинка kak v excel vstavit makros 6 1

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

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

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

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

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

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

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

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

Vba макросы что это. 750 b9fe8d56a6759b950646d7d63d3373d2. Vba макросы что это фото. Vba макросы что это-750 b9fe8d56a6759b950646d7d63d3373d2. картинка Vba макросы что это. картинка 750 b9fe8d56a6759b950646d7d63d3373d2

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

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

Показывать сообщение

Просто вставьте команду MsgBox в свой макрос. Вот как в следующем примере:

MsgBox “текст сообщения”

Vba макросы что это. 11. Vba макросы что это фото. Vba макросы что это-11. картинка Vba макросы что это. картинка 11 Vba макросы что это. 13. Vba макросы что это фото. Vba макросы что это-13. картинка Vba макросы что это. картинка 13

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

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

Для начала запишем самый легкий макрос — зададим в ячейке А1 формат вида 12 345:

Важно

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

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

Vba макросы что это. Pankova 1. Vba макросы что это фото. Vba макросы что это-Pankova 1. картинка Vba макросы что это. картинка Pankova 1

Рис. 1. Запись макроса в личную книгу макросов

К сведению

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

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

Мы рекомендуем

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

Проверяем, что макрос записан и работоспособен:

Vba макросы что это. Pankova 2. Vba макросы что это фото. Vba макросы что это-Pankova 2. картинка Vba макросы что это. картинка Pankova 2

Рис. 2. Форматирование числа и остановка записи макроса

Итак, вы записали свой первый макрос! Примите поздравления. Теперь давайте познакомимся с личной книгой макросов и синтаксисом написания команд для макроса.

Цикл FOR

В следующем примере Вы увидите, как использовать цикл FOR. Цикл FOR позволяет нам выполнить повторение цикла с разными значениями. Давайте посмотрим, как можно заполнить числами от 1 до 5 ячейки A1:A5.

Для этого на вкладке Developer (Разработчик) нажмите Visual Basic. Дважды кликните по объекту из списка Microsoft Excel Objects, в котором должен быть сохранён макрос. Введите вот такой код:

Сохраните файл. Чтобы выполнить макрос, перейдите View > Macros > View Macros (Вид > Макросы > Макросы), выберите из списка название нужного макроса и нажмите Run (Выполнить).

Следующий код отображает фразу “Hello World” в окне сообщений Windows.

Vba макросы что это. rabota makros excel 4. Vba макросы что это фото. Vba макросы что это-rabota makros excel 4. картинка Vba макросы что это. картинка rabota makros excel 4

В следующем примере мы создаём сообщение с выбором Yes (Да) или No (Нет). Если выбрать вариант Yes (Да), то значение ячейки будет удалено.

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

Vba макросы что это. rabota makros excel 5. Vba макросы что это фото. Vba макросы что это-rabota makros excel 5. картинка Vba макросы что это. картинка rabota makros excel 5

Если Вы нажмёте Yes (Да), значение в выделенной ячейке будет удалено. А если No (Нет) – значение сохранится.

Личная книга макросов

По умолчанию Excel не отображает личную книгу макросов. Чтобы убедиться, что она открыта, выбираем на вкладке Вид кнопку Отобразить — в появившемся окне должна быть книга под именем PERSONAL.

Мы убедились, что книга открыта, но отображать ее не будем, чтобы потом по ошибке не закрыть ее. По сути, в этой книге нас интересует так называемый Исходный текст — блок, в котором записываются макросы. Чтобы увидеть это окно, нажмите клавиши Alt+F11 или кликните правой кнопкой мыши на ярлыке любого листа Excel и выберите в контекстном меню Исходный текст. Откроется окно VBA-кодирования в Excel (рис. 3). Оно состоит из двух блоков:

1. В левой части экрана окно Project – VBAProject — это проводник, в котором отображаются все открытые в данный момент книги Excel (даже если вы их не видите, как, например, книгу Personal). Работа с этим блоком аналогична работе в обычном проводнике — двойной клик по наименованию книги раскрывает ее содержимое. Нас интересует блок Modules – Module1. Кликаем левой кнопкой мыши дважды по этому объекту.

2. В правой части экрана откроется блок записи и редактирования макросов. Здесь уже автоматически записался Макрос1. Рассмотрим на его примере основную канву макроса.

Vba макросы что это. Pankova 3. Vba макросы что это фото. Vba макросы что это-Pankova 3. картинка Vba макросы что это. картинка Pankova 3

Рис. 3. Окно VBA-кодирования в Excel

Создаем макрос при помощи команды «Запись макроса»

Vba макросы что это. rabota makros excel 2. Vba макросы что это фото. Vba макросы что это-rabota makros excel 2. картинка Vba макросы что это. картинка rabota makros excel 2

Доступ к записанному макросу можно получить с помощью команды View Macros (Макросы), которая находится на вкладке View (Вид) в выпадающем меню Macros (Макросы). Откроется диалоговое окно Macro (Макрос), в котором Вы сможете выбрать нужный. Дважды кликните по имени макроса, чтобы выполнить программу.

Кроме этого, Вы можете связать макрос с кнопкой. Для этого:

Примечание: Если у вас включена вкладка Developer (Разработчик), то получить доступ к элементам управления формы можно с нее. Для этого перейдите на вкладку Developer (Разработчик), нажмите на иконку Insert (Вставить) и из раскрывающегося меню выберите нужный элемент.

Не знаете, как отобразить вкладку Developer (Разработчик)? Excel 2007: жмем на кнопку Office > Excel Options (Параметры Excel) > Popular (Основные) и ставим галочку напротив опции Show Developer tab in the Ribbon (Показывать вкладку “Разработчик” на ленте). Excel 2010: жмем по вкладке File (Файл) > Options (Параметры) > Customize Ribbon (Настройка ленты) и в правом списке включаем вкладку Developer (Разработчик).

Отмена активной команды

Запуск и редактирование макросов

Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или – в старых версиях Excel – через меню Сервис – Макрос – Макросы (Tools – Macro – Macros) :

Vba макросы что это. 22da88bbf0586d7dbed7be2470fd3935. Vba макросы что это фото. Vba макросы что это-22da88bbf0586d7dbed7be2470fd3935. картинка Vba макросы что это. картинка 22da88bbf0586d7dbed7be2470fd3935

Основные сведения о макросах

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

Например, макрос ^C^C_.circle 1 строит окружность с радиусом, равным 1 единице. Компоненты, определяющие этот макрос, описаны в следующей таблице.

Компоненты макроса CIRCLE

Последовательность специальных управляющих символов

Эта последовательность аналогична двойному нажатию клавиши ESC.

Специальный управляющий символ

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

Специальный управляющий символ

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

Запуск команды КРУГ.

Оставляет столько же места, сколько при нажатии клавиши ПРОБЕЛ при использовании команды.

Специальный управляющий символ

Формирование паузы для ввода данных пользователем; в данном примере это пауза для центра окружности.

Ответ на запрос радиуса круга; в данном примере это значение 1.

Синтаксис макроса

Макросы — это команды, написанные на языке VBA (Visual Basic for Applications). И синтаксис кода макроса не отличается от записи кода в Visual Basic.

Любой макрос имеет следующий вид:

‘ комментарии к макросу — они нужны для вас, VBA не воспринимает такие строки как команды

команды, написанные на языке VBA

3 обязательных блока макроса:

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

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

2. Блок команд. В нашем примере он состоит из одной строки: Selection.NumberFormat = “#,##0”

Каждая команда должна начинаться с новой строки. Если текст команды очень длинный и не помещается на экране, его можно разбить на несколько строк, заканчивая строку символом нижнего подчеркивания _ (далее в примере мы это увидим).

3. Конец макроса. Всегда обозначается как End Sub.

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

Обратите внимание!

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

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

Например, информационная система выдает отчет «Бюджет на месяц» без выделения групповых значений цветом или шрифтом.

Vba макросы что это. Pankova 4. Vba макросы что это фото. Vba макросы что это-Pankova 4. картинка Vba макросы что это. картинка Pankova 4

Рис. 4. Изменения после написания макроса

Запишем алгоритм форматирования отчета в макрос.

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

Vba макросы что это. Pankova 5. Vba макросы что это фото. Vba макросы что это-Pankova 5. картинка Vba макросы что это. картинка Pankova 5

Рис. 5. Использование автофильтра по столбцу «КОД»

1) на вкладке Страница задаем масштаб 75 %;

2) на вкладке Поля отмечаем пункт Горизонтально в блоке Центрировать на странице;

3) на вкладке Колонтитулы создаем верхний колонтитул с текстом Бюджет на январь.

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

Создание макросов в редакторе Visual Basic

Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно – редактор программ на VBA, встроенный в Microsoft Excel.

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

Vba макросы что это. e4a8a22278938cca3329250494a86821. Vba макросы что это фото. Vba макросы что это-e4a8a22278938cca3329250494a86821. картинка Vba макросы что это. картинка e4a8a22278938cca3329250494a86821

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

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

Vba макросы что это. 2b62279d218e2d599c837a51d3867675. Vba макросы что это фото. Vba макросы что это-2b62279d218e2d599c837a51d3867675. картинка Vba макросы что это. картинка 2b62279d218e2d599c837a51d3867675

Давайте разберем приведенный выше в качестве примера макрос Zamena:

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

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

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

Чтобы включить запись необходимо:

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

Vba макросы что это. cdef74612dc67ef330799d1d5bbf1df7. Vba макросы что это фото. Vba макросы что это-cdef74612dc67ef330799d1d5bbf1df7. картинка Vba макросы что это. картинка cdef74612dc67ef330799d1d5bbf1df7

После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording) .

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

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

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

Vba макросы что это. 202 b9fe8d56a6759b950646d7d63d3373d2. Vba макросы что это фото. Vba макросы что это-202 b9fe8d56a6759b950646d7d63d3373d2. картинка Vba макросы что это. картинка 202 b9fe8d56a6759b950646d7d63d3373d2

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

Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция – только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert – Module и введем туда текст нашей функции:

Vba макросы что это. 76c74f5db5cdcb8ab05ddc5a8af01cf8. Vba макросы что это фото. Vba макросы что это-76c74f5db5cdcb8ab05ddc5a8af01cf8. картинка Vba макросы что это. картинка 76c74f5db5cdcb8ab05ddc5a8af01cf8

Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка – Функция) в категории Определенные пользователем (User Defined) :

Vba макросы что это. 092f01c2e2e96b7dfea647e79a0f822f. Vba макросы что это фото. Vba макросы что это-092f01c2e2e96b7dfea647e79a0f822f. картинка Vba макросы что это. картинка 092f01c2e2e96b7dfea647e79a0f822f

После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

Vba макросы что это. 949f8734990546f0a59d92b972b632f9. Vba макросы что это фото. Vba макросы что это-949f8734990546f0a59d92b972b632f9. картинка Vba макросы что это. картинка 949f8734990546f0a59d92b972b632f9

Конструкция IF

В Microsoft Excel Вы также можете использовать конструкцию IF. В этом коде мы будем раскрашивать ячейки в зависимости от их значения. Если значение в ячейке больше 20, то шрифт станет красным, иначе – синим.

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

Vba макросы что это. rabota makros excel 6. Vba макросы что это фото. Vba макросы что это-rabota makros excel 6. картинка Vba макросы что это. картинка rabota makros excel 6

Когда Вы запустите макрос, цвет шрифта изменится на красный:

Vba макросы что это. rabota makros excel 7. Vba макросы что это фото. Vba макросы что это-rabota makros excel 7. картинка Vba макросы что это. картинка rabota makros excel 7

При выполнении второго условия шрифт станет синим:

Vba макросы что это. rabota makros excel 8. Vba макросы что это фото. Vba макросы что это-rabota makros excel 8. картинка Vba макросы что это. картинка rabota makros excel 8

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

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

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

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

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

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

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

Источник

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

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