SlideShare uma empresa Scribd logo
1 de 24
O Visual Basic para Aplicações é uma linguagem de programação
utilizada por aplicações Windows e cujo objectivo é a automatização de
tarefas que envolvem objectos
Em programação Visual Basic, O Excel é um Objecto denominado por
Application, um livro é um Workbook e uma folha de cálculo um Worksheet
A programação por objectos segue o método hierárquico em que uma
colecção contém um conjunto de objectos agrupados segundo a sua
categoria e com as suas próprias características e funcionalidades.
Ex: Todos os livros contêm uma colecção Sheets que representa todas as
folhas de cálculo desse livro.
A própria aplicação contém uma colecção de objectos – a colecção
Workbooks que representa todos os ficheiros (livros) presentemente
utilizados pela instância da aplicação actual
O que é o VBA (Visual Basic)?
Objectos
Propriedades
Uma propriedade é uma característica de um objecto que representa a sua
aparência e o seu comportamento durante a execução de um programa.
Exemplos: a cor, o tipo de letra, a posição no ecrã e a capacidade de
redimensionamento etc.
NotaNota: Na programação orientada por objectos, todos os objectos pertencentes à mesma categoria
(colecção) contêm as mesmas propriedades; os valores das mesmas poderão diferir de elemento para
elemento (faculdade que torna cada objecto único)
As propriedades dos objectos encontram-se categorizadas em 2 grandes
tipos:
De leitura (Read-Only Properties) – Os valores das propriedades
apenas podem ser alterados na fase de desenho (estrutura) de uma
aplicação (Design-Time)
De leitura e escrita (Read-Write Properties) – Os valores das
propriedades podem ser alterados quer na fase de desenho de uma
aplicação, quer em modo de execução (através de código-fonte).
Eventos
Um evento é uma acção que determinado objecto pode reconhecer, ao qual
poderá estar associado código de resposta. Um dos eventos mais comuns é o
evento Click, gerado sempre que o utilizador prime o botão esquerdo do rato sobre
determinado objecto.
Em programação, todos os eventos são procedimentos, ou seja, linhas de código ou
instruções executadas numa sequência lógica que figuram num módulo de
programação (conjunto de procedimentos)
Em programação, os eventos constituem o ponto de partida para toda a execução
e funcionalidade da aplicação
Métodos
Um método é uma acção levada a cabo por um objecto. Estas funcionalidades,
tecnicamente conhecidas por funções de membro de uma classe, são
constituídas por um conjunto de instruções que se encontram bem definidas e
estruturadas internamente nesse objecto.
Nota: Os métodos são invocados a partir de módulos de programação, digitando o nome do objecto
que desempenhará a acção, seguido do nome do método, separando os dois com um ponto final.
Ex: Application.Quit
Exercício: Desenhe dois botões de comando com os rótulos «Proteger folha» e
«Desproteger folha» e com os nomes «proteger_folha» e «desproteger_folha»
respectivamente. O 1º botão protege todas as células da folha de cálculo
Sheet1 (Folha1) e o 2º botão repõe a possibilidade de edição.
Código atribuído ao botão «Proteger Folha»
Private Sub proteger_folha_Click()
Sheets(“Folha1”).Protect
End Sub
Código atribuído ao botão «Desproteger Folha»
Private Sub desproteger_folha_Click()
Sheets(“Folha1”).Unprotect
End Sub
Execução do Programa
Digitar o texto «Teste» na célula «A1» (é possível, pois a folha não está protegida).
Fazer clique sobre o botão «Proteger Folha»
Tentar eliminar o conteúdo da célula «A1» (impossível, pois a folha está protegida)
PROCEDIMENTO – Um procedimento é uma sequência de instruções que
formam um bloco de código que é executado como um todo. Quando
invocamos um procedimento, todo o código nele contido é executado, pelo que
é impossível invocar apenas uma parte do mesmo.
Procedimentos
Existem 3 tipos de procedimentos:
Procedimentos de Evento (Event-Procedures)
Procedimentos Sub (Sub-Procedures)
Procedimentos de Função (Function-Procedures)
Sintaxe de declaração dos procedimentos de evento é:
Private Sub <Objecto>_<Evento> ([argumento1], [argumento2], [...])
[Instrução1]
[Instrução2]
[...]
End Sub
Procedimentos de Evento (Event-Procedures)
São procedimentos que dizem respeito a acções reconhecidas por
objectos (eventos)
Exemplo (sem argumentos):
Private Sub Sheet1_Activate()
… Bloco de código associado ao evento Activate de um objecto Worksheet
… Este evento é reconhecido sempre que o utilizador selecciona a folha
… O procedimento não aceita argumentos
End Sub
Exemplo (com argumentos):
Private Sub but_KeyPress(Byval KeyAscii As MSForms.Returninteger)
… Bloco de código associado ao evento KeyPress de CommandButton
… Este evento é reconhecido sempre que o utilizador prime uma tecla
… O procedimento aceita argumentos
End Sub
Procedimentos Sub (Sub-Procedures)
São procedimentos definidos pelo programador, que consistem num
conjunto de instruções executadas sequencialmente com o objectivo de
desempenhar uma tarefa específica.
NotaNota: São designados por procedimentos secundários, isto porque são
normalmente chamados a partir dos procedimentos de evento.
Exemplo 1:
Sub FecharExcel()
Application.Caption = “A encerrar…”
Application.Quit
End Sub
Sintaxe de declaração dos procedimentos Sub é:
Sub <Nome_Procedimento> ([argumento1], [argumento2], [...])
[Instrução1]
[Instrução2]
[...]
End Sub
Este procedimento cria um novo procedimento com o nome
«FecharExcel» que simplesmente altera o texto da barra de título da
janela da aplicação e imediatamente termina o Excel.
Exemplo 2:
Sub ApresentarTexto(Texto)
Application.Caption = “Texto”
End Sub
Este procedimento aceita um argumento «texto» como sendo uma cadeia de
caracteres. O título da janela da aplicação está dependente do valor desse
argumento.
Procedimentos de Função (Function-Procedures)
São procedimentos definidos pelo programador, que executam tarefas e
retornam um valor para o procedimento que o invocou.
Sintaxe de declaração dos procedimentos de função é:
Function <Nome_Função> ([argumento1], [argumento2], [...])
[Instrução1]
[Instrução2]
[...]
End Function
Exemplo:
Sub Calcular()
Resultado=FormulaComplexa(2,7)
Application.Caption=resultado
End Sub
Function FormulaComplexa(num1,num2)
FormulaComplexa=(num1*num2)/(num1+10)
End Function
Este pequeno programa consiste na criação de um procedimento «Calcular» que envia
para o procedimento de função os números 2 e 7. A função realiza o cálculo mediante
estes dois argumentos e devolve o resultado para o procedimento;
Este é depois responsável por alterar o texto da barra de título da aplicação, reflectindo
o valor calculado pela função «FormulaComplexa».
Exercício de Aplicação
OjectivoOjectivo: consiste na obtenção do primeiro e último nome do utilizador
através de duas caixas de texto. O evento Click do botão «OK» invocará o
procedimento «portexto», que enviará estes dois argumentos para a função
«Juntar», responsável por retornar o nome completo. Deverá desenhar 3
caixas de texto e um botão de comando até obter um ecrã semelhante ao
apresentado na figura
Private Sub CommandButton1_Click()
PorTexto
End Sub
Sub PorTexto()
nome = TextBox1.Text
apelido = TextBox2.Text
completo = juntar(nome, apelido)
TextBox3.Text = completo
End Sub
Function juntar(nome, apelido)
juntar = nome + " " + apelido
End Function
Resolução do Exercício de Aplicação
Variáveis – Uma variável é uma localização na memória, na qual são
armazenados dados durante a execução de um programa. Cada variável possui
um nome, um tipo de dados e um conteúdo. O nome da variável é a designação
pela qual a podemos referenciar em módulos de programação. O tipo de dados
define qual o tipo de informação que a variável pode conter (números inteiros,
decimais, cadeias de caracteres alfanuméricas, datas, valores lógicos, etc...). O
conteúdo representa o valor efectivo da variável em qualquer ponto da execução
do programa.
Variáveis
REGRAS DE NOMENCLATURA PARA AS VARIÁVEIS SÃO AS SEGUINTES:
o primeiro caracter deve ser uma letra de A a Z
Não podem conter espaços, pontos finais(.), pontos de exclamação(!) ou os
caracteres @, $, # e &
Não podem exceder 255 caracteres.
São únicas no módulo em que são declaradas.
Sintaxe de declaração das variáveis é:
DIM <Nome_variável> [As <tipo de dados>]
Exemplos:
Dim Nome as string
Dim Idade As Integer
Constantes – Uma constante, tal como o próprio nome indica, apresenta as mesmas
características de uma variável, contudo, é declarada de forma diferente e o seu conteúdo
não pode ser alterado durante a execução de um programa.
Sintaxe de declaração das constantes é:
Const <Nome_Constante> As <tipo de dados> = <Valor>
TIPOS DE DADOS
Integer
Long
Single
Double
String
Date
Currency
Byte
Boolean
…..
Constantes
Funções
FUNÇÃO MsgBox - Apresenta no ecrã uma caixa de mensagem padrão de
sistema operativo com o ícone e botões especificados. Retorna uma constante
numérica do tipo Integer que contém informação acerca do botão escolhido pelo
utilizador.
SINTAXE:
MsgBox (Prompt, Buttons, Title, Helpfile, Context)
Prompt – Argumento do tipo String, correspondente ao texto que constitui a mensagem a
ser apresentada na caixa de diálogo. O comprimento máximo do texto é de,
aproximadamente, 1024 caracteres, dependendo da largura ocupada pelos mesmos.
Buttons – Argumento opcional que está interligado com a apresentação da própria caixa
no ecrã no que se refere aos icones e tipos de botões apresentados.
Constante Valor
vbCritical 16
vbQuestion 32
vbExclamation 48
vbInformation 64
As constantes utilizadas para a escolha do ícone são:
Em relação ao número e tipo de botões:
Constante Valor Descrição
VbOkOnly 0 Apenas o botão OK
VbOkCancel 1 OK e Cancel (Cancelar)
VbAbortRetryIgnore 2 Abort (Abortar), Retry (Repetir) e Ignore (Ignorar)
VbYesNoCancel 3 Yes (Sim), No (Não) e Cancel (Cancelar)
VbYesNo 4 Yes (Sim) e No (Não).
VbRetryCancel 5 Retry (Repetir) e Cancel (Cancelar).
Valores retornados pela função Msgbox:
Constante Valor
VbOk 1
VbCancel 2
VbAbort 3
VbRetry 4
VbIgnore 5
VbYes 6
VbNo 7
SINTAXE:
InputBox (Prompt, Title, Default, Xpos, Ypos, Helpfile, Context)
FUNÇÃO InputBox - Apresenta no ecrã uma caixa de mensagem padrão de
sistema operativo que serve para recolher informações do utilizador, sob a forma
de texto. Retorna uma constante do tipo string correspondente ao texto digitado
na caixa de introdução.
Prompt – Argumento obrigatório do tipo String correspondente à mensagem a ser apresentada na
caixa
Title – Argumento opcional do tipo String que define o texto da barra de título da janela.
O texto predefinido corresponde ao nome da aplicação anfitriã, neste caso, «Microsoft Excel».
Default – Argumento opcional do tipo String que representa o texto a aparecer automaticamente na
caixa de introdução.
Xpos – Opcional. Expressão numérica que especifica, em medidas de ecrã (twips), a distância
horizontal entre a extremidade esquerda da caixa de diálogo e o limite esquerdo do ecrã. Se este
argumento for omitido, a caixa é centrada automaticamente na horizontal.
Ypos – Opcional. Expressão numérica que especifica, em medidas de ecrã (twips), a distância
vertical entre a extremidade de topo da caixa de diálogo e o limite superior do ecrã. Se este
argumento for omitido, a caixa é centrada automaticamente na vertical.
Condições
A Estrutura If… Then … Else
1º Modo (If…Then)
A condição é testada. Se for verdadeira executa uma única instrução,
após a cláusula Then
Sintaxe
If <condição> Then <instrução>
Exemplo:
If nome=“Ana” Then idade =45
Se a variável “nome” contém a String “Ana”, a variável “idade” ficará
com o valor 45; caso contrário a instrução é ignorada.
2º Modo (If…Then…End If)
A condição é testada. Se for verdadeira, executa um conjunto de
instruções. Quando associamos mais do que uma instrução à cláusula
Then, estamos perante um bloco If … End If, em que If inicia e End If
termina o bloco condicional.
Sintaxe:
If <condição> Then
[instrução1]
[instrução2]
[instrução3]
[instrução4]
[…]
End If
Exemplo:
If var1 < 0 Then
Msgbox “Erro”, VbCritical
var1=10
End If
Se a variável «var1» é inferior a zero, será apresentada uma caixa de
mensagem de erro e a variável ficará com o valor de 10
Sintaxe:
If <condição> Then
[instrução1]
[instrução2]
[…]
Else
[instrução3]
[instrução4]
[…]
End If
3º Modo (If…Then…Else… End If)
Exemplo:
If mensagem = 10 Then
Msgbox “A sua caixa de correio está cheia!”, Vbexclamation
disponivel=0
Else
Este exemplo simula o acesso a uma caixa postal de um telemóvel com
um limite máximo de mensagens igual a 10. Quando o contador do
número de mensagens chega ao limite, o utilizador é alertado desse facto
através de uma caixa de mensagem.
Msgbox “A sua caixa de correio tem” & mensagens & “ mensagens!”
disponivel=10-mensagens
End If
Ciclos
A Estrutura Do… Loop
1º Modo (Do… While …Loop)
O ciclo é verificado enquanto a condição especificada for
verdadeira
Sintaxe:
Do While <condição>
[instrução1]
[instrução2]
[…]
Loop

Mais conteúdo relacionado

Mais procurados

Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterMarcos Castro
 
Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Elaine Cecília Gatto
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11Luis Ferreira
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12Luis Ferreira
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Aula 25 e 26 formulário acessibilidade
Aula 25 e 26 formulário acessibilidadeAula 25 e 26 formulário acessibilidade
Aula 25 e 26 formulário acessibilidadeJolvani Morgan
 

Mais procurados (10)

Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com Tkinter
 
Java6
Java6Java6
Java6
 
Cap07
Cap07Cap07
Cap07
 
Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11
 
Java7
Java7Java7
Java7
 
Linguagens de programação 12º M12
Linguagens de programação 12º M12Linguagens de programação 12º M12
Linguagens de programação 12º M12
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Aula 25 e 26 formulário acessibilidade
Aula 25 e 26 formulário acessibilidadeAula 25 e 26 formulário acessibilidade
Aula 25 e 26 formulário acessibilidade
 
Java13
Java13Java13
Java13
 

Semelhante a VBA para Excel: Objetos, Propriedades, Eventos e Métodos

Apostila Completa de Visual Basic
Apostila Completa de Visual BasicApostila Completa de Visual Basic
Apostila Completa de Visual BasicMarcos Paulo
 
Programacao Com Asp V
Programacao Com Asp   VProgramacao Com Asp   V
Programacao Com Asp Vguest3118b2
 
Detalhando elementos do delphi
Detalhando elementos do delphiDetalhando elementos do delphi
Detalhando elementos do delphiGabriel Moura
 
Tutorial visual c# express
Tutorial  visual c# expressTutorial  visual c# express
Tutorial visual c# expressArthur Azevedo
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidTiago Bencardino
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharpTiago
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiaisJosh Santos
 
Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteIlton Barbosa
 
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APICriando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APIRicardo Ogliari
 
Internet I - Aula 07 - Primeiros Passos com JavaScript
Internet I - Aula 07 - Primeiros Passos com JavaScriptInternet I - Aula 07 - Primeiros Passos com JavaScript
Internet I - Aula 07 - Primeiros Passos com JavaScriptManoel Afonso
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Ilton Barbosa
 
introdução ao enterprise architect
introdução ao enterprise architectintrodução ao enterprise architect
introdução ao enterprise architectRanieri de Souza
 

Semelhante a VBA para Excel: Objetos, Propriedades, Eventos e Métodos (20)

Aula1 c++ builder
Aula1   c++ builderAula1   c++ builder
Aula1 c++ builder
 
Apostila Completa de Visual Basic
Apostila Completa de Visual BasicApostila Completa de Visual Basic
Apostila Completa de Visual Basic
 
Apostila microsoft visual basic
Apostila microsoft visual basicApostila microsoft visual basic
Apostila microsoft visual basic
 
Programacao Com Asp V
Programacao Com Asp   VProgramacao Com Asp   V
Programacao Com Asp V
 
Excel VBA: Aula 8
Excel VBA: Aula 8Excel VBA: Aula 8
Excel VBA: Aula 8
 
Apostila visual basic
Apostila visual basicApostila visual basic
Apostila visual basic
 
Detalhando elementos do delphi
Detalhando elementos do delphiDetalhando elementos do delphi
Detalhando elementos do delphi
 
Tutorial visual c# express
Tutorial  visual c# expressTutorial  visual c# express
Tutorial visual c# express
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
CURSO JAVA 02
CURSO JAVA 02CURSO JAVA 02
CURSO JAVA 02
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Cap07
Cap07Cap07
Cap07
 
Jogo da velha
Jogo da velhaJogo da velha
Jogo da velha
 
Interfaces windows em c sharp
Interfaces windows em c sharpInterfaces windows em c sharp
Interfaces windows em c sharp
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiais
 
Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a Parte
 
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APICriando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry API
 
Internet I - Aula 07 - Primeiros Passos com JavaScript
Internet I - Aula 07 - Primeiros Passos com JavaScriptInternet I - Aula 07 - Primeiros Passos com JavaScript
Internet I - Aula 07 - Primeiros Passos com JavaScript
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5
 
introdução ao enterprise architect
introdução ao enterprise architectintrodução ao enterprise architect
introdução ao enterprise architect
 

Mais de Joao Sousa

Historia da-alimentacao-e-da-gastronomia
Historia da-alimentacao-e-da-gastronomiaHistoria da-alimentacao-e-da-gastronomia
Historia da-alimentacao-e-da-gastronomiaJoao Sousa
 
Trabalho guatemala
Trabalho guatemala Trabalho guatemala
Trabalho guatemala Joao Sousa
 
Trabalho farsa de inês pereira
Trabalho farsa de inês pereira  Trabalho farsa de inês pereira
Trabalho farsa de inês pereira Joao Sousa
 
Trabalho de filosofia - Fundamentação da Moral
Trabalho de filosofia - Fundamentação da MoralTrabalho de filosofia - Fundamentação da Moral
Trabalho de filosofia - Fundamentação da MoralJoao Sousa
 
História de arte
História de arte   História de arte
História de arte Joao Sousa
 
Auto da barca do inferno enforcado
Auto da barca do inferno enforcadoAuto da barca do inferno enforcado
Auto da barca do inferno enforcadoJoao Sousa
 
Guia utilizador power point 2013
Guia utilizador   power point 2013Guia utilizador   power point 2013
Guia utilizador power point 2013Joao Sousa
 
Manual de dislexia
Manual de dislexiaManual de dislexia
Manual de dislexiaJoao Sousa
 
Sessao2 reiki 3_b_parte_1_blearning
Sessao2 reiki 3_b_parte_1_blearningSessao2 reiki 3_b_parte_1_blearning
Sessao2 reiki 3_b_parte_1_blearningJoao Sousa
 
Curiosidades sistema cardio vascular
Curiosidades sistema cardio vascularCuriosidades sistema cardio vascular
Curiosidades sistema cardio vascularJoao Sousa
 
Reiki cristaloterapia
Reiki cristaloterapiaReiki cristaloterapia
Reiki cristaloterapiaJoao Sousa
 
Manual solucoes-redes-tanenbaum
Manual solucoes-redes-tanenbaumManual solucoes-redes-tanenbaum
Manual solucoes-redes-tanenbaumJoao Sousa
 

Mais de Joao Sousa (12)

Historia da-alimentacao-e-da-gastronomia
Historia da-alimentacao-e-da-gastronomiaHistoria da-alimentacao-e-da-gastronomia
Historia da-alimentacao-e-da-gastronomia
 
Trabalho guatemala
Trabalho guatemala Trabalho guatemala
Trabalho guatemala
 
Trabalho farsa de inês pereira
Trabalho farsa de inês pereira  Trabalho farsa de inês pereira
Trabalho farsa de inês pereira
 
Trabalho de filosofia - Fundamentação da Moral
Trabalho de filosofia - Fundamentação da MoralTrabalho de filosofia - Fundamentação da Moral
Trabalho de filosofia - Fundamentação da Moral
 
História de arte
História de arte   História de arte
História de arte
 
Auto da barca do inferno enforcado
Auto da barca do inferno enforcadoAuto da barca do inferno enforcado
Auto da barca do inferno enforcado
 
Guia utilizador power point 2013
Guia utilizador   power point 2013Guia utilizador   power point 2013
Guia utilizador power point 2013
 
Manual de dislexia
Manual de dislexiaManual de dislexia
Manual de dislexia
 
Sessao2 reiki 3_b_parte_1_blearning
Sessao2 reiki 3_b_parte_1_blearningSessao2 reiki 3_b_parte_1_blearning
Sessao2 reiki 3_b_parte_1_blearning
 
Curiosidades sistema cardio vascular
Curiosidades sistema cardio vascularCuriosidades sistema cardio vascular
Curiosidades sistema cardio vascular
 
Reiki cristaloterapia
Reiki cristaloterapiaReiki cristaloterapia
Reiki cristaloterapia
 
Manual solucoes-redes-tanenbaum
Manual solucoes-redes-tanenbaumManual solucoes-redes-tanenbaum
Manual solucoes-redes-tanenbaum
 

VBA para Excel: Objetos, Propriedades, Eventos e Métodos

  • 1. O Visual Basic para Aplicações é uma linguagem de programação utilizada por aplicações Windows e cujo objectivo é a automatização de tarefas que envolvem objectos Em programação Visual Basic, O Excel é um Objecto denominado por Application, um livro é um Workbook e uma folha de cálculo um Worksheet A programação por objectos segue o método hierárquico em que uma colecção contém um conjunto de objectos agrupados segundo a sua categoria e com as suas próprias características e funcionalidades. Ex: Todos os livros contêm uma colecção Sheets que representa todas as folhas de cálculo desse livro. A própria aplicação contém uma colecção de objectos – a colecção Workbooks que representa todos os ficheiros (livros) presentemente utilizados pela instância da aplicação actual O que é o VBA (Visual Basic)? Objectos
  • 2. Propriedades Uma propriedade é uma característica de um objecto que representa a sua aparência e o seu comportamento durante a execução de um programa. Exemplos: a cor, o tipo de letra, a posição no ecrã e a capacidade de redimensionamento etc. NotaNota: Na programação orientada por objectos, todos os objectos pertencentes à mesma categoria (colecção) contêm as mesmas propriedades; os valores das mesmas poderão diferir de elemento para elemento (faculdade que torna cada objecto único) As propriedades dos objectos encontram-se categorizadas em 2 grandes tipos: De leitura (Read-Only Properties) – Os valores das propriedades apenas podem ser alterados na fase de desenho (estrutura) de uma aplicação (Design-Time) De leitura e escrita (Read-Write Properties) – Os valores das propriedades podem ser alterados quer na fase de desenho de uma aplicação, quer em modo de execução (através de código-fonte).
  • 3. Eventos Um evento é uma acção que determinado objecto pode reconhecer, ao qual poderá estar associado código de resposta. Um dos eventos mais comuns é o evento Click, gerado sempre que o utilizador prime o botão esquerdo do rato sobre determinado objecto. Em programação, todos os eventos são procedimentos, ou seja, linhas de código ou instruções executadas numa sequência lógica que figuram num módulo de programação (conjunto de procedimentos) Em programação, os eventos constituem o ponto de partida para toda a execução e funcionalidade da aplicação
  • 4. Métodos Um método é uma acção levada a cabo por um objecto. Estas funcionalidades, tecnicamente conhecidas por funções de membro de uma classe, são constituídas por um conjunto de instruções que se encontram bem definidas e estruturadas internamente nesse objecto. Nota: Os métodos são invocados a partir de módulos de programação, digitando o nome do objecto que desempenhará a acção, seguido do nome do método, separando os dois com um ponto final. Ex: Application.Quit Exercício: Desenhe dois botões de comando com os rótulos «Proteger folha» e «Desproteger folha» e com os nomes «proteger_folha» e «desproteger_folha» respectivamente. O 1º botão protege todas as células da folha de cálculo Sheet1 (Folha1) e o 2º botão repõe a possibilidade de edição.
  • 5. Código atribuído ao botão «Proteger Folha» Private Sub proteger_folha_Click() Sheets(“Folha1”).Protect End Sub Código atribuído ao botão «Desproteger Folha» Private Sub desproteger_folha_Click() Sheets(“Folha1”).Unprotect End Sub Execução do Programa Digitar o texto «Teste» na célula «A1» (é possível, pois a folha não está protegida). Fazer clique sobre o botão «Proteger Folha» Tentar eliminar o conteúdo da célula «A1» (impossível, pois a folha está protegida)
  • 6. PROCEDIMENTO – Um procedimento é uma sequência de instruções que formam um bloco de código que é executado como um todo. Quando invocamos um procedimento, todo o código nele contido é executado, pelo que é impossível invocar apenas uma parte do mesmo. Procedimentos Existem 3 tipos de procedimentos: Procedimentos de Evento (Event-Procedures) Procedimentos Sub (Sub-Procedures) Procedimentos de Função (Function-Procedures)
  • 7. Sintaxe de declaração dos procedimentos de evento é: Private Sub <Objecto>_<Evento> ([argumento1], [argumento2], [...]) [Instrução1] [Instrução2] [...] End Sub Procedimentos de Evento (Event-Procedures) São procedimentos que dizem respeito a acções reconhecidas por objectos (eventos) Exemplo (sem argumentos): Private Sub Sheet1_Activate() … Bloco de código associado ao evento Activate de um objecto Worksheet … Este evento é reconhecido sempre que o utilizador selecciona a folha … O procedimento não aceita argumentos End Sub
  • 8. Exemplo (com argumentos): Private Sub but_KeyPress(Byval KeyAscii As MSForms.Returninteger) … Bloco de código associado ao evento KeyPress de CommandButton … Este evento é reconhecido sempre que o utilizador prime uma tecla … O procedimento aceita argumentos End Sub Procedimentos Sub (Sub-Procedures) São procedimentos definidos pelo programador, que consistem num conjunto de instruções executadas sequencialmente com o objectivo de desempenhar uma tarefa específica. NotaNota: São designados por procedimentos secundários, isto porque são normalmente chamados a partir dos procedimentos de evento.
  • 9. Exemplo 1: Sub FecharExcel() Application.Caption = “A encerrar…” Application.Quit End Sub Sintaxe de declaração dos procedimentos Sub é: Sub <Nome_Procedimento> ([argumento1], [argumento2], [...]) [Instrução1] [Instrução2] [...] End Sub Este procedimento cria um novo procedimento com o nome «FecharExcel» que simplesmente altera o texto da barra de título da janela da aplicação e imediatamente termina o Excel.
  • 10. Exemplo 2: Sub ApresentarTexto(Texto) Application.Caption = “Texto” End Sub Este procedimento aceita um argumento «texto» como sendo uma cadeia de caracteres. O título da janela da aplicação está dependente do valor desse argumento. Procedimentos de Função (Function-Procedures) São procedimentos definidos pelo programador, que executam tarefas e retornam um valor para o procedimento que o invocou. Sintaxe de declaração dos procedimentos de função é: Function <Nome_Função> ([argumento1], [argumento2], [...]) [Instrução1] [Instrução2] [...] End Function
  • 11. Exemplo: Sub Calcular() Resultado=FormulaComplexa(2,7) Application.Caption=resultado End Sub Function FormulaComplexa(num1,num2) FormulaComplexa=(num1*num2)/(num1+10) End Function Este pequeno programa consiste na criação de um procedimento «Calcular» que envia para o procedimento de função os números 2 e 7. A função realiza o cálculo mediante estes dois argumentos e devolve o resultado para o procedimento; Este é depois responsável por alterar o texto da barra de título da aplicação, reflectindo o valor calculado pela função «FormulaComplexa».
  • 12. Exercício de Aplicação OjectivoOjectivo: consiste na obtenção do primeiro e último nome do utilizador através de duas caixas de texto. O evento Click do botão «OK» invocará o procedimento «portexto», que enviará estes dois argumentos para a função «Juntar», responsável por retornar o nome completo. Deverá desenhar 3 caixas de texto e um botão de comando até obter um ecrã semelhante ao apresentado na figura
  • 13. Private Sub CommandButton1_Click() PorTexto End Sub Sub PorTexto() nome = TextBox1.Text apelido = TextBox2.Text completo = juntar(nome, apelido) TextBox3.Text = completo End Sub Function juntar(nome, apelido) juntar = nome + " " + apelido End Function Resolução do Exercício de Aplicação
  • 14. Variáveis – Uma variável é uma localização na memória, na qual são armazenados dados durante a execução de um programa. Cada variável possui um nome, um tipo de dados e um conteúdo. O nome da variável é a designação pela qual a podemos referenciar em módulos de programação. O tipo de dados define qual o tipo de informação que a variável pode conter (números inteiros, decimais, cadeias de caracteres alfanuméricas, datas, valores lógicos, etc...). O conteúdo representa o valor efectivo da variável em qualquer ponto da execução do programa. Variáveis REGRAS DE NOMENCLATURA PARA AS VARIÁVEIS SÃO AS SEGUINTES: o primeiro caracter deve ser uma letra de A a Z Não podem conter espaços, pontos finais(.), pontos de exclamação(!) ou os caracteres @, $, # e & Não podem exceder 255 caracteres. São únicas no módulo em que são declaradas.
  • 15. Sintaxe de declaração das variáveis é: DIM <Nome_variável> [As <tipo de dados>] Exemplos: Dim Nome as string Dim Idade As Integer Constantes – Uma constante, tal como o próprio nome indica, apresenta as mesmas características de uma variável, contudo, é declarada de forma diferente e o seu conteúdo não pode ser alterado durante a execução de um programa. Sintaxe de declaração das constantes é: Const <Nome_Constante> As <tipo de dados> = <Valor> TIPOS DE DADOS Integer Long Single Double String Date Currency Byte Boolean ….. Constantes
  • 16. Funções FUNÇÃO MsgBox - Apresenta no ecrã uma caixa de mensagem padrão de sistema operativo com o ícone e botões especificados. Retorna uma constante numérica do tipo Integer que contém informação acerca do botão escolhido pelo utilizador. SINTAXE: MsgBox (Prompt, Buttons, Title, Helpfile, Context) Prompt – Argumento do tipo String, correspondente ao texto que constitui a mensagem a ser apresentada na caixa de diálogo. O comprimento máximo do texto é de, aproximadamente, 1024 caracteres, dependendo da largura ocupada pelos mesmos. Buttons – Argumento opcional que está interligado com a apresentação da própria caixa no ecrã no que se refere aos icones e tipos de botões apresentados. Constante Valor vbCritical 16 vbQuestion 32 vbExclamation 48 vbInformation 64 As constantes utilizadas para a escolha do ícone são:
  • 17. Em relação ao número e tipo de botões: Constante Valor Descrição VbOkOnly 0 Apenas o botão OK VbOkCancel 1 OK e Cancel (Cancelar) VbAbortRetryIgnore 2 Abort (Abortar), Retry (Repetir) e Ignore (Ignorar) VbYesNoCancel 3 Yes (Sim), No (Não) e Cancel (Cancelar) VbYesNo 4 Yes (Sim) e No (Não). VbRetryCancel 5 Retry (Repetir) e Cancel (Cancelar). Valores retornados pela função Msgbox: Constante Valor VbOk 1 VbCancel 2 VbAbort 3 VbRetry 4 VbIgnore 5 VbYes 6 VbNo 7
  • 18. SINTAXE: InputBox (Prompt, Title, Default, Xpos, Ypos, Helpfile, Context) FUNÇÃO InputBox - Apresenta no ecrã uma caixa de mensagem padrão de sistema operativo que serve para recolher informações do utilizador, sob a forma de texto. Retorna uma constante do tipo string correspondente ao texto digitado na caixa de introdução. Prompt – Argumento obrigatório do tipo String correspondente à mensagem a ser apresentada na caixa Title – Argumento opcional do tipo String que define o texto da barra de título da janela. O texto predefinido corresponde ao nome da aplicação anfitriã, neste caso, «Microsoft Excel». Default – Argumento opcional do tipo String que representa o texto a aparecer automaticamente na caixa de introdução. Xpos – Opcional. Expressão numérica que especifica, em medidas de ecrã (twips), a distância horizontal entre a extremidade esquerda da caixa de diálogo e o limite esquerdo do ecrã. Se este argumento for omitido, a caixa é centrada automaticamente na horizontal. Ypos – Opcional. Expressão numérica que especifica, em medidas de ecrã (twips), a distância vertical entre a extremidade de topo da caixa de diálogo e o limite superior do ecrã. Se este argumento for omitido, a caixa é centrada automaticamente na vertical.
  • 19. Condições A Estrutura If… Then … Else 1º Modo (If…Then) A condição é testada. Se for verdadeira executa uma única instrução, após a cláusula Then Sintaxe If <condição> Then <instrução> Exemplo: If nome=“Ana” Then idade =45 Se a variável “nome” contém a String “Ana”, a variável “idade” ficará com o valor 45; caso contrário a instrução é ignorada.
  • 20. 2º Modo (If…Then…End If) A condição é testada. Se for verdadeira, executa um conjunto de instruções. Quando associamos mais do que uma instrução à cláusula Then, estamos perante um bloco If … End If, em que If inicia e End If termina o bloco condicional. Sintaxe: If <condição> Then [instrução1] [instrução2] [instrução3] [instrução4] […] End If
  • 21. Exemplo: If var1 < 0 Then Msgbox “Erro”, VbCritical var1=10 End If Se a variável «var1» é inferior a zero, será apresentada uma caixa de mensagem de erro e a variável ficará com o valor de 10
  • 23. Exemplo: If mensagem = 10 Then Msgbox “A sua caixa de correio está cheia!”, Vbexclamation disponivel=0 Else Este exemplo simula o acesso a uma caixa postal de um telemóvel com um limite máximo de mensagens igual a 10. Quando o contador do número de mensagens chega ao limite, o utilizador é alertado desse facto através de uma caixa de mensagem. Msgbox “A sua caixa de correio tem” & mensagens & “ mensagens!” disponivel=10-mensagens End If
  • 24. Ciclos A Estrutura Do… Loop 1º Modo (Do… While …Loop) O ciclo é verificado enquanto a condição especificada for verdadeira Sintaxe: Do While <condição> [instrução1] [instrução2] […] Loop