В прошлой статье мы вкратце познакомились с записью макроса при помощи рекордера Excel. Сейчас мы углубимся в эти дебри и напишем для примера пару простейших макросов. В одном из примеров по традиции продемонстрируем работу с диалоговым окном типа «Сообщение», в другом расширим наше диалоговое окно.
Пример 1. Простое диалоговое сообщение msgBox в VBA
Не будем отступать от традиций начала всех примеров программирования. Напишем макрос, который при запуске выдаст нам окно сообщения с надписью «Hello World». Заодно рассмотрим работу с пользовательскими диалогами.
Теперь писать макросы будем только в ручном режиме, никаких рекордеров!
Итак, для того чтоб создать макрос, Вам необходимо открыть окно всеми любимого редактора Visual Basic (VB). Для этого выполняем следующие действия: Сервис-Макрос-Редактор Visual Basic (Alt+F11).
Откроется окно редактора MS Visual Basic.
Если у Вас отсутствуют левые окна, то их необходимо включить. Для этого нажмите F4 – Открывает окно свойств Properties Window, и сочетание клавиш Ctrl+R – открывает окно Project Explorer. Без этих окон в дальнейшем затруднительно работать. Все! Сделали.
Что мы видим в окне Project? В данном окне отражается как раз таки структура нашей книги. Объекты книги – Лист1, 2, 3, Эта книга. Более подробно изучим данные объекты в последующих статьях, а пока возвращаюсь к примеру.
Что необходимо сделать для того чтоб начать писать код? Необходимо создать модуль. Примечание: Вообще, в дальнейшем рекомендую разделять код обработчиков на разные модули. Это облегчит понимание кода и создаст порядок в структуре.
Создаем модуль: Insert – Module
Перед нами открылось пустое окно модуля, напоминает блокнот. Такое окно мы уже видели, когда записывали первый макрос в прошлой статье. По правилам «хорошего тона» дадим имя нашему модулю, назовем его «MacroBook». Для этого перейдите в окно свойств и введите имя в поле (Name)
Переходим в окно редактирования кода и пишем следующее:
Готово! Открываем окно рабочей книги Excel, жмем Alt+F8 и видим наш макрос «Hello»
Остается только «Выполнить». В результате работы макроса мы получим сообщение следующего вида и содержания:
Пример 2. Расширенное диалоговое сообщение msgBox в VBA
Рассмотрим еще один вид диалоговых сообщений, которые содержат дополнительные кнопки «Да», «Нет», «Отмена»
Переходим к коду нашего макроса «Hello» и дописываем к команде msgbox следующее:
MsgBox «Hello, World!», vbYesNoCancel, «Мой макрос»
Обратите внимание, когда вы поставите запятую после «Hello, World!», у Вас должен появиться список всех доступных типов диалоговых окон
Поэкспериментируйте с каждым для понимания.
Как Вы заметили, я добавил еще один параметр к команде msgBox – “Мой макрос”. Это подпись нашего окна. Этот параметр не обязателен, но я рекомендую все диалоги подписывать наименованием своей разработки или иной информацией.
Запустим наш макрос
Теперь у нас открылась совсем иная форма сообщения.
На этом пока все. Следите за выходом статей и уроков. Если возникли вопросы, с удовольствием отвечу, а если будет необходимо, напишу статью с пояснением.
Видео: Пример работы msgbox в vba