Blog

Postado em em 29 de abril de 2022

Array no 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.

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.

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.

Vire uma referência no Mercado de Trabalho por causa do Power BI!

Quer saber como? Inscreva-se no Intensivão de Power BI! É gratuito!