Blog

Postado em em 29 de abril de 2022

Array VBA: veja como usar, métodos e exemplos práticos

como-usar-arrays-no-vba-do-simples-ao-avancado

Conhecer a função VBA Array é fundamental para quem deseja ser um especialista em VBA e Excel para automatizar a rotina no trabalho e projetos pessoais.

Se você ainda não conhece, neste texto vamos apresentar a função e exemplos práticos da função.

Além disso, mostraremos como a função pode ser utilizada para realizar diversas tarefas que não podem ser realizadas no Excel sem o VBA (Visual Basic for Applications). Confira a seguir!

O que é o array no VBA?

o-que-e-o-array-vba

O VBA Array, ou simplesmente Array, é uma função de matriz que possui capacidade de memória para armazenar valores com o mesmo tipo de dados. 

Em tradução, Array pode ser entendido como matriz ou vetor.

Mas, antes de se aprofundar na função, você pode estar se perguntando o que é o VBA?

O VBA é uma linguagem de programação por trás do Excel, programa da Microsoft. 

Ele funciona como uma espécie de extensão com mais funcionalidades para que você possa aplicar programação em suas planilhas.

Assim, o seu trabalho no dia a dia com dados e estatísticas se torna ainda mais automatizado. 

Os Arrays podem ser usados para facilitar a escrita de códigos sustentáveis em comparação com muitas variáveis de dados logicamente relacionados.

Parece complexo, mas na prática é mais fácil de entender como usar.

As matrizes com o VBA Array podem ser divididas em dois tipos: as fixas ou estáticas, que são sempre do mesmo tamanho, e as dinâmicas, no qual o tamanho é variável.

Quando utilizar arrays no Excel?

A função Array VBA é essencial para tornar o seu próprio trabalho mais prático e, consequentemente, mais rápido. 

Um exemplo claro disso é quando há a necessidade de criar várias análises com dados distintos. 

Imagine, então, que você seja dono de uma rede de farmácias, ok? 

Pensando nisso, todo mês, é preciso avaliar os números de vendas de cada unidade. Só que, ao todo, são 20 lojas espalhadas pelos quatro cantos do Brasil. 

Ao invés de abrir o Excel, criar aba por aba referente às unidades — (o que demandaria um tempo gigante —, dá para, simplesmente, criar uma variável (Array VBA) com todas as informações, ou seja, de todos os lugares.

vWVw2RTDrxyJtFTuexbiYxRznY ldT4vf6pLx1qQoKL

Essa é uma maneira de definir os arrays VBA e já atribuir valores a eles, sejam textos ou números.

Neste caso fizemos a atribuição dos nomes das lojas e das vendas de cada uma delas, assim cada array contém 4 informações.

Muito bacana, não é mesmo?

Vantagens dos Arrays VBA

Nós já comentamos algumas vantagens do Arrays VBA ao longo desse conteúdo. Mas, vale repetir, até para você não ter dúvidas mesmo do quanto a função é excelente!

Olha só os benefícios: 

  • rapidez;
  • praticidade;
  • possibilidade de armazenar muitas informações;
  • criação de abas infinitas simultaneamente;
  • análise de dados mais precisa e segura; 
  • possibilidade de integração com outros programas da Microsoft. 

Então, não dá para dispensar uma funcionalidade tão completa e, ao mesmo tempo, prática, certo? 

Aproveite tudo o que os Arrays VBA têm a oferecer! 

Como usar o array no VBA Excel?

como-usar-array-vba-no-excel

Para não ficar nenhuma dúvida, é claro que também vamos te mostrar como usar o Array VBA. 

Lembra daquele exemplo ali em cima da rede de farmácias? Vamos aproveitá-lo novamente. 

Para criar as abas, siga o passo a passo: 

  1. Abra o VBA por meio do atalho alt + F11 ou, ainda, alt + Fn + F11 (caso esteja utilizando um notebook);
  2. Comece a sua macro colocando “sub” + o nome da macro;
  3. Defina qual a variável guardará por meio dos códigos “Dim” + nome do vetor (sem espaços) + quantidade de informações (conforme figura abaixo) + tipo da informação;
  4. Preencha as informações que entrarão em cada aba;
  5. Use a estrutura “For” + as arrays VBA para adicionar as informações às abas;
  6. Preencha os vetores com os nomes das linhas , por exemplo: array_estados (contador – 1) = Cells (contador, 1). 
exemplo arrays
Criação de abas utilizando Arrays VBA

Olhando os códigos, a tarefa até pode parecer complexa, mas não é. Em poucos minutos, você consegue montar tudo. 

No vídeo abaixo, você pode acompanhar a criação do Array VBA que foi mostrado acima, assim terá em detalhes para que servem as outras funções além do array: 

Aqui cabe mais um ponto muito importante: seja para o VBA, ou, para usar qualquer outra função do Excel, seja realmente curioso! 

Procure descobrir novas vantagens a cada dia, existem muitas e muitas. Mais importante ainda: separe alguns minutos do seu dia a dia para estudar a teoria e, claro, colocar a mão na massa. 

Como tudo na vida: quanto mais você praticar, melhor ficará! 

Ainda mais com o VBA, pois ele te permite um mundo de possibilidades dentro do Excel, desde a criação de novas fórmulas/ferramentas, formulários e até mesmo automação das suas atividades.

Principais métodos de array no VBA

Ok, agora que você já entendeu como funciona o Array e o que ele significa no VBA, vamos conhecer alguns dos métodos mais importantes.

Com esses métodos a seguir, você consegue manipular essa estrutura de dados para trabalhar com a lógica que for conveniente em seus projetos. 

Falaremos sobre quatro métodos simples, porém muito usuais. A sintaxe é muito fácil de aprender e manipular. São eles:

  • Função Array;
  • Função Erase;
  • Função IsArray
  • Função LBound.

Função Array

Primeiro, temos a função Array. Ela serve para transformar uma variável variant em array e retorna a variável contendo esse array. Assim, é possível gerenciar o dado elemento com os métodos e as funções típicas.

Nos argumentos, podemos passar os elementos que farão parte dessa estrutura, usando a vírgula como separador. Podemos misturar números e texto.

Por exemplo: A = Array(10, 20, 30). Nesse caso, se cria um array no VBA com três elementos, indexados de 0 a 2, e o elemento é retornado para A. Para acessar quaisquer elementos, é preciso indicar o índice certo.

Função Erase

A função Erase serve para apagar valores de um array no VBA. Contudo, ela funciona de modo diferente a depender do tipo dessa estrutura. 

No caso de um modelo fixo, a função apenas reseta os valores para 0 (em um array de números) ou muda o tamanho dos textos para 0 (no caso de strings com tamanho variável).

Se for um array de objetos, a função define cada valor como “nada”. Um array fixo de variant, por sua vez, vira um array de valores “empty” quando passado por esse método. 

A função Erase quando aplicada a um array VBA dinâmico cumpre o papel de efetivamente liberar espaço de memória e realmente desalocar o que foi alocado. Então, é de fato o efeito de apagar uma estrutura.

A sintaxe é muito simples: Erase NomeDoArray. 

Função IsArray

Esse método é muito simples. Trabalha com uma funcionalidade lógica de dizer se algo é um array ou não. Retorna “True” quando é um array e “False” quando não é. 

A variável que queremos testar deve ser indicada entre os argumentos da função: isArray (variable).

Esse tipo de elemento é muito útil em comparações e para definir a condição de alguma outra lógica. Em casos de códigos mais complexos, ajuda a descobrir informações sobre certas variáveis e saber como elas estão sendo manipuladas.

Função LBound

Dado um array de intervalos, pode ser interessante descobrir qual é o menor valor. Nesse caso, existe um método que já faz uma comparação interna e consegue retornar isso: o LBound.

Sua sintaxe é: LBound (NomeDoArray, [Dimension]). Na parte da dimensão, temos o índice em que se busca destacar o menor valor de um intervalo.

É usado quando o array no VBA é declarado com a ajuda de elementos “to” para denotar esses intervalos. Como em “ArrayValue(1 To 10, 5 To 15, 10 To 20)”. Nesse caso, o LBound vai buscar os menores números por vez (1,5 e 10).

Exemplos práticos do VBA Array

vba-array-exemplos-praticos

De forma simples e prática, você pode entender que uma Array (ou matriz) é um nome que “guarda” diversas informações de forma automatizada.

Ao criar uma matriz no VBA, você define qual será o tipo de informação que ela vai manter armazenada, podendo ser textos, números, datas e assim por diante.

Para começar a usar a função, você deve utilizar o Dim para indicar a dimensão usada e ao lado o nome da variável e a quantidade de informações que ela deve guardar entre parênteses. 

Ao lado, você deve definir qual tipo de informação será armazenada usando o termo “as”, em inglês, à frente.

Se for uma matriz para texto, deve-se usar a definição string.

Exemplo:

Dim nome_do_vetor (1 to 200) as String

Nesse caso temos um array no formato de texto com tamanho de 200 caracteres.

Podemos dividir os exemplos de VBA Array em dois tipos: estáticos e dinâmicos.

Array estático

Os arrays estáticos são matrizes com número fixo determinando previamente através dos elementos que serão armazenados. 

Nesse caso, não é possível fazer alteração na dimensão e tipo de dados.

São mais usados em situações em que se deseja trabalhar com dados conhecidos e sem grandes variações, como dias da semana e meses do ano.

Para isso, use o código Dim arrayName (n) as tipo de dados

Exemplo: Dim Array_Meses_do_Ano (12) As String

Array dinâmico

Outro tipo de uso das matrizes, ou arrays, são em funções dinâmicas. Esse tipo de função não possui um número fixo determinado de quantos elementos podem ser armazenados.

Eles são indicados para trabalhar com dados cujo número não pode ser predeterminado. 

Nesse caso, é possível trabalhar de duas formas, com uma matriz sem uma dimensão definida e redimensionado logo na linha abaixo.

Exemplo: Dim arrayName ( ) as Variant

ou

Dim arrayName () como tipo de dados 

ReDim arrayName (n)

Dimensões da Matriz

Além da variante de ser estática ou dinâmica, uma matriz no VBA pode ter diferentes dimensões, que podem se encaixar no seu projeto de acordo com suas necessidades. 

  • VBA Array com uma Dimensão: neste modelo, a Array conta com apenas um índice com os dados. Um exemplo seria uma matriz com o nome de pessoas de várias idades.
  • VBA Array com Dimensões: com essa opção, a matriz conta com dois índices ou dimensões. Exemplo: quantidade de alunos em cada classe, uma matriz que exige o número de aulas e o número de alunos por classe.
  • VBA Array Multidimensional: Essa função usa mais de dois índices para matriz. É usada para trabalhar com diferentes informações. Exemplo: variação de temperatura durante o dia, variação de preços etc.

Exemplo Prático de Array no VBA

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Nesse exemplo temos uma tabela de informações com Estados do Brasil e suas populações. Observe abaixo:

0 5

A ideia aqui é utilizar do conceito de matriz no VBA, e evitar de criar uma variável para cada um dos estados. Então, basta criar uma única matriz para receber 27 elementos, e guardar tudo o que precisa numa única variável!

O código a seguir é responsável pelo armazenamento desses dados na matriz. Vamos comentá-lo linha a linha:

Sub matrizes()

Dim matriz As Variant

matriz = Range("A2:B28").Value
Debug.Print matriz(2, 1)

End Sub

Explicação do código acima (matrizes):

  • Dimensionar a variável matriz como uma variável do tipo Variant (assume vários tipos, entendida como “qualquer”)
  • Configurar a variável matriz para representar diretamente no código os dados presentes nas células compreendidas entre as células A2 e B28
  • Mostrar na tela de verificação imediata do VBA o que está armazenado na matriz, especificamente na linha 2 e coluna 1, comprovando que os elementos foram armazenados na matriz
1 5
  • Se encerra o código

Dessa forma você não precisa dimensionar uma matriz. Você simplesmente declara ela como uma Variant, e armazena o intervalo específico, e ele vai assumir o que for passado “de tamanho” com o intervalo.

Você também tem a possibilidade de utilizar uma estrutura de repetição do tipo For para alimentar a variável matriz, da seguinte forma:

Sub matrizes2()

Dim matriz As Variant

ReDim matriz(1 To 27)

For linha = 1 To 27
   matriz(linha) = Cells(linha + 1, 1).Value
Next

End Sub

Explicação do código acima (matrizes2):

  • Dimensionar a variável matriz como uma variável do tipo Variant
  • Redimensionar o tamanho da matriz para receber 27 elementos (do 1 ao 27)
  • Usar de uma estrutura de repetição (For), auxiliada por uma variável “linha”, que assume valores de 1 a 27, para fazer as ações repetidamente de:
    • Armazenar na variável matriz, no item correspondente à variável auxiliar “linha” o valor que estiver na célula da linha imediatamente abaixo (“linha +1) na coluna 1 (coluna A)
  • Se encerra o código quando todos os estados (coluna A) forem armazenados como itens da matriz
2 4

Conclusão

A função Array é mais uma das possibilidades de programação dentro do VBA Excel, sendo uma matriz variável usada para armazenar mais de um valor.

É uma função essencial para quem deseja se especializar no VBA para agilizar o dia a dia no trabalho.

Através desse tipo de programação é possível ter suporte para a construção de matrizes fixas (estáticas) e dinâmicas.

Para aprender programação em vba e ser um especialista em Excel, conheça o curso de VBA ou de Excel Avançado da Hashtag Treinamentos e se destaque profissionalmente.

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Quer ter acesso a um Minicurso de Finanças no Excel de forma 100% gratuita? Preencha seu e-mail abaixo!