Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика_4 / Учебное пособие по Excel / Учебное пособие по Excel.doc
Скачиваний:
81
Добавлен:
23.02.2015
Размер:
549.89 Кб
Скачать
      1. Создание и применение пользовательских функций

Пользовательские функции, или функции, определяемые пользователем, являются очень мощным средством для решения различных вычислительных задач и задач, связанных с обработкой информации. Пользовательские функции подобны встроенным функциям и вызываются Excel при вычислении формулы в рабочем листе. Пользовательские функции выполняют вычисления и возвращают значения без выполнения действий в рабочей области, поэтому такую функцию нельзя записать как макрос. Пользовательские функции могут быть созданы с помощью языка Visual Basic (VB).

В MS Excel макросы и пользовательские функции создаются и сохраняются в модулях, а потому не зависят от конкретного листа или ячейки и могут быть использованы в разных рабочих листах. Применять можно только те пользовательские функции, которые находятся в открытых книгах. Если книга с пользовательской функцией будет закрыта, то формула в открытом листе, использующая эту функцию, возвратит ошибочное значение #ССЫЛКА.

После тщательной отладки можно собрать несколько пользовательских функций в одном модуле и использовать его как библиотеку. Книгу с пользовательскими функциями можно сохранить в специальном формате надстройки (команда Файл/Сохранить как) и далее использовать как часть MS Excel. При открытии созданной надстройки (командаСервис/Надстройки) она будет всегда скрыта. Для защиты интеллектуальной собственности разработчика файл надстройки сохраняется в специальном нечитаемом формате, поэтому копию исходной книги с функциями пользователя всегда следует сохранять для внесения изменений в функции. Далее книгу надо будет сохранить в формате надстройки.

Процесс создания пользовательской функции состоит в следующем:

  • выполняется команда Сервис/Макрос/Редактор Visual Basic;

  • отображается окно проекта (команда Вид/Окно проекта);

  • выполняется команда Вставка/Модуль;

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

  • с помощью команды Вид/Программа отображается окно для ввода инструкций на языке Visual Basic;

  • вводится инструкция VB для пользовательской функции;

  • выполняется команда Отладка/Компилировать;

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

Ниже приведены основные характеристики пользовательских функций.

  1. Пользовательские функции начинаются инструкцией Function и заканчиваются инструкцией End Function.

  2. После инструкции Function следует ввести имя функции и далее, в круглых скобках, через запятую аргументы функции (разрешается использовать до 25 аргументов).

  3. Все вычисления выполняются на основе значений аргументов, для возврата результата вычислений необходимо присвоить результат переменной, имя которой совпадает с именем функции.

  4. Инструкция присваивания обозначается знаком равенства.

  5. Комментарий в VB начинается с апострофа или ключевого слова Rem.

  6. Последовательность IfElseEnd if является управляющей конструкцией, которая служит для проверки конкретных условий и позволяет изменить поведение процедуры в зависимости от результатов проверки. Ключевые слова управляющей конструкции должны стоять в начале строки.

  7. Для доступа к любой встроенной функции Excel из модуля VB используется ключевое слово Application, после которого ставится точка, и далее имя вызываемой функции.

Ниже приведен пример простой пользовательской функции Скидка для вычисления торговой скидки 10%, если количество заказов на некоторый товар больше 500. С помощью встроенной функции Round результат расчета скидки округляется с точностью до 2 десятичных знаков:

Function Скидка (количество, цена)

If количество >= 500 Then

Скидка = количество * цена * 0.1

Else

Скидка = 0

End If

Скидка = Application.Round(Скидка, 2)

End Function

Этот пример призван показать, что работа с VB в Excel не относится к уделу избранных, посвященных в тайны программирования, а вполне доступна пользователю, умеющему читать на языке программирования.