O Visual Basic for Applications (VBA) é uma implementação do Visual Basic da Microsoft incorporada em todos os programas do Microsoft Office, bem como em outras aplicações da Microsoft, como o Visio, e que foi também incorporada pelo menos parcialmente em outros programas de terceiros como o AutoCAD, Mathcad e WordPerfect.
Sub teste1()
'Acrescentar dias a uma data
Dim dataemissao As Date
Dim datavencimento As Date
Dim periodo As Integer
dataemissao = Date
periodo = CInt(InputBox("Quantos dias para o Vencimento"))
datavencimento = DateAdd("d", periodo, dataemissao)
MsgBox datavencimento
End Sub
Sub teste()
Dim data As Date
data = CDate(InputBox("Digite a data que venceu a Duplicata : "))
'MsgBox Weekday(data)
'Diferença de dias entre uma data e outra
Dim dias As Integer
Dim meses As Integer
meses = DateDiff("m", data, Date)
dias = DateDiff("d", data, Date)
MsgBox dias
MsgBox meses
End Sub
Sub ExemploUltimoNome()
Dim palavra As String
palavra = UCase(InputBox("Digite uma palavra"))
Dim i As Integer
Dim mensagem As String
For i = 1 To Len(palavra)
mensagem = mensagem & Mid(palavra, 1, i) & Chr(13)
Next
MsgBox mensagem
End Sub
Sub comequeficosabendo()
Dim palavra As String
Dim letra As String
palavra = UCase(InputBox("Digite uma palavra"))
Dim pos_espaco As Integer
pos_espaco = InStr(1, palavra, " ")
Dim resultado As String
resultado = Mid(palavra, 1, pos_espaco)
MsgBox resultado
resultado = Mid(palavra, InStrRev(palavra, " ") + 1, Len(palavra) - InStrRev(palavra, " "))
MsgBox resultado
Sub Exemplo_Funcoes()
'gerar um numero randomico
'gerar um jogo para megaSena
Dim jogo(5) As Integer
Dim qtd As Integer
Dim gerado As Integer
Dim i As Integer
Dim tem As Boolean
Dim mensagem As String
qtd = 0
Do While (qtd < 6)
gerado = Int(Rnd() * 60)
For i = 0 To 5
If gerado = jogo(i) Then tem = True
Next
If tem = False Then
jogo(qtd) = gerado
qtd = qtd + 1
End If
Loop
For i = 0 To 5
mensagem = mensagem & jogo(i) & " "
Next
Sub tabuadaVetorArray()
Dim A(10) As Integer
Dim i As Integer
Dim n As Integer
Dim m As String
n = InputBox("Digite o Numero que Deseja a Tabuada: " & n + 1)
For i = 0 To 10
A(i) = n * i
Next
For i = 0 To 10
m = m & n & " X " & i & " = " & A(i) & Chr(13)
Next
'Representação de linha e coluna
'3x2 (3 linhas / 2 colunas)
'5x5 (5 linhas / 5 colunas)
'Dim matriz(2,1) as integer "Matriz de 3 linha 2 Coluna"
'Dim matriz(4,4) as integer "Matriz de 5 linhas 5 colunas"
' 5 nomes 2 Notas e a Media
Dim nome(4) As String
Dim resultado(4) As String
Dim nota(4, 2) As Double
Dim n As Integer
Dim c As Integer
Dim mensagem As String
'Alimentar os dados Vetor e Matriz
For n = 0 To 4
nome(n) = InputBox("Nome do Aluno" & n + 1)
nota(n, 0) = CDbl(InputBox("Nota da Primeira Prova: " & nome(n)))
nota(n, 1) = CDbl(InputBox("Nota da Segunda Prova: " & nome(n)))
nota(n, 2) = (nota(n, 0) + nota(n, 1)) / 2
If nota(n, 2) >= 6 Then
resultado(n) = "Aprovado"
Else
resultado(n) = "Reprovado"
End If
Next
For n = 0 To 4
mensagem = mensagem & "Nome : " & nome(n) & " Media : " & nota(n, 2) & " Situação : " & resultado(n) & Chr(13)
Next
MsgBox mensagem
End Sub
Sub vetordinamico()
Dim v() As Integer
Dim q As Integer
Dim i As Integer
q = CInt(InputBox("Digite o Tamanho do vetor : "))
q = q - 1
ReDim v(q)
For i = 0 To q
v(i) = CInt(InputBox("Digite um Valor: "))
Next
Sub Do_Loop_While_no_início()
'Exemplo de código com While no início do trecho de código:
Dim x As Integer
Dim Contador As Integer
Dim Soma As Integer
x = 10
Contador = 1
Soma = 0
' Efetua a soma dos dez primeiros números maiores que zero.
Do While Contador < x
Soma = Soma + Contador
Contador = Contador + 1
Loop
MsgBox "soma = " & Soma & " Contador = " & Contador
End Sub
Sub Do_Loop_While_no_final()
'Exemplo de código com While no final do trecho de código:
Dim x, Contador, Soma
x = 10
Contador = 1
Soma = 0
'Efetua a soma dos dez primeiros números maiores que zero.
Do
Soma = Soma + Contador
Contador = Contador + 1
Loop While Contador < x
MsgBox "Soma = " & Soma & " " & " Contador = " & Contador
End Sub
Sub Do_Loop_Until_no_início()
'Exemplo de código com Until no início do trecho de código:
Dim x, Contador, Soma
x = 10
Contador = 1
Soma = 0
'Efetua a soma dos dez primeiros números maiores que zero.
Do Until Contador >= x
Soma = Soma + Contador
Contador = Contador + 1
Loop
MsgBox " soma = " & Soma & " " & " Contador = " & Contador
End Sub
Sub Do_Loop_Until_no_final()
'Exemplo de código com Until no final do trecho de código:
Dim x, Contador, Soma
x = 10
Contador = 1
Soma = 0
'Efetua a soma dos dez primeiros números maiores que zero.
Do
Soma = Soma + Contador
Contador = Contador + 1
Loop Until Contador >= x
MsgBox "Soma = " & Soma & " " & "Contador = " & Contador
End Sub
Sub While_Wend()
Dim x, Contador, Soma
x = 10
Contador = 1
Soma = 0
' Efetua a soma dos dez primeiros números maiores que zero.
While Contador < x
Soma = Soma + Contador
Contador = Contador + 1
Wend
MsgBox "Soma = " & Soma & " " & "Contador = " & Contador
End Sub
Sub lista_10()
'10) Faça um programa que calcule a seguinte expressão: S = X + 2 ^ N.
'Onde X e N são informados pelo usuário.
Dim x As Integer
Dim n As Integer
Dim s As Integer
x = CInt(InputBox(" Digite o Valor de X : "))
n = CInt(InputBox(" Digite o Valor de N : "))
s = x + 2 ^ n
MsgBox (s & "=" & x & "+ 2 ^ " & n)
Sub lista_9()
'9) Faça uma aplicação que dado um número X [0 < X < 100].
'Apresente em tela uma contagem regressiva de dois em dois até chegar ao número 0.
Dim num As Integer
Dim i As Integer
For i = 100 To 1 Step -1
If (i Mod 2 = 0) Then
Debug.Print i
' "Crtl G" para ver o resultado na Tela de Verificação Imediat.
End If
Next
End Sub
Sub lista_8()
'8) A secretaria do meio ambiente que controla os índices de radiação no Japão, mantém três grupos de
'industrias que são atualmente prejudiciais ao meio ambiente. O índice de radiação aceitável varia de 0,05
'até 0,5. Se o índice variar entre 0,26 e 0,30 as indústrias do 1ºgrupo são intimadas a suspenderem suas
'atividades, se o índice variar entre 0,31 e 0,40 as industrias do 1º e 2º grupos são intimadas a
'suspenderem suas atividades, se o índice for acima de 0,41 todos os grupos devem ser notificados
'(1º,2º,3º).
'Sua tarefa: Faça uma aplicação VBA que identifique se a radiação é aceitável ou se não, em qual grupo uma
'determinada indústria se aplica.
Dim indic As Integer
Dim mensagem As String
indic = Val(InputBox("Indique Indice Radação do Momento: "))
If (indic >= 26) And (indic <= 30) Then
mensagem = "Suspender Atividades Das Industrias do Grupo 1"
ElseIf (indic > 30) And (indic <= 40) Then
mensagem = "Suspender Atividades Das Industrias dos Grupos 1 e 2"
ElseIf (indic < 25) Then
mensagem = "Indice Normal Sem Risco de Radiação"
Else
mensagem = "Suspender Atividades das Industrias do Grupos 1,2,3"
Sub lista_6()
'6) Faça uma aplicação VBA que calcule o IMC da pessoa. Peso e altura da pessoa devem ser informados.
'Fórmula: peso/(altura * altura)
Dim nome As String
Dim altura As Double
Dim peso As Double
Dim imc As Double
nome = InputBox("Digite seu Nome ")
altura = InputBox("Digite sua Altura")
peso = InputBox("Digite seu Peso")
imc = peso / (altura * altura)
If (imc >= 20) And (imc <= 25) Then
MsgBox (nome + Chr(13) + " Seu IMC é : " & imc & Chr(13) + "Peso Ideal")
Sub lista_5()
'5) Faça uma aplicação VBA onde o usuário informa 10 números inteiros
'e ao final mostre a quantidade denúmeros maiores que 100 digitados pelo usuário.
Dim num As Integer
Dim i As Integer
For i = 1 To 10
num = CInt(InputBox("Digite um numero"))
If (num >= 100) Then
Debug.Print num
End If
Next
' "Ctrl G" para visualizar a lista de numeros maiores que 100 que foram digitados
Sub lista_4()
'4) Faça uma aplicação VBA onde o usuário entra com seu nome e a opção desejada.
'1- Instalar Aplicativo
'2- Fazer Beckup
'3- Restaurar Cópia
Dim opcao As String
Dim nome As String
nome = InputBox(" Olá Qual seu Nome ")
Sub lista_3()
'Faça uma aplicação VBA onde o usuário informe a data de seu nascimento e o programa exibe sua idade aproximada em anos. Dica: Use a função datediff.
Dim data As Date
Dim msg As String
Dim d1, d2, d3, d4, d5 As Single
data = InputBox(" Digite a Data dd/mm/aaaa que Voce Nasceu ")
msg = " Voce tem " & DateDiff("yyyy", data, Now) & " anos"
MsgBox msg
Sub lista_2()
'2) Faça uma aplicação VBA onde o usuário entre com um número inteiro e mostre se o mesmo é divisível exato por 3.
Dim numero As Integer
Dim mensagem As String
numero = CInt(InputBox(" Digite um valor "))
If numero Mod 3 = 0 Then
mensagem = " O Numero " & numero & " é Divisivel por 3"
Else
mensagem = " O Numero " & numero & " Não é Divisivel por 3"
End If
Sub procMult3()
'Verificar se um numero é divisivel por 3 " (mod 3 = 0) "
Dim num As Integer
Dim mensagem As String
num = Val(InputBox("Escreva um Numero", "Número num"))
If (num Mod 3 = 0) Then
mensagem = "Numero é Multiplo de (3) TRES "
Else
mensagem = "Não é Multiplo de (3) TRES "
End If
MsgBox mensagem & num
End Sub
Sub procSelecImpar()
'Função "For To" "IF Then Else End If", Verifica lista de 5 numeros se par ou impar
Dim num As Integer
Dim i As Integer
For i = 1 To 5
num = CInt(InputBox("digite o numero"))
If (num Mod 2 = 0) Then
Debug.Print num & " É par "
Else
Debug.Print num & " É Impar "
End If
Next
End Sub
Sub procExer4()
'Varias Função IF Then Else End If, Verifica lista de 5 numeros se par ou impar
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
Dim numero As Integer
Dim mensagem As String
a = Val(InputBox("Escreva um Numero", "Número a"))
b = Val(InputBox("Escreva outro Numero", "Número b"))
c = Val(InputBox("Escreva outro Numero", "Número C"))
d = Val(InputBox("Escreva um Numero", "Número d"))
e = Val(InputBox("Escreva outro Numero", "Número e"))
'Verifica se "a" é par ou impar
numero = a
If (numero Mod 2 = 0) Then
mensagem = "Numero é Par "
Else
mensagem = "Numero é Impar "
End If
MsgBox mensagem & numero
'Verifica se "b" é par ou impar
numero = b
If (numero Mod 2 = 0) Then
mensagem = "Numero é Par "
Else
mensagem = "Numero é Impar "
End If
MsgBox mensagem & numero
'Verifica se "c" é par ou impar
numero = c
If (numero Mod 2 = 0) Then
mensagem = "Numero é Par "
Else
mensagem = "Numero é Impar "
End If
MsgBox mensagem & numero
'Verifica se "d" é par ou impar
numero = d
If (numero Mod 2 = 0) Then
mensagem = "Numero é Par "
Else
mensagem = "Numero é Impar "
End If
MsgBox mensagem & numero
'Verifica se "e" é par ou impar
numero = e
If (numero Mod 2 = 0) Then
mensagem = "Numero é Par "
Else
mensagem = "Numero é Impar "
End If
MsgBox mensagem & numero
Sub procMaior_Tres()
'Função If And Then, ElseIf, Else Verifica entre 3 numeros o Maior.
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim maior As Integer
a = Val(InputBox("Escreva um Numero", "Número a"))
b = Val(InputBox("Escreva outro Numero", "Número b"))
c = Val(InputBox("Escreva outro Numero", "Número C"))
If (a > b) And (a > c) Then
maior = a
ElseIf (b > c) Then
maior = b
Else
maior = c
End If
MsgBox " O Maior é : " & maior
End Sub