
- •Введение
- •Основы работы с книгой
- •Основные теоретические сведения
- •Настройка рабочего места. ШаблоныExcel
- •Основы работы с листом книги
- •Выделение ячеек и диапазонов
- •Ввод данных в ячейки рабочего листа
- •Редактирование с использованием мыши
- •Редактирование с использованием команд
- •Работа с окнами книг
- •Работа с листами
- •Форматирование и печать листов
- •Форматирование ячеек
- •Встроенные форматы
- •Пользовательские числовые форматы
- •Форматирование сетки рабочего листа
- •Печать листов
- •Упражнения
- •Контрольные вопросы
- •Использование формул
- •Основные теоретические сведения
- •Ввод формул
- •Ссылки в формулах
- •Присваивание имен ячейкам и диапазонам
- •Использование массивов
- •Вычисления на листе и ошибки в формулах
- •Упражнения
- •Контрольные вопросы
- •Использование функций
- •Основные теоретические сведения
- •Использование функций Excel
- •Создание и применение пользовательских функций
- •Графическое представление данных рабочего листа
- •Создание диаграмм
- •Редактирование диаграмм
- •Представление данных на географической карте
- •Упражнения
- •Контрольные вопросы
- •Анализ данных
- •Основные теоретические сведения
- •Использование таблиц подстановки
- •Таблицы с одной переменной
- •Таблицы с двумя переменными
- •Диспетчер сценариев
- •Подбор параметра в ячейке
- •Поиск оптимального значения в ячейке
- •Статистический анализ данных
- •Оценка параметров распределения
- •Генерация случайных чисел
- •Линейная и экспоненциальная регрессия
- •Упражнения
- •Контрольные вопросы
- •Работа со списками
- •Основные теоретические сведения
- •Создание и ведение списков
- •Сортировка списков и диапазонов
- •Использование фильтров для анализа списков
- •Команда Автофильтр
- •Команда Расширенный фильтр
- •Промежуточные итоги
- •Использование функций для анализа списков
- •Консолидация листов
- •Использование сводных таблиц
- •Создание сводной таблицы
- •Форматирование сводной таблицы
- •Упражнения
- •Контрольные вопросы
- •Библиографический список
- •Оглавление
- •620002, Екатеринбург, ул. Мира, 19
- •620002, Екатеринбург, ул. Мира, 19
Создание и применение пользовательских функций
Пользовательские функции, или функции, определяемые пользователем, являются очень мощным средством для решения различных вычислительных задач и задач, связанных с обработкой информации. Пользовательские функции подобны встроенным функциям и вызываются Excel при вычислении формулы в рабочем листе. Пользовательские функции выполняют вычисления и возвращают значения без выполнения действий в рабочей области, поэтому такую функцию нельзя записать как макрос. Пользовательские функции могут быть созданы с помощью языка Visual Basic (VB).
В MS Excel макросы и пользовательские функции создаются и сохраняются в модулях, а потому не зависят от конкретного листа или ячейки и могут быть использованы в разных рабочих листах. Применять можно только те пользовательские функции, которые находятся в открытых книгах. Если книга с пользовательской функцией будет закрыта, то формула в открытом листе, использующая эту функцию, возвратит ошибочное значение #ССЫЛКА.
После тщательной отладки можно собрать несколько пользовательских функций в одном модуле и использовать его как библиотеку. Книгу с пользовательскими функциями можно сохранить в специальном формате надстройки (команда Файл/Сохранить как) и далее использовать как часть MS Excel. При открытии созданной надстройки (командаСервис/Надстройки) она будет всегда скрыта. Для защиты интеллектуальной собственности разработчика файл надстройки сохраняется в специальном нечитаемом формате, поэтому копию исходной книги с функциями пользователя всегда следует сохранять для внесения изменений в функции. Далее книгу надо будет сохранить в формате надстройки.
Процесс создания пользовательской функции состоит в следующем:
выполняется команда Сервис/Макрос/Редактор Visual Basic;
отображается окно проекта (команда Вид/Окно проекта);
выполняется команда Вставка/Модуль;
в окне проекта выделяется новый модуль, в окне свойств вводится имя модуля;
с помощью команды Вид/Программа отображается окно для ввода инструкций на языке Visual Basic;
вводится инструкция VB для пользовательской функции;
выполняется команда Отладка/Компилировать;
производится переключение в рабочий лист, в ячейку которого вводится созданная функция (из категории функций, определенных пользователем).
Ниже приведены основные характеристики пользовательских функций.
Пользовательские функции начинаются инструкцией Function и заканчиваются инструкцией End Function.
После инструкции Function следует ввести имя функции и далее, в круглых скобках, через запятую аргументы функции (разрешается использовать до 25 аргументов).
Все вычисления выполняются на основе значений аргументов, для возврата результата вычислений необходимо присвоить результат переменной, имя которой совпадает с именем функции.
Инструкция присваивания обозначается знаком равенства.
Комментарий в VB начинается с апострофа или ключевого слова Rem.
Последовательность If…Else…End if является управляющей конструкцией, которая служит для проверки конкретных условий и позволяет изменить поведение процедуры в зависимости от результатов проверки. Ключевые слова управляющей конструкции должны стоять в начале строки.
Для доступа к любой встроенной функции Excel из модуля VB используется ключевое слово Application, после которого ставится точка, и далее имя вызываемой функции.
Ниже приведен пример простой пользовательской функции Скидка для вычисления торговой скидки 10%, если количество заказов на некоторый товар больше 500. С помощью встроенной функции Round результат расчета скидки округляется с точностью до 2 десятичных знаков:
Function Скидка (количество, цена)
If количество >= 500 Then
Скидка = количество * цена * 0.1
Else
Скидка = 0
End If
Скидка = Application.Round(Скидка, 2)
End Function
Этот пример призван показать, что работа с VB в Excel не относится к уделу избранных, посвященных в тайны программирования, а вполне доступна пользователю, умеющему читать на языке программирования.