Procedures - Microsoft® Visual Basic® Scripting Edition

> ### VBScript Procedures

> ##### Kinds of Procedures

> > In VBScript there are two kinds of procedure: the Sub procedure and the Function procedure.

> > ##### Sub Procedures

> > A Sub procedure is a series of VBScript statements, enclosed by the Sub and End Sub statements, that performs actions but does not return a value. A Sub procedure can take arguments (constants, variables, or expressions that are passed by a calling procedure). If a Sub procedure has no arguments, its Sub statement must include an empty set of parentheses.

> > The following Sub procedure uses two intrinsic, or built-in, VBScript functions, InputBox and MsgBox, to prompt a user for some information. It then displays the results of a calculation based on that information. The calculation is performed in a Function procedure created using VBScript. It is shown in the discussion of the Function procedure that follows.

> >     <SCRIPT LANGUAGE="VBScript">
> >     <!--
> >      Sub ConvertTemp()
> >         temp = InputBox("Please enter the temperature in degrees F.", 1)
> >         MsgBox "The temperature is " & Celsius(temp) & " degrees C."
> >      End Sub
> >     -->
> >     </SCRIPT>

> > ##### Function Procedures

> > A Function procedure is a series of VBScript statements enclosed by the Function and End Function statements. A Function procedure is similar to a Sub procedure, but can also return a value. A Function procedure can take arguments (constants, variables, or expressions that are passed to it by a calling procedure). If a Function procedure has no arguments, its Function statement must include an empty set of parentheses. A Function returns a value by assigning a value to its name in one or more statements of the procedure. The return type of a Function is always a Variant.

> > In the following example, the Celsius function calculates degrees Celsius from degrees Fahrenheit. When the function is called from the ConvertTemp Sub procedure, a variable containing the argument value is passed to the function. The result of the calculation is returned to the calling procedure and displayed in a message box.

> >     <SCRIPT LANGUAGE="VBScript">
> >     <!--
> >      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
> >     -->
> >     </SCRIPT>

> ##### Declaring Procedures

> > Since you need to define procedures before they are used, you should always put them at the begining of the HEAD section of your HTML page. All subsequent code should also be in the HEAD section. Further, Function and Sub statements, like all other elements of the VBScript language, must be contained in paired <SCRIPT LANGUAGE="VBScript"></SCRIPT> tags to be properly recognized in HTML. In addition, comment tags (<!-- and -->) should surround the code inside the <SCRIPT> tag to ensure that it is not displayed in browsers that don't handle VBScript.

> ##### Getting Data Into and Out of Procedures

> > Each piece of data is passed into your procedures using an argument. Arguments serve as placeholders for the data you want to pass into your procedure. When you create a procedure using either the Sub statement or the Function statement, parentheses must be included after the name of the procedure. Any arguments are placed inside these parentheses, separated by commas. For example, in the following example, fDegrees is a placeholder for the value being passed into the Celsius function for conversion:

> >     <SCRIPT LANGUAGE="VBScript">
> >     <!--
> >      Function Celsius(fDegrees)
> >         Celsius = (fDegrees - 32) * 5 / 9
> >      End Function
> >     -->
> >     </SCRIPT>

> > You can name your arguments anything that is valid as a variable name.

> > To get data out of a procedure, you must use a Function. Remember, a Function procedure can return a value; a Sub procedure cannot.

> ##### Using Sub and Function Procedures in Code

> > To use a Function in your code, it must always be used on the right side of a variable assignment or in an expression. For example:

> >     <SCRIPT LANGUAGE="VBScript">
> >     <!--
> >      Temp = Celsius(fDegrees)
> >     -->
> >     </SCRIPT>

> > or

> >     <SCRIPT LANGUAGE="VBScript">
> >     <!--
> >      MsgBox "The Celsius temperature is " & Celsius(fDegrees) & " degrees."
> >     -->
> >     </SCRIPT>

> > To call a Sub procedure from another procedure, you can just type the name of the procedure along with values for any required arguments, each separated by a comma. The Call statement is not required, but if you do use it, you must enclose any arguments in parentheses.

> > The following example shows two calls to the MyProc procedure. One uses the Call statement in the code; the other does not. Both do exactly the same thing.

> >     <SCRIPT LANGUAGE="VBScript">
> >     <!--
> >      Call MyProc(firstarg, secondarg)
> >      MyProc firstarg, secondarg
> >     -->
> >     </SCRIPT>

> > Notice that the parentheses are omitted in the call when the Call statement isn't used.

> > Note The current release supports only passing arguments by value (passing copies of the arguments). If you need to set values inside a Sub procedure, you must assign those values to variables defined outside of the procedure.

> © 1996 by Microsoft Corporation.