O documento discute vetores e matrizes em VBA, estruturas de dados homogêneas armazenadas na memória. Apresenta exemplos de declaração e uso de vetores unidimensionais e matrizes bidimensionais, incluindo atribuição de valores, impressão e entrada de dados. Também diferencia matrizes fixas e dinâmicas.
2. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Vetores e matrizes são estruturas de dados homogêneas conhecidas como Arrays, matrizes, variáveis
indexadas, variáveis subscritas ou tabelas em memória, são conjunto de elementos
de mesma natureza. Cada elemento da matriz pode ser distinguido de outros elementos por um ou mais
índices inteiros. As estruturas homogêneas ou arrays são divididas em unidimensionais e
multidimensionais. Geralmente, as estruturas unidimensionais são chamadas de vetores e as
multidimensionais são chamadas de matrizes. Um vetor também pode ser considerado uma matriz,
variando apenas numa dimensão.
Introdução
3. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
O vetor ou matriz unidimensional é exatamente uma sequência linear de elementos
armazenados consecutivamente na memória. São variáveis do mesmo tipo declaradas com
o mesmo identificador e referenciadas por um índice para determinar sua localização
dentro da estrutura.
Vetores
dom seg ter qua qui sex sab
1 2 3 4 5 6 7
Ilustração de um vetor:
diasSem (nome do vetor)
índice
4. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Vetores
Operações básicas
Declaração Dim diasSem (1 To 7) As String
Inicialização diasSem(1) = “dom”: diasSem(2) = “seg”: ...
Atribuição diasSem(4) = “qua”
Escrita MsgBox diasSem(5)
5. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Vetores
Exemplo de declarações
1 Dim valor(10) As Integer
2 Dim soma (1 To 15) As Integer
3 Dim nome (10 To 30) As String
No primeiro exemplo acima o índice da matriz vai de 0 a 10 – contém 11 elementos. O
índice inicial de indexação de um vetor ou a matriz depende da definição da
instrução Option Base, na seção de declaração do módulo. Se o
comando Option Base 1 for especificado, todos os índices iniciam em 1, caso contrário, em
0. No segundo e terceiro exemplos os índices variam de 1 a 15 e de 10 a 30,
respectivamente.
6. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Vetores
Exemplo 1
1. Sub exemplo_vetor_1()
2. Dim notas(10) As Single
3. Dim nota As String, soma As Single, media As Single
4. Dim i As Integer
5. soma = 0
6. For i = 1 To 10
7. nota = InputBox("Informe a Nota " & i)
8. soma = soma + nota
9. notas(i) = nota
10. Next
11. media = soma / 10
12. MsgBox ("Média da turma: " & media)
13. End Sub
7. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Vetores
Exemplo 2
1. Sub exemplo_vetor_2()
2. Dim nome(3) As String
3. Dim nota(3) As Single
4. Dim i As Integer, j As Integer
5. 'Loop de COLETA de Dados
6. For i = 0 To 2
7. nome(i) = InputBox("Digite o NOME do Aluno")
8. nota(i) = InputBox("Digite a NOTA do Aluno")
9. Next
10. 'Loop de PRINT de dados
11. For j = 0 To 2
12. MsgBox (nome(j) & ": " & nota(j))
13. Next
14. End Sub
8. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Matrizes bidimensionais
No Visual Basic, pode-se declarar matrizes com até 60 dimensões.
A instrução a seguir declara uma matriz bidimensional de 3 por 5:
1. Dim matriz (1 To 3, 1 To 5) As Single
1. Dim matriz (3, 5) As Single
ou
No primeiro exemplo os índices da matriz iniciam em 1 e no segundo, em 0 se não for
declarada no nível de módulo a opção Option Base 1. A primeira dimensão da matriz se
refere à linha e a segunda, dimensão à coluna, no primeiro exemplo tem-se uma matriz de
3 linhas por 5 colunas e no segundo, 4 linhas por 6 colunas na ausência do comando
Option Base 1.
9. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Matrizes bidimensionais
O procedimento, a seguir, preenche cada elemento da matriz bidimensional com base no
valor de sua localização dentro da matriz:
1. Sub exemplo1_matriz()
2. Dim i As Integer, j As Integer
3. Dim matriz(3, 5) As Single
4. ' Preenche a matriz com valores e os imprime na janela
5. ' de verificação imediata.
6. For i = 1 To 3
7. For j = 1 To 5
8. matriz(i, j) = i * j
9. Debug.Print matriz(i, j)
10. Next
11. Debug.Print ' imprime branco ao completar uma linha.
12. Next
13. End Sub
11. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
1. Sub exemplo2_matriz()
2. Dim nome(1 To 3) As String
3. Dim notas(1 To 3, 1 To 2) As Single
4. Dim i As Single, j As Single
5. For i = 1 To 3
6. nome(i) = InputBox("Digite o NOME do aluno:")
7. For j = 1 To 2
8. notas(i, j) = InputBox("Digite A NOTA da G“ & j)
9. Next
10. Next
11. For i = 1 To 3
12. MsgBox ("Aluna: " & nome(i) & " obteve " & "G1: " & notas(i, 1) & " G2: " &
notas(i, 2))
13. Next
14. End Sub
Exemplo 2
Matrizes bidimensionais
12. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Matrizes bidimensionais
O procedimento, a seguir, preenche cada elemento da matriz bidimensional com base no
valor de sua localização dentro da matriz:
1. Sub exemplo1_matriz()
2. Dim i As Integer, j As Integer
3. Dim matriz(3, 5) As Single
4. ' Preenche a matriz com valores e os imprime na janela
5. ' de verificação imediata.
6. For i = 1 To 3
7. For j = 1 To 5
8. matriz(i, j) = i * j
9. Debug.Print matriz(i, j)
10. Next
11. Debug.Print ' imprime branco ao completar uma linha.
12. Next
13. End Sub
13. prof. Gustavo Zimmermann | contato@gust4vo.com
Excel VBA – Visual Basic
Vetores e Matrizes
Matrizes fixas e dinâmicas
As matrizes declaradas acima são exemplos de matrizes fixas. A matriz dinâmica é
declarada deixando-se vazios os parênteses como no exemplo que segue:
1. Dim matDinamica( ) As Integer