Процедуры VBScript

В языке VBScript существует два вида процедур: подпрограммы и функции.


Подпрограммы


Подпрограмма это последовательность VBScript выражений, заключённых между слов Sub и End Sub, производящих некоторые действия, но не имеющих возвращаемых значений. Подпрограмма может иметь аргументы: константы, переменные, выражения. Если подпрограмма не требует аргументов, выражение Sub должно оканчиваться парой пустых фигурных скобок «()».


Приведённая в примере подпрограмма использует две функции встроенного языка MsgBox и InputBox, запрашивающие у пользователя необходимую информацию. Далее, на основе этой информации, подпрограмма проводит вычисления и выводит результат. Все вычисления проводятся с помощью созданной на языке VBScript функции. Код функции см. ниже.


Sub ConvertTemp()

  temp = InputBox("Please enter the temperature in degrees F.", 1)

  MsgBox "The temperature is " & Celsius(temp) & " degrees C."

End Sub


Функции


Функции представляют собой последовательность VBScript выражений, заключённых между слов Function и Sub Function. Функции схожи с подпрограммами, но в отличие от них имеют возвращаемое значение. Функция может принимать аргументы: константы, переменные и выражения. Если функция не требует аргументов, выражение Function должно оканчиваться парой пустых фигурных скобок «()». Возвращаемое значение указывается рядом с именем функции в одном или нескольких выражениях. Возвращаемый тип всегда переменная.


В качестве примера приведена функция, переводящая градусы по шкале Фаренгейта в градусы по шкале Цельсия. При вызове функции из подпрограммы, значение переменной, заданной в качестве параметра передаётся для обработки в функцию. Результат вычислений возвращается в процедуру вызова с последующим выводом не экран.


Sub ConvertTemp()

  temp = InputBox("Please enter the temperature in degrees F.", 1)

  MsgBox "The temperature is " & Celsius(temp) & " degrees C."

End Sub


Function Celsius(fDegrees)

  Celsius = (fDegrees - 32) * 5 / 9

End Function


Ввод и вывод данных в процедурах


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


Function Celsius(fDegrees)

  Celsius = (fDegrees - 32) * 5 / 9

End Function


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


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


Функция всегда должна располагаться справа от знака = в выражении. Пример:

Temp = Celsius(fDegrees)

или

MsgBox "The Celsius temperature is " & Celsius(fDegrees) & " degrees."


Вызов подпрограммы заключается в указании её имени и определении значений её параметров. Прибегать к выражению Call необязательно, однако, если оно используется, то все параметры должны быть заключёны в круглые скобки. Пример:


Call MyProc(firstarg, secondarg)


MyProc firstarg, secondarg


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


Created with the Freeware Edition of HelpNDoc: Free HTML Help documentation generator