VBA Tip: Delete an Array

If you want to reset an array to change its size and content, use the Erase instruction.


Example with a dynamic array:

Sub test()
    
    testNumber = 11
    
    'Declaration of a dynamic array
    Dim testArray()
    
    'Resizing
    ReDim testArray(testNumber - 1)
    
    'EXAMPLE
    MsgBox UBound(testArray) ' => returns: 10
    
    'Deletion
    Erase testArray
    
    'New resizing possible after deletion
    ReDim testArray(15)
    
    'EXAMPLE
    MsgBox UBound(testArray) ' => returns: 15
    
End Sub

The Erase instruction can be very useful when your dynamic array is declared as a Public or Global variable...

Example with a fixed-size array:

Sub test()
    
    'Declaration of the array
    Dim testArray(10)
    
    'EXAMPLE: value attribution
    For i = 0 To 10
        testArray(i) = i
    Next
    
    'EXAMPLE
    MsgBox testArray(5) ' => returns: 5
    
    'Deleting the content of the array
    Erase testArray
    
    'EXAMPLE
    MsgBox testArray(5) ' => empty
    
End Sub

With a fixed-size array, items are reset (emptied).