Buscar

Aula8 - Programação (VBA)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução à Computação
Para Ciências Humanas
1o semestre de 2017
Renata Wassermann
renata@ime.usp.br
(slides adaptados do Prof. Gerosa)
Definições
• Muitas funções já foram utilizadas nas aulas, como:
= soma(num1; num2; ...)
= média(num1;num2;...) 
= E(condição1;condição2)
• Funções recebem valores, realizam operações e retornam o 
resultado.
• Elas podem ser usadas na planilha Excel após o sinal “ = “
• As funções podem ser utilizadas nas planilhas ou nas macros
Criando uma função no VBA
Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno
'aqui vão os comandos da função
NomeDaFuncao = ValorDeRetorno
End Function
Criando uma função no VBA
• As três partes da função:
• Declaração da Função: nela é informado o nome da função, os parâmetros que a função receberá e 
o tipo de dado que a função retornará
Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno
'aqui vão os comandos da função
NomeDaFuncao = ValorDeRetorno
End Function
Criando uma função no VBA
• As três partes da função:
• Declaração da Função: nela é informado o nome da função, os parâmetros que a função receberá e 
o tipo de dado que a função retornará
• Corpo da Função: comandos necessários para a função realizar a tarefa desejada
Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno
'aqui vão os comandos da função
NomeDaFuncao = ValorDeRetorno
End Function
Criando uma função no VBA
• As três partes da função:
• Declaração da Função: nela é informado o nome da função, os parâmetros que a função receberá e 
o tipo de dado que a função retornará
• Corpo da Função: comandos necessários para a função realizar a tarefa desejada
• Término da Função: retorno do valor e finalização da função
Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno
'aqui vão os comandos da função
NomeDaFuncao = ValorDeRetorno
End Function
Criando uma função no VBA
• As três partes da função:
• Declaração da Função: nela é informado o nome da função, os parâmetros que a função receberá e 
o tipo de dado que a função retornará
• Corpo da Função: comandos necessários para a função realizar a tarefa desejada
• Término da Função: retorno do valor e finalização da função
• Os parâmetros são separados por vírgulas e, na chamada dela de dentro de 
uma planilha, utiliza-se o ponto-e-vírgula
Function NomeDaFuncao(Par1 As Tipo1,...,ParN As TipoN) As TipoRetorno
'aqui vão os comandos da função
NomeDaFuncao = ValorDeRetorno
End Function
Exemplo 1
• Função que soma dois números inteiros
Para fazer esta função, são necessários dois números. Estes dois números inteiros 
serão os parâmetros da função
A função deverá calcular a soma destes dois números, logo, o retorno desta função 
será o resultado deste cálculo, do tipo inteiro
Function SomaDoisNumeros(Num1 As Integer, Num2 As Integer) As Long
SomaDoisNumeros = Num1 + Num2
End Function
Dica
Aperte a tecla F9 para atualizar os cálculos de 
uma planilha depois de atualizar uma função
Uso de Funções nas Macros
Pode-se também utilizar a função dentro de uma Macro, observe a mesma função 
SomaDoisNumeros sendo utilizada de dentro da Macro
Function SomaDoisNumeros(Num1 As Integer, Num2 As Integer) As Long
SomaDoisNumeros = Num1 + Num2
End Function
Sub testarFuncao()
Cells(1, 1) = SomaDoisNumeros(12, 24)
End Sub
Exemplo 2
• Defina um procedimento de nome ehPar que dado um argumento do 
tipo inteiro devolve True se o argumento for um inteiro par 
e False caso contrário.
Exemplo 2
• Defina um procedimento de nome ehPar que dado um argumento do 
tipo inteiro devolve True se o argumento for um inteiro par 
e False caso contrário.
Function ehPar (num As Integer) As Boolean
If num Mod 2 = 0 Then
ehPar = True
Else
ehPar = False
End If
End Function
Exercícios
• Desenvolva as seguintes funções:
1. raizDaEquacao1Grau que recebe dois parâmetros: a, b e retorna a raiz da equação 
ax + b = 0
Function raizDaEquacao1Grau(v1 As Double, v2 As Double) As Double
raizDaEquacao1Grau = -v2 / v1
End Function
Exercícios
• Desenvolva as seguintes funções:
2. somaDigitos que recebe um número inteiro positivo e retorna a soma dos seus 
dígitos. Exemplo: 12345  resultado: 15
Function somaDigitos(num As Long) As Long
somaDigitos = 0
While num > 0
somaDigitos = somaDigitos + (num Mod 10)
num = num \ 10
Wend
End Function Sub testaSomaDigitos()
Cells(1, 2) = somaDigitos(Cells(1, 1))
End Sub
Exercícios
• Desenvolva as seguintes funções:
3. parOuImpar que recebe um número inteiro positivo e retorna "Par" se o número for 
par e "Ímpar" caso contrário.
Function parOuImpar(x As Integer) As String
If x Mod 2 = 0 Then
parOuImpar = "Par"
Else
parOuImpar = "Ímpar"
End If
End Function Sub testaparOuImpar()
Cells(1, 2) = parOuImpar(Cells(1, 1))
End Sub
Exercícios
• Desenvolva as seguintes funções:
4. ehDivisivel que recebe dois números a e b e retorna uma mensagem dizendo se o 
primeiro é divisível pelo segundo ou não
Function ehDivisivel(v1 As Double, v2 As Double) As Boolean
If v1 Mod v2 = 0 Then
ehDivisivel = True
Else
ehDivisivel = False
End If
End Function
Sub testaehDivisível()
If ehDivisivel(Cells(1, 1), Cells(1, 2)) Then
Cells(1, 3) = "É Divisível"
Else
Cells(1, 3) = "Não é divisível"
End If
End Sub
Exercícios
• Desenvolva as seguintes funções:
5. fat que recebe um número inteiro positivo e retorna o seu fatorial
Function fat(num As Integer) As Long
fat = 1
While num > 0
fat = fat * num
num = num - 1
Wend
End Function Sub testaFatorial()
Cells(1, 2) = fat(Cells(1, 1))
End Sub
Exercícios
• Desenvolva as seguintes funções:
6. produtoria que recebe dois números inteiros a e b e devolve a produtória
a * (a+1) * (a+2) * ... * b. Você pode considerar 0 < a < b
Function produtoria(v1 As Integer, v2 As Integer) As Long
produtoria = 1
While v1 <= v2
produtoria = produtoria * v1
v1 = v1 + 1
Wend
End Function Sub testaProdutoria()
Cells(1, 3) = produtoria(Cells(1, 1), Cells(1, 2))
End Sub
Perguntas???

Outros materiais