Создание простейшего макроса
Создадим макрос, при выполнении которого, в зависимости от времени суток, на экран выводится приветствие «Доброе утро!» - с 6-00 до 10-00, «Добрый день!» - с 11-00 до 17-00, «Добрый вечер!» - с 18-00 до 21-00, «Спокойной ночи!» - в остальное время.
Для этого запустим MS Excel, выберем Сервис | Макрос | Редактор Visual Basicи в окне Codeвведем текст (исходный код) макроса, который назван нами как GoodTime(впрочем, имена процедур, функций и переменных могут быть и русские, как, например, в разделе 7):
Сделаем некоторые пояснения к коду:
• функция TimeOвозвращает системное время компьютера, а функция HourO— целое число, содержащее часы как часть времени. Это значение и присваивается переменной N, определенной оператором Dimкак переменной целого типа (Integer);
• выбор соответствующего сообщения осуществляется с помощью оператора условного перехода Select Case,который используются с четырьмя операторами Case, проверяющими условие на текущее значение переменной N (напомним, что подробный синтаксис оператора и примеры его использования можно получить по справке, нажав клавишу F1);
• вывод строки сообщения в диалоговое окно на экране осуществляется процедурой MsgBox(...);
• код макроса записан в модуле Лист1.
Контрольный запуск макроса можно выполнить, не выходя из редактора - выберем Run| Run Sub/UserForm.Результатом работы макроса будет выдача на экран диалогового окна (запуск был осуществлен в 17:07)
Непосредственно из Excel макрос можно запускать из Сервис | Макрос | Макросы.В появившемся диалоговом окне выбираем макрос (его имя будет JlHCTl.GoodTime,где Лист1 - имя модуля) и нажимаем кнопку Выполнить.
Замечание: Диалоговое окно Макрос перечисляет все макросы, сохраненные в любых рабочих книгах, открытых в данный момент.
Редактирование макроса
Требуется изменить код ранее созданного макроса GoodTime,таким образом, что наряду с приветствием в окне сообщения выводилось также системное время компьютера. Для этого загрузим Excel- файл Книгаl.xls, выберем Сервис | Макрос | Макросы, в диалоговом окне выберем макрос Лист1.GoodTimeи нажмем кнопку Изменить.
Расширим выводимые строки в вызовах процедуры вывода MsgBox, используя оператор & конкатенации («склеивания») строк, символ возврата каретки Chr(13) и системное время компьютера, отображаемое функцией Time():
Замечание: как отмечалось в разделе 2, перенос текста оператора на другую строку осуществляется вводом символов (пробел)+(знак подчеркивания _).
Результатом работы измененного макроса будет выдача на экран окна с сообщением:
Упражнение
Создайте макрос, при выполнении которого компьютер выдает соответствующее сообщение в ответ на один из запросов пользователя с экрана: «Время ?», «Дата ?» или «День недели ?».
Указание: используйте функции Time, Date, Weekday, WeekdayName.