Summary
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.
Syntax
Option Base [0|1]
-or-
Option Compare [Binary | Text]
-or-
Option Explicit
-or-
Option Private Module
Description
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.
Example
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