Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание и применение процедур и функций




Преобразование типов данных

VBA предоставляет возможность преобразовать тип данных в любом месте программы. Это можно сделать с помощью функций

Функция Назначение
CBool Преобразует в тип Boolean
Ccur Преобразует в тип Currency
Cdate Преобразует в тип Date
CDbl Преобразует в тип Double
Cint Преобразует в тип Integer
CLng Преобразует в тип Long
Csng Преобразует в тип Single
CStr Преобразует в тип String
Cvar Преобразует в тип Variant

 

Типы процедур

Процедуры - это небольшие по объему программы, включаемые в состав общей прикладной программы. Обычно любая прикладная программа состоит из нескольких процедур, но как минимум в ней должна содержаться одна, которая является главной или управляющей процедурой, поэтому ей присваивают имя Main().

Каждая процедура начинается с оператора объявления и заканчивается указателем конца процедуры: Тип Sub Имя_Процедуры(Аргументы)

Операторы тела процедуры

End Sub

Оператор объявления процедуры присваивает ей имя, отмечает ее начало и перечисляет аргументы, значения которых передаются процедуре из вызвавшей ее программы. Тип указывает уровень доступа к процедуре - открытый, т.е. Public или ограниченный, т.е. Private.

Оператор End Sub отмечает конец процедуры.

Все операторы, которые располагаются между операторами объявления и окончания процедуры составляют тело процедуры. Данная совокупность операторов позволяет решить поставленную при вызове процедуры подзадачу и получить результат. Список Аргументов обеспечивает связь между вызывающей и вызываемой процедурами и предназначены для получения и передачи значений специальных переменных. Значения глобальных переменных таким способом не передаются, так как они доступны всем процедурам программы.

В VBA различаются четыре вида процедур:

· общие;

· командные;

· обработки событий;

· функции.

Общие процедуры - это обычные процедуры, которые ничего не изменяют за своими пределами.

Командные процедуры предназначены для обеспечения доступа из VBA к директивам меню программ, входящих в пакет Microsoft Office. Такие процедуры не получают никаких аргументов, а ввод данных организуется с помощью встроенных диалоговых окон.

Процедуры обработки событий VBA связаны с конкретными событиями из определенного списка и выполняются только тогда, когда эти события наступают. Например, к таким событиям относится нажатие кнопки, перемещение мыши, выбор директивы меню и пр.

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

ПРИМЕР: Proc1()

Multiplication а=Val1, b=Val2

. Иногда может возникнуть ситуация, когда программа состоит из нескольких модулей, которые в свою очередь содержат процедуры с одинаковыми именами. В этом случае нужно специально указывать, к какому именно модулю относится вызываемая процедура, потому что VBA сначала будет искать данную процедуру в том же модуле, где находится вызывающая процедура и только после этого - в других модулях.

ПРИМЕР: [Модуль1].Proc1

[Модуль2].Proc1

Будут последовательно вызваны две различные процедуры, имеющие одно и то же имя. С вызовом разноименных процедур никаких проблем не возникает. Для того, чтобы предотвратить доступ к процедуре из других модулей, достаточно указать ключевое слово Private (“личная”) в операторе объявления данной процедуры.

Напротив, для обеспечения доступа к процедуре из других модулей, следует указать, что она “открытая”. С этой целью в операторе объявления следует указать ключевое слово Public.

ПРИМЕР:

Private Sub Risk() Public Sub Raschet(a As Integer, b As Single, q As Currency)




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 424; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.