Examples: Execute function and statement

Example 1 (Execute statement)

' The Execute statement performs a calculation entered by the  
' user and displays the result. If the user enters an invalid 
' calculation, a compilation error occurs, and the DoCalc sub 
' displays an appropriate message. The Option Declare statement 
' disallows the implicit declaration of variables in the 
' calculation. The user can enter 700 * 32, for example, or 
' "My name is " & "Fred", or Today - 365, but an entry such as
' x / y generates an error.
Sub DoCalc
   ' To handle any compilation error in the Execute statement
   On Error GoTo BadCalc
   Execute |Option Declare
           Dim x ' x is a Variant to accept any calculation.
           x =  | & InputBox ("Enter your calculation") & | 
           MessageBox "The result is " & x|
   Exit Sub
' Report an error and exit.
   MessageBox "Not a valid calculation"
   Exit Sub
End Sub
DoCalc                                  ' Call the sub.

Example 2 (Execute function)

' You can use the Execute function to return an integer such 
' as a status code. In this example, the Execute function 
' performs the calculation entered by the user. If the result 
' is less than 0 or greater than 1 (100%), Execute returns a 
' status code, and the ComputeInterest sub displays an
' appropriate message.
Sub ComputeInterest
   Dim script As String, calc As String, retcode As Integer
   calc$ = InputBox("Compute loan interest (charge/loan)")
   script$ = _
      |Option Declare
      Sub Initialize
         Dim pct As Single   
         pct! = | &  calc$ & | 
         If pct! < 0 Then
            End -2                   ' -2 is a status code.
         ElseIf pct! > 1 Then
            End -3                   ' -3 is a status code.
         End If
         MessageBox("Interest is " & Format(pct!,"percent"))
      End Sub|
   retcode% = Execute (script$)
   If retcode% = -2 Then
      MessageBox("You computed a negative interest rate!")
   ElseIf retcode% = -3 Then
      MessageBox("You computed an excessive interest rate!")
   End If
End Sub
ComputeInterest                      ' Call the sub.