Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ТСПП_Полн_2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.31 Mб
Скачать

5.1 Структура кода

Код модуля VBA состоит из текста процедур Sub или Function, а также предшествующей им области описания. Область описания – часть модуля, которая находится перед первой процедурой модуля. В ней располагается информация об изменяемых параметрах языка Visual Basic. Примеры команд области описания даны в таблице. Кроме того здесь располагаются описания глобальных (доступных всем процедурам модуля) переменных и констант.

Таблица 5.1

Команда

Определение

Option Explicit

Требование явного описания используемых переменных

Option Base 0

Option Base 1

Установка нижней границы массивов по умолчанию: 0 или 1

Форма записи процедур имеет следующий вид:

[Public|Private] Sub <имя процедуры>([параметры])

' Поясняющие комментарии

текст процедуры Sub

End Sub

[Public|Private] Function <имя процедуры>() [As <тип>]

' Поясняющие комментарии

текст процедуры Function

End Function

5.2 Использование функций и процедур

5.2.1 Вызов функций и процедур

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

Answer3 = MsgBox("Вам нравится Ваша зарплата?", 4, "Question 3")

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

MsgBox "Конец задачи!", 0, "Список задач"

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

Пример показывает два способа вызова процедуры Sub с несколькими аргументами. Когда процедура HouseCalc вызывается во второй раз, аргументы заключаются в скобки, поскольку используется инструкция Call.

Sub Main()

HouseCalc 99800, 43100

Call HouseCalc(380950, 49500)

End Sub

Sub HouseCalc(price As Single, wage As Single)

If 2.5 * wage <= 0.8 * price Then

MsgBox "Этот дом слишком дорогой."

Else

MsgBox "Цена этого дома приемлема."

End If

End Sub

5.2.2 Передача именованных аргументов

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

MsgBox Title:="Список задач", Prompt:="Конец задачи!"

Возвращаемое значение присваивается переменной answer3:

answer3 = MsgBox(Title:="Question 3", _

Prompt:="Вам нравится Ваша зарплата?", Buttons:=4)