Мегаобучалка Главная | О нас | Обратная связь  


Основные сведения о процедурах




Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Процедура — это сгруппированный и логически закончен­ный набор операторов VВА. Различают следующие типы проце­дур: процедуры-подпрограммы (процедуры Sub) и процедуры-функции (процедуры Function).

Процедура Sub— совокупность операторов VВА, заключен­ных между операторами Sub и Еnd Sub. Процедуры этого типа выполняют определенные действия, но значения в вызывающую их процедуру не возвращают. Имена таких процедур не могут быть использованы в выражениях и операторах присваивания. Как правило, процедуры - подпрограммы являются макросами или процедурами обработки событий (процедуры, автоматически выполняемые при возникновении события, инициируемого пользователем или приложением).

Синтаксис процедуры Sub имеет вид:
Sub имя ( [аргументы] )                    

операторы VВА

End Sub

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

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



Синтаксис процедуры-функции имеет вид:

Function имя ( [аргументы] ) [Аs тип]

Операторы VВА

имя = выражение

Еnd Function 

Параметр имя определяет имя создаваемой процедуры. Нео­бязательные параметры аргументы позволяют передать в про­цедуру требуемые значения. Параметр Аs тип задает тип дан­ных, возвращаемых функцией. Инструкция имя = выражение используется для задания вычисленного и возвращаемого в вы­зывающую процедуру значения.

Процедуры Function и Sab могут быть либо закрытыми, либо открытыми. Открытую процедуру, объявленную с применением ключевого слова Public, разрешается вызывать из любой проце­дуры любого модуля. Закрытую процедуру, объявленную с помо­щью ключевого слова Private, можно вызывать только из проце­дур текущего модуля. Если в объявлении процедуры не указан ее вид, то по умолчанию она считается Public (то есть открытый).

Пример 5. Операторы процедуры ПервыйСимвол. Назна­чение процедуры — преобразование первого символа исходной строки strИсходнаяСтрока в прописной, а остальных символов строки в строчные.

1. Publiс Function ПервыйСимвол (strИсходнаяСтрока Аs

String)

2. Dim strСтрока As String

3.    strСтрока = Trim (strИсходнаяСтрока)

ПервыйGимвол = Ucase (Left(strСтрока), 1)) &

Lcase (Mid (strСтрока, 2))

4. End Function

Здесь и далее нумерация 1,2,…, 5 дана с целью последую­щих комментариев операторов процедуры:

1. Задание открытой (Рublic) процедуры с именем Первый­Символ, возвращающей преобразованное значение (тип Function). Входным аргументом является строка strИсходнаяСтрoка, в ко­торой требуется установить первую букву как прописную, а ос­тальные — строчные.

2. Описание введенной вспомогательной переменной — стро­ки strСтрока. Эту строку планируется использовать для времен­ного хранения информации.

3. Определение содержимого переменной strСтрока как зна­чение строки strИсходнаяСтрока, в начале и конце которой уда­лены пробелы с помощью встроенной в Ехсеl функции Trim().

4. Установка первого (левого) символа содержимого строки strСтрока как прописного (применяется встроенная функция UСаsе) и перевод остальных символов строки в строчные (встро­енная функция LСаsе). Оператор & (логическое «и») использу­ется для слияния (объединения) двух подстрок в одну. Резуль­тат записывается в строку ПервыйСимвол, то есть в имя функ­ции — для передачи в вызывающую программу.

5. Окончание процедуры.

Пример 6. Создать процедуру обработки события Нажа­тие (Click) для помещенной в поле рабочего листа кнопки Пре­образовать. Преобразование заключается в вызове для содер­жимого предварительно выделенного диапазона ячеек рабочего листа Ехсеl процедуры ПервыйСимвол (пример 5), подсчете числа сделанных с помощью этой процедуры преобразований и выделении курсивом не измененных процедурой значений.

В рассматриваемом примере используются понятия объекта Selection,- свойств Value и Font.Italic,Cell и события Click.

1. Private Sub Преобразовать_Click ( )

2. Dim intЧислоЗамен As Integer

       intЧислоЗамен = 0

3. For Each Cell In Selection

If Cell.Value <> Первый символ (Cell.Value) Then

Cell.Value = Первый символ (Cell.Value)

       intЧислоЗамен = intЧислоЗамен +1

       Else

Cell.Fon.Italic = True

End If

Next Cell

7.MsgBox «Сделано» & intЧислоЗамен & «преобразований»

End Sub

Комментарии:

1. Задание процедуры, обрабатывающей событие Нажатие(Click), возникающее при нажатии кнопки с именем Преобразовать. Процедура не возвращает никакого значения (Sub), доступна только в данном модуле (Private) и не имеет входных аргументов.

2. Описание введенной переменной — intЧислоЗамен. Содержи­мое этой переменной— число преобразованных функцией Пер­выйСимвол ячеек. Изначально содержимое переменной intЧислоЗамен равно 0.

3. Организуется последовательный перебор всех ячеек пред­варительно выделенного диапазона, рабочего листа таблицы Ехсеl, определяемого объектом Selection.

4. Осуществляется проверка неравенства исходного значения текущей ячейки диапазона и значения этой же ячейки, преобра­зованного функцией ПервыйСимвол. В случае неравенства вы­полняется группа операторов 5, а в случае равенства — 6.

5. Строка преобразуется путем вызова для содержимого теку­щей ячейки рабочего листа таблицы Ехсеl процедуры Первый­Символ; содержимое переменной intЧислоЗамен (счетчика вы­полненных преобразований) увеличивается на 1.

6. Содержимое текущей ячейки выделяется курсивом.

7. Вывод сообщения о числе преобразованных ячеек.

Данные, необходимые процедуре типа Sub или Function для выполнения ее задачи (в примере 5. переменная strИсходнаяСтрока), передаются как аргументы. Аргументы отделяются друг от друга запятыми. Объявляя аргумент с помощью ключе­вого слова Аs, можно задать тип исходных данных.

Процедуре можно запретить изменение значения переданно­го ей аргумента, для чего используется ключевое слово ByVal. Если же процедуре разрешено изменять значение аргумента, то может применяться ключевое слово ВуRef. По умолчанию при­меняется именно этот способ передачи аргумента.

Для определения обязательности аргумента используется ключевое слово Optional.

Пример 7. Объявление процедуры Sub, содержащей два входных аргумента: 

Sub Обновление (ВуVа1 IngНомер Аs Long, strИмяКлиента Аs String)

Первый аргумент, IngНомер, передается по значению как тип Long. Процедура получает копию переменной, переданной вы­зывающей процедурой. При изменении значения переменной изменится только копия, а сама переменная в вызывающей про­цедуре сохранит прежнее содержание.

Второй аргумент, strИмяКлиента, передается по ссылке как тип String. В этом случае процедура имеет доступ к исходной переменной в памяти и поэтому способна изменить ее значение. [2]




Читайте также:
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (99)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.016 сек.)
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7