Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1к 1семестр / INFORMATIKA / Lekcii / Лекции / ЛЕКЦИЯ_13_Программирование на языке Visual Basic for Applicatin.doc
Скачиваний:
97
Добавлен:
02.04.2015
Размер:
1.12 Mб
Скачать

Функции пользователя

В Microsoft Office можно создавать пользовательские функции на языке VBA. Для этих функций определяется набор параметров (аргументов) и алгоритм вычисления. Аргументы функции имеют тип данных, значения аргументов задаются или извлекаются из хранимых данных в момент вычислений функции. Результат пользовательской функции имеет определенный тип данных и может использоваться в качестве аргумента в выражениях.

Наиболее часто пользовательские функции разрабатываются для электронной таблицы Excel. Они оформляются в программном модуле как Function. Пользовательские функции можно собрать в одной рабочей книге, для доступа к которой из других рабочих книг делается ссылка в окне Macros. Если функции должны быть доступны при любом запуске Excel, их следует сохранить в личной книге макросов.

При создании пользовательских функций Excel следует учитывать ряд ограничений. В функции пользователя нельзя:

  • задавать свойства объектов;

  • вставлять, удалять и форматировать ячейки таблицы;

  • изменять содержимое ячеек;

  • перемещать, удалять, добавлять и переименовывать рабочие листы;

  • создавать, открывать, удалять или закрывать рабочие книги.

Пользовательские функции БД Access также записываются в виде процедуры Function в составе стандартного модуля проекта, они доступны через построитель выражений, при выборе раздела Функции, Имя БД.

Пример 20

Пользовательская функция Excel – ШТРАФ, аргументы СУММА – сумма платежа, ЗАДЕРЖКА – срок задержки платежа. Если задержка платежа до 3 дней — штраф 2% от суммы платежа, если задержка от 3 до 7 дней – штраф 5% от суммы платежа, если задержка свыше 7 дней — штраф 10% от суммы платежа.

Public Function ШТРАФ(СУММА As Variant, _

ЗАДЕРЖКА As Variant) As Variant

If ЗАДЕРЖКА <= 3 Then

ШТРАФ = СУММА * 0.02

ElseIf ЗАДЕРЖКА <= 7 Then

ШТРАФ = СУММА * 0.05

Else

ШТРАФ = СУММА * 0.1

End If

End Function

На рис. 13.4 представлена экранная форма для ввода аргументов и вычисления результата функции, созданная Excel автоматически. Эта функция доступна в формулах рабочего листа. Параметры функции могут задаваться непосредственно в поле окна функции, указываться в виде ссылки на ячейки таблицы.

Рис.13.4

Можно создать пользовательскую форму — UserForm, элементы управления которой соответствуют аргументам пользовательской функции ШТРАФ.

Макросы Microsoft Office

Макрос — набор команд, выполняемых как единое целое. Наиболее часто макросы создаются для автоматизации выполнения трудоемких, рутинных операций обработки данных (редактирования, поиска/замены, форматирования и прочее), а также для автоматизации повтора последовательных действий.

Различают языковые (на языке VBA) и клавишные макросы. Клавишные макросы создаются с помощью специального средства — макрорекордера в интерактивном режиме работы пользователя с командами меню. Все клавишные макросы имеют адекватное представление в виде процедур Sub на языке VBA. Языковые макросытексты процедур типа Sub, непосредственно создаваемые в редакторе VBA. Для начала освоения средств автоматизации рекомендуется сначала создавать клавишные макросы, а затем их оптимизировать в среде редактора VBA.

Клавишные макросы создаются во всех программах Microsoft Office, кроме Access (вкладка Макросы вызывает конструктор макросов, макрос Access — набор макрокоманд с параметрами).

В клавишном макросе запоминается нажатие клавиш, выбранные команды меню, манипуляция мышью в момент записи макроса.

Действия, проделанные в окне документа с помощью мыши — перемещение курсора, копирование и перемещение объектов и т.п. – не записываются в клавишном макросе.

Создание клавишного макроса можно временно приостанавливать и затем возобновлять. Подготовленный клавишный макрос автоматически транслируется на язык VBA в виде процедуры или программного модуля. Технология создания клавишных макросов (Word, Excel, PowerPoint) типовая. Команда Сервис, Макрос, Начать запись вызывает диалоговое окно Запись макроса (рис. 13.5), в котором следует указать:

  • имя макроса — непрерывная последовательность символов, не превышающая 80 знаков3;

  • способ вызова макроса — кнопка на панели инструментов или «горячие клавиши» типа Ctrl + <буква> или Ctrl+Shift+<буква> (нельзя использовать цифры или специальные символы: «@», «#» и др.).;

  • сфера действия макроса – шаблон документа, только документ;

  • описание макроса — до 255 символов4 (если макросу назначена кнопка панели инструментов, описание выполняет роль всплывающей подсказки).

Рис. 13.5

Для собственно записи макроса нажимается кнопка ОК, на экран выводится панель инструментов Остановить запись. С этого момента выполняется запись «тела» макроса — последовательности действий, которая будет возобновляться при запуске макроса.

Запуск макросов в приложениях осуществляется с помощью команды Сервис, Макрос, Макросы. Кнопка Выполнить выполняет выбранный макрос5. Макросы можно редактировать — кнопка Изменить (Edit), удалять — кнопка Удалить (Delete).

Макросы могут содержать вирусы, которые активизируются при открытии документов или использовании шаблонов. Для защиты от макровирусов макросы могут иметь специальную цифровую подпись — электронную печать (код разработчика), подтверждающую содержимое макроса и отсутствие макровирусов. В ряде программ Microsoft Office можно управлять уровнями безопасности от макровирусов. Например, в текстовом редакторе Microsoft Word команда Сервис, Макрос, Безопасность позволяет на вкладке Уровень безопасности выбрать уровень защиты:

  • высокий — запуск только подписанных макросов из надежных источников;

  • средний — запуск макросов по указанию пользователя;

  • низкий — запуск всех макросов.