From Xojo Documentation


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


result = Ubound(array[,dimension])
result = array.Ubound

Part Type Description
result Integer The index of the last element in the array specified.

If the passed array has no elements, result is set to -1.

array Array of any data type The array whose last element number you want.
dimension Integer Relevant only for multi-dimensional arrays. Used to specify the dimension for which you want the last element.

The first dimension is numbered 1. If passed -1, it will return the number of dimensions in the array. If passed a non-existent dimension, it will cause an OutOfBoundsException error.


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.

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)

See Also

Dim statement; Array, Join, Split functions; Append, IndexOf, Insert, Pop, Redim, Remove, Shuffle, Sort, Sortwith methods; ParamArray keyword; Arrays concept