EXCEL VBA (aula 11)
Visual Basic
prof. Gustavo Zimmermann
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
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
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)
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.
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
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
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.
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
prof. Gustavo Zimmermann | contato@gust4vo.com
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 | 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
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
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

Excel VBA: Aula 11

  • 1.
    EXCEL VBA (aula11) Visual Basic prof. Gustavo Zimmermann
  • 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
  • 10.
    prof. Gustavo Zimmermann| contato@gust4vo.com 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
  • 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