CoderNotes - заметки программиста

Публикации  »  Visual Basic Scripting (VBS)
Скидка 65% на Skillbox

Получите скидку 65% на любой курс программирования на популярной образовательной платформе Skillbox!

Подробнее
Бесплатный хостинг + SSL-сертификат

Зарегистрируйте домен и получите 2 месяца бесплатного хостинга и SSL-сертификат на 1 год в подарок

Подробнее

VBScript процедуры и функции

Как и в большинстве языков программирования, в VBScript можно использовать процедуры и функции, которые позволят разделить код на логически отдельные подпрограммы и вызывать их, если нужно несколько раз.

Процедуры в VBScript

Написание процедуры начинается с ключевого слова Sub затем идет наименование процедуры, перечисление параметров в скобках. Затем идет программный код и заканчивается код ключевыми словами End Sub которые обозначают конец процедуры.

Пример процедуры без параметров:

Sub Test()
' какой-то код
End Sub

Пример процедуры с параметрами:

Sub Test (Param1, Param2, Param3)
' какой-то код
End Sub

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

Вызов процедуры осуществляется одним из 2-х способов:

  • Call <имя_процедуры> (Param1, Param2, Param3)
  • <имя_процедуры> Param1, Param2, Param3

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

Передавать параметры в процедуру можно по ссылке и по значению, для чего перед именем параметра пишем:

  • ByRef - передача параметра по ссылке (при изменении параметра внутри процедуры, исходная переменная, которая передавалась, так же будет изменена)
  • ByVal - передача параметра по значению (создается копия значения и изменение параметра внутри процедуры не изменяет исходную переменную, которая передавалась в процедуру)

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

Пример возвращения нескольких значений из процедуры:

a = 1
b = 1

Test a, b

MsgBox a ' Выведет 2
MsgBox b ' Выведет 2

Sub Test (ByRef c, ByRef d)
c = 2
d = 2
End Sub

Функции в VBScript

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

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

Пример функции возвращающей значение:

MsgBox Test(1, 2) ' Выведет 3

Function Test (a, b)
  Test = a + b
End Function

Функцию можно использовать как процедуру, при этом параметры в нее можно передавать по тем же правилам, что и для процедуры и точно так же можно использовать ByVal и ByRef для передачи параметров по значению и по ссылке.

Пример использования функции как процедуры:

Test 1, 2

Function Test (ByVal a, ByVal b)
  c = a + b
  MsgBox c  ' Выведет 3
End Function

Если возможностей процедур и функций не достаточно, можно на VBScript написать классы, о которых рассказано в следующей статье. Если есть замечания/предложения по статье, пишем в комментариях.

Категория: Visual Basic Scripting (VBS)

Комментарии к статье:

12.03.21   kuzan Вот это изложение кратко и по сути! Теперь с передачей и модификацией параметров подпрограмм в VBScript мне ясно всё.
Благодарю автора!
10.04.21   Гость Больше бы комментарий , для общего понимания.

Добавить комментарий: