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

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

· Открываем новую книгу, встаем в ячейку «А1» и набираем шестизначное число «123456». Сейчас оно выдается без разделителей разрядов. Запишем макрос, который ставит эти разделители.

· Заходим на панели инструментов в закладку «Вид»[1], находим кнопку «Макросы», жмем «Запись макроса»: в появившемся окне задаем имя макроса и книгу, в которой мы хотим этот макрос сохранить.

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

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

· Выбираем «Сохранить в…» - «Личная книга макросов» (см. Рис 1)

· Жмем «ОК»

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

· Выполняем действия, которые мы хотим записать в макрос: вызываем контекстное меню «Формат ячеек» (можно воспользоваться комбинацией клавиш «ctrl+1»), задаем нужный нам формат числа: на закладке «Число» идем в блок «(все форматы)», и выбираем там формат вида “# ##0”. Примечание: Также этот формат можно задать в блоке «Числовой», но чуть позже Вам станет ясно, почему мы воспользовались блоком «Все форматы».

· На закладке «Вид» - «Макросы» выбираем пункт «Остановить запись»

F Второй, более быстрый, способ остановить макрос: нажать на появившийся в левом нижнем углу синий квадратик (см. рис 2.). Совет: всегда обращайте внимание на этот квадратик! Если он появился на панели, значит, сейчас идет запись всех ваших действий в Макрос, и не забывайте вовремя останавливать запись макроса, чтобы его потом не пришлось переделывать.

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

· Встаем в ячейку А2 и вбиваем любое шестизначное число

· Запускаем макрос одним из двух способов: на закладке «Вид» - «Макросы» выбираем пункт «Макросы» или нажимаем комбинацию клавиш «Alt+F8», далее находим в списке наш макрос и нажимаем кнопку «Выполнить».

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

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

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

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

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

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

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


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

Макросы – это команды, написанные на языке VBA, что расшифровывается как Visual Basic for Applications. Поэтому синтаксис кода макроса не отличается от записи кода в Visual Basic.

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

---------------------------------------------------

Sub Имя_Макроса_Без_Пробелов()

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

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

End Sub

--------------------------------------------------

Таким образом, макрос состоит из трех обязательных блоков:

1. Начало макроса. Всегда начинается с команды Sub и далее идет имя макроса – оно может быть на русском языке, но не должно содержать пробелы и специальные символы. В конце имени макроса всегда ставятся скобки «()» - они нужны, когда Вы создаете свою функцию, в них указываются аргументы функции, но об этом сейчас речь не пойдет.

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

Каждая команда должна начинаться с новой строки.

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

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

И есть один необязательный блок – это комментарии, которые Вы можете оставлять в любом месте внутри кода макроса, поставив перед началом комментариев знак апострофа ('). Например, Вы можете описать, что именно делает тот или иной макрос. Имейте в виду: если Вы хотите разместить комментарии в несколько строк, каждую новую строку опять надо начинать с апострофа!

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

Задача1: Ваша информационная система выдает отчет «Бюджет на месяц» без выделения групповых значений каким-либо цветом или шрифтом. Необходимо выделить групповые строки полужирным шрифтом (см. рис. 4) и отформатировать на печать (расположить отчет по центру листа, задать масштаб 75%, вывести в колонтитулы название отчета).

Рисунок 4. Иллюстрация к задаче 1.

Наши рекомендации