This item was deprecated in version 2019r2. Please use Arrays.LastIndex as a replacement.


Returns the upper bound of the array (the index of the last element). Arrays are 0-based.


result = Ubound(array[,dimension])


result = array.Ubound






The index of the last element in the array specified.


Array of any data type

The array whose last element number you want.



Relevant only for multi-dimensional arrays. Used to specify the dimension for which you want the last element.


The Ubound function is used to determine the last element of an array, but it can also be used to determine the size of an array. It may appear at first that the last element number and the size of the array are the same but in fact they are not. All arrays have a zero element. In some cases element zero is used and in other cases it is not. You will need to keep this in mind when using the Ubound function to determine the number of values you have in the array. For example, if the array is zero-based, then element zero is used to store a value and you will have to add one to the value returned by the Ubound function to get the number of values in the array.

All arrays are indexed starting at position 0. Arrays can have a maximum index value of 2,147,483,646.

For multi-dimensional arrays, Ubound returns the index of the last element of the dimension you specify, or, if you do not specify a dimension, it returns the value for the first dimension. The first dimension is numbered 1.


For mult-dimensional arrays, you must use the global Ubound method and not the array method.

Sample code

This code replaces each occurrence of X in an array with Y.

For i As Integer = 0 To Ubound(Names)
  If Names(i) = "X" Then
    Names(i) = "Y"
  End If

The following code returns -1 because the newly-declared array has no elements:

Dim i() As Integer
Dim j As Integer
j = Ubound(i)

The following code uses the alternative syntax to get the value:

Dim myArray(5) As Integer
Dim lastElementIndex, numberOfElements As Integer
lastElementIndex = myArray.Ubound
numberOfElements = myArray.Ubound + 1

The following code of a 2-dimensional array returns 5 in the variable i and 3 in the variable j (remember that the first dimension is numbered 1).

Dim i, j As Integer
Dim aNames (5, 3) As String
i = Ubound(aNames)
j = Ubound(aNames, 2)


All project types on all supported operating systems.

See also

Dim statement; Array, String, String functions; Arrays, Arrays.IndexOf, Arrays, Pop, Redim, Arrays, Shuffle, Sort, Sortwith methods; ParamArray keyword; Arrays concept