Arrays VBA do Excel: O que é, como usar & Tipos de matrizes em VBA

Índice:

Anonim

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

  1. 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.
  2. 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.
  3. 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
  1. Ele declara uma variável de array chamada arrayName com um tamanho de ne tipo de dados. O tamanho se refere ao número de elementos que a matriz pode armazenar.

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
  1. Ele declara uma variável de array chamada arrayName sem especificar o número de elementos
ReDim arrayName (4)
  1. Ele especifica o tamanho da matriz após a definição da matriz.

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

  1. Abra o Microsoft Excel
  2. 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

  1. Adicionar um botão de comando à planilha
  1. Defina a propriedade do nome como cmdLoadBeverages
  2. Defina a propriedade da legenda para Carregar bebidas

Sua GUI agora deve ser a seguinte

Etapa 3 - Salve o arquivo

  1. Clique no botão salvar como
  2. 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

  1. Clique com o botão direito do mouse no botão Carregar bebidas e selecione o código de visualização
  2. 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

  • Ele declara uma variável de array chamada Drinks. O primeiro índice de matriz é 1 e o último índice de matriz é 4.

Bebidas (1) = "Pepsi"

  • Atribui o valor Pepsi ao primeiro elemento da matriz. O outro código semelhante faz o mesmo para os outros elementos da matriz.

Sheet1.Cells (1, 1) .Value = "Minhas bebidas favoritas."

  • Escreve o valor Minhas bebidas favoritas no endereço de célula A1. A Folha1 faz referência à folha e as Células (1,1) fazem referência à linha número 1 e coluna 1 (B)

Folha1.Células (2, 1) .Valor = Bebidas (1)

  • Grava o valor do elemento da matriz com índice 1 na linha número dois da coluna 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

  1. Uma matriz é uma variável capaz de armazenar mais de um valor
  2. Excel VBA oferece suporte a matrizes estáticas e dinâmicas
  3. 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.