Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Autoria
Esta apresentao foi desenvolvida por Ricardo Campos, docente da Unidade Departamental de
Tecnologias de Informao e Comunicao do Instituto Politcnico de Tomar. Encontra-se
disponvel na pgina web do autor [http://www.ccc.ipt.pt/~ricardo], no link Publications - Syllabus,
ao abrigo da seguinte licena:
Bibliografia
Recursos:
M.J.Sousa
Domine a 110% Excel 2010
FCA Editora de Informtica
A.Carvalho
Exerccios Resolvidos com Excel para Economia & Gesto
FCA Editora de Informtica
Bibliografia
Jlio Battisti
http://www.juliobattisti.com.br/cursos/excelavancado/modulo5.asp
http://www.juliobattisti.com.br/cursos/excelavancado/modulo6.asp
Nota: No possvel garantir a existncia futura dos endereos (URLs), citados nos recursos on-line. Como se sabe, os endereos
so virtuais e a sua vida til depende nica e exclusivamente dos seus autores e proprietrios.
Histria do VBA
Apresenta as propriedades do
projecto seleccionado.
Propriedades do objecto
(View-Properties)
Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ] Programao em Visual Basic for Applications & Excel
Histria
Menu Programador
Editor VBA
Painel de Cdigo
Cdigo (View-Code)
Painel do Projecto
Mais: http://www.juliobattisti.com.br/cursos/excelavancado/modulo6.asp
Hierarquia de Objectos
Application
Workbooks
Worksheets
Range
Propriedades;
Mtodos;
Eventos;
Propriedades
Exemplo: Worksheets(Folha1).Range(A9).Value = 5
Mtodos
Exemplo: Range(A9).Select
Eventos
Para que um objecto possa reagir a um dado evento dever existe o event
handler (tratador de eventos), que especifica o que fazer caso esse evento
ocorra.
Sem isso, o objecto detectar esse acontecimento mas no saber o que
fazer. Nenhuma resposta ser produzida;
MsgBox
MsgBox: mostra uma mensagem no Excel.
Sintaxe: MsgBox (mensagem, caractersticas, ttulo)
MsgBox
Sintaxe: varivel = MsgBox (mensagem, caractersticas, ttulo)
VbOk 1
VbCancel 2
VbAbort 3
VbRetry 4
VbIgnore 5
VbYes 6
VbNo 7
InputBox
Pesquisador de Objectos
Relacionais
= (igual); <> (diferente); > (maior); >= (maior ou igual); < (menor); <=
(menor ou igual)
Lgicos
And; Or; Not
Texto
& (concatenao)
Outros Caracteres
(linha de comentrios)
Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ] Programao em Visual Basic for Applications & Excel
Operadores
Variveis
Arrays
Constantes
Type DadosPessoais
Nome As String
Idade As Integer
Nasc As Date
CC As Long
End Type
MsgBox Pessoa.Nome & Chr(13) & "Data de Nascimento: " & Pessoa.Nasc
& Chr(13) & CC: " & Pessoa.CC
Noo de Array
Declarao de Arrays
Arrays Multi-Dimensionais
2012 2013
CDs 200 40
DVDs 300 100
arr(1,1) = 200
arr(1,2) = 40
arr(2,1) = 300
arr(2,2) = 100
Arrays de Arrays
Select Case
If Then
As estruturas de controlo repetitivo permitem efectuar testes a condies para,
em funo do resultado, executar determinadas instrues;
If condicao Then
Instrues
End If
Select Case
If Then Else
Select Case
If condicao1 Then
Instrues1
Else
If condicao2 Then
Instrues2
Else
Instrues3
End If
End If
Select Case
Select Case
Select Case
Select Case
For
While
As estruturas de repetio permitem executar conjuntos de instrues de forma
cclica;
For
While
For
For-To-Next
Repete um nmero de instrues um determinado nmero de vezes.
For
For-To-Next
For
For-Each-In-Next
Repete um nmero de instrues um determinado nmero de vezes.
For
For-Each-In-Next
Exemplo. Suponha que se pretende ocultar todas as linhas (entre o range C1 e
C10) que contenham o valor 0
Sub hide_zero()
End Sub
Funes de Data/Hora
Funes de Texto
Len(string)
Determina o tamanho da String que foi passada como parmetro para a
funo. Exemplo: MsgBox Len("Este um exemplo de uso da funo Len !!")
retorna 41 caracteres;
Lcase(string)
Converte para minsculas, a String que foi passada como parmetro para a
funo;
UCase(string)
Converte para MAISCULAS, a String que foi passada como parmetro para
a funo
Funes de Data/Hora
Funes de Texto
Left(string,n)
Retorna um nmero especificado de caracteres, a partir do incio de uma
String. Note que espaos tambm so considerados;
Right(string,n)
Retorna um nmero especificado de caracteres, a partir do fim de uma String.
Note que espaos tambm so considerados;
Mid(String, posicao_inicio, n)
Retorna um nmero especificado de caracteres, a partir de uma posio
especificada, dentro da String. Note que espaos tambm so considerados;
String(n, caracter)
Retorna um determinado caractere, um nmero especificado de vezes.
Exemplo: MsgBox String(35,"*")
Funes de Data/Hora
Funes de Data/Hora
Date()
Retorna a data atual do sistema. Exemplo: MsgBox "Data do Sistema: " &
Date()
Time()
Retorna a hora atual do sistema. Exemplo: MsgBox "Data do Sistema: " &
Time()
Day(data)
Recebe como parmetro uma data, e retorna um nmero entre 1 e 31,
indicando o dia do ms.;
Month(data)
Recebe como parmetro uma data, e retorna um nmero entre 1 e 12,
indicando o ms do ano.
Funes de Data/Hora
Funes de Data/Hora
Now()
Retorna a hora e a data atual do sistema. Exemplo: MsgBox "Data e Hora do
Sistema: " & Now()
MonthName()
Recebe como parmetro um nmero, indicativo do ms do ano (1 - Janeiro, 2
- Fevereiro, e assim por diante). Exemplo: MsgBox "Ms do ano: " &
MonthName(Month(Date))
Funes de Data/Hora
Funes de Data/Hora
Year(data)
Recebe como parmetro uma data, e retorna o ano.
Exemplo: MsgBox "Ano atual: " & Year(Date( ))
Tipos de Procedimentos
Sub-rotinas (macros);
Funes;
O que so macros?
Habilitar as macros;
Ficheiro Opes Centro de Fidedignidade Definies do Centro;
Uma vez escrita a macro, necessrio guardar o livro de excel com o tipo:
Programando em VBA;
Testar a Macro
possvel criar uma macro a partir do zero sem utilizar o gravador de macros;
mbito do Procedimento
Exemplos de Sub-Rotinas
sub First()
Range("A1").Value = 34
Range("A2").Value = 66
Range("A3").Formula = "=A1+A2"
Range("A1").Select
End Sub
Run - Run;
Exemplos de Sub-Rotinas
Exemplo 2: Com recurso ao gravador de macros, crie uma macro (Limpar) que
permita apagar o contedo de qualquer clula. Posteriormente edite a macro de
forma a introduzir uma MsgBox que obrigue o utilizador a confirmar a aco
Sub Limpar()
If MsgBox("Tem a certeza?", vbYesNo + vbQuestion, "Confirmao") = vbYes Then
Selection.ClearContents
End If
End Sub
Exemplos de Sub-Rotinas
Sub Soma()
Dim x As Integer
Dim Y As Integer
Dim Soma As Integer
Soma = x + Y
MsgBox "Soma de " & x & "+" & Y & "=" & Soma
End Sub
Exemplos de Sub-Rotinas
Exemplo 4: Pretende-se criar uma macro com o nome Celula que possibilite a
introduo de um texto numa clula escolha do utilizador;
Sub Celula()
Dim Cell As String
Dim Texto As String
ActiveSheet.Range(Cell) = Texto
End Sub
Proteco de Macros
Noo de Funo
Conjunto de declaraes que retornam um valor;
A funo pode ser chamada noutra parte do cdigo das trs seguintes formas:
Variavel = nomeFuno (a, b) //Se a funo retorna um valor
Call nomeFuno (a,b) //pode-se chamar uma funo ou macro com Call
nomeFuno a, b //se Call no for utilizada os parntesis no so usados
Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ] Programao em Visual Basic for Applications & Excel
Procedimentos
Sub-Rotinas (Macros)
Funes
Insert - Module;
Insert - Function;
Passagem de Parmetros
A passagem de parmetros para uma funo pode ser feita de duas formas:
ByVal: indica que o parmetro passado por valor. Isto significa que a funo
utiliza uma cpia interna dos parmetros
a = 100
b = 400
Imprime valores a e b
Mult a, b //Chama o procedimento
Imprime valores a e b
Exemplos de Funes
Debug de Funes