Процедуры Sub
Обновлен: Ноябрь 2007
Процедура Sub — это последовательность операторов Visual Basic, заключенных между операторами Sub и End Sub. Процедура Sub выполняет задачу и возвращает контроль коду вызова, но она не возвращает значения в код вызова.
При каждом вызове процедуры ее операторы выполняются, начиная с первого исполняемого оператора после оператора Sub и заканчивая первым из операторов End Sub, Exit Sub или Return.
Процедуру Sub можно определять в модулях, классах и структурах. По умолчанию она является Public, что означает, что ее можно вызывать из любого места в приложении, которое имеет доступ к модулю, классу или структуре, в котором она определена. Другими словами, method описывает процедуру Sub или Function, доступ к которой осуществляется вне модуля, класса или структуры, в которой определена эта процедура. Дополнительные сведения см. в разделе Методы класса.
Процедура Sub может принимать аргументы, например константы, переменные или выражения, которые передаются ей вызывающим кодом.
Синтаксис объявления
Для объявления процедуры Sub используется следующий синтаксис:
[modifiers] Sub subname[(parameterlist)]
' Statements of the Sub procedure.
End Sub
В modifiers можно указать уровень доступа и сведения о перегрузке, переопределении, общем доступе и затенении. Дополнительные сведения см. в разделе Оператор Sub (Visual Basic).
Объявление параметра
Каждый параметр процедуры объявляется аналогично объявлению переменной: задается имя параметра и тип данных. Можно также указать механизм передачи, а также является ли параметр необязательным или массивом параметров.
Для каждого параметра в списке параметров синтаксис выглядит следующим образом:
[Optional] [ByVal | ByRef] [ParamArray] parametername As datatype
Если параметр является необязательным, необходимо также как часть объявления указать его значение по умолчанию. Синтаксис для указания значения по умолчанию выглядит следующим образом:
Optional [ByVal | ByRef] parametername As datatype = defaultvalue
Параметры как локальные переменные
При передаче элемента управления процедуре каждый параметр рассматривается как локальная переменная. Это означает, что его время такое же как у процедуры, и его областью действия является вся процедура.
Синтаксис вызова
Процедура Sub вызывается явным образом с помощью отдельного вызывающего оператора. Ее нельзя вызвать, указав ее имя в выражении. Необходимо задать значения всех аргументов, которые являются обязательными, причем список аргументов должен быть заключен в скобки. Если не указано никаких аргументов, скобки можно опустить (необязательно). Можно не использовать ключевое слово Call, но это не рекомендуется.
Для вызова процедуры Sub используется следующий синтаксис:
[Call] subname[(argumentlist)]
Можно вызвать метод Sub вне класса, в котором он определяется. Во-первых, необходимо использовать ключевое слово New, чтобы создать экземпляр класса, или вызвать метод, который возвращает экземпляр класса. Дополнительные сведения см. в разделе Практическое руководство. Использование ключевого слова New. Затем можно использовать следующий синтаксис для вызова метода Sub для экземпляра объекта:
Object.methodname[(argumentlist)]
Дополнительные сведения см. в разделе Практическое руководство. Выполнение действий с помощью методов.
Иллюстрация объявления и вызова
Приведенная ниже процедура Sub показывает оператору компьютера, какое задание приложение собирается выполнить, а также отображает отметку времени. Вместо дублирования этого кода в начале каждой задачи приложение вызывает tellOperator из различных расположений. При каждом вызов строка передается аргументу task , идентифицирующему запущенную задачу.
Sub tellOperator(ByVal task As String)
Dim stamp As Date
stamp = TimeOfDay()
MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub
В следующем примере показан типичный вызов tellOperator.
Call tellOperator("file update")
См. также
Задачи
Практическое руководство. Вызов процедуры, которая не возвращает значение
Практическое руководство. Вызов обработчика событий в Visual Basic
Основные понятия
Параметры и аргументы процедуры