Você está na página 1de 58

Visual Basic for Applications

Resumo da matéria

Índice

Introdução ao desenvolvimento de aplicações no Excel .............................................................. 2


Visual Basic Editor ......................................................................................................................... 5
Editor, Opções ........................................................................................................................... 7
Indentar ..................................................................................................................................... 8
Comentar................................................................................................................................... 8
Editor, Operações...................................................................................................................... 9
Editor, Debug........................................................................................................................... 10
Entender o VBA ........................................................................................................................... 13
Propriedades e Métodos ......................................................................................................... 16
Itens comuns no código de VBA .............................................................................................. 18
Controlar o Fluxo dos Programas ............................................................................................ 24
Procedimentos ........................................................................................................................ 27
Funções ................................................................................................................................... 28
Funções Internas ..................................................................................................................... 30
Objetos de Intervalos (Ranges) ............................................................................................... 33
Ordenar Dados ........................................................................................................................ 40
Técnicas Avançadas de Programação ......................................................................................... 41
Filtrar Dados ............................................................................................................................ 41
Tabelas Dinâmicas ................................................................................................................... 42
Gráficos ................................................................................................................................... 45
Chamar aplicativos externos ................................................................................................... 46
Importar e Exportar Ficheiros ................................................................................................. 46
Conexão a uma Base de Dados Access.................................................................................... 47
Formulários para Utilizadores ..................................................................................................... 48
InputBox .................................................................................................................................. 48
MsgBox .................................................................................................................................... 49
Formulários Personalizados .................................................................................................... 50
Toolbox .................................................................................................................................... 51

Visual Basic for Applications para Excel 1


Visual Basic for Applications

Resumo da matéria
Mod. Introdução ao desenvolvimento de aplicações no Excel
1

Noção de Aplicação para folhas de cálculo

Uma folha de cálculo aplicacional é desenhada para que alguém, sem recurso a um
treino intensivo, consiga realizar o seu trabalho.

Tópicos de uma boa folha de cálculo aplicacional :

• Deixa o utilizador desempenhar a sua tarefa em muito menos tempo.


• Oferece a solução apropriada para o problema.
• Cumpre o objetivo para que foi criada.
• Produz resultados certos e livre de “bugs”.
• Resolve erros sem a interação do utilizador.
• O interface é claro e consistente.
• A estrutura da folha, o seu código, e os elementos estão devidamente
documentados.
• É desenhada para que possa ser alterada sem grandes impactos no código.
Objetivo das aplicações para folhas de cálculo

• Como folha de diapositivos.


• Ferramenta de introdução de informação.
• Gestor de Bases de Dados (tabelas).
• Gerador de Formulários.
• Processador de Texto.
Resumidamente o Excel consegue ser uma ferramenta bastante versátil, ao ponto de
conseguir realizar as mesmas operações que outras aplicações existentes no mercado.

No entanto é de referir que as outras aplicações existem porque são dedicadas para um
determinado objetivo, para o qual o Excel não é.
Sendo a opção do uso do mesmo para um determinado fim ter de ser bem ponderado.

Visual Basic for Applications para Excel 2


Visual Basic for Applications

Resumo da matéria
Mod. Introdução ao desenvolvimento de aplicações no Excel
1 Determinar as necessidades dos utilizadores

Quando se inicia um projeto em Excel, um dos principais passo é identificar realmente o


que é necessário ao utilizador. O não conseguir deste passo basicamente resulta em
tempo perdido, e não satisfação do utilizador.

Passos a recordar

• Não assumir que sabemos o que o utilizador necessita.


• Se possível falar diretamente com quem vai trabalhar com a aplicação e não a
chefia direta ou indireta.
• Aprender o que é feito, para preencher os requisitos do utilizador.
• Entender o nível de conhecimento do utilizador do que faz, e tecnicamente para
desempenhar a função no futuro.
• Identificar o nível de hardware disponível, e o que vai ser necessário.
• Identificar as versões e línguas do Excel existente.
• Tentar perceber a longevidade da aplicação, para alterações futuras.

Planear a aplicação orientada para as necessidades do utilizador


Antes de começar a desenvolver como se não existe-se amanhã, vamos pensar como
vamos conseguir atingir as necessidades do utilizador. Não se faz uma casa sem projetos
em papel.

Então no período de planeamento devemos considerar pelo menos o seguinte:

• Estrutura de ficheiros – se queremos um só livro de Excel, vários ficheiros ou um


modelo.
• Estrutura da informação – Importante para o crescimento da informação.
Devemos por toda a informação na folha de Excel ou Bases de Dados externas.
• Formulas versus VBA – usar formulas ou programar formulas, ambas tem
vantagens e desvantagens.

Visual Basic for Applications para Excel 3


Visual Basic for Applications

Resumo da matéria

Mod. Introdução ao desenvolvimento de aplicações no Excel

1
Preocupações para com o utilizador

• Testar a aplicação
• Tornar a aplicação “Bulletproof”
• Tornar a aplicação apelativa e intuitiva
• Documentar os esforço de desenvolvimento
• Atualizar a aplicação quando necessário

Problemas comuns em desenvolvimento

• Versão de Excel instalada no utilizador


• Linguagem da versão do Excel
• Velocidade de processamento do computador
• Espaço do Ambiente de Trabalho (resolução)

Visual Basic for Applications para Excel 4


Visual Basic for Applications

Resumo da matéria

Mod. Visual Basic Editor


2
Depois de ativar o tabular Programador, via Ficheiro -> opções -> Friso, ganhamos acesso
ao seguinte ícone:

Explorador
do Projeto

Área para Código


O Código pode ser inserido
manualmente ou via gravação de
Macros

Propriedades
dos Objetos

Visual Basic for Applications para Excel 5


Visual Basic for Applications

Resumo da matéria

Mod. Visual Basic Editor

2 Editor
A inserção e remoção de módulos, é efetuada via o menu de contexto acedido quando
clicamos com o botão direito do rato em cima de um livro ou folha.

Para adicionar
Formulários ou Para Remover
Módulos Formulários ou
Módulos

Visual Basic for Applications para Excel 6


Visual Basic for Applications

Resumo da matéria

Mod. Visual Basic Editor

2 Editor, Opções
Opções

Verifica
automaticamente a
sintaxe editada.

Obriga a declaração
das variáveis.
Mostra os valores
para as variáveis
Lista que estamos a usar.
automaticamente os Muito útil para
membros do objeto realizar depuração.

Mostra os argumentos
disponíveis para os objetos
que estamos a trabalhar.

Visual Basic for Applications para Excel 7


Visual Basic for Applications

Resumo da matéria

Mod. Visual Basic Editor

2 Editor, Código

Indentar
Ação que tem por objetivo de indicar como estão os elementos
hierarquicamente dispostos dentro do código.

Código Indentado Código não Indentado


Sub exemplo() Sub exemplo()
Dim variavel_a As String Dim variavel_a As String
Dim Variavel_b As Integer Dim Variavel_b As Integer
variavel_a = "Exemplo" variavel_a = "Exemplo"
variavel_a = "Exemplo b" variavel_a = "Exemplo b"
Variavel_b = 0 Variavel_b = 0
For n = 1 To 10 For n = 1 To 10
Variavel_b = Variavel_b + n Variavel_b = Variavel_b + n
Next n Next n
MsgBox variavel_a MsgBox variavel_a
End Sub End Sub

Remover Indentação

Comentar
Ação que tem por objetivo de indicar ao compilador que deve
ignorar determinada porção de código . Podemos comentar uma
simples linha adicionado ao seu inicio o símbolo ‘ , ou usamos o
botão indicado para comentar blocos de código.

Remover Comentários

Visual Basic for Applications para Excel 8


Visual Basic for Applications

Resumo da matéria

Mod. Visual Basic Editor

2 Editor, Operações

Correr código

Suspender código

Parar código

Correr Código - O compilador corre o código, a partir do procedimento, onde o


cursor de texto esteja localizado. Caso não esteja localizado em
nenhum procedimento o VBA fará aparecer uma caixa com os
procedimentos possíveis de serem processados.
Suspender Código - O compilador para o processamento de código onde estiver no
momento. Ficando uma barra amarela a destacar na linha de
código onde ficou. Sendo possível realizar o resumo do código.
Para código. - O compilador cessa o processamento de código.

Visual Basic for Applications para Excel 9


Visual Basic for Applications

Resumo da matéria

Mod. Visual Basic Editor

2 Editor, Debug

Breakpoint

Cursor

Breakpoint - Linha de código onde o compilador deverá para, para análise da


informação pretendida por parte do programador.
Cursor - Local onde estamos a editar o código.

Passo a passo
Correr até ao cursor

Adiciona um Watch

Adiciona um Watch (modo rápido)

Limpar todos os Breakpoints

Ativar/Desativar Breakpoints

Passo a Passo - Corre o código linha a linha.


Correr até ao cursor - Corre o código até encontrar a linha onde o cursor
está.
Adiciona um Watch - Abre a janela de inserção de Watch’s
Limpar todos os Breakpoints - Remove todos os Breakpoints existentes.
Ativar/Desativar Breakpoints - Ativa ou Desativa os Breakpoints na linha de código
onde estiver o cursor.

Visual Basic for Applications para Excel 10


Visual Basic for Applications

Resumo da matéria

Mod. Visual Basic Editor

2 Editor, Debug, Watch

Compilador parado

Compilador a correr

Visual Basic for Applications para Excel 11


Visual Basic for Applications

Resumo da matéria

Mod. Visual Basic Editor

2 VBAProject, Properties

Nome do projeto.

Descrição do projeto.

Argumentos a passar
ao projeto quando é
compilado.

Protege o projeto de Insere uma palavra


modo que não se possa passe para aceder a área
ver ou modificar. de desenvolvimento do
projeto.

Visual Basic for Applications para Excel 12


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA


3
Introdução ao VBA
O Excel 5 foi a primeira aplicação que usou VBA. A melhor definição para o VBA é ser a
linguagem script comum as aplicações da Microsoft. Deste modo dominando o VBA em
Excel, podemos saltar diretamente para outras aplicações como por exemplo o Access
ou o Project, onde conseguimos também usar o VBA.
O segredo de usar VBA e outras aplicações esta em perceber o modelo para cada
aplicação. O modelo de objetos do Excel, expõem vários potentes objetos para análise,
como as folhas, gráficos, tabelas dinâmicas, etc. Quanto mais se usar o VBA, mais vamos
descobrir e melhor vamos entender o modo como o VBA funciona.

Modelo por Objetos

Visual Basic for Applications para Excel 13


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Componentes do VBA
Código Podemos desempenhar ações por executar código, escrito ou
gravado em módulos.
Módulos Os módulos de VBA são gravados nos Livros, e são visualizados e
editados pelo editor de VBA o VBE. Os módulos são constituídos
por procedimentos.
Procedimentos Um procedimento é basicamente um bocado de código que
desempenha uma acão. Existem dois tipos de procedimentos:
Sub: Conjunto de código que pode ser usado das mais variadas
maneiras.
Sub Exemplo()
Texto = “Informação.”
MsgBox “Isto é uma ” & Texto
End Sub
Funções: Ao contrario dos Sub Procedimentos a função pode devolver um
valor.
Function Duplica(Arg1)
Duplica = Arg1 * 2
End Function
Objetos Manipula os objetos contidos na aplicação. Os objetos tem
propriedades que podem ser configuradas.
Coleções Uma coleção consiste num grupo de objetos dentro de outro. Tal
como as folhas dentro de um livro de Excel.
Hierarquia de Objetos
Quando nos referimos a hierarquia dos objetos definimo-la com o
ponto final “.” .
Application.Workbook(“Exemplo.xlsx”)
Application.Workbook(“Exemplo.xlsx”).Worksheets(“Folha1”)
Application.Workbook(“Exemplo.xlsx”).Worksheets(“Folha1”).Range(“B2”)

Visual Basic for Applications para Excel 14


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Componentes do VBA (cont.)


Objetos Cativos Se definirmos que estamos a trabalhar como um determinado
objeto, a hierarquia anterior é definida como sendo a ativa.
valor=Worksheets(“Folha1”).Range(“B2”).Value
Propriedades dos Objetos
Os objetos tem propriedades. As propriedades podem são
basicamente as definições do objeto. Somente existem definições
que podem ser escritas e lidas e outras somente podem ser lidas.
valor=Worksheets(“Folha1”).Range(“B2”).Value (Leitura)
Worksheets(“Folha1”).Range(“B2”).Value=Valor (Escrita)
Variáveis e Constantes
São objetos que tem um nome por nós definido e com significado
para o programador, que tem por objetivo guardar um valor que
pode variar no tempo, ou melhor com o decorrer da aplicação. A
diferença entre as Variáveis e as Constantes, é que no tempo as
Constantes não alteram o valor.
valor=Worksheets(“Folha1”).Range(“B2”).Value
Métodos Os métodos são ações que a um determinado objeto podem ser
aplicadas.
Range("A1").Activate
Eventos Alguns objetos tem características que podem desempenhar
ações quando acontece um evento.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
‘ Código
End Sub

Visual Basic for Applications para Excel 15


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Propriedades e Métodos

Todos os objetos tem propriedades, tal como foi dito anteriormente uns são apenas de
leitura, e outras propriedades devolvem e recebem valores, se assim o desejarmos.
Exemplo de uma propriedade de leitura e uma de escrita:

Sub ShowValue() Sub ChangeValue()


MsgBox Worksheets("Folha1").Range("A1").Value Worksheets("Folha1").Range("A1").Value=20
End Sub End Sub

Exemplo de uma propriedade só de leitura:


Range("A1").Row
Os objetos que tem métodos, como já foi referido, são acionados como o exemplo
abaixo.
Exemplo de um método :
Sub ApagaValor()
Range("A1").Delete
End Sub

Propriedades da Aplicação Úteis


Activecell A Célula ativa
ActiveChart O Gráfico cativo ou o gráfico existente na folha. Se não
existir gráfico não devolve valor.
ActiveSheet Folha Ativa
ActiveWorkbook O Livro Ativo
Selection O objeto Selecionado
Exemplo:
Sub informacao()
Dim texto As String
texto = "Célula Activa" & " " & Activecell.Value & Chr(13)
texto = texto + "Folha Activa" & " " & ActiveSheet.Name & Chr(13)
texto = texto + "Livro Activa (nome)" & " " & ActiveWorkbook.Name & Chr(13)
texto = texto + "Livro Activa (Nome com Directoria)" & " " & ActiveWorkbook.FullName
MsgBox texto, vbInformation
End Sub

Visual Basic for Applications para Excel 16


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Objetos que determinam intervalos de células


Grande parte do trabalho em VBA envolve células e intervalos em folhas. No entanto
existe um primeiro conceito sobre intervalos de célula, que é necessário entender
Intervalo Relativo e Intervalo Absoluto.
Quando criamos uma macro gravada, a ferramenta dependente da opção de intervalos
Relativos ou Absolutos, e define na função Range as células da seguinte maneira:

Intervalo Absoluto : Intervalo Relativo:

Range(“C2”).Select Range(“A1”).Select
Activecell.value=30 Activecell.Offset(2,1).Value=30

Existe ainda mais uma maneira de referenciar células, que é usando a função cell.
Range(“A1”).Select
Activecell.offset(0,0).Value=30
Neste caso ia colocar o valor 30 na célula ativa, porque a posição (0,0) é a própria célula.
No caso de ser (0,1) seria a célula a direita.

Exemplos de definições de intervalos com a propriedade Range


Range(“A1”).value=1 Coloca na célula A1 o valor 1
Range(“NomesdeCelulas”).value=1 Coloca na(s) célula(s) definidas no gestor de
nomes com “Nomesdecelulas” o valor 1
Range(“D1:E2”).Value=1 Coloca nas células D1,D2,E1 e E2 o valor 1
Range(“D1”,”E2”).Value=1 Coloca nas células D1,D2,E1 e E2 o valor 1
Range(“D1:D10 A5:H5”).Value=1 Coloca na célula D5 o valor 1, pois é a única
que intersecta os dois Intervalos
Range(“B1,B3,B5,B7,B9”).Value=1 Coloca o valor 1, nas células B1,B3,B5,B7 e
B9

Visual Basic for Applications para Excel 17


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA

Comentários
Os comentários servem para descrever o propósito de uma porção de código, alteração
ou documentação do mesmo.
Sub Comentarios()
' Este procedimento poem o variável x a 0.
a=0
' Mostra o resultado
MsgBox a
End Sub

Tipos de Variáveis e Constantes


Tipo de Variável/Constante Bytes Usados Intervalo de Valores

Byte 1 0 a 255
Boolean 2 Verdadeiro ou Falso
Integer 2 –32,768 a 32,767
Long 4 –2,147,483,648 to 2,147,483,647

Single 4 -3.402823E38 a –1.401298E-45 (para valores negativos);


1.401298E-45 a 3.402823E38 (para valores positivos)

Double 8 -1.79769313486232E308 a -4.94065645841247E-324 ( para valores negativos );


4.94065645841247E-324 a 1.79769313486232E308 ( para valores positivos )

Currency 8 -922,337,203,685,477.5808 a 922,337,203,685,477.5807

Date 8 Janeiro 1, 0100 to Dezembro 31, 9999

Object 4 Qualquer referencia a um objeto


String (variável em tamanho) 10 + tamanho da String 0 a aproximadamente 2 biliões de carateres

String (tamanho fixo) Tamanho da String 1 a 65,400 carateres

Variant* (com números) 16 Qualquer valor numérico até limite do tipo Double.
Pode ainda conter valores especiais como o Vazio (Empty), Error (Erro), Nothing (Nada),
e Null (Nulo).
Variant* (com letras) 22 + tamanho da String 0 a 2 biliões
User-defined Varia Dependente dos elementos

Variáveis variant, este tipo de variáveis existem automaticamente quando não


definimos o tipo de variável que usamos. Tem um comportamento erróneo, e
comportam-se como um camaleão.
Para determinar o tipo de variável, caso seja necessário, usamos a função Typevar.
a= “123”
Msgbox TypeVar(a)

Visual Basic for Applications para Excel 18


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Âmbito das Variáveis e Constantes

Âmbito Como a variável ou constante é declarada


Procedimento Inclui Dim ou Static dentro do procedimento
Modulo Inclui Dim ou Private antes do primeiro procedimento do modulo
Todos os Inclui Public antes do primeiro procedimento do primeiro modulo
Módulos

Exemplos:
Dim a As Integer Dim Primeiro As Long Dim Numero As Single
Dim DatadeHoje As Date Dim Nome As String Dim Valor

Constantes definidas e pré-definidas.


As constantes definidas são definidas pelo utilizador e as pré-definidas vem com o VBA

Exemplos definidos pelo Utilizador


Const a As Integer = 10
Const Primeiro As Long =150000
Const Nome As String = “Pedro”

Exemplos definidos pelo VBA


xlLandscape
xlPotrait
True
False

Visual Basic for Applications para Excel 19


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Tabelas de operações

Operador Operação Ordem de precedência

^ Exponenciação 1

* / Multiplicação e Divisão 2

+ − Adição e Subtração 3

& Concatenação 4

=, <, >, <=, >=, <> Comparação 5

Operador O que faz

Not Nega valor lógico

And Conjunção

Or Disjunção

Xor Ou Exclusivo

Eqv Equivalência

Imp Implicação Lógica

Visual Basic for Applications para Excel 20


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Matriz (Arrays)

Uma Matriz é um grupo de elementos do mesmo tipo que tem um nome comum, e são
acedidos e controlados por um cursor.
Arrays Monodimensionais
Dim Numeros(1 To 100) As Integer

Numeros(2) = 10

Arrays Multidimensionais
Dim Numeros(1 To 100, 1 to 10) As Integer

Numeros(2,1) = 10

Redimencionar um Array
X=200
Redim Numeros (1 to x)

Objetos de tipo Pré-Definido


São variáveis que o seu tipo e estrutura é determinada pela copia das suas
características, seja ele que tipo for.
Exemplo:

Dim Celula As Range
Set Celula = Worksheets(“Folha1”).Range(“A1”)
Celula.Value = 30
Celula.Font.Bold = True

Visual Basic for Applications para Excel 21


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Variáveis com tipo definido pelo utilizador

São variáveis que a sua estrutura é definida pelo utilizador.


Exemplo :
Type Cliente
Empresa as string
Contacto as string
Plafond as Double
End Type

Dim clientes as Cliente

Cliente.empresa = “Ferramentas Zero”


Cliente.Contacto = “António”
Cliente.Plafond = 1405500

Visual Basic for Applications para Excel 22


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Manipulação de Objetos

With [objecto]

End With
Serve para indicar que as seguintes operações indicadas após o ponto são referentes ao
objeto indicado a seguir ao With. O dois exemplos de código realizam a mesma
operação.

… With Selection.Font
Selection.Font.Name = “Arial” .Name = “Arial”
Selection.Font.Bold = True .Bold = True
Selection.Font.Size = 12 .Size = 12
… End With

For Each

Next
Tem como objetivo percorrer um objeto que seja composto como um Array.
For Each Item In ActiveWorkbook.Worksheets
MsgBox Item.Name
Next Item

Visual Basic for Applications para Excel 23


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Controlar o Fluxo dos Programas
Goto
Funciona por etiquetas, quando o fluxo é mudado pela chamada de uma etiqueta GoTo
[etiqueta], o código a ser executado passa a ser a linha de código seguinte à etiqueta.

Sub ExemploGoto()
UserName = InputBox(“Insira o seu nome:")
If UserName <> “Pedro" Then GoTo NomeErrado
MsgBox (“Ola Pedro ...")
Exit Sub
NomeErrado:
MsgBox “Só o Pedro pode visualizar isto."
End Sub

If (condição logica) Then



Else
..
Endif
O fluxo do código é controlado pela condição lógica definida a seguir ao IF. Se a condição
lógica for verdadeira executa o pedaço de código seguinte ao IF, se for falsa executa o
pedaço de código seguinte ao Else. O Endif define o término do código a executar
quando a condição é falsa.
É normal existirem if’s encadeados para controlar fluxos do programa, ou valores de
variáveis.


If Numero < 1 Then
MsgBox “Menor que 1"
Else
MsgBox “Maior ou igual a 1"
End If

Visual Basic for Applications para Excel 24


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Select Case
É semelhante ao IF, somente o fluxo da aplicação, é controlado pelo intervalo de valores
que a variável pode ter.
Temperatura = InputBox(“Insira a temperatura:")
Select Case Temperatura
Case Is < 10
Msg = “Está Frio"
Case 10 To 20
Msg = “Está Normal"
Case Else
Msg = “Está Calor"
End Select
MsgBox Msg

For - Next
O For-Next serve para realizar iterações, percorre o código existente entre o For e o
Next, tantas vezes quantas as definidas no intervalo. No exemplo a seguir, a variável
Valor, iria assumir o valor de 1 a 100, e correr o código 100 vezes.


Soma = 0
For Valor = 1 To 100
Soma = Soma + Valor
Next Valor
MsgBox Soma

Visual Basic for Applications para Excel 25


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Loops

É igual ao For .. Next, que nestes casos o código é corrido enquanto a condição lógica
for verdadeira.
Para melhor se entender, o melhor é traduzir a letra e interpretar o que está digitado.

Do While - Faz enquanto (a condição for verdade)


Do Until - Faz até (a condição for verdade)
While - Enquanto (a condição for verdade)

Do While Do Until While


… … …
Loop Loop Wend

Mes=1 Mes=1 Mes=1


Do While Mes<13 Do Until Mes<13 While Mes<13
Mes=Mes+1 Mes=Mes+1 Mes=Mes+1
‘… Código ‘… Código ‘… Código
Loop Loop Wend

O código a executar é definido pelo LOOP ou o Wend, no caso do While. Ressalva-se a


necessidade da existência do controlo da variável que torna a condição lógica verdadeira
ou falsa, pois o LOOP pode ser interminável, ou então nunca entrar nele.

Visual Basic for Applications para Excel 26


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Procedimentos

Um procedimento é uma conjunto de código em VBA que reside num modulo de VBA.
Procedimento Sub
[Public | Private] [Static] Sub nome ( [argumentos] )
[...]
[Exit Sub]
[...]
End Sub

Private Indica que o procedimento somente é acessível por outros


procedimentos no mesmo módulo.
Public Indica que o procedimento é acessível por outros procedimentos no livro
inteiro.
Static Indica que as variáveis do são preservadas após o procedimento acabar
Sub Indica o início do procedimento.
Nome Nome do procedimento.
Argumentos Representa uma lista de variáveis, entre parêntesis, que podem ser
usadas dentro do procedimento.
Exit Sub Força a saída do procedimento.
End Sub Indica o fim do procedimento.

Exemplo da passagem de Argumentos aos procedimentos.


Sub ShowRoman(DecValue as Long)
Dim RomanValue As String
RomanValue = Application.WorksheetFunction.Roman(DecValue)
MsgBox RomanValue
End Sub

Como chamar um procedimento



Call ShowRoman(10)
….

Visual Basic for Applications para Excel 27


Visual Basic for Applications

Resumo da matéria
Mod. Entender o VBA
3 Itens comuns no código de VBA
Funções

A semelhança dos procedimentos as funções são definidas de modo semelhante,


somente a diferença é que as funções recebem argumentos, tratam-nos e podem
devolver um valor.

Function
[Public | Private] [Static] Function nome ( [argumentos] ) [As tipo]
[...]
[Exit Function]
[...]
End Function

Private Indica que a função somente é acessível por outros


procedimentos no mesmo módulo.
Public Indica que a função é acessível por outros procedimentos no livro
inteiro.
Static Indica que as variáveis do são preservadas após a função acabar
Function Indica o início da função.
Nome Nome da função.
Argumentos Representa uma lista de variáveis, entre parêntesis, que podem
ser usadas dentro da função.
Exit Function Força a saída do procedimento.
End Function Indica o fim do procedimento.
Tipo Tipo de valor que a função vai devolver.

As funções quando definidas num módulo, ficam disponíveis nas folhas existentes no
livro de Excel, com se de uma função interna se trata-se, podendo ser usada diretamente
nas células de uma folha como o sum().

Visual Basic for Applications para Excel 28


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Funções
Exemplo da passagem de Argumentos
Function User()
' Devolve o nome do utilizador de Windows
User = Application.UserName
msgbox user
End Function
…..
Msgbox “A comissão para 25000 é “ + str(Comissao(25000))
Msgbox “A comissão para 25000 é “ & Comissao(25000)

Function Comissao (Vendas)
Const Tier1 = 0.08
Const Tier2 = 0.105
Const Tier3 = 0.12
Const Tier4 = 0.14
Select Case Vendas
Case 0 To 9999.99: Comissao = Vendas * Tier1
Case 1000 To 19999.99: Comissao = Vendas * Tier2
Case 20000 To 39999.99: Comissao = Vendas * Tier3
Case Is >= 40000: Comissao = Vendas * Tier4
End Select
End Function

É de notar que o nome da função passa a ser a variável que vai retornar o valor
processado. No caso exemplo acima a variável Comissao para a função Comissao.

Visual Basic for Applications para Excel 29


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Funções Internas

Tal com o Excel o VBA também tem formulas abaixo uma lista das mais usadas:

Conversão Verificação Manipulação de strings

CBool (valor) IsArray (variável) Asc (string)


CByte (valor) IsDate (valor) Chr (código)
CCur (valor) IsEmpty (variável) LCase (string)
CDate (valor) IsNumeric (valor) Len (string | variável)
CDbl (valor) IsNull (variável) Mid (string, início [, comprimento])
CInt (valor) IsMissing (argumento) Left (string, comprimento)
CLng (valor) TypeName (variável) Trim (string)
CSng (valor) VarType (variável) LTrim (string)
CVar (valor) Str (número)
CStr (valor) Val (string)
InStr ([início,] string_geral, string_procura)
StrComp (string1, string2 [, método])

Manipulação de datas e horas

Year (data)
Month(data)
Day (data)
Now
DateSerial (ano, mês, dia)
Hour (hora)
TimeSerial (hora, minuto, segundo)
Minute (hora)
Weekday (data)
Second (hora)

Visual Basic for Applications para Excel 30


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Objetos dos Livros (Workbooks)

Identificação

[Application.]Workbooks(“Livro1”)
[Application.]Workbooks(1)
[Application.]ActiveWorkbook
[Application.]ThisWorkbook

Workbooks Collection

[Application.]Workbooks.Add
[Application.]Workbooks.Open(FileName)
[Application.]Workbooks.Close
[Application.]Workbooks.Count

Propriedades

workbook.Name
workbook.Path
workbook.FullName
workbook.Saved

Métodos

workbook.Activate
workbook.Save
workbook.Close(SaveChanges, FileName)
workbook.SaveAs(FileName)
workbook.Protect(Password, Structure, Windows)
workbook.Unprotect(Password)

Eventos

Private Sub Workbook_Activate()


Private Sub Workbook_Open()
Private Sub Workbook_Newsheet(ByVal Sh As Object)

Visual Basic for Applications para Excel 31


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Objetos das Folhas (Sheets)

Identificação

Sheets = Worksheets + Charts


[ActiveWorkbook.]Worksheets(“Folha1”)
[ActiveWorkbook.]Worksheets(1)
[ActiveWorkbook.]ActiveSheet
[ActiveWorkbook.]Worksheets Collection

Métodos

[ActiveWorkbook.]Worksheets.Add(Before, After, Count)


[ActiveWorkbook.]Worksheets.Count

Propriedades

worksheet.Name
worksheet.Visible

Visual Basic for Applications para Excel 32


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Objetos de Intervalos (Ranges
Ranges)
(Ranges)
Identificação

[ActiveSheet.]Range(“B2:C3”)
[ActiveSheet.]Range(“A1, B2:C3”)
[ActiveSheet.]Range(“Lucro”)
[ActiveSheet.]Range(“B2”, “C3”)
[ActiveSheet.]Cells(1, 2)
[ActiveSheet.]Range(“B2:C3”).Cells(1, 2)

Propriedades

range.Row
range.Column
range.Rows(Index)
range.Columns(Index)
range.Offset(RowOffset, ColumnOffset)
range.Value
range.Formula
range.FormulaLocal
range.FormulaR1C1
range.FormulaR1C1Local
range.Address(RowAbsolute, ColumnAbsolute)
range.Count

Métodos

range.Select
range.Calculate
range.Copy(Destination)
range.Cut(Destination)
range.Clear
range.ClearComments
range.ClearContents
range.ClearFormats
range.FillDown
range.FillUp
range.FillLeft
range.FillRight

Visual Basic for Applications para Excel 33


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Trabalhar com Ranges (copiar ranges)
Exemplo1

Range("A1").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Exemplo 2

Range("A1").Copy Range("B1")

Ou

Range("A1:B10").Copy Range("D1")

Exemplo 3

Workbooks(“arquivo1.xlsx").Sheets("Sheet1").Range("A1").Copy _
Workbooks(“arquivo2.xlsx").Sheets("Sheet1").Range("A1")

Exemplo 4
Range("A1").CurrentRegion.Copy Sheets(“Folha2").Range("A1")

Caso em que se copia toda a informação continua, não se sabendo o intervalo a copiar,
a partir de uma célula.
Neste caso a célula “A1”

Visual Basic for Applications para Excel 34


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Trabalhar com Ranges (mover ranges)

Exemplo

Range("A1:C6").Cut Range("H1")

Trabalhar com Ranges (obter um valor via formulário)

Exemplo

Dim Valor As Variant
Valor = InputBox(“Introduza um valor")
If Valor <> "" Then Range("A1").Value =Valor

Trabalhar com Ranges (Inserir um valor na linha vazia seguinte)

Exemplo

Dim LinhaSeguinte As Long
Dim Nome As String, Valor As String
Do
LinhaSeguinte = cells(Rows.Count, 1).End(xlUp).Row + 1
Nome = InputBox(“Introduza o nome")
If Nome = "" Then Exit Sub
Valor = InputBox(“Introduza o valor”)
If Valor = "" Then Exit Sub
cells(LinhaSeguinte, 1) = Nome
cells(LinhaSeguinte, 2) = Valor
Loop

Visual Basic for Applications para Excel 35


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Trabalhar com Ranges (Contar Células Selecionadas)
Exemplo 1

Celulas = Range(“A1:C3").Count

Exemplo 2

Celulas = Range(“Conjuntocelulas").Count

Em conjunto com gestor de nomes.

Trabalhar com Ranges (Eliminar todas as linhas Vazias)

Exemplo
Dim UltimaLinha As Long
Dim r As Long
Dim Contador As Long
Application.ScreenUpdating = False
UltimaLinha = ActiveSheet.UsedRange.Rows.Count + _ ActiveSheet.UsedRange.Rows(1).Row -
1
For r = UltimaLinha To 1 Step -1
If Application.WorksheetFunction.CountA(Rows(r)) = 0 Then
Rows(r).Delete
Contador = Contador + 1
End If
Next r
Application.ScreenUpdating = True
MsgBox Contador & " linhas vazias eliminadas."

Visual Basic for Applications para Excel 36


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Trabalhar com Ranges (Duplicar linhas)

Exemplo
Dim celula As Range
Set celula = Range(“A1")
Do While Not IsEmpty(celula)
If celula > 1 Then
Range(celula.Offset(1, 0), celula.Offset(celula.Value - 1, 0)).EntireRow.Insert
Range(celula, celula.Offset(celula.Value - 1, 1)).EntireRow.FillDown
End If
Set celula = celula.Offset(celula.Value, 0)
Loop

Trabalhar com Ranges (Determinar tipo de informação numa célula)

Exemplo
Function Conteudo(Rng)
Dim celula As Range
Set celula = Range(Rng)
Select Case True
Case IsEmpty(celula)
Conteudo = “Vazia"
Case Application.IsText(celula)
Conteudo = "Texto"
Case Application.IsLogical(celula)
Conteudo = "Lógico"
Case Application.IsErr(celula)
Conteudo = "Erro"
Case IsDate(celula)
Conteudo = "Data"
Case InStr(1, celula.Text, ":") <> 0
Conteudo = “Hora"
Case IsNumeric(celula)
Conteudo = "Numero"
End Select
End Function

Visual Basic for Applications para Excel 37


Visual Basic for Applications

Resumo da matéria

Mod. Entender o VBA

3 Itens comuns no código de VBA


Trabalhar com Ranges (Transpor)

Exemplo

Range("A1:A100").Value = Application.WorksheetFunction.Transpose(Array)

Trabalhar com Livros e Folhas (Gravar)

Exemplo

Dim Livro As Workbook
For Each Livro In Workbooks
If Livro.Path <> "" Then Livro.Save
Next Livro

Trabalhar com Livros e Folhas (Gravar e fechar todos os livros)

Exemplo

Dim Livro As Workbook
For Each Livro In Workbooks
If Livro.Name <> ThisWorkbook.Name Then
Livro.Close savechanges:=True
End If
Next Livro
ThisWorkbook.Close savechanges:=True

Visual Basic for Applications para Excel 38


Visual Basic for Applications

Resumo da matéria
Mod. Entender o VBA
3 Itens comuns no código de VBA
Usar as funções Internas do Excel

Exemplo

Dim NumerodeCelulas as Integer
Intervalo = Range("B1:B10")
NumerodeCelulas = Application.WorksheetFunction.Sum(Intervalo)
Cells(1, 1).Value = NumerodeCelulas

Visual Basic for Applications para Excel 39


Visual Basic for Applications

Resumo da matéria
Mod. Técnicas Avançadas de Programação
4
Ordenar Dados

Com o método Sort do objeto Range conseguimos criar ordenações configuráveis com mais que
um campo.

Uma chave


Dim LastRow As Integer
LastRow = Sheets("Caixa Registadora").UsedRange.Row - 1 + _
Sheets("Caixa Registadora").UsedRange.Rows.Count
Sheets("Caixa Registadora").Range("A1:I" & LastRow).Sort _
Key1:="Category", _
Order1:=xlDescending, _
Header:=xlYes

Duas chaves


Sheets("Caixa Registadora").Range("A1:I" & LastRow).Sort _
Key1:="Category", _
Order1:=xlDescending, _
Key2:="Withdrawal", _
Order2:=xlAscending, _
Header:=xlYes

Visual Basic for Applications para Excel 40


Visual Basic for Applications

Resumo da matéria
Mod. Técnicas Avançadas de Programação
4
Filtr
Filtrar Dados
Com o método Autofilter do objeto Range conseguimos criar filtros configuráveis com
mais que um campo.
Filtrar todos os registos do campo dois iguais a “ATM”

With Sheets("Caixa Registadora")
.Range("A1:I1").AutoFilter
.Range("A1:I1").AutoFilter Field:=2, Criteria1:=“ATM”
End With

Filtrar todos os registos do campo dois iguais a “ATM” ou “Credit Card”



.Range("A1:I1").AutoFilter Field:=2, Criteria1:="Credit Card", Operator:=xlOr, Criteria2:="ATM"

Filtrar todos os registos do campo dois iguais a “ATM” ou “Credit Card” do 1º Trimestre

.Range("A1:I1").AutoFilter Field:=2, Criteria1:="Credit Card", Operator:=xlOr, Criteria2:="ATM“
.Range("A1:I1").AutoFilter Field:=3, Criteria1:=“1

Para retirar o filtro, basta aplicar



Sheets("Caixa Registadora").ShowAllData

Estes exemplos são realizados sobre o ficheiro ManageData.xlsx

Visual Basic for Applications para Excel 41


Visual Basic for Applications

Resumo da matéria
Mod. Técnicas Avançadas de Programação
4 Tabelas Dinâmicas
As tabelas dinâmicas são a pérola do Excel, pois é uma ferramenta que em poucos
passos podemos cruzar grandes quantidades de informação rapidamente.

As Tabelas Dinâmicas tem os seguintes campos


• PivotCaches - Um grupo de objetos do objeto Workbook
• PivotTables - Um grupo de objetos do grupo Worksheet
• PivotFields - Campos para alimentar a Tabela Dinâmica
• PivotItems - Itens da configuração da Tabela Dinâmica e os seguintes
métodos
• CreatePivotTable - Criar a Tabela Dinâmica
• AddDataField - Adicionar o campo a Tabela Dinâmica

Visual Basic for Applications para Excel 42


Visual Basic for Applications

Resumo da matéria
Mod. Técnicas Avançadas de Programação
4 Tabelas Dinâmicas
Exemplo da construção da Tabela Dinâmica
Dim PTCache As PivotCache
Dim PT As PivotTable
Sheets("Caixa Registadora").Select
Set PTCache = ActiveWorkbook.PivotCaches.Create( _ ‘ Cria a cache da Tabela
Dinâmica
SourceType:=xlDatabase, _
SourceData:=Range("A1").CurrentRegion) ‘Adiciona uma nova
folha ao livro Worksheets.Add
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = "Tabela Dinamica"
Set PT = ActiveSheet.PivotTables.Add( _ ' Criar a Tabela
Dinâmica
PivotCache:=PTCache, _
TableDestination:=Range("A3"))
With PT ' Adiciona os Campos
‘.PivotFields(“").Orientation = xlPageField ‘Filtro
.PivotFields(“Qtr”).Orientation = xlColumnField ‘Colunas
.PivotFields("Category ").Orientation = xlRowField ‘Linhas
.PivotFields(“Withdrawal").Orientation = xlDataField ‘Valores
.DisplayFieldCaptions = False ‘Sem nome dos campos
End With

With ActiveSheet.PivotTables([Nome da Tabela Dinamica]).PivotFields([Nome do Campo a


Alterar]).
‘ Definições
End With

Adicionar um Campo
.Orientation = xlPageField Campo dos Filtros
.Orientation = xlColumnField Campo das Colunas
.Orientation = xlRowField Campo das Linhas
.Orientation = xlDataField Campo dos Totalizadores

Mudar o nome do Campo


.Caption = “Nome do Campo” Como String

Visual Basic for Applications para Excel 43


Visual Basic for Applications

Resumo da matéria
Mod. Técnicas Avançadas de Programação
4 Tabelas Dinâmicas

Remover um Campo
.Orientation = xlHidden

Definir a posição de um campo


.Position = 1

Tipo de Totalizador
.Function = xlCount Contagem
.Function = xlAverage Media
.Function = xlMax Máximos
.Function = xlMin Mínimos
.Function = xlProduct Produto
.Function = xlCountNums Contar Números
.Function = xlStDev Desvio Padrão
.Function = xlVar Variação

Ordenar
.AutoSort xlDescending, [Nome do Campo]

Filtrar
. PivotFilters.Add Type:=xlCaptionEquals, Value1:=[Filtro]

Especificar um formato Numérico


.DataBodyRange.NumberFormat = "0,000"

Aplicar um Estilo
.TableStyle2 = "PivotStyleMedium2"

Adicionar um Campo Calculado


.CalculatedFields.Add "Variance", "=Budget-Actual"
.PivotFields("Variance").Orientation = xlDataField

Visual Basic for Applications para Excel 44


Visual Basic for Applications

Resumo da matéria
Mod. Técnicas Avançadas de Programação
4 Gráficos

Adicionar Um Gráfico
Dim MyChart As Chart
Set Grafico = ActiveSheet.Shapes.AddChart.Chart
Grafico.SetSourceData Source:=Range(Células para Alimentar o Gráfico)
Grafico.ChartType = xl3DColumnClustered
Grafico.SetElement (msoElementChartTitleAboveChart)
Grafico.ChartTitle.Text = "Titulo do Gráfico"
Grafico.SetElement (msoElementPrimaryCategoryAxisShow)
Grafico.Axes(xlCategory).Select
Grafico.SeriesCollection(1).XValues = Range(Células para alimentar o Nomes das Series)

Alterar um Gráfico
ActiveSheet.ChartObjects(1).Activate
If Not ActiveChart.HasTitle Then
ActiveChart.SetElement (msoElementChartTitleAboveChart)
ActiveChart.ChartTitle.Text = "Default"
Else
ActiveChart.ChartTitle.Select
ActiveChart.ChartTitle.Text = "Teste"
End If

Visual Basic for Applications para Excel 45


Visual Basic for Applications

Resumo da matéria
Mod. Técnicas Avançadas de Programação
4 Chamar aplicativos externos

Sem parâmetros
Dim Program As String
Dim TaskID As Double
On Error Resume Next
Program = “notepad.exe“
TaskID = Shell(Program, 1)
If Err <> 0 Then
MsgBox “Não é possivel iniciar" & Program, vbCritical, "Erro"
End If

Com parâmetros
Dim Program As String
Dim TaskID As Double
On Error Resume Next
Program = “notepad.exe c:\autoexec.bat“
TaskID = Shell(Program, 1)
If Err <> 0 Then
MsgBox “Não é possivel iniciar" & Program, vbCritical, "Erro"
End If

Importar e Exportar Ficheiros


Carregar ficheiros
Dim Fname As String
Dim linha As Integer
linha = 1
Fname = [Ficheiro]
Open Fname For Input As #1
Do While Not EOF(1)
Line Input #1, txt
Sheets(1).Range("A" & linha).Value = txt
linha = linha + 1
Loop
Close #1

Visual Basic for Applications para Excel 46


Visual Basic for Applications

Resumo da matéria
Mod. Técnicas Avançadas de Programação
4 Importar e Exportar Ficheiros

Gravar ficheiros
Open [Ficheiro] For Output As #1
For linha = 1 To 10
txt = Sheets(1).Range("A" & linha).Value
Write #1, txt
Next
Close #1

Conexão a uma Base de Dados Access

Sub LigacaoAccess()
Dim cn As Object, rs As Object, myCalls As String
Dim MySql As String, dbfullname As String, myCnt As Long
dbfullname = “D:\Jogadores.accdb"
MySql = "SELECT * FROM jogadores;"
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & dbfullname & ";"
Set rs = CreateObject("ADODB.Recordset")
With rs
Set .ActiveConnection = cn
.Source = MySql
.Open , , 3, 3
NumerodeRegistos = .RecordCount
If NumerodeRegistos > 0 Then
.MoveLast: .MoveFirst
Sheets(1).Range("A1").CopyFromRecordset rs
End If
.Close
End With
cn.Close
Set rs = Nothing: Set cn = Nothing
End Sub

Visual Basic for Applications para Excel 47


Visual Basic for Applications

Resumo da matéria
Mod. Formulários para Utilizadores
5
InputBox

InputBox(Mensagem [,titulo][,predefinição][,xpos][,ypos][,ficheiro de ajuda],[tipo])

• Mensagem: Obrigatório. O texto apresentado na janela entrada de


dados.
• Titulo Opcional. O título da janela de entrada de dados
• Defeito Opcional. O valor defeito a ser devolvido pela função,
se o utilizador não inserir nada.
• Xpos,ypox Opcional. As coordenadas para colocação da janela no
ambiente de trabalho.
• Ficheiro de Ajuda Opcional. O ficheiro de ajuda.
• Tipo Opcional. Tipo de valor a ser devolvido pela função.

Código Tipo
0 Formula
1 Numero
2 String (texto)
4 Lógico (Verdadeiro ou Falso)
8 Uma referencia de celulas
16 Um valor erro
64 Um “Array” de valores

Visual Basic for Applications para Excel 48


Visual Basic for Applications

Resumo da matéria
Mod. Formulários para Utilizadores
5 MsgBox

MsgBox(Mensagem [,botões][,titulo][,ficheiro de ajuda])

• Mensagem: Obrigatório. O texto apresentado na janela de


entrada de dados.
• Botões Opcional. Código para definir que botões estão
disponíveis.
• Título Opcional. O título da janela de entrada de dados
• Ficheiro de Ajuda Opcional. O ficheiro de ajuda.

Constante Valor Apresenta os Botões


vbOKOnly 0 OK
vbOKCancel 1 OK e Cancel

vbAbortRetryIgnore 2 Abort, Retry e Ignore

vbYesNoCancel 3 Yes, No, e Cancel

vbYesNo 4 Yes e No

vbRetryCancel 5 Retry e Cancel

vbCritical 16 Icone Critical Message

vbQuestion 32 Icone Warning Query

vbExclamation 48 Icone Warning Message

vbInformation 64 Icone Information Message

Constante Valor Botão Activado


vbOK 1 OK

vbCancel 2 Cancel

vbAbort 3 Abort

vbRetry 4 Retry

vbIgnore 5 Ignore

vbYes 6 Yes

vbNo 7 No

Visual Basic for Applications para Excel 49


Visual Basic for Applications

Resumo da matéria
Mod. Formulários para Utilizadores
5
Formulários Personalizados

Para criar um formulário temos de ir a Programador, e depois Visual Basic. Com o botão
esquerdo do rato clicamos em cima de uma das folhas ou livro. O Form fica associado ao Livro
de Excel e não a uma folha.

Visual Basic for Applications para Excel 50


Visual Basic for Applications

Resumo da matéria
Mod. Formulários para Utilizadores
5
Toolbox

Label Textbox Combobox

Checkbox Listbox

OptionButton CommandButton

Frame
TabStrip

Image
MultiPage
ToogleButton ScrollBar Spinbutton

Visual Basic for Applications para Excel 51


Visual Basic for Applications

Resumo da matéria
Mod. Formulários para Utilizadores
5 Label

O Label serve para uma porção de texto no Form.

Textbox

O Textbox serve para inserir valores na área disponível.

Visual Basic for Applications para Excel 52


Visual Basic for Applications

Resumo da matéria
Mod. Formulários para Utilizadores
5 Combobox

A ComboBox serve para escolher um valor de uma lista predefinida, tendo o utilizador
a possibilidade de inserir um valor não presente.

Listbox

O ListBox serve para apresentar uma lista de itens previamente definidos, onde o
utilizador pode escolher múltiplos itens.

Visual Basic for Applications para Excel 53


Visual Basic for Applications

Resumo da matéria

Mod. Formulários para Utilizadores


5
Checkbox

A CheckBox serve para uma determinada opção, designar verdade ou falso.

OptionButton

O OptionButton serve para podermos escolher uma opção de um grupo de opções.

Visual Basic for Applications para Excel 54


Visual Basic for Applications

Resumo da matéria

Mod. Formulários para Utilizadores


5
ToggleButton

O ToggleButton serve a semelhança do Optionbutton para selecionar uma opção de um


grupo delas disponíveis.

Frame

O Frame serve para conter outros comandos, dentro de um Form.

Visual Basic for Applications para Excel 55


Visual Basic for Applications

Resumo da matéria

Mod. Formulários para Utilizadores


5 CommandButton

O CommandButton serve para desencadear uma operação, predefinida.

TabStrip

O Tabstrip é idêntico ao Multipage, somente não tem área para acomodar objetos, e é
mais difícil de controlar.

Visual Basic for Applications para Excel 56


Visual Basic for Applications

Resumo da matéria

Mod. Formulários para Utilizadores


5 Multipage

O Multipage serve para apresentar uma área dividida por tabuladores, onde por cada
um podemos inserir objetos.

ScrollBar

O Scrollbar serve para controlar um determinado objeto, por sua vez controlado por um
cursor numérico.

Visual Basic for Applications para Excel 57


Visual Basic for Applications

Resumo da matéria

Mod. Formulários para Utilizadores


5 Spinbutton

O Spinbutton serve para controlar um determinado objeto, por sua vez controlado por
um cursor numérico, a diferença é que incrementa um valor de cada vez.

Image

O Image serve para inserir uma imagem no Form. A imagem fica inserida no livro de
Excel.

Visual Basic for Applications para Excel 58

Você também pode gostar