Compartilhar via


Utilizar matrizes

Pode declarar uma matriz para trabalhar com um conjunto de valores do mesmo tipo de dados. Uma matriz é uma única variável com muitos compartimentos para armazenar valores, enquanto uma variável típica tem apenas um compartimento de armazenamento no qual só pode armazenar um valor. Veja a matriz como um todo quando pretender fazer referência a todos os valores que contém ou pode fazer referência aos respetivos elementos individuais.

Por exemplo, para armazenar despesas diárias para cada dia do ano, pode declarar uma variável de matriz com 365 elementos, em vez de declarar 365 variáveis. Cada elemento numa matriz contém um valor. A instrução seguinte declara a variável de matriz com 365 elementos. Por predefinição, uma matriz é indexada a partir de zero, pelo que o limite superior da matriz é 364 em vez de 365.

Dim curExpense(364) As Currency 

Para definir o valor de um elemento individual, especifique o índice do elemento. O exemplo seguinte atribui um valor inicial de 20 a cada elemento na matriz.

Sub FillArray() 
    Dim curExpense(364) As Currency 
    Dim intI As Integer 
    For intI = 0 to 364 
        curExpense(intI) = 20 
    Next 
End Sub

Alterar o limite inferior

Utilize a instrução Base de Opções na parte superior de um módulo para alterar o índice predefinido do primeiro elemento de 0 para 1. No exemplo seguinte, a instrução Base de Opções altera o índice do primeiro elemento e a instrução Dim declara a variável de matriz com 365 elementos.

Option Base 1 
Dim curExpense(365) As Currency 

Também pode definir explicitamente o limite inferior de uma matriz através de uma cláusula Para , conforme mostrado no exemplo seguinte.

Dim curExpense(1 To 365) As Currency 
Dim strWeekday(7 To 13) As String 

Armazenar valores de Variantes em matrizes

Existem duas formas de criar matrizes de valores de Variante . Uma forma é declarar uma matriz do tipo de dados Variante, conforme mostrado no exemplo seguinte:

Dim varData(3) As Variant 
varData(0) = "Claudia Bendel" 
varData(1) = "4242 Maple Blvd" 
varData(2) = 38 
varData(3) = Format("06-09-1952", "General Date") 

A outra forma é atribuir a matriz devolvida pela função Matriz a uma variável Variante , conforme mostrado no exemplo seguinte.

Dim varData As Variant 
varData = Array("Ron Bendel", "4242 Maple Blvd", 38, _ 
Format("06-09-1952", "General Date")) 

Identifica os elementos numa matriz de valores variantes por índice, independentemente da técnica que utilizar para criar a matriz. Por exemplo, a seguinte instrução pode ser adicionada a qualquer um dos exemplos anteriores.

MsgBox "Data for " & varData(0) & " has been recorded." 

Utilizar matrizes multidimensionais

No Visual Basic, pode declarar matrizes com até 60 dimensões. Por exemplo, a seguinte instrução declara uma matriz bidimensional, 5 por 10.

Dim sngMulti(1 To 5, 1 To 10) As Single 

Se considerar a matriz como uma matriz, o primeiro argumento representa as linhas e o segundo argumento representa as colunas.

Utilizar aninhado para... Instruções seguintes para processar matrizes multidimensionais. O procedimento seguinte preenche uma matriz bidimensional com Valores únicos.

Sub FillArrayMulti() 
    Dim intI As Integer, intJ As Integer 
    Dim sngMulti(1 To 5, 1 To 10) As Single 
 
    ' Fill array with values. 
    For intI = 1 To 5 
        For intJ = 1 To 10 
            sngMulti(intI, intJ) = intI * intJ 
            Debug.Print sngMulti(intI, intJ) 
        Next intJ 
    Next intI 
End Sub

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.