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 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.
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?
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:
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!
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:
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.
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:
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.
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.
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.
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).
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.
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
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)
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.
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:
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):
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):
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.
Para acessar outras publicações de VBA, clique aqui!
Sócio e especialista em VBA da Hashtag Treinamentos. Criador do Método Impressionador para ensinar pessoas comuns a crescerem na carreira e se destacarem na empresa usando o VBA.