Table of contents
Collapse the table of content
Expand the table of content

Option Base Statement

office 365 dev account|Last Updated: 6/12/2017
1 Contributor

Used at module level to declare the default lower bound forarray subscripts.


Option Base { 0 |1 }

Remarks Because the default base is 0, the Option Base statement is never required. If used, thestatement must appear in amodule before anyprocedures. OptionBase can appear only once in a module and must precede arraydeclarations that include dimensions.

Note The To clause in the Dim, Private, Public, ReDim, and Static statements provides a more flexible way to control the range of an array's subscripts. However, if you don't explicitly set the lower bound with a To clause, you can use Option Base to change the default lower bound to 1. The base of an array created with the the ParamArray keyword is zero; Option Base does not affect ParamArray (or the Array function, when qualified with the name of its type library, for example VBA.Array ).

The Option Base statement only affects the lower bound of arrays in the module where the statement is located.


This example uses the Option Base statement to override the default base array subscript value of 0. The LBound function returns the smallest available subscript for the indicated dimension of an array. The Option Base statement is used at the module level only.

Option Base 1 ' Set default array subscripts to 1. 

Dim Lower 
Dim MyArray(20), TwoDArray(3, 4) ' Declare array variables. 
Dim ZeroArray(0 To 5) ' Override default base subscript. 
' Use LBound function to test lower bounds of arrays. 
Lower = LBound(MyArray) ' Returns 1. 
Lower = LBound(TwoDArray, 2) ' Returns 1. 
Lower = LBound(ZeroArray) ' Returns 0. 
© 2018 Microsoft