Declara variáveis de matriz dinâmica e aloca ou realoca espaço de armazenamento no nível do procedimento.
Sintaxe
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .
Argumentos:
Preserve: Preserva os dados em uma matriz existente quando você altera o tamanho da última dimensão.
Varname: Nome da variável; segue as convenções padrão de nomenclatura de variável.
Subscripts: Dimensões de uma variável de matriz.
Comentários
A instrução ReDim é usada para dimensionar ou redimensionar uma matriz dinâmica que foi formalmente declarada usando uma instrução Private, Public ou Dim com parênteses vazios (sem subscripts de dimensão). Você pode usar a instrução ReDim repetidamente para alterar o número de elementos e dimensões em uma matriz.
Se você usar a palavra-chave Preserve, poderá redimensionar apenas a última dimensão de matriz e não poderá alterar o número de dimensões. Por exemplo, se a matriz tiver apenas uma dimensão, você poderá redimensionar essa dimensão por ser a última e única dimensão. No entanto, se a matriz tiver duas ou mais dimensões, você só poderá alterar o tamanho da última dimensão e preservar o conteúdo da matriz.
O exemplo a seguir mostra como aumentar o tamanho da última dimensão de uma matriz dinâmica sem apagar nenhum dado existente contido na matriz.
Exemplo 1: Uso Básico de ReDim (Sem o Argumento Preserve)
Dim arr() ' Initially, create an array with 3 elements ReDim arr(2) ' Array can hold 3 elements (0, 1, 2) ' Assign values to the array arr(0) = "Apple" arr(1) = "Banana" arr(2) = "Cherry" ' Now, resize the array to hold 5 elements ReDim arr(4) ' Array can hold 5 elements (0, 1, 2, 3, 4) 'If you try to access indexes 0, 1, 2 there will be no values. ' The previous values are lost because we did not use Preserve arr(3) = "Date" arr(4) = "Elderberry"
Exemplo 2: Uso do Argumento Preserve na Instrução ReDim para Manter os Dados Existentes
Dim arr() ' Initially, create an array with 3 elements ReDim arr(2) ' Array can hold 3 elements (0, 1, 2) ' Assign values to the array arr(0) = "Apple" arr(1) = "Banana" arr(2) = "Cherry" ' Now, resize the array to hold 5 elements, keeping the existing data ReDim Preserve arr(4) ' Array can hold 5 elements (0, 1, 2, 3, 4) ' The previous values are preserved, so we can add more elements arr(3) = "Date" arr(4) = "Elderberry"
Cuidado: Se você tornar uma matriz menor do que era originalmente, os dados nos elementos eliminados serão perdidos.
Quando variáveis são inicializadas, as variáveis numéricas são inicializadas para 0 e as variáveis de string são inicializadas para uma string de tamanho zero (""). Uma variável que faz referência a um objeto deve ser atribuída a um objeto existente usando a instrução Set antes de ser usada. Até ser atribuída um objeto, a variável do objeto declarada tem o valor especial Nothing.