Às vezes não podemos estimar o tamanho do array ao usá-lo, então é fácil pensar em arrays dinâmicos, ou seja, alterar dinamicamente o tamanho do array durante o uso. Isso é fácil de implementar em VB. Vamos usar um exemplo específico para explicar:
Definir um array dinâmico em VB geralmente envolve duas etapas:
(1) Use Dim, Private ou Public para declarar um array sem subscritos na camada de formulário ou módulo padrão (os colchetes não podem ser omitidos),
(2) Use a instrução ReDim para definir uma matriz com subscritos no processo
A função da instrução ReDim é apontar novamente o tamanho do array. Ele aloca espaço de armazenamento quando o programa executa a instrução ReDim.
Formato: ReDim(nome do array)(subscrito)[As(tipo)]
Função: Altere o tamanho e o espaço de armazenamento do array dinâmico.
ilustrar:
(1) O subscrito pode ser uma constante ou uma variável com valor definido.
(2) O significado de cada parâmetro na instrução é o mesmo da instrução que usa Dim para definir um array.
(3) A instrução ReDim só pode ser usada para matrizes dinâmicas. Ela pode alterar o tamanho de cada dimensão, mas não o número de dimensões.
(4) Quando o programa é compilado, todos os arrays na instrução ReDim são declarados como arrays dinâmicos. Quando o programa está em execução, quando a instrução ReDim é executada, os novos limites superior e inferior são reatribuídos ao array, os valores dos elementos do array serão inicializados, os valores de todos os elementos numéricos são definidos como 0, e os elementos de string são definidos como string de caracteres vazios.
(5) A instrução ReDim pode definir um array da mesma forma que a instrução Dim. No mesmo programa, a instrução ReDim também pode ser usada diversas vezes. Antes de usar a instrução :ReDim para redefinir o array, você pode usar a instrução :Erase para excluir o array original.
Exemplo:
Dimaa()AsLong' define um array dinâmico
Redimaa(10)'Ajuste o tamanho dos arrays dinâmicos
dim i como número inteiro
para i = 1 a 10
aa(eu) = eu
próximo
Redim aa(5) 'Redimensionar novamente
...Outras operações