VBScript Tutorials - Herong's Tutorial Examples - Version 5.20, by Dr. Herong Yang

Example - Passing Arguments by Value

This section provides a tutorial example on how to pass arguments by value to swap values passed through procedure arguments. By this example will not work.

To see how passing arguments by value works, I wrote the following example, function_swap_by_val.html:

<html>
<body>
<!-- function_swap_by_val.html
 - Copyright (c) 2015, HerongYang.com, All Rights Reserved.
-->
<pre>
<script language="vbscript">
   document.writeln("")
   document.writeln("Test 1: Swapping two literals by value")
   document.writeln("   Before Sub: " & "Apple" & " | " & "Orange")
   Call SwapByVal("Apple", "Orange")
   document.writeln("   After Sub: " & "Apple" & " | " & "Orange")

   vFirst = "Dog"
   vSecond = "Cat"
   document.writeln("")
   document.writeln("Test 2: Swapping two variables by value")
   document.writeln("   Before Sub: " & vFirst & " | " & vSecond)
   Call SwapByVal(vFirst, vSecond)
   document.writeln("   After Sub: " & vFirst & " | " & vSecond)

Sub SwapByVal(ByVal vLeft, ByVal vRight)
   vTemp = vLeft
   vLeft = vRight
   vRight = vTemp
   document.writeln("   In Sub: " & vLeft & " | " & vRight)
End Sub
</script>
</pre>
</body>
</html>

Here is the output:


Test 1: Swapping two literals by value
   Before Sub: Apple | Orange
   In Sub: Orange | Apple
   After Sub: Apple | Orange

Test 2: Swapping two variables by value
   Before Sub: Dog | Cat
   In Sub: Cat | Dog
   After Sub: Dog | Cat

Here are my notes about this example:

  • Test 1 is useless.
  • Test 2 shows that "ByVal" arguments will not bring any changes back to the calling code. After the subroutine call, values in vFirst and vSecond have not been changed at all.

Table of Contents

 About This Book

 Introduction of VBScript - Visual Basic Scripting Edition

 Variant Data Type, Subtypes, and Literals

 Arithmetic Operations

 Numeric Comparison Operations and Logical Operations

 String Operations - Concatenation and Comparison

 Variable Declaration and Assignment Statement

 Expression and Order of Operation Precedence

 Statement Syntax and Statement Types

 Array Data Type and Related Statements

 Array References and Array Assignment Statements

 Conditional Statements - "If ... Then" and "Select Case"

 Loop Statements - "For", "While", and "Do"

"Function" and "Sub" Procedures

 What Is a Procedure?

 "Function" Statement and Function Call

 Function Procedure Example

 "Sub" Statement and Subroutine Call

 Sub (Subroutine) Procedure Example

 Passing Arguments to Procedures

 Example - Passing Arguments by Reference

Example - Passing Arguments by Value

 Passing Arrays as Arguments

 Variable Scope in Procedures

 Example - Variable Scope in Procedures

 Built-in Functions

 Inspecting Variables Received in Procedures

 Error Handling Flag and the "Err" Object

 Regular Expression Pattern Match and Replacement

 scrrun.dll - Scripting Runtime DLL Library

 Creating Your Own Classes

 IE Web Browser Supporting VBScript

 IIS ASP Server Supporting VBScript

 WSH (Windows Script Host)

 References

 Printable Copy - PDF Version

Example - Passing Arguments by Value - Updated in 2015, by Dr. Herong Yang