Мегаобучалка Главная | О нас | Обратная связь


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



2015-12-15 1446 Обсуждений (0)
Создание простейшего макроса 0.00 из 5.00 0 оценок




Создадим макрос, при выполнении которого, в зависимости от времени суток, на экран выводится приветствие «Доброе утро!» - с 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.



2015-12-15 1446 Обсуждений (0)
Создание простейшего макроса 0.00 из 5.00 0 оценок









Обсуждение в статье: Создание простейшего макроса

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1446)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)