Matrizes VBA do Excel

A matriz VBA do Excel nada mais é do que uma variável que pode conter o mesmo tipo de dados. Uma matriz é um grupo de uma variável que pode armazenar mais de uma variável. O nome da variável será o mesmo, mas pode conter valores diferentes em uma única variável. Uma matriz VBA é um tipo de variável que é usada para armazenar listas de dados do mesmo tipo.

Se tivermos 5 células que contêm números, precisamos declarar 5 variáveis ​​para conter 5 números diferentes no intervalo. Mas, usando o array, podemos armazenar 5 valores diferentes em uma única variável.

Como usar matrizes VBA do Excel?

Vamos entender como usar as matrizes VBA do Excel e seus tipos com alguns exemplos.

Você pode baixar este modelo de Excel de matrizes VBA aqui - Modelo de Excel de matrizes VBA

Exemplo 1

Veja o exemplo abaixo. X é uma variável que contém o tipo de dados inteiro.

Código:

 Sub Array_Example1 () Dim x Como Inteiro x = 1 End Sub 

Agora atribua um valor de 1 à variável declarada x.

Vamos inserir o valor de 1 na célula A1.

Código:

 Sub-matriz_Exemplo1 () Dim x Como inteiro x = 1 Intervalo ("A1"). Valor = x 
 End Sub 

O valor de x é igual a 1 e no intervalo, A1, o valor será inserido como o valor de x, ou seja, o valor de x é 1. Agora, execute o código usando a tecla F5 ou manualmente para ver os resultados.

No exemplo acima, x contém apenas uma variável, isso é tudo. Mas se eu quiser inserir 5 números consecutivos usando a variável única, preciso usar a variável de matriz de tipo que pode conter muitos valores de variável em um único nome de variável.

Exemplo 2

Agora dê uma olhada no exemplo abaixo. Um nome de variável é x e o tipo de dados é LONG. Mas, ao declarar a variável em si, abri o colchete e mencionei 1 a 5. Isso significa que a variável x conterá 5 tipos diferentes de valores.

Código:

 Sub Array_Example () Dim x (1 a 5) As Long, i Como Inteiro Final Sub 

Depois disso, atribuí os valores a cada variável. X (1) = 20 significa que a primeira variável deve ser igual ao valor de 20. X (2) = 25 significa que a segunda variável deve ser igual ao valor de 25 e assim por diante.

Código:

 Sub-matriz_Exemplo () Dim x (1 a 5) Como longo, i Como Inteiro x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Mais tarde declarei mais uma variável chamada “I”, este é o segundo tipo de variável e mantém o tipo de dados inteiro .

Na próxima etapa, apliquei os loops FOR para inserir números atribuídos à matriz na primeira coluna. Eu configurei o valor da variável i para 1 e instruí o loop a executar de 1 a 5 vezes. Quando o loop estiver sendo executado pela primeira vez, o valor de i será igual a 1. CELLS (I, 1) .value = x (i) significa que, pela primeira vez, i é igual a 1, ou seja, CELLS (1, 1) .value = x (1), na primeira linha da primeira coluna (célula A1) o valor será o primeiro valor da matriz ( x (1) ), ou seja, 20.

Quando o loop é executado pela segunda vez, o valor de i se torna 2, isto é, CELLS (2, 1) .value = x (2), na segunda linha da primeira coluna (A2), o valor será o segundo valor da matriz ( x (2) ) ie 25.

Código:

 Sub-matriz_Exemplo () Dim x (1 a 5) Como longo, i Como inteiro x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Para i = 1 a 5 células (i, 1) .Valor = x (i) Próximo i End Sub 

Assim quando os loops continuarem em execução, os valores continuarão mudando. Quando os loops executados pela terceira vez, o valor da célula A3 for 44, o loop da quarta vez executará o valor da célula A4 será 78 quando os loops forem executados pela última vez ou pela quinta vez, o valor da célula A5 será 96.

Depois de executar o código usando a tecla F5 ou manualmente, obteremos resultados como mostrado abaixo.

Tipos de matrizes no Excel

Matrizes têm tipos diferentes no VBA. Existem cinco tipos de matrizes disponíveis no Excel.

  • Matriz estática
  • Matriz dinâmica
  • Matriz unidimensional
  • Matriz bidimensional
  • Matriz multidimensional

Matriz estática

Nesse tipo de matriz, o comprimento da matriz é pré-determinado com antecedência e permanece constante.

Código:

 Sub Static_Example () Dim ArrayType (1 a 3) Como Inteiro ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 Células (1, 1) .Value = ArrayType (1) Células (1, 2) .Value = ArrayType (2) Células (1, 3) .Value = ArrayType (3) End Sub 

No código acima, o comprimento do ArrayType é determinado com antecedência como 1 a 3 e o tipo de dados é Inteiro.

Depois de executar o código usando a tecla F5 ou manualmente, obteremos resultados como mostrado abaixo.

Matriz dinâmica

Nesse tipo de matriz, o comprimento da matriz não é pré-determinado com antecedência.

Código:

 Sub Dynamic_Example () Dim ArrayType () como variante ReDim ArrayType (3) ArrayType (1) = "Meu nome" ArrayType (2) = "is" ArrayType (3) = Células "Excel" (1, 1) .Value = ArrayType (1) Células (1, 2) .Value = ArrayType (2) Células (1, 3) .Value = ArrayType (3) End Sub 

Nesse tipo de matriz, os dados são Variant e o comprimento não é determinado aqui. Depois de declarar a variável, atribuí o comprimento da matriz usando a função ReDim . Essa matriz inserirá os valores como esta Célula A1 = Meu nome, Célula B1 = é, Célula C1 = Excel.

Matriz unidimensional

Nesse tipo de matriz, o comprimento é determinado, mas em uma dimensão funciona.

Código:

 Sub One_Dimensional () Dim OneDimension (1 a 3) Como String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Mostre esses valores na caixa de mensagens do VBA.

Código:

 Sub One_Dimensional () Dim OneDimension (1 a 3) Como String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub 

Execute esse código usando a tecla F5 ou manualmente e obteremos o seguinte resultado.

Matriz bidimensional

Nesse tipo de matriz, o comprimento é determinado em duas dimensões e funciona.

Código:

 Sub Two_Dimensional () Dim TwoDimension (1 a 2, 1 a 2) As Long Dim i Como Inteiro Dim j Como Inteiro TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Fim Sub 

Agora, para armazenar esses valores nas células abaixo do código.

Código:

 Sub Two_Dimensional () Dim TwoDimension (1 a 2, 1 a 2) As Long Dim i Como Inteiro Dim j Como Inteiro TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Para i = 1 a 2 Para j = 1 a 2 Células (i, j) = Duas dimensões (i, j) Próximo j Próximo i Fim Sub 

Isso armazenará os dados como abaixo.

Matriz multidimensional

Nesse tipo de matriz, o comprimento é determinado, mas em multidimensional, ele funciona.

Código:

 Sub Multi_Dimensional () Dim TwoDimension (1 a 3, 1 a 2) As Long Dim Dim i Como Inteiro Dim j Como Inteiro MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 

Se você olhar primeiro o código acima, declarei a matriz como 1 a 3 e depois 1 a 2. Isso significa que, quando estou escrevendo a matriz primeiro, posso usar apenas 1 a 3 números, mas no segundo espaço, posso usar apenas 1 a 2 e não 1 a 3.

Usando Loop, podemos inserir valores nas células. Eu usei dois loops para uma matriz multidimensional.

Código:

 Sub Multi_Dimensional () Dim TwoDimension (1 a 3, 1 a 2) As Long Dim Dim i Como Inteiro Dim j Como Inteiro MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 Para i = 1 a 3 Para j = 1 a 2 Células (i, j) = MultiDimension (i, j) Próximo j Próximo i End Sub 

Depois de executar o código usando a tecla F5 ou manualmente, obteremos resultados como mostrado abaixo.

Coisas para lembrar

  • Uma matriz contará os valores de zero, não de 1.
  • Matriz (0, 0) significa primeira coluna da primeira linha.
  • Esse arquivo de macro do Excel precisa ser salvo como uma pasta de trabalho habilitada para macro.
  • No caso de array dinâmico, precisamos atribuir o valor do array usando a função REDIM no VBA.

Artigos recomendados

Este foi um guia para matrizes VBA. Aqui discutimos os tipos de matrizes no VBA e como usar as matrizes do VBA do Excel, além de alguns exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Função FIND no Excel com exemplos
  2. O que é a função VBA no Excel?
  3. Guia do objeto de intervalo do VBA
  4. Como usar a função VBA VLOOKUP?

Categoria: