Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Процедуры. Оператор комментариев




Пример 19.17.

Оператор комментариев

 

Комментарий – это пояснение к программе. Любой комментарий начинается в строке с произвольного места программы символом '. Комментарии предназначены для сопровождения и поддержки программ. Как правило, разработка и сопровождение программ осуществляются различными специалистами. Текст комментариев должен обеспечить понимание логики программы, отражать ее специфику.

 

 

Текст программы Комментарий
Option Explicit Обязательность объявления всех переменных в модуле перед их использованием
Sub случ_числа() Процедура генерации случайных чисел в выделенной области электронной таблицы Excel 5.0
Dim numrows As Integer; numcols As Integer Dim therow As Integer; thecol As Integer numrows = Selection.Rows.Count numcols = Selection.Columns.Count   Randomize Объявление переменных   Присвоение значения числа строк и столбцов в выделенной области электронной таблицы Запуск генератора случайных чисел
For therow = 1 To numrows   For thecol = 1 To numcols Selection.Cells(therow; thecol).Value = Rnd Организация цикла типа Fоr-Next, внешний цикл Внутренний цикл Присваивание текущей ячейке случайного числа Selection – выбор ячейки Cells – метод доступа к ячейке с определенными координатами Value – свойство "значение"
Next thecol Конец внутреннего цикла
Next therow Конец внешнего цикла
End Sub Конец процедуры

 

Программные модули VBA состоят из процедур (одной или более).

 

Процедура – минимальный модуль в составе прикладной программы на языке VBA.

 

Процедуры имеют стандартное оформление:

Sub <имя_процедуры> (аргументы)

..................................

тело процедуры (операторы)

..................................

End Sub

 

Оператор Sub - объявление процедуры, задается имя, указывается состав аргументов, передаваемых при вызове процедуры из программы. Каждому оператору Sub обязательно соответствует End Sub.

Тело процедуры – набор последовательно выполняемых операторов на языке VBA.

В программе можно не только использовать процедуры данного программного модуля, но и ссылаться на процедуры других модулей текущей рабочей книги, а также процедуры других рабочих книг. Для этого необходимо задать ссылки; при нахождении на рабочем листе модуля выполняется команда СЕРВИС, Ссылки. В диалоговом окне «Ссылки» (рис. 19.22) показан список доступных ссылок на библиотеки или другие рабочие книги.

 

Рис. 19.22. Диалоговое окно для подключения программных модулей и их процедур

 

Для установления новых ссылок необходимо нажать кнопку <Пролистать> и вызвать диалоговое окно для выбора диска, каталога и файла, содержащего процедуры, на которые возможны ссылки из данного программного модуля. Доступность процедур определенного программного модуля или библиотеки указывается с помощью переключателя.

Различают 4 типа процедур:

процедуры общего назначения (стандартные), как правило, не вносят изменений вне себя;

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

процедуры обработки событий выполняются при наступлении событий определенного вида (например, открытие или закрытие электронной таблицы Excel, нажатие кнопки, перемещение объекта и т.п.);

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

Существует несколько вариантов вызова процедур (все необходимые ссылки на соответствующие процедуры заранее устанавливают).

1. Из другой процедуры того же модуля вызов осуществляется по имени процедуры

 

 

2. Из другой процедуры другого (подключенного) модуля вызов осуществляется по имени модуля, имени процедуры (в пределах одного приложения)

 

 

3. Из другого приложения (другой рабочей книги ППП Excel 5.0) – вызов осуществляется по имени модуля, имени процедуры и имени рабочей книги

 

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

 

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

 

 

Для защиты модуля рабочей книги от доступа к нему из процедур другой рабочей книги в начале модуля указывают: Option Private Module

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

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

Объявление аргументов в заголовке процедуры имеет стандартный вид:

Sub Proc_B (Val1 As Single; Val2 As Date;...)

Через выбранный разделитель списков (в зависимости от настройки Windows – запятая или точка сзапятой) следуют аргументы с указанием имени и типа значения.

Если аргумент необязательный, т.е. может не задаваться при вызове процедуры, указывается ключевое слово Optional.

 

Пример 19.18. Процедура вычисления площади прямоугольника по двум сторонам

 

Текст программы Комментарий
Sub SquarPr (L As Single; H As Single; S As Single; Optional F) If IsMissing (F) Then F=100   S=L*H End Sub Объявление процедуры SquarPr и ее аргументов Встроенная функция VBA – IsMissing проверяет наличие аргумента F, если F не задано, по умолчанию F присваивается значение 100 (F имеет тип Variant) Вычисление площади прямоугольника Конец процедуры

 

Вызов такой процедуры выполняется различным образом.

1-й вариант – непосредственное задание значений аргументов при вызове процедуры

 

Текст программы Комментарий
Sub Proc_A () Dim Sq as Single SquarPr 12; 23; Sq     End Sub Вызывающая процедура   Вызов процедуры с передачей значений длин сторон прямоугольника в явном виде, результат вычисления будет присвоен переменной Sq Конец процедуры

 

2-й вариант – через имена переменных, которым присвоены значения

 

Текст программы Комментарий
Sub Proc_A ()   Dim Sq as Single Dim LL as Single Dim HH as Single LL=12 HH=23 SquarPr LL HH Sq   End Sub Вызывающая процедура Объявление переменных ПЛОЩАДЬ ДЛИНА ВЫСОТА   Присвоение значений переменным   Вызов процедуры с передачей значений длин сторон прямоугольника в явном виде, результат вычисления будет присвоен переменной Sq Конец процедуры

 

3-й вариант – использование списка поименованных аргументов при вызове процедуры

 

Текст программы Комментарий
Sub Proc_A ()   Dim Sq as Single Dim LL as Single Dim HH as Single LL=12 HH=23 SquarPr L:=LL; H:=HH; S:=Sq     End Sub Вызывающая процедура Объявление переменных ПЛОЩАДЬ ДЛИНА ВЫСОТА Присвоение значений переменным   Вызов процедуры с указанием соответствия имен аргументов вызываемой процедуры и имен переменных вызывающей процедуры, которые разделяются в строке знаком: Конец процедуры

 

При завершении работы вызываемой процедуры и передаче управления вызывающей процедуре происходит потеря значений переменных, объявленных в вызываемой процедуре.

Для предотвращения этого сохраняемые переменные следует объявлять оператором:

 

Static <var> As <type>

 

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

Для модификации заголовка процедуры выполняется указание ключевого слова By Val перед именами аргументов, значение которых не изменится внутри процедуры.




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


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


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



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




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