excel vba: aula 11
DESCRIPTION
Curso de Excel VBA no Senac Santa MariaTRANSCRIPT
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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)
prof. Gustavo Zimmermann | [email protected]
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.
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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.
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
Excel VBA – Visual Basic
Vetores e Matrizes
Matrizes bidimensionais Saída
j (x)
0 1 2 3 4
i (y)
2 3 6 9 12 15
1 2 4 6 8 10
0 1 2 3 4 5
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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
prof. Gustavo Zimmermann | [email protected]
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