Partilhar via


Usando matrizes

Você 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 pode armazenar apenas um valor. Consulte a matriz como um todo quando você quiser se referir a todos os valores que ela contém ou você pode se referir a seus elementos individuais.

Por exemplo, para armazenar despesas diárias para cada dia do ano, você pode declarar uma variável de matriz com 365 elementos, em vez de declarar 365 variáveis. Cada elemento em uma matriz contém um valor. A instrução a seguir declara a variável de matriz com 365 elementos. Por padrão, uma matriz é indexada começando com zero, portanto, 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 a seguir 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

Alterando o limite inferior

Use a instrução Base de Opções na parte superior de um módulo para alterar o índice padrão do primeiro elemento de 0 para 1. No exemplo a seguir, 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 

Você também pode definir explicitamente o limite inferior de uma matriz usando uma cláusula To , conforme mostrado no exemplo a seguir.

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

Armazenar valores variant em matrizes

Há duas maneiras de criar matrizes de valores Variant . Uma maneira é declarar uma matriz de tipo de dados Variant, conforme mostrado no exemplo a seguir:

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 maneira é atribuir a matriz retornada pela função Array a uma variável Variant , conforme mostrado no exemplo a seguir.

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

Você identifica os elementos em uma matriz de valores Variant por índice, não importa qual técnica você use para criar a matriz. Por exemplo, a instrução a seguir pode ser adicionada a qualquer um dos exemplos anteriores.

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

Usando matrizes multidimensionais

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

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

Se você pensar na matriz como uma matriz, o primeiro argumento representa as linhas e o segundo argumento representa as colunas.

Usar aninhado para... Próximas instruções para processar matrizes multidimensionais. O procedimento a seguir 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.