If a code module does not contain Option Explicit
at the top of the module, then the compiler will automatically (that is, "implicitly") create variables for you when you use them. They will default to variable type Variant
.
Public Sub ExampleDeclaration()
someVariable = 10 '
someOtherVariable = "Hello World"
'Both of these variables are of the Variant type.
End Sub
In the above code, if Option Explicit
is specified, the code will interrupt because it is missing the required Dim
statements for someVariable
and someOtherVariable
.
Option Explicit
Public Sub ExampleDeclaration()
Dim someVariable As Long
someVariable = 10
Dim someOtherVariable As String
someOtherVariable = "Hello World"
End Sub
It is considered best practice to use Option Explicit in code modules, to ensure that you declare all variables.
See VBA Best Practices how to set this option by default.