Пользовательские функции рабочего листа Visual Basic - Программирование, компьютеры и кибернетика практическая работа

Пользовательские функции рабочего листа Visual Basic - Программирование, компьютеры и кибернетика практическая работа




































Главная

Программирование, компьютеры и кибернетика
Пользовательские функции рабочего листа Visual Basic

Правили создания и алгоритм применения собственной функции пользователя в стандартном модуле редактора VBA. Изучение структуры кода функции. Перечень встроенных математических функций редактора Visual Basic. Определение области видимости переменной.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Пользовательские функции рабочего листа VBA
Пользователь может создать собственную функцию в стандартном модуле редактора VBA.
Для вызова редактора VBA задайте команду Сервис Макрос Редактор Visual Basic или нажмите комбинацию клавиш Alt+F11. В результате пользователь попадает в интегрируемую среду приложений IDE редактора Visual Basic. Она имеет стандартный вид для Windows-приложений:
панель инструментов (в данном случае Standart),
два окна Project - VBAProject и Properties.
В окне Project - VBAProject отображается реестр модулей и форм, входящих в создаваемый проект.
Модуль - это лист (не путать с рабочим листом), в котором набирается код.
Двойным щелчком на значке модуля в окне Project - VBAProject можно открыть соответствующий модуль. Значок активного модуля в окне Project - VBAProject выделяется серым цветом.
В VBA у каждого рабочего листа имеется собственный модуль. Кроме того, рабочая книга обладает своим, и если в проекте создаются пользовательские формы, то каждая из них имеет по модулю. В проекте также можно добавлять модули классов для описания создаваемых пользовательских классов (эти модули будут рассмотрены позже). Единый модуль, который нам необходим, - это стандартный модуль. Для того чтобы его добавить в проект, выберите команду InsertModule.
Структура кода функции пользователя
В окне стандартного модуля с клавиатуры набирается текст процедуры - функции пользователя. В общем случае функция пользователя имеет следующую структуру:
Function имя_функции (список_аргументов)
имя_функции - имя создаваемой функции, придуманное пользователем;
список_аргументов - список аргументов;
инструкции - это последовательность команд, выполняемых при нахождении значения функции. В совокупности они образуют тело функции.
Важная особенность функции пользователя заключается в том, что носителем возвращаемого значения является ее имя (идентификатор имя_функции). Поэтому среди инструкций должна присутствовать, по крайней мере, одна, которая является оператором присваивания имени функции значения какого-либо выражения.
Примечание. Разрешается досрочный выход из функции по инструкции Exit Function. В теле функции может располагаться несколько инструкций Exit Function.
Пример 1. Создание функции пользователя
Рассмотрим построение простой функции, которая возвращает стоимость товара по его стоимости без НДС и значению ставки НДС.
Вызовите редактор VBA командой Сервис Макрос Редактор Visual Basic или комбинацией клавиш Alt+F11. Добавьте в проект стандартный модуль командой Insert Module. В окне модуля наберите код, представленный в листинге 1.
Листинг 1. Пользовательская функция определения стоимости товара
Function Стоимость (СтоимостьБезНДС, НДС)
Стоимость = СтоимостьБезНДС * (1 + НДС / 100)
Применение пользовательской функции для решения задачи
К созданной пользовательской функции можно обратиться через Мастер функций. По умолчанию она попадает в раздел Определенные пользователем списка Категория окна Мастера функций. Используем созданную функцию для определения стоимости товара с учетом НДС при условии, что НДС равен, например, 25 %, а стоимость товара без учета НДС равна 1000.
Алгоритм применения функции пользователя
Разместите данные, необходимые для решения задачи, на рабочем листе как показано на рисунке:
В ячейку А2 введите число 1000 (стоимость без НДС), а в ячейку В2 - число 25 (НДС).
Для определения значения стоимости товара с учетом НДС переместите табличный курсор в ячейку С2 и вызовите Мастер функций (например, командой Вставка Функция).
В окне Мастера функций в списке Категория найдите значение Определенные пользователем, затем в списке Функция выберите функцию Стоимость и подтвердите свой выбор щелчком по командной кнопке ОК.
В появившемся окне функции Стоимость в полях СтоимостьБезНДС и НДС задайте ссылки на ячейки А2 и В2 с исходными данными для этих аргументов (щелкните левой кнопкой мыши по соответствующим ячейкам, чтобы не набирать вручную с клавиатуры их адреса) и нажмите командную кнопку ОК.
Примечание. Возможность использовать в качестве имен переменных русские названия новая функция может быть легко распознана любым пользователем по ее имени, и смысл параметров функции становится понятным.
Пример 2. Создание функции пользователя
Необходимо создать функцию определения суммы заработной платы сотрудника за отработанные дни. Аргументами функции являются: величина месячного оклада сотрудника, количество рабочих дней в месяце, количество отработанных сотрудником дней. Добавьте в проект стандартный модуль командой Insert Module. В окне модуля наберите код, представленный в листинге 2.
Листинг 2. Пользовательская функция определения суммы заработной платы сотрудника за отработанные дни
Function Зар_плата_отраб_время (Оклад, РабДни, ОтрабДни)
Зар_плата_отраб_время = Оклад / РабДни * ОтрабДни
Алгоритм применения функции пользователя
Разместите данные, необходимые для решения задачи, на рабочем листе как показано на рисунке:
Переместите табличный курсор в ячейку Е2 и вызовите Мастер функций, в окне Мастера функций в списке Категория выберите пункт Определенные пользователем, затем в списке Функция - функцию Зар_плата_отраб_время и подтвердите свой выбор щелчком по командной кнопке ОК. В появившемся окне функции Зар_плата_отраб_время в полях Оклад, РабДни и ОтрабДни задайте ссылки на ячейки В2, С2 и D2 с исходными данными для этих аргументов и нажмите командную кнопку ОК:
Пример 3. Создание функции пользователя с использованием стандартных математических функций
При создании функций пользователю могут потребоваться встроенные в VBA математические функции. Перечень таких функций представлен в таблице 1.
Таблица 1. Встроенные математические функции VBA
экспонента ех (результат возведения основания натурального логарифма в указанную степень)
случайное число между 0 и 1. Если аргумент number меньше нуля, то функция Rnd возвращает каждый раз одно и то же число. Если number больше нуля или опущено, то Rnd возвращает следующее случайное число в последовательности. Если number равняется нулю, то Rnd возвращает случайное число, полученное при предыдущем вызове этой функции. Перед вызовом функции Rnd используйте оператор Randomize.
знак числа (возвращает 1, если аргумент является положительным; -1, если аргумент - отрицательный; 0, если аргумент равен нулю)
обе функции Fix, Int отбрасывают дробную часть числа и возвращают целое значение. Различие между данными функциями состоит в том, что для отрицательного значения параметра число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix - ближайшее отрицательное целое число, большее либо равное указанному.
В новом стандартном модуле наберите код, представленный в листинге 3.
Листинг 3. Пользовательская функция с использованием встроенной математической функции
В VBA нет функции, возвращающей число П ("пи"), поэтому оно определяется через функцию Ant (арктангенс): Pi = 4 * Atn (1). Число П можно задать явно, указав достаточное число значащих цифр, но этот подход менее элегантен, чем с помощью функции Ant.
Алгоритм применения функции пользователя
Разместите данные, необходимые для решения задачи, на рабочем листе (как показано на рисунке) и с помощью Мастера функций вызовите новую функцию:
Оператор условного перехода задает выполнение определенных групп инструкций в зависимости от значения выражения.
If condition Then [statements ] [ Else elsestatements ]
Если условие condition принимает значение True, то выполняются инструкции statements, если False, то инструкции elsestatements. Ветвь Else является необязательно.
Например, если скидка (скажем 50%) применяется только к суммам больше 10001 1 Здесь и далее, если не указана денежная единица, то имеются в виду некие условные единицы., то в VBA это можно записать следующим образом:
If Money > 1000 Then Discount = 0.05 Else Discount = 0
If Money > 1000 Then Discount = 0.05
Допускается также использование блочной формы синтаксиса, которая часто упрощает восприятие оператора условного перехода. Обратите внимание на то, что при блочной организации оператора условного перехода используется ключевое слова End If для обозначения окончания оператора.
Приведенный выше пример со скидкой можно записать в следующей эквивалентной блочной структуре:
Дерево условий может оказаться гораздо более сложным, чем просто проверка одного условия. В этом случае оператор If….Then….ElseIf, который позволяет проверять множественные условия. Следующий пример показывает порядок проверки условий.
Первым поверяется условие condition-1. Если оно имеет значение True, то выполняются инструкции Statements и далее работа программы продолжится со строки, которая следует за ключевым словом End If. Если условие condition-1 возвращает значение False, то проверяется условие condition-2 и т.д., пока не встретится условие, возвращающее значение True, или не встречается ключевое слово Else.
Пользовательская функция с двумя условиями
Посмотрим для функции в стандартном модуле пользовательскую функцию (листинг 3).
Листинг 4. Пользовательская функция с двумя условиями (вариант 1).
Конечно, ту же самую можно было бы запрограммировать с использованием двух операторов If. Но хотя этот код содержит меньше строк, он менее предпочтительнее (листинг 4).
Пользовательская функция с тремя условиями
Создадим в стандартном модуле пользовательскую функцию (листинг 5).для функции
Листинг 5. Пользовательская функция с двумя условиями (вариант 1).
Эту функцию можно запрограммировать с использованием оператора If.
Листинг 6. Пользовательская функция с двумя условиями (вариант 2).
функцияZ1 = (1 + x ^ (1 / 2)) / (1 + x)
В программе все идентификаторы (в частности, имена переменных и функций) имеют определенную область видимости (scope). Область видимости переменной определяет ту область кода, которая "знает" о существовании данной переменной.
Переменная, объединенная внутри функции, не может быть использована или обнаружена вне данной функции. Это означает, что пользователь может использовать то же самое имя переменной в другой функции, и VBA не перепутает их.
Таким образом, для каждой из рассмотренных выше функций нет нужды создавать свой стандартный модуль.
Их все можно расположить в одном модуле, и VBA не запутается.
Код нескольких пользовательских функций в модуле
Примечание. Редактор Visual Basic для облегчения визуального развития местоположения функций в модуле создает между ними разделительные линии. Для того чтобы эти разделительные линии отображались на экране, выберите команду Tools Options. На экране отобразится диалоговое окно Options. На вкладке Editor в группе Window Settings установите флажок Procedure Separator.
Рассмотрим задачу: менеджеру по продажам необходимо разработать функцию, позволяющую рассчитывать комиссионные. Процент комиссионных зависит от объема проданного товара и начисляется по следующему правилу, представленному в таблице.
Построим для расчета комиссионных в стандартном модуле пользовательскую функцию (листинг 7).
Усложним задачу. Будем считать, что комиссионные зависят от ставки, занимаемой менеджером. Если он принят в постоянный штат фирмы, то комиссионные начисляются по описанному выше закону. Если же он находится на испытательном сроке, то его комиссионные составляют 75% от номинала.
Для решения этой задачи к функции Комиссионные1 надо добавить еще один аргумент - Ставка, который и идентифицирует ставку менеджера. Если менеджер находится на испытательном сроке, то значение аргумента Ставка полагается равным 0, а если он зачислен в постоянный штат, то значение аргумента Ставка полагается равным 1. Тогда, функция Комиссионные2 примет вид, представленный в листинге 8.
Листинг 8. Расчет комиссионных с учетом ставки менеджера
Function Комиссионные2(Продажи, Ставка)
Язык программирования Visual Basic: краткая история возникновения, значение и общая характеристика. Изучение основных свойств Visual Basic, синтаксис языка. Обзор ключевых операторов Visual Basic, пользовательские процедуры и функции данного языка. контрольная работа [36,4 K], добавлен 23.07.2014
Рождение и развитие Basic. Краткое описание Visual Basic for Applications. Новые возможности Visual Basic 5.0. Пример взаимодействия Excel и Visual Basic. Программирование табличных функций. Встраивание, применение функций. Формы, средства управления OLE. реферат [20,7 K], добавлен 11.03.2010
Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції. реферат [29,9 K], добавлен 28.06.2011
Решение экономических задач с помощью Microsoft Excel и инструментария Visual Basic For Application. Способы запуска редактора Visual Basic, правила его синтаксиса. Создание автоматических макросов по сортировке и выборке. Создание управляющих кнопок. курсовая работа [852,0 K], добавлен 24.09.2010
Разработка программного продукта с помощью языка программирования Visual Basic. Описание интерфейса пользователя и возможностей программы. Исходный код основных модулей. Программа, демонстрирующая основные возможности диаграмм и среды Visual Basic. контрольная работа [989,9 K], добавлен 29.03.2011
Программный проект Баз данных средствами Visual Basic 6.0. Проектирование структуры таблицы базы данных Visual Basic 6.0. Заполнение созданных таблиц БД исходными данными. Создание пользовательского меню. Вид формы и свойства элементов управления. курсовая работа [3,0 M], добавлен 19.06.2010
Редактор Visual Basic в интерпретации Microsoft - интегрированная среда проектирования (IDE). Средства и инструменты, необходимые программисту для разработки и создания приложений. Характеристика основных возможностей редактора. Запись и запуск макроса. презентация [531,2 K], добавлен 26.10.2011
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Пользовательские функции рабочего листа Visual Basic практическая работа. Программирование, компьютеры и кибернетика.
Реферат по теме Участники уголовного процесса со стороны обвинения
Сочинение Рассуждение Почему Нужно Много Читать
Эссе На Тему Профессия Воспитателя
Курсовая Работа По Психологии Детей Дошкольного Возраста
Курсовая работа по теме Ранние и современные этапы исследования воли
Доклад по теме Разработка бизнес-плана инвестиционного проекта ОАО "Минский ПКТИ"
Контрольная Работа На Тему Объекты Патентного Права, Условия Предоставления Правовой Охраны
Жизнь Древних Людей Эссе
Практическая Работа Измеряем Рост И Массу
Купить Лабораторную Работу По Информатике
Реферат по теме Затраты на оплату труда в себестоимости продукции, товаров (работ, услуг)
Дипломная работа по теме Анализ и оценка деловой активности предприятия
Контрольные Работы По Музыке 2 Класс
Реферат: Методика обучения анализу и сравнению объектов и явлений природы в процессе проведения экскурсий на уроках природоведения
Гражданский Служащий Курсовая
Салтыков Щедрин Полное Собрание Сочинений
Отчет по практике по теме Организация технической эксплуатации перегрузочных машин в порту
Реферат по теме Рудольф Штайнер
Курсовая работа: Судебная система России в 9-17 веках
История Легкой Атлетики Кратко Реферат
Разработка и выведение на рынок нового товара - Маркетинг, реклама и торговля курсовая работа
Организационная структура управления - Менеджмент и трудовые отношения курсовая работа
Государственный кадастр месторасположения полезных ископаемых - Геология, гидрология и геодезия презентация


Report Page