Процедуры и функции
В VBScript существует два типа подпрограмм - процедуры и функции.
Процедура - это набор операторов VBScript, обрамленных операторами Sub и EndSub, которые выполняют какие-то действия. Процедура не возвращает никакого значения. Процедура может "захватывать" аргументы (константы, переменные или выражения). Если процедура не имеет аргументов, то выражение Sub должно содержать пустые круглые скобки. В примере, приведенном ниже, процедура ConvertTemp использует две встроенные функции VBScript - InputBox и MsgBox - для обмена с пользователем некоторой информацией.
Функция - это набор операторов VBScript, обрамленных операторами Function и EndFunction. Функция похожа на процедуру, но отличается тем, что может возвращать значение. Функция также как и процедура может "захватывать" аргументы. Функция всегда возвращает значение типа Variant. В примере функция Celsius пересчитывает температуру из градусов по Цельсию в градусы по Фаренгейту.
<SCRIPTLANGUAGE="VBScript"> SubConvertTemp() temp = InputBox("PleaseenterthetemperatureindegreesF.", 1) MsgBox "Thetemperatureis " & Celsius(temp) & " degreesC." EndSub FunctionCelsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 EndFunction </SCRIPT>
Процедуры и функции перед их использованием обязательно должны быть описаны в начале раздела HEADHTML-страницы. Весь последующий скрипт должен быть также в разделе HEAD. Кроме того, выражения Sub и Function как и все другие операторы VBScript должны находится в контейнере <SCRIPT>.
Каждый элемент данных, передаваемый подпрограмме, называется аргументом. Аргументы указываются в скобках через запятую после имени процедуры или функции. Например, в следующем примере переменная fDegrees содержит значение, которое используется в функции Celsius для преобразования температуры:
<SCRIPTLANGUAGE="VBScript"> FunctionCelsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 EndFunction </SCRIPT>
Аргументам можно присваивать любые имена в соответствии с соглашениями по именованию.
При использовании функций в скрипте, ее имя должно всегда стоять в правой части равенства при присвоении значения переменной или внутри какого-либо выражения, например:
<SCRIPTLANGUAGE="VBScript"> Temp = Celsius(fDegrees) </SCRIPT>
или
<SCRIPTLANGUAGE="VBScript"> MsgBox "TheCelsiustemperatureis " & Celsius(fDegrees) & " degrees." </SCRIPT>
Для вызова процедуры из другой подпрограммы нужно просто указать имя процедуры вместе со значениями аргументов, разделенных запятыми. Выражение Call в данном случае не требуется, но если оно все-таки используется, то аргументы указываются в скобках. В следующем примере показаны оба варианта вызова процедуры:
<SCRIPTLANGUAGE="VBScript"> CallMyProc(firstarg, secondarg) MyProcfirstarg, secondarg </SCRIPT>