Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Procedimentos - SUB
Aplicação prática:
Vá para uma folha de Excel, e crie o procedimento anterior – atribuir valores a X e a Y e calcular a soma. Como
não temos nenhuma instrução para visualizar os valores não podemos ver o resultado – Veremos como fazer,
logo de seguida.
Aplicação prática:
Resolução:
Function ValorFinal(PU,Quant, Taxa)
Function ValorFinal = PU * Quant * (1+ Taxa)
End Funcion
Outros exercícios: recorra ao ficheiro suporte FDU e resolva as questões lá apresentadas. Este exercício será feito
após a exposição de outros conteúdos essências.
Aplicação prática:
No VBA, faça um procedimento que calcule a Soma de 2 números (células B1 e B2) e coloque o resultado em B4
Sub SOMA2_EXCEL()
Num1 = Range(“B1”).Value
Num2 = Range(“B2”).Value
Range(“B4”).Value = Soma
End Sub
Ana Paula Camarinha 2019/2020 Pág. 3
PROGRAMAÇÃO EM VBA
A seguinte instrução afixa uma caixa de mensagem com o texto “A soma é “, acrescido da apresentação
do valor contido na variável SOMA (A seguir á instrução da caixa de mensagem é acrescentado o objeto
que contem o valor a escrever – concatenados com o símbolo &)
Aplicação Prática
A seguinte instrução apresenta uma caixa para introdução de um Nome, sendo que o valor introduzido
vai ser guardado na variável NOME (Começa por ter à esquerda o objeto que vai conter o valor
introduzido, à direita a caixa de input e a pergunta)
A seguinte instrução apresenta uma caixa para introdução de um Nome, sendo que o valor introduzido
vai ser guardado na célula B1.
Exemplo de um programa com caixas de entrada e saída- 2 caixas de entrada para ler os
valores de X e Y guardando o seu valor nas variáveis X e Y respetivamente e uma caixa de
saída que afixa o resultado guardado em SOMA como resultado da soma dos valores
lidos:
Sub exemplo1()
X= InputBox (Qual o valor de X?”)
Y= InputBox (Qual o valor de Y?”)
Soma = X+Y
MsgBox “O resultado é “ & Soma
End Sub
Se pretendêssemos que os valores lidos fossem guardados não em variáveis, mas nas células A1 e A2,
ficaria:
Sub exemplo2()
Range (“A1”).Value = InputBox (Qual o valor de X?”)
Range (“A1”).Value = InputBox (Qual o valor de Y?”)
Soma = X+Y
MsgBox “O resultado é “ & Soma
End Sub
Se além disso pretendêssemos que o valor da Soma fosse guardado em B3 em vez da variável Soma,
então ficaria:
Sub exemplo3()
Range (“A1”).Value = InputBox (Qual o valor de X?”)
Range (“A1”).Value = InputBox (Qual o valor de Y?”)
Range (“B3”).Value = X+Y
MsgBox “O resultado é “ & Range (“B3”).Value
End Sub
Aplicação Prática
Importante ver que nas FDU, as variáveis de parâmetros são declaradas dentro dos parentises
7. Tipos de Dados
8. Operadores matemáticos
Aplicação prática
Desenvolva o seguinte procedimento em VBA. Repare que não tem interação com a folha de cálculo. Usa apenas
caixas de entrada e de saída
Atenção: Na 3.ª instrução surge o comando VAL(…..) que garante que o que vamos ler da caixa de input será
guardado como valor numérico. Deve ser sempre utilizado para evitar erros
Next I
End Sub
Sub Média()
Soma = 0
For I = 1 to 5
Num = InputBox (“Introduza um número”)
Soma = Soma + Num
Next I
Media = Soma /5
MsgBox “A Média dos valores lidos é “ & Média
End Sub
A instrução Soma = 0 serve para dar um valor inicial a Soma para podermos depois usar a instrução
Aplicação prática
1. Implemente em VBA o programa anterior que lê 5 números por caixa de entrada, calcula a sua média e
apresenta o resultado numa caixa de mensagem
2. Numa folha de cálculo, crie a seguinte tabela. Crie um procedimento idêntico, mas em que os valores
estão escritos nas células B2 a B6 e o resultado vai ser escrito em B8
RESOLUÇÃO RESOLUÇÃO
Sub Média2() Sub Média2()
Soma = 0 Soma = 0
For i = 1 to 5 For i = 2 to 6
Num = InputBox (“Qual o numero?”) Num = Range (“B”& i).Value
Soma = Soma + Num Soma = Soma + Num
Next i Next i
Media = Soma /5 Media = Soma /5
MsgBox “O valor da média é” & Media Range (“B8”).Value = Media
End Sub End Sub
• Aplicação – Application
• Livro - WorkBook
• Folha - Sheets
• Células - Range
Sub Terminar()
Application.Quit
End Sub
Sub Gravar()
ActiveWorkBook.Save
End Sub
Sub Grava_Com_NovoNome()
End Sub
Sub DB_Colaboradores()
Sheets(“Colaboradores”).Select
End Sub
Sub NovaFolha_Teste()
Sheets.Add After:= ActiveSheet
ActiveSheet.Name=“Teste”
End Sub
Sub Elimina_Teste()
Sheets(“Teste”).Select
ActiveWindow.SelectedSheets.Delete
End Sub
=Idadexx(A3,B3)
Resolução
End Function
Considere a seguinte tabela e crie uma FDU para cálculo do TOTAL. Os parâmetros de entrada são a
Quantidade, Preço Unit, %Desc e Taxa IVA. A fórmula será: Total = Quant * PreçUnit * (1 - desc) * (1 + iva)
=Total(A19,B19,C19,D19)
Resolução
End Function
Considere a seguinte tabela e crie uma FDU para cálculo do Preço Final. Os parâmetros de entrada são o
preço do bilhete e a idade do comprador. Considere a tabela de descontos apresentada
=PrecoBilhetes(A35,B35)
Resolução
Considere a seguinte tabela e crie uma FDU para cálculo do Preço Final. Os parâmetros de entrada são a
Quant, o Preço Unit, o Codigo da Taca de IVA. Considere a tabela de Taxas apresentada
=precotot(A49,B49,C49)
Resolução
Considere a seguinte tabela e crie uma FDU para cálculo do Preço. O parâmetro de entrada é a cor
sorteada. Considere os valores associados a cada cor e que constam da tabela apresentada.
Resolução
Function cores(cor As String)
If cor = "amarelo" Then
cores = 100
Else
If cor = "verde" Then
cores = 150
Else
If cor = "branco" Then
cores = 200
End If
End If
End If
End Function
Resolução
Sub Valores()
valor = InputBox("Qual o valor?")
desconto = InputBox("Qual a taxa de Desconto?")
IVA = InputBox("Qual a taxa de IVA?")
val_final = valor * (1 - desconto) * (1 + IVA)
MsgBox "O valor final é " & val_final
End Sub
b) Faça um programa que leia as 6 notas de um aluno e apresente a média aritmética das mesmas. Não utilize a
Folha de Cálculo
Resolução
Sub Notas6()
Soma = 0
For i = 1 To 6
Next i
Média = Soma / 6
End Sub
Resolução
Sub Media_5_Anos()
Dim Soma, Media, Soma_Media As Double
Soma = 0
For i = 3 To 7
Nota = Range(“B”&i).value
Soma = Soma + Nota
Next i
Media = Soma / 5
Range("B10").Value = Media
Range("A10").Value = "Média do Curso"
End Sub
d) Faça um programa que utilizando caixa de entrada leia as 5 Médias anuais dos 5 anos de um curso, as
escreva nas células B3 a B7, calcule a sua média e a escreva na célula B10.
Resolução
Sub Media_Notas()
Soma = 0
For i = 3 To 7
Next i
Media = Soma / 5
Range("B10").Value = Media
End Sub
B. Altere a macro anterior de modo a que ao criar a nova folha, na célula G1 da nova folha esteja o valor da
célula K2 da folha MENU, e altere este valor aumentando 1 unidade.
No final do código da Macro, vá novamente selecione novamente a folha MENU e altere o valor de K2 para que
este seja maior em 1 unidade. (Estas instruções serão as últimas da macro anterior, antes do fim)
Sheets("MENU").Select
Range("K2").Value = num + 1
End Sub
Resolução
1. Repor o Código do orçamento a 1 – é toda gravada automaticamente
Sub Repor1()
Range("C3").Select
ActiveCell.FormulaR1C1 = "1"
End Sub