Matriz VBA do Excel

As estruturas de dados são usadas para armazenar uma série de dados nas linguagens de programação. Ele se liga à memória e não ao endereço. Um ArrayList é uma das estruturas de dados no Excel. Comparando com matrizes normais no Excel, o ArrayList é dinâmico. Portanto, nenhuma declaração inicial de tamanho é necessária. ArrayList não faz parte do VBA, está associado a uma biblioteca externa que pode ser usada com o VBA.

ArrayList pode ser definido como uma lista de um local de memória próximo. Onde os valores são recuperados usando os números de índice. A lista começa com um número de índice '0', o primeiro elemento será inserido no índice '0' e o restante é seguido por 1, 2, 3 etc. O ArrayList oferece muitas operações internas, classificação, adição, remoção., reversão, etc. estão entre eles.

Adicionando a biblioteca

Para usar o ArrayList no VBA, ele precisa incluir a biblioteca ' mscorlib.dll' que vem com o .NET framework .

  • Pressione F11 ou clique com o botão direito do mouse no nome da planilha para obter a janela de código. Vá para a janela de código VBA, no menu principal, selecione Ferramentas .

  • O menu Ferramentas contém a opção 'Referências' e consiste em uma lista de bibliotecas que oferecem suporte ao VBA para incluir diferentes objetos. Clique na opção Referência .

  • Isso levará você a uma janela com uma lista de diferentes bibliotecas compatíveis com VBA e Excel. Role para baixo para encontrar a ' dll'. Marque para confirmar a seleção e pressione o botão 'OK'.

Agora a biblioteca está incluída no seu código VBA e oferecerá suporte a diferentes métodos associados a um ArrayList.

Como criar VBA ArrayList no Excel?

Abaixo estão os diferentes exemplos para criar VBA ArrayList no Excel.

Você pode fazer o download deste modelo do Excel VBA ArrayList aqui - Modelo do Excel VBA ArrayList

ArrayList do VBA do Excel - Exemplo # 1

Como adicionar valores ao ArrayList usando VBA?

ArrayList atua como uma lista onde podemos adicionar valores. Isso será armazenado automaticamente nas diferentes partes, começando em 0, 1, 2, etc. Os valores podem adicionar ou inserir no ArrayList usando o método add.

Neste exemplo, você aprenderá como adicionar uma lista de valores em um ArrayList. Siga as etapas abaixo para adicionar ArrayList usando o código VBA no Excel.

Etapa 1: para adicionar uma lista de valores a um ArrayList, crie uma função arraylist1.

Código:

 Private Sub arraylist1 () End Sub 

Etapa 2: Agora queremos incluir o ArrayList na função como um objeto em que uma lista é declarada como um ArrayList.

Código:

 Private Sub arraylist1 () Dim alist As ArrayList End Sub 

Etapa 3: como esse é um objeto para usá-lo, é necessário criar uma instância do ArrayList. Defina uma nova instância para este objeto.

Código:

 Private Sub arraylist1 () Dim alist Como ArrayList Definir alist = Novo ArrayList End Sub 

Etapa 4: Agora, usar a propriedade 'Adicionar' de um ArrayList adiciona os valores ao ArrayList. Onde a lista é adicionada aos valores do índice em uma ordem 0, 1, 2, 3 etc.

Código:

 Private Sub arraylist1 () Dim alist Como ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add Índice "240" '(3) End Sub 

Etapa 5: para verificar se os valores foram adicionados à lista, imprima os valores da matriz usando uma caixa de mensagem. Para imprimir os valores, cada índice é impresso, pois os valores são armazenados nessas partições.

Código:

 Private Sub arraylist1 () Dim alist Como ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add "240" 'index (3) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) e "." & Alist (3)) End Sub 

Etapa 6: Pressione F5 ou o botão executar para executar o programa e os valores serão impressos como abaixo. Aqui, um endereço IP é armazenado na ArrayList e durante a impressão dos valores, notações extras são concatenadas para formar o endereço IP em um formato adequado.

Erro de automação no VBA

É um erro comum que ocorre ao executar um ArrayList. Um erro de automação pode encontrar 'Erro em tempo de execução' -2146232576 (80131700) Erro de automação '

Isso ocorre porque a versão correta do .NET framework não está instalada. Para trabalhar com ArrayList, você deve ter no mínimo .NET 3.5 ou versões superiores do .NET framework.

ArrayList do VBA do Excel - Exemplo # 2

Classificando ArrayList usando código VBA

ArrayList suporta diferentes funções como classificação, reversão, etc. Isso ajuda a classificar os valores inseridos em um ArrayList. Depois de adicionar uma lista ao ArrayList, é possível reverter a lista inserida.

Siga as etapas abaixo para classificar o ArrayList usando o código VBA:

Etapa 1: Crie uma função chamada arraysort1 para executar a classificação dentro dos valores inseridos em um ArrayList.

Código:

 Sub arraysort1 () End Sub 

Etapa 2: declarar um objeto 'arraysort' do ArrayList. Use este objeto para adicionar e classificar os valores dentro do ArrayList.

Código:

 Sub arraysort1 () Dim arraysort como ArrayList End Sub 

Etapa 3: Semelhante ao primeiro exemplo, é necessário criar uma nova instância do objeto declarado. Defina esta instância como um novo ArrayList.

Código:

 Sub arraysort1 () Dim arraysort Como ArrayList Definir arraysort = Novo ArrayList End Sub 

Etapa 4: Agora, usando o método 'Adicionar', insira os elementos no ArrayList. O que não possui nenhuma ordem sobre valores. Alguns valores foram inseridos aleatoriamente na lista.

Código:

 Sub arraysort1 () Dim arraysort Como ArrayList Set arraysort = New ArrayList arraysort.Adicione "13" arraysort.Adicione "21" arraysort.Adicione "67" arraysort.Adicione "10" arraysort.Add "12" arraysort.Adicione "45" End Sub 

Etapa 5: para observar a diferença no ArrayList, vamos imprimir o ArrayList após inserir os valores e antes de classificá-los.

Código:

 Sub arraysort1 () Dim arraysort Como ArrayList Set arraysort = New ArrayList arraysort.Adicione "13" arraysort.Add "21" arraysort.Adicione "67" arraysort.Adicione "10" arraysort.Add "12" arraysort.Add "45" MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Etapa 6: pressione F5 no teclado ou execute o botão na janela de código para executar o programa para imprimir o ArrayList. O ArrayList é impresso na mesma ordem em que é inserido, pois usamos os números de índice na ordem correta.

Etapa 7: Agora, nesta lista, aplique a propriedade de classificação do ArrayList. Use o método de classificação para classificar a lista inserida. A propriedade de classificação classificará a lista de valores em ordem crescente por padrão.

Código:

 Sub arraysort1 () Dim arraysort Como ArrayList Defina arraysort = Nova ArrayList arraysort.Adicione "13" arraysort.Adicione "21" arraysort.Adicione "67" arraysort.Adicione "10" arraysort.Adicione "12" arraysort.Adicione "45" arraysort .Sort MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Etapa 8: Pressione F5 ou o botão Executar em VBE para executar este código, onde os valores são classificados e impressos na ordem do menor para o maior.

ArrayList do VBA do Excel - Exemplo # 3

Invertendo o ArrayList usando o código VBA

Quando você deseja reverter a ordem dos valores inseridos em um método reverso ArrayList, está disponível. Isso reverterá a ordem da lista de sua ordem atual. Agora já classificamos o ArrayList no exemplo anterior, que está em ordem crescente.

Vamos tentar reverter a matriz classificada para torná-la em ordem decrescente. Use o método reverso de ArrayList para fazer isso.

Código:

 Sub arraysort2 () Dim arraysort Como ArrayList Set arraysort = New ArrayList arraysort.Adicione "13" arraysort.Adicione "21" arraysort.Adicione "67" arraysort.Adicione "10" arraysort.Adicione "12" arraysort.Adicione "45" arraysort .Sort arraysort.Reverse MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) Sub 

Depois de aplicar o método reverso, o ArrayList se tornará em ordem decrescente e usará a caixa de mensagem para imprimir o array reverso. A lista classificada é alterada de um valor grande para um valor pequeno.

Coisas para lembrar

  • ArrayList é de natureza dinâmica; não requer reinicialização.
  • Diferentes métodos internos estão associados ao ArrayList.
  • Comparado à matriz, o ArrayList é fácil de usar no Excel VBA.
  • As bibliotecas .NET de suporte devem ser incluídas no VBA para trabalhar com ArrayList.
  • ArrayList é um local de memória contínuo identificado com valores de índice.

Artigos recomendados

Este é um guia para o VBA ArrayList. Aqui discutimos como criar ArrayList no Excel VBA, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Guia para usar matrizes VBA
  2. Classificar por número do Excel
  3. Como classificar no Excel usando o VBA?
  4. Tutoriais sobre classificação no Excel

Categoria: