Page tree
Skip to end of metadata
Go to start of metadata


Forces all variables used to be defined and properly typed. VB is not strongly typed so it's easy to get "spaghetti" code going. This helps to cut down on it. Also helps the user instantly find typos in variable names.


Option Base [0|1]


Option Compare [Binary | Text]


Option Explicit


Option Private Module


Form 1: Set the default base index for array declarations. Affects Dim, Static, Private, Public and ReDim. Does not affect Array, ParamArray or arrays declare in a Type. Option Base 0 is the default.

Form 2: Set the default comparison mode for string.

  • Option Compare Binary - compare string text using binary data (default)

  • Option Compare Text - compare string text using the collation rules

String comparison using <, ⇐, =, >, >=, <>, Like and StrComp are affected by this mode's setting.

Form 3: Require all variables to be declared prior to use. Variables are declared using Dim, Private, Public, Static or as a parameter of Sub, Function or Property blocks.

Form 4: Public symbols defined by the module are only accessible from the same project.


Option Base 1
Option Explicit

Sub Main
    Dim A
        Dim C(2) ' same as Dim C(1 To 2)
        Dim D(0 To 2)
    A = 1
    B = 2 ' B has not been declared
End Sub