SlideShare uma empresa Scribd logo
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

PDF
Interface grafica
PDF
Programando em python interfaces graficas com tk
PDF
Python Interface Gráfica Tkinter
PDF
07 programando em python - funcoes
PDF
Palestra sobre tkinter
PDF
14 programando em python - interfaces graficas com tk
Interface grafica
Programando em python interfaces graficas com tk
Python Interface Gráfica Tkinter
07 programando em python - funcoes
Palestra sobre tkinter
14 programando em python - interfaces graficas com tk

Mais procurados (10)

PPTX
Construção de interfaces gráficas com Tkinter
PDF
Cap07
PDF
Interfaces Gráficas em Java Parte 3
PPT
Linguagens de programação 12º M11
PPT
Linguagens de programação 12º M12
PPT
Introdução à análise orientada a objetos parte 1
PPTX
Aula 25 e 26 formulário acessibilidade
Construção de interfaces gráficas com Tkinter
Cap07
Interfaces Gráficas em Java Parte 3
Linguagens de programação 12º M11
Linguagens de programação 12º M12
Introdução à análise orientada a objetos parte 1
Aula 25 e 26 formulário acessibilidade
Anúncio

Semelhante a Excel Basic com VBA - Macros (20)

PPT
Aula1 c++ builder
PDF
Apostila Completa de Visual Basic
PDF
Elipse_E3_TREINAMENTO DE ELIPSE SCADA AUTO
PDF
Apostila microsoft visual basic
PPT
Programacao Com Asp V
PDF
Excel VBA: Aula 8
PDF
Apostila visual basic
PPT
Detalhando elementos do delphi
PDF
Tutorial visual c# express
PPT
Análise Orientada a Objetos - Objetos E Classes
PPTX
Computação Móvel 2012.2 - Android
PDF
Cap07
PDF
Jogo da velha
PDF
Interfaces windows em c sharp
PPT
Curso matlab 6 especiais
PDF
Apostila PhP com Wamp, 4a Parte
DOCX
Criando itens de menu em aplicativos nativos com a BlackBerry API
PDF
Internet I - Aula 07 - Primeiros Passos com JavaScript
PDF
Apostila ph pwamp_parte5
Aula1 c++ builder
Apostila Completa de Visual Basic
Elipse_E3_TREINAMENTO DE ELIPSE SCADA AUTO
Apostila microsoft visual basic
Programacao Com Asp V
Excel VBA: Aula 8
Apostila visual basic
Detalhando elementos do delphi
Tutorial visual c# express
Análise Orientada a Objetos - Objetos E Classes
Computação Móvel 2012.2 - Android
Cap07
Jogo da velha
Interfaces windows em c sharp
Curso matlab 6 especiais
Apostila PhP com Wamp, 4a Parte
Criando itens de menu em aplicativos nativos com a BlackBerry API
Internet I - Aula 07 - Primeiros Passos com JavaScript
Apostila ph pwamp_parte5
Anúncio

Mais de Joao Sousa (12)

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

Último (16)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Arquitetura de computadores - Memórias Secundárias
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Processos na gestão de transportes, TM100 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
COBITxITIL-Entenda as diferença em uso governança TI
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e liquidação no SAP Transportation Management, TM130 Col18

Excel Basic com VBA - Macros

  • 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