O que é VBA Array?
Uma matriz é definida como um local de memória capaz de armazenar mais de um valor. Os valores devem ser todos do mesmo tipo de dados. Digamos que você queira armazenar uma lista de suas bebidas favoritas em uma única variável, você pode usar o array VBA para fazer isso.
Ao usar uma matriz, você pode se referir aos valores relacionados com o mesmo nome. Você pode usar um índice ou subscrito para diferenciá-los. Os valores individuais são chamados de elementos do array VBA do Excel. Eles são contíguos do índice 0 até o valor de índice mais alto.
Este tutorial presume que você esteja usando o Microsoft Excel versão 2013. O conhecimento ainda se aplica a outras versões do Microsoft Excel.
Neste tutorial de programação VBA, você aprenderá-
- Quais são as vantagens dos arrays?
- Tipos de matrizes em VBA
- Como usar Array no Excel VBA
- Testando nosso aplicativo
Quais são as vantagens dos arrays?
A seguir estão alguns dos benefícios oferecidos pela função de matriz VBA
- Agrupe dados relacionados logicamente - digamos que você deseja armazenar uma lista de alunos. Você pode usar uma única variável de matriz que tem locais separados para categorias de alunos, ou seja, jardim de infância, primário, secundário, ensino médio, etc.
- Os arrays facilitam a escrita de código sustentável. Para os mesmos dados relacionados logicamente, permite definir uma única variável, em vez de definir mais de uma variável.
- Melhor desempenho - uma vez que um array foi definido, é mais rápido recuperar, classificar e modificar dados.
Tipos de matrizes em VBA
O VBA oferece suporte a dois tipos de matrizes, a saber;
- Estático - esses tipos de matrizes têm um número fixo predeterminado de elementos que podem ser armazenados. Não se pode alterar o tamanho do tipo de dados de um array estático. Eles são úteis quando você deseja trabalhar com entidades conhecidas, como o número de dias em uma semana, sexo, etc.
Por exemplo : Dim ArrayMonth (12) As String
- Dinâmico - esses tipos de matrizes não têm um número fixo predeterminado de elementos que podem ser armazenados. Eles são úteis ao trabalhar com entidades cujo número você não pode predeterminar.
Por exemplo : Dim ArrayMonth () As Variant
Sintaxe para declarar matrizes
Matrizes estáticas
A sintaxe para declarar matrizes ESTÁTICAS é a seguinte:
Dim arrayName (n) as datatype
AQUI,
Código | Açao |
Dim arrayName (n) tipo de dados |
|
Matrizes dinâmicas
A sintaxe para declarar matrizes DINÂMICAS é a seguinte:
Dim arrayName() as datatypeReDim arrayName(4)
AQUI,
Código | Açao |
Dim arrayName () tipo de dados |
|
ReDim arrayName (4) |
|
Dimensões da matriz
Uma matriz pode ser de uma dimensão, duas dimensões ou multidimensional.
- Uma dimensão : nesta dimensão, a matriz usa apenas um índice. Por exemplo, várias pessoas de cada idade.
- Duas dimensões : nesta dimensão, a matriz usa dois índices. Por exemplo, vários alunos em cada classe. Requer número de classes e número de alunos em cada classe
- Multi-dimensão : nesta dimensão, a matriz usa mais de dois índices. Por exemplo, temperaturas durante o dia. (30, 40, 20).
Como usar Array no Excel VBA
Vamos criar um aplicativo simples. Este aplicativo preenche uma planilha do Excel com dados de uma variável de matriz. Neste exemplo de VBA Array, vamos fazer o seguinte.
- Crie uma nova pasta de trabalho do Microsoft Excel e salve-a como pasta de trabalho habilitada para macros do Excel (* .xlsm)
- Adicionar um botão de comando à pasta de trabalho
- Defina as propriedades de nome e legenda do botão de comando
- Programação do VBA que preenche a planilha do Excel
Vamos fazer este exercício passo a passo,
Etapa 1 - Criar uma nova pasta de trabalho
- Abra o Microsoft Excel
- Salve a nova pasta de trabalho como VBA Arrays.xlsm
Etapa 2 - Adicionar um botão de comando
Observação: esta seção pressupõe que você esteja familiarizado com o processo de criação de uma interface no Excel. Se você não estiver familiarizado, leia o tutorial VBA Excel Form Control & ActiveX Control. Ele mostrará como criar a interface
- Adicionar um botão de comando à planilha
- Defina a propriedade do nome como cmdLoadBeverages
- Defina a propriedade da legenda para Carregar bebidas
Sua GUI agora deve ser a seguinte
Etapa 3 - Salve o arquivo
- Clique no botão salvar como
- Escolha a pasta de trabalho habilitada para macro do Excel (* .xlsm) conforme mostrado na imagem abaixo
Etapa 4 - Escreva o código
Agora vamos escrever o código para nosso aplicativo
- Clique com o botão direito do mouse no botão Carregar bebidas e selecione o código de visualização
- Adicione o seguinte código ao evento click de cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(1) = "Pepsi"Drinks(2) = "Coke"Drinks(3) = "Fanta"Drinks(4) = "Juice"Sheet1.Cells(1, 1).Value = "My Favorite Beverages"Sheet1.Cells(2, 1).Value = Drinks(1)Sheet1.Cells(3, 1).Value = Drinks(2)Sheet1.Cells(4, 1).Value = Drinks(3)Sheet1.Cells(5, 1).Value = Drinks(4)End Sub
AQUI,
Código |
Açao |
Dim bebidas (1 a 4) como barbante |
|
Bebidas (1) = "Pepsi" |
|
Sheet1.Cells (1, 1) .Value = "Minhas bebidas favoritas." |
|
Folha1.Células (2, 1) .Valor = Bebidas (1) |
|
Testando nosso aplicativo
Selecione a guia do desenvolvedor e certifique-se de que o botão Modo de design esteja "desligado". O indicador é que terá um fundo branco e não um fundo colorido (esverdeado). (Veja a imagem abaixo)
Clique no botão Carregar Bebidas
Você obterá os seguintes resultados
Baixe o Excel contendo o código acima
Baixe o código do Excel acima
Resumo
- Uma matriz é uma variável capaz de armazenar mais de um valor
- Excel VBA oferece suporte a matrizes estáticas e dinâmicas
- Os arrays facilitam a escrita de código sustentável em comparação com a declaração de muitas variáveis para dados que estão logicamente relacionados.