Создание простейшего макроса

Создадим макрос, при выполнении которого, в зависимости от времени суток, на экран выводится приветствие «Доброе утро!» - с 6-00 до 10-00, «Добрый день!» - с 11-00 до 17-00, «Добрый вечер!» - с 18-00 до 21-00, «Спокойной ночи!» - в остальное время.

Для этого запустим MS Excel, выберем Сервис | Макрос | Редактор Visual Basicи в окне Codeвведем текст (исходный код) макроса, который назван нами как GoodTime(впрочем, имена процедур, функций и переменных могут быть и русские, как, например, в разделе 7):

Создание простейшего макроса - student2.ru

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

• функция TimeOвозвращает системное время компьютера, а функция HourO— целое число, содержащее часы как часть времени. Это значение и присваивается переменной N, определенной оператором Dimкак переменной целого типа (Integer);

• выбор соответствующего сообщения осуществляется с помощью оператора условного перехода Select Case,который используются с четырьмя операторами Case, проверяющими условие на текущее значение переменной N (напомним, что подробный синтаксис оператора и примеры его использования можно получить по справке, нажав клавишу F1);

• вывод строки сообщения в диалоговое окно на экране осуществляется процедурой MsgBox(...);

• код макроса записан в модуле Лист1.

Контрольный запуск макроса можно выполнить, не выходя из редактора - выберем Run| Run Sub/UserForm.Результатом работы макроса будет выдача на экран диалогового окна (запуск был осуществлен в 17:07)

Создание простейшего макроса - student2.ru

Непосредственно из Excel макрос можно запускать из Сервис | Макрос | Макросы.В появившемся диалоговом окне выбираем макрос (его имя будет JlHCTl.GoodTime,где Лист1 - имя модуля) и нажимаем кнопку Выполнить.

Замечание: Диалоговое окно Макрос перечисляет все макросы, сохраненные в любых рабочих книгах, открытых в данный момент.

Создание простейшего макроса - student2.ru

Редактирование макроса

Требуется изменить код ранее созданного макроса GoodTime,таким образом, что наряду с приветствием в окне сообщения выводилось также системное время компьютера. Для этого загрузим Excel- файл Книгаl.xls, выберем Сервис | Макрос | Макросы, в диалоговом окне выберем макрос Лист1.GoodTimeи нажмем кнопку Изменить.

Расширим выводимые строки в вызовах процедуры вывода MsgBox, используя оператор & конкатенации («склеивания») строк, символ возврата каретки Chr(13) и системное время компьютера, отображаемое функцией Time():

Создание простейшего макроса - student2.ru

Замечание: как отмечалось в разделе 2, перенос текста оператора на другую строку осуществляется вводом символов (пробел)+(знак подчеркивания _).

Результатом работы измененного макроса будет выдача на экран окна с сообщением:

Создание простейшего макроса - student2.ru

Упражнение

Создайте макрос, при выполнении которого компьютер выдает соответствующее сообщение в ответ на один из запросов пользователя с экрана: «Время ?», «Дата ?» или «День недели ?».

Указание: используйте функции Time, Date, Weekday, WeekdayName.

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