Anda di halaman 1dari 78

EXCEL - VBA

MS-Excel 2003 - VBA

ndice Analtico
Introduo ...................................................................................................................................... 6
O que o Curso de MS-Excel 2003 com VBA................................................................... 6
Objetivo do Curso ............................................................................................................... 6
A Quem se Destina............................................................................................................. 6
Conceitos Bsicos......................................................................................................................... 7
Histria do VBA .................................................................................................................. 7
Procedimentos x Funes .................................................................................................. 7
Procedimentos Public x Private.......................................................................................... 7
Objetos ............................................................................................................................... 7
A Estrutura de Objetos ....................................................................................................... 7
Colees............................................................................................................................. 8
Eventos............................................................................................................................... 8
Propriedades ...................................................................................................................... 9
Mtodos .............................................................................................................................. 9
Ambiente de Desenvolvimento........................................................................................... 9
Macros .......................................................................................................................................... 10
O que so Macros? .......................................................................................................... 10
Planejando as Macros ...................................................................................................... 10
Como Gravar uma Macro Usando o Gravador de Macros............................................... 11
Segurana de Macros ...................................................................................................... 12
Nvel de Segurana .......................................................................................................... 12
Como Alterar o Nvel de Segurana................................................................................. 12
Como Executar uma Macro Usando o Menu Ferramentas.............................................. 13
Como Alterar uma Macro no Editor do Visual Basic ........................................................ 14
Elementos da Janela do Editor do Visual Basic............................................................... 15
Modos de Visualizao..................................................................................................... 16
Como Atribuir uma Macro a um Boto na Barra de Ferramentas.................................... 18
Como Criar uma Funo .................................................................................................. 19
Como Inserir a Funo na Planilha .................................................................................. 20
Variveis e Constantes ............................................................................................................... 22
Escolhendo Nomes de Variveis...................................................................................... 22
Tipos de Variveis ............................................................................................................ 23
Abrangncia de uma Varivel .......................................................................................... 24
Variveis em Nvel do Procedimento (Locais) ................................................................. 24
Variveis Privadas ............................................................................................................ 24
Variveis Pblicas ............................................................................................................ 25
Obrigando a Declarao de Variveis.............................................................................. 25
Como Ativar Automaticamente a Obrigatoriedade da Declarao de Variveis ............. 25
Constantes........................................................................................................................ 26
Operadores................................................................................................................................... 27
Operadores de Comparao ............................................................................................ 27
Operadores Lgicos ......................................................................................................... 27
Operadores de Concatenao ......................................................................................... 27

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

MS-Excel 2003 - VBA

Estruturas de Controle................................................................................................................ 28
If...Then............................................................................................................................. 28
Select Case ...................................................................................................................... 28
Exerccio ........................................................................................................................... 28
Como Acessar o Editor do Visual Basic........................................................................... 29
Como Inserir a Funo na Planilha .................................................................................. 30
Estruturas de Repetio (Loops) ............................................................................................... 32
Do While...Loop ................................................................................................................ 32
Do Until...Loop .................................................................................................................. 32
Do...Loop While ................................................................................................................ 32
Do...Loop Until .................................................................................................................. 32
For...Next .......................................................................................................................... 32
For Each...Next................................................................................................................. 32
Exerccio ........................................................................................................................... 33
Mtodo Cells..................................................................................................................... 34
Propriedade Value ............................................................................................................ 34
Instruo With...End With ................................................................................................. 34
Exerccio ........................................................................................................................... 35
Caixas de Entrada e de Sada..................................................................................................... 36
Funo InputBox............................................................................................................... 36
Funo MsgBox................................................................................................................ 37
Exerccio ........................................................................................................................... 39
Procedimentos de Evento .......................................................................................................... 40
Eventos de Pasta de Trabalho ......................................................................................... 40
Eventos de Planilha .......................................................................................................... 40
Exerccio ........................................................................................................................... 41
Caixas de Dilogo Predefinidas ................................................................................................. 42
Controles de Formulrios........................................................................................................... 43
Exerccio ........................................................................................................................... 43
Como Exibir a Barra de Ferramentas Formulrios........................................................... 43
Propriedade Application ................................................................................................... 46
Como Atribuir a Macro ComboBox Caixa de Combinao ........................................... 46
Formulrios .................................................................................................................................. 48
O que um Formulrio?................................................................................................... 48
Como Criar um Formulrio ............................................................................................... 49
Como Inserir a Funo na Planilha .................................................................................. 49
Convenes para Nomes de Controles ........................................................................... 50
Explicaes dos Botes da Caixa de Ferramentas.......................................................... 51

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

MS-Excel 2003 - VBA

Sistema de Controle de Estoque ............................................................................................... 52


Formulrio frmTela_Inicial ................................................................................................ 52
Procedimento do Boto Exibir Planilha ............................................................................ 53
Procedimento do Boto Classificar Produtos................................................................... 53
Criando Procedimentos Automticos ............................................................................... 54
Como Inserir um Mdulo .................................................................................................. 54
Como Inserir a Funo na Planilha .................................................................................. 54
Propriedade DisplayAlerts ................................................................................................ 54
Mtodo Show.................................................................................................................... 54
Formulrio frmConsulta_Codigo....................................................................................... 55
Formulrio frmExibe_Dados............................................................................................. 55
Procedimento do Boto Consultar Produtos do Formulrio frmTela_Inicial .................... 57
Procedimento do Boto OK do Formulrio frmConsulta_Codigo .................................... 57
Funo Ucase................................................................................................................... 58
Mtodo Offset ................................................................................................................... 58
Funo Format ................................................................................................................. 58
Procedimento do Boto Cancelar do Formulrio frmConsulta_Codigo ........................... 58
Formulrio frmAtualiza_Cdigo ........................................................................................ 59
Formulrio frmAtualiza_Estoque ...................................................................................... 59
Procedimento do Boto Atualizar Estoque do Formulrio frmTela_Inicial....................... 60
Procedimento da Caixa de Combinao do Formulrio frmAtualiza_Codigo.................. 61
Procedimento do Boto Cancelar do Formulrio frmAtualiza_Codigo............................. 61
Procedimento da Caixa de Texto Quantidade do Formulrio frmAtualiza_Estoque........ 62
Evento Change ................................................................................................................. 62
Propriedade Enabled........................................................................................................ 62
Evento KeyUp................................................................................................................... 62
Procedimento do Boto OK do Formulrio frmAtualiza_Estoque .................................... 63
Funo IsNumeric............................................................................................................. 64
Propriedade Formula ........................................................................................................ 64
Procedimento do Boto Cancelar do Formulrio frmAtualiza_Estoque........................... 64
Procedimento do Boto Menores Estoques do Formulrio frmTela_Inicial ..................... 65
Propriedade ActiveWindow .............................................................................................. 65
Propriedade SelectedSheets............................................................................................ 65
Mtodo PrintPreview ........................................................................................................ 65
Procedimento do Boto Sair do Formulrio frmTela_Inicial............................................. 66
Propriedade ActiveWorkbook ........................................................................................... 66
Mtodo Save..................................................................................................................... 66
Mtodo Close.................................................................................................................... 66

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

MS-Excel 2003 - VBA

Depurao de Erros..................................................................................................................... 67
Tipos de Erros .................................................................................................................. 67
Erros de Linguagem ......................................................................................................... 67
Erros em Tempo de Execuo ......................................................................................... 67
Erros de Lgica................................................................................................................. 67
Estados de uma Aplicao ............................................................................................... 67
Execuo (Run Time)....................................................................................................... 68
Projeto (Design Time)....................................................................................................... 68
Interrupo (Break Mode)................................................................................................. 68
Ferramentas de Depurao.............................................................................................. 68
Como Exibir a Barra de Ferramentas Depurar................................................................. 68
Como Entrar no Modo de Interrupo .............................................................................. 69
Exerccio ........................................................................................................................... 70
Janela Verificao imediata.............................................................................................. 70
Como Inserir um Ponto de Interrupo ............................................................................ 71
Rotina de Tratamento de Erros .................................................................................................. 72
On Error GoTo linha ......................................................................................................... 72
On Error Resume Next ..................................................................................................... 72
On Error GoTo 0 ............................................................................................................... 72
Exerccio ........................................................................................................................... 72
Como Acessar a Listagem de Erros................................................................................. 74
Apndices..................................................................................................................................... 76
Recursos Novos ............................................................................................................... 76
Suporte a XML.................................................................................................................. 76
Trabalho em Grupo........................................................................................................... 76
Ortografia e Gramtica ..................................................................................................... 76
Maior Segurana .............................................................................................................. 76
Mudanas na Linguagem VBA ......................................................................................... 76
Funcionalidade de Lista.................................................................................................... 77
Integrao com o Windows SharePoint Services ............................................................ 77
Especificaes do MS-Excel 2003 ................................................................................... 78

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

MS-Excel 2003 - VBA

Introduo

O que o Curso do MS-Excel 2003 com VBA?


O curso aborda os conceitos avanados do MS-Excel 2003, apresentando uma viso geral sobre a linguagem Visual Basic for
Applications (VBA), onde os participantes aprendero a elaborar procedimentos (macros) de forma didtica e gradativa.
Este curso est voltado para pessoas que tenham conhecimentos bsicos do MS-Windows 98/XP e do MS-Excel 2003.

Objetivo do Curso
O objetivo do curso fornecer aos participantes os conceitos e fundamentos de programao no ambiente do VBA (Visual Basic For
Applications). O curso ser totalmente constitudo por aulas prticas nos computadores. No decorrer do curso, exponha suas dvidas
ao instrutor, de preferncia durante as aulas, de forma que todos possam tambm aproveitar as explicaes dadas. Acima de tudo, no
falte s aulas. Desse modo, voc conseguir acompanhar perfeitamente nosso curso, pondo-se em dia com a tecnologia mais
moderna, utilizada em qualquer ramo do conhecimento tcnico cientfico.

A Quem se Destina
A todas as pessoas que desejam programar no Excel 2003 utilizando o VBA.
A KA Solution deseja a todos que o curso seja um degrau a mais no sucesso pessoal ou profissional e agradece ao esforo e o talento
dos alunos e instrutores que, estes sim, do vida a este material.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

MS-Excel 2003 - VBA

Conceitos Bsicos

Antes de voc criar o primeiro procedimento em VBA, importante conhecer alguns conceitos bsicos da programao em Visual Basic.

Histria do VBA
VBA significa Visual Basic for Applications. O VBA uma evoluo do conceito de macro. As macros eram seqncias de comandos de
teclado que poderiam ser gravadas e depois executadas. Essa idia se mostrou extremamente til, j que muitas tarefas repetitivas
puderam ser simplificadas. Com a evoluo das macros, as seqncias passaram a ser editveis e foram includos comandos de
controle de fluxo, como por exemplo: If, For, While, etc.
Inevitavelmente elas se transformaram em verdadeiras linguagens de programao. O VBA foi uma evoluo das linguagens de macro.
Sua grande vantagem a uniformidade de cdigo: em vez do programador se adaptar a muitas linguagens de macro diferentes, so os
aplicativos que tm que ser compatveis com VBA.

Procedimentos x Funes
A diferena entre os procedimentos (Sub) e as funes (Function) que essas ltimas retornam um valor calculado. Um procedimento
executa apenas comandos, mas no retorna valor. A funo tambm pode executar qualquer tipo de comando, mas retorna um valor. A
escolha depende do contexto e das necessidades do programador

Procedimentos Public x Private


A diferena bsica entre esses dois tipos de procedimentos que o primeiro (Public) acessvel de qualquer parte do projeto. O
procedimento Private s pode ser chamado dentro do mesmo mdulo.
Se voc no quiser que a funo seja pblica, digite a palavra chave Private no lugar de Public. Caso voc omita essa informao, o
VBA considera todas as funes e procedimentos como pblicos.

Objetos
Cada elemento no Excel pasta de trabalho, planilha, grfico, clula, etc pode ser representado por um objeto em VBA. Um objeto
um tipo especial de varivel que contm dados e cdigo, e representa um elemento especfico no Excel.
Exemplos de objetos:
Application Representa o prprio Excel.
Range uma rea da planilha.
Workbook Representa uma pasta de trabalho.
Worksheet uma planilha

A Estrutura de Objetos
A compreenso do conceito de Estrutura de Objetos fundamental para comear a entender o VBA. Toda vez que voc quiser trabalhar
com um objeto no Excel, deve inicialmente construir uma expresso que retorna o objeto. Para criar a expresso, voc deve saber onde
o objeto se situa dentro da hierarquia de objetos, ou modelo de objetos.
A definio de qualquer objeto nada mais do que o detalhamento de seus componentes. Cada objeto tem um conjunto de
propriedades e eventos associados que so utilizados pelo cdigo. Veja a figura abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

MS-Excel 2003 - VBA

Com a estrutura de objetos em mos, fica mais fcil escrever programas em VBA. O importante observar que h uma hierarquia que
deve ser seguida. Se s h um workbook aberto no momento, voc pode comear o comando abaixo do nvel Workbook da estrutura de
objetos.
Todos os aplicativos do Office tm as suas prprias estruturas de objetos, que esto disponveis na documentao do programa.

Colees
Coleo um objeto que contm um grupo de objetos relacionados. Por exemplo, o objeto de coleo Worksheets contm objetos
Worksheet. Cada objeto dentro de uma coleo chamado elemento daquela coleo. Uma vez que colees so objetos, elas tm
propriedades e mtodos, como os objetos individuais. Exemplos de colees: Workbooks, Worksheets, Sheets, etc.

Eventos
Evento uma ao iniciada pelo usurio ou pelo sistema operacional, como por exemplo: um clique do mouse, um perodo de tempo,
etc. A maioria dos objetos do Excel, alm de suas propriedades, pode responder a alguns eventos predeterminados. Quando voc clica
em um boto, est ativando o evento Click.
Exemplos de eventos:
Click Ocorre quando o usurio clica com o mouse em cima do controle.
KeyDown Ocorre quando o usurio pressiona uma tecla e o controle est com o foco.
KeyPress Ocorre quando o usurio pressiona e solta uma tecla e o controle est com o foco.
MouseDown Ocorre quando o usurio pressiona o boto do mouse sobre o controle.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

MS-Excel 2003 - VBA

Propriedades
Propriedades so as caractersticas de um objeto, tais como tamanho, posio, cor, etc. As propriedades determinam a aparncia e o
comportamento de um objeto.
Exemplos de propriedades:
ActiveCel Representa uma clula ativa.
Formula Retorna ou define a frmula de um objeto.
Caption Representa o ttulo (rtulo) do formulrio ou outro controle. Voc pode digitar um ttulo com at 255 caracteres.
Name Identifica um controle dentro do cdigo dos programas. No podem existir controles com o mesmo nome.
Sintaxe: Para definir o valor de uma propriedade atravs do cdigo, digite o objeto na frente da propriedade, seguido de um ponto, o
nome da propriedade, um sinal de igual e o novo valor da propriedade.
Objeto.Propriedade = Valor
Veja um exemplo abaixo:
frmTela_Inicial.Caption = "Sistema de Controle de Estoque"

Mtodos
Mtodos so aes que podem ser realizadas pelo objeto. So rotinas prontas para cada controle.
Exemplos de mtodos:
Activate Ativa algum objeto.
Select Seleciona uma rea ou um objeto.
Offset Desloca o cursor entre as clulas.
Setfocus Move o foco para outro objeto.
Sintaxe: Para usar um mtodo, digite o objeto na frente do mtodo, seguido de um ponto e o nome do mtodo.
Objeto.Mtodo
Veja um exemplo abaixo:
frmTela_Inicial.Show

Ambiente de Desenvolvimento
Toda programao realizada no Editor do Visual Basic (VBE). O Editor do Visual Basic possui um ambiente integrado de
desenvolvimento, separado do MS-Excel. Os principais recursos para desenvolvimento de aplicativos no VBE so:
- Quando voc digita o nome de um objeto, um menu pop-up aparece exibindo todas as propriedades e mtodos relacionados ao objeto.
- Quando voc digita um comando, exibida uma janela de dica, com a sintaxe completa do comando.
- Durante a depurao, quando voc passa o ponteiro do mouse em cima de uma varivel, exibida uma pequena janela pop-up com o
seu valor.
- O VBE possui o Microsoft Forms, que uma poderosa ferramenta para criao de formulrios.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

10

MS-Excel 2003 - VBA

Macros

O que so Macros?
As macros so uma tima maneira de automatizar as tarefas rotineiras que voc executa no Excel. Na verdade, as macros so
pequenos programas criados em Visual Basic for Applications (VBA). Elas fornecem instrues necessrias para executar tarefas sem a
nossa interveno.
As macros so muito teis quando se executa determinadas tarefas de forma repetida. Elas gravam seqncias de comandos que so
armazenados em uma rotina em VBA. Ficam armazenadas na pasta de trabalho ativa ou em todas as pastas de trabalho. Quando elas
so gravadas, o Excel armazena informaes sobre cada passo realizado pelo usurio (at os erros). Depois de gravada, a macro pode
ser executada, repetindo todos os passos, mas de forma extremamente rpida.

Planejando as Macros
Como as macros so gravaes daquilo que executado pelos usurios, necessrio que os passos a ser dados sejam previamente
planejados. Caso contrrio, algumas aes podem no ser executadas de acordo com o esperado.
As macros precisam ser planejadas e devidamente revistas para que no haja problemas futuros. Como as macros so rotinas de
programao, necessrio que se tenha em mente exatamente o que voc deseja fazer, ou melhor, o que a macro faa. No preciso
saber nada sobre lgica de programao, mas apenas observar com cuidado a meta a ser atingida e quais sero os passos a ser dados
para que isso acontea.
Feito isso, voc pode comear a gravar as macros. Esse o processo que exige mais ateno, pois se algum passo for executado de
forma incorreta, tambm ser gravado.
Existem duas formas de criar uma macro: usando o gravador de macros ou digitando os comandos no Editor do Visual Basic.

Gravando uma Macro


O modo mais fcil para gravar uma macro usar o gravador de macros. O Excel converte cada comando selecionado em cdigo do
VBA medida que grava e, consequentemente, tambm grava os erros. Portanto selecione os menus e comandos com cuidado. Uma
vez que voc completou todas as tarefas, clique no boto Parar gravao para interromper o processo de gravao.
Quando voc for ligar o gravador de macros, ser solicitado uma tecla de atalho para a nova macro. E o Excel reserva algumas teclas
de atalho para uso prprio, como por exemplo <Ctrl> + <1>. Portanto, no utilize essas combinaes como teclas de atalho para
macros.
possvel armazenar suas macros na pasta de trabalho atual, em uma nova pasta de trabalho ou na pasta de trabalho pessoal de
macros. O armazenamento de suas macros na pasta de trabalho pessoal de macros disponibiliza as macros para todas as pastas de
trabalho do Excel.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

11

MS-Excel 2003 - VBA

A primeira macro que voc ir gravar ser para fazer formatao em qualquer clula. Primeiramente, insira uma nova planilha com o
nome Macros. Para gravar essa macro siga o roteiro abaixo.
Como Gravar uma Macro Usando o
Gravador de Macros
1. Selecione a clula A1 da planilha de
Macros.
2. Clique no menu Ferramentas, aponte em
Macros e clique na opo Gravar nova
macro.
3. No campo Nome da macro, digite
Formatacao.
4. No campo Tecla de atalho, digite a letra f
em letra minscula.
5. No campo Armazenar macro em, selecione
Esta pasta de trabalho.
6. No campo Descrio, digite o seu nome.
7. Clique no boto OK.

Observao: Ao digitar o nome da macro, voc no pode usar espaos em branco.Os nomes devero estar juntos ou separados pelo
underline.
8. Faa a seguinte formatao:
- Fonte: Arial Black
- Tamanho: 20
- Negrito
- Cor do preenchimento: amarelo
- Cor da fonte: vermelha
9. Clique no boto Parar gravao. Veja a
figura ao lado.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

12

MS-Excel 2003 - VBA

Segurana de Macros
Se voc tiver uma pasta de trabalho com macros, ao abrir essa pasta, ser exibida uma mensagem avisando que as macros esto
desativadas. O Excel desativou as macros por motivos de segurana, porque as macros podem conter vrus.

O Excel possui quatro nveis de segurana para macros, que so:


Nvel de Segurana

Descrio

Muito Alto
Alto
Mdio

Ativa somente as macros que estiverem instaladas em locais confiveis.


Ativa somente as macros que possuem assinatura de um certificado digital.
Exibe uma caixa de dilogo para voc decidir se as macros sero ou no ativadas. a opo mais
recomendada.
No exibe nenhum alerta e ativa as macros. No aconselhvel escolher essa opo.

Baixo

Assinatura digital uma marca eletrnica segura, baseada em criptografia. Esta assinatura confirma que a macro no foi alterada.
Criptografia a codificao e decodificao de mensagens de forma a garantir a segurana e o sigilo no envio de informaes.
Para alterar o nvel de segurana, siga o roteiro abaixo:
Como Alterar o Nvel de Segurana
1. Clique no menu Ferramentas, aponte em
Macro e clique em Segurana.
2. Clique na guia Nvel de segurana.
3. Marque a opo Mdio.
4. Clique no boto OK.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

13

MS-Excel 2003 - VBA

Para fazer um teste, salve e feche a pasta de trabalho. Abra-a novamente e ser exibida uma caixa de dilogo perguntando se voc
deseja habilitar as macros ou no. Veja a figura abaixo:

Executando uma Macro


Depois que uma macro gravada, voc pode fazer alteraes, incluir comentrios para que outros usurio possam entender o objetivo
de sua macro e test-la para verificar se est funcionando corretamente. Voc pode executar uma macro atravs do menu Ferramentas
ou usando uma tecla de atalho.
Como Executar uma Macro Usando o Menu
Ferramentas
1. Clique no menu Ferramentas.
2. Aponte em Macro.
3. Clique na opo Macros.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

14

MS-Excel 2003 - VBA

4. Na lista do campo Nome da macro,


selecione uma macro.
5. Clique no boto Executar.

Alterando uma Macro Usando o VBA


A sigla VBA significa Visual Basic for Applications. O VBA uma linguagem de programao orientada a eventos. Eventos so aes
dos usurios, como a criao de planilhas, seleo de clulas, clique em um boto, etc. Para alterar uma macro usando o VBA,
preciso abrir a macro no Editor do Visual Basic, que est incorporado ao Excel, mas ser aberto em uma janela separada.
Como Alterar uma Macro no Editor do Visual
Basic
1. Clique no menu Ferramentas, aponte em
Macro e clique na opo Macros.
2. Na lista do campo Nome da macro,
selecione uma macro.
3. Clique no boto Editar.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

15

MS-Excel 2003 - VBA

Ser exibida a janela do Microsoft Visual Basic. Veja abaixo as explicaes dos elementos dessa janela.

Elementos da Janela do Editor do Visual Basic


Nmero
1

Nome
Janela Explorer do Projeto

Janela Propriedades

Janela Cdigo

Descrio
um navegador onde voc pode exibir e alternar entre os objetos existentes no projeto. Exibe
uma lista hierrquica dos projetos e dos objetos que cada projeto contm (formulrios,
cdigos, classes, etc.).
Lista as propriedades dos objetos selecionados e suas configuraes atuais. Quando voc
seleciona vrios controles, a janela Propriedades exibe as propriedades comuns a todos os
controles selecionados.
Use esta janela para digitar, exibir e alterar os comandos em VBA. Voc pode abrir vrias
janelas de cdigo. Ao digitar um comando em VBA, preste ateno sintaxe e ortografia. Se
voc digitar incorretamente um cdigo ou usar uma sintaxe incorreta, o Excel exibir uma
mensagem de erro.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

16

MS-Excel 2003 - VBA

A janela do Explorer do Projeto possui trs cones na parte superior que permitem a alterao do modo de visualizao da estrutura do
objeto ativo. Veja a figura abaixo:

Modos de Visualizao
Boto

Nome

Funo

Exibir cdigo

Exibe a janela de mdulo que contm o cdigo VBA associado ao objeto selecionado.

Exibir objeto

Alterna entre a janela do Editor do Visual Basic e a janela original da aplicao, exibindo o objeto
selecionado.
Altera a exibio da janela do Explorer do Projeto entre a hierarquia dos objetos e uma lista simples
dos mesmos.

Alternar pastas

Voc ir fazer uma alterao na macro de Formatao. Use a barra de rolagem vertical da janela Cdigo e localize a seguinte linha:
Selection.Font.ColorIndex = 5. Veja a figura abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

17

MS-Excel 2003 - VBA

Altere o valor 5 para 3. Pressione as teclas <Alt> + <F11> para retornar ao Excel. Selecione uma planilha e execute novamente a macro
Formatao. Verifique que a clula selecionada ficou com a cor da fonte em vermelha. Porque a propriedade ColorIndex altera a cor da
fonte atravs de um ndice de cor. Veja na figura abaixo, os valores do ndice de cor:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

18

MS-Excel 2003 - VBA

Criar um Boto de Macro


O Excel permite que voc crie botes para macros. Quando voc vincula um boto a uma macro, qualquer usurio pode clicar no boto
para executar a macro. Voc pode atribuir uma macro a um boto da barra de ferramentas, a um item da barra de menus ou a um boto
criado na prpria planilha.
Como Atribuir uma Macro a um Boto na
Barra de Ferramentas
1. Clique no menu Ferramentas e na opo
Personalizar.
2. Clique na guia Comandos.
3. No campo Categorias, selecione Macros.
4. No campo Comandos, arraste o cone
para a barra de ferramentas de Formatao.

5. Clique com o boto direito do mouse no


cone
da barra de ferramentas.
6. Clique na opo Atribuir macro.
7. Selecione a macro Formatao
8. Clique no boto OK.
9. Clique no boto Fechar.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

19

MS-Excel 2003 - VBA

Criando uma Funo


Para criar uma funo, voc precisa digit-la e salv-la em um mdulo do Editor do Visual Basic. possvel criar uma funo
combinando frmulas matemticas, funes do Excel e cdigos do Visual Basic. As funes retornam um valor atravs dos dados
fornecidos pelo usurio, enquanto que as macros executam aes que alteram clulas, planilhas, pastas de trabalho, etc.
As funes comeam com a palavra Function e terminam com a expresso End Function. As macros gravadas ou criadas usando o
VBA, so designadas pelas palavras Sub e End Sub. Voc pode definir uma macro ou uma funo tanto como Pblica quanto como
Particular. Uma macro ou funo Pblica pode ser usada em todo o projeto ou pasta de trabalho.
A sintaxe de uma funo composta pelo nome, pelos argumentos, pelo cdigo, pelas frmulas e pelo valor retornado. Atribua um
nome a sua funo da mesma forma que voc faria ao gravar uma macro. Os argumentos so os dados que voc fornece e que
possibilitam que a funo calcule um resultado. O cdigo e as frmulas informam a funo quais clculos ela deve realizar. O valor
retornado o resultado que voc deseja que seja exibido aps a funo executar o clculo.
Na planilha abaixo, voc ir criar uma funo para testar a mdia do aluno. Se a mdia for maior ou igual a 7, exibir Aprovado, seno
exibir Reprovado.

Como Criar uma Funo


1. Pressione as teclas <Alt> + <F11>.
2. Clique no menu Inserir e na opo
Procedimento.
3. No campo Nome, digite TESTA_MEDIA.
4. No campo Tipo, marque a opo Funo.
5. No campo Escopo, marque a opo
Pblico.
6. Clique no boto OK.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

20

MS-Excel 2003 - VBA

Digite entre os parnteses do nome da funo, o nome da varivel: Media. Varivel um espao da memria utilizado para armazenar
temporariamente um valor que pode ser alterado durante a execuo da funo. Entre Public Function e End Function, digite a instruo
IF conforme a figura abaixo:

Como Inserir a Funo na Planilha


1. Pressione as teclas <Alt> + <F11>.
2. Selecione a planilha Funo SE.
3. Selecione a clula F4.
4. Clique no menu Inserir e na opo Funo.
5. No campo Ou selecione uma categoria,
escolha Definida pelo usurio.
6. No campo Selecione uma funo, escolha
TESTA_MEDIA.
7. Clique no boto OK.
8. Agora, copie a funo at a clula F11.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

21

MS-Excel 2003 - VBA

8. No campo Media, selecione a clula D4.


9. Clique no boto OK.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

22

MS-Excel 2003 - VBA

Variveis e Constantes

No desenvolvimento de um sistema, em alguns procedimentos voc precisa usar um valor vrias vezes, ou at passar esse valor para
outros procedimentos. Para conseguir realizar essa operao, voc precisa criar variveis.
Varivel um local da memria utilizado para armazenar temporariamente um valor que pode ser alterado durante a execuo do
procedimento. Toda varivel deve possuir um nico nome com at 255 caracteres e precisa iniciar por uma letra.

Escolhendo Nomes de Variveis


Existem algumas regras para nomear as variveis. Um nome de varivel:
- Deve iniciar por uma letra.
- No pode conter espao em branco, ponto (.), ponto de exclamao (!) ou os caracteres @, &., $ e #.
- No pode conter operador matemtico ou de comparao.
- Deve ter um nome nico dentro de seu escopo.
- No deve exceder a 255 caracteres.
- No pode ter o nome de um mtodo, propriedade, funo, argumento ou palavra-chave reservada.
O VBA no diferencia letras maisculas de minsculas, mas preserva a digitao de letras maisculas na instruo aonde o nome foi
declarado.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

23

MS-Excel 2003 - VBA

Tipos de Variveis
Aps voc definir um nome para uma varivel, ela ser armazenada na memria do computador, ocupando espao. preciso
dimensionar a varivel para um tipo de dado especfico, para que o espao ocupado na memria seja o menor possvel. Declarar uma
varivel informar ao VBA o tipo de dado que ela ir armazenar. As variveis podem ser dos seguintes tipos:
Tipo

Tamanho

Intervalo

Byte
Boolean
Integer
Long
Single

1 byte
2 bytes
2 bytes
4 bytes
4 bytes

Double

8 bytes

Currency
Decimal

8 bytes
14 bytes

Date
String (comprimento
varivel)
String (comprimento fixo)

8 bytes
10 bytes +
comprimento do texto
Comprimento do
texto
16 bytes
22 bytes +
comprimento do texto
4 bytes
Depende da
definio

Variant numrica
Variante texto
Object
Definido pelo usurio

0 a 255
True ou False
Nmero inteiro entre -32.768 e 32.767
Nmero inteiro entre -2.147.483.648 e 2.147.483.647
De -3,40E38 a -1,40E-45 para nmeros negativos e de 1,40E-45 a 3,40E38 para
nmeros positivos
De -1,79E308 a 4,94E-324 para negativos e de 4,94E-324 a 1,79E308 para
positivos
De -922.337.203.685.477,5808 a 922.337.203.685.477,5807
+/79.228.162.514.264.337.593.543.950.335 sem vrgula decimal
+/- 7,922816251426337593543950335 com 28 casas decimais direita
De 01/01/100 a 31/12/9999
De 0 a aproximadamente 2 bilhes de caracteres
De 1 a aproximadamente 2 bilhes de caracteres
Qualquer nmero at o intervalo de 1 double
A mesma faixa de string de comprimento varivel
Uma referncia a um objeto
Depende do seu tipo de dados

Para declarar variveis, voc utiliza a instruo Dim no incio de cada procedimento ou mdulo. Digite Dim, em seguida o nome da
varivel, para definir o tipo digite a palavra-chave As e depois o tipo. As variveis no declaradas so do tipo Variant e aceitam
qualquer tipo de dados. Isto significa um consumo desnecessrio de memria, uma vez que uma varivel Variant ocupa mais memria.
Para declarar o tipo de varivel que voc ir armazenar:
Dim intValor As Integer
Dim booResultado As Boolean
Para declarar mais de uma varivel na mesma linha de cdigo:
Dim intValor, intLinha, intColuna As Integer
Para declarar mais de uma varivel na mesma linha de cdigo, de tipos diferentes:
Dim sinValor As Single, intLinha, intColuna As Integer

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

24

MS-Excel 2003 - VBA

Abrangncia de uma Varivel


Dependendo de onde voc declarar uma varivel, ela ter um diferente nvel de abrangncia. Voc pode utilizar 3 tipos de abrangncia
de variveis no seu cdigo, como mostra a tabela abaixo:
Abrangncia
Procedimento
Privativa
Pblica

Declarao
Dim dentro do mdulo
Dim ou Private no topo do mdulo
Public no topo do mdulo

Variveis em Nvel do Procedimento (Locais)


As variveis locais so reconhecidas apenas no procedimento onde elas foram declaradas. Variveis locais representam uma boa
escolha para qualquer tipo de clculo temporrio. Voc declara variveis locais usando a palavra-chave Dim dentro do procedimento.
Veja a figura abaixo:

Variveis Privadas
As variveis privadas ficam disponveis a todos os procedimentos dentro do mdulo onde elas foram declaradas, mas no em outros
mdulos. Voc cria as variveis privadas declarando-as com Dim ou Private na seo de declaraes do mdulo, ou seja, a seo do
topo acima das definies do procedimento. Veja a figura abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

25

MS-Excel 2003 - VBA

Variveis Pblicas
As variveis pblicas podem ser acessadas por todos os procedimentos em todos os mdulos na pasta de trabalho onde elas foram
declaradas. As variveis pblicas so declaradas na seo de declaraes no topo do mdulo, usando a palavra-chave Public. Voc
no pode declarar variveis pblicas e privadas dentro de um procedimento. Veja a figura abaixo:

Obrigando a Declarao de Variveis


Voc pode obrigar a declarao das variveis que sero utilizadas nos procedimentos. Isso ir facilitar o controle sobre as variveis que
esto sendo utilizadas no seu projeto, permitindo um melhor acompanhamento da sintaxe dessas variveis. Para tornar obrigatria a
declarao de variveis no mdulo voc deve digitar a instruo Option Explicit no incio de cada mdulo ou seguir o roteiro abaixo.
Como Ativar Automaticamente a
Obrigatoriedade da Declarao de Variveis
1. No Editor do Visual Basic, clique no menu
Ferramentas.
2. Clique em Opes.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

26

MS-Excel 2003 - VBA

3. Clique na guia Editor.


4. No campo Configuraes do
cdigo, marque a opo Requerer
declarao de varivel.
5. Clique no boto OK.

Definindo essa configurao, quando voc no declarar alguma varivel e for executar o procedimento, ser exibida a seguinte
mensagem:

Constantes
Para evitar que o contedo de uma varivel seja alterado durante a execuo do procedimento, voc pode fixar o seu contedo atravs
da instruo Const. Veja o exemplo abaixo:
Const pi As Single = 3.1416
Se voc tentar atribuir um outro valor a constante pi, ser exibida a seguinte mensagem:

Dica: Use as constantes quando voc precisar usar o mesmo valor vrias vezes no seu procedimento, ou quando quiser melhorar a
leitura do seu procedimento atribuindo um nome significativo a um valor que no se altere.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

27

MS-Excel 2003 - VBA

Operadores

No VBA existem trs categorias de operadores, que so:


Operadores de Comparao
Os operadores de comparao so usados para comparar valores de duas expresses.
Descrio

Operador
<
<=
>
>=
=
<>
Is
Like

Menor que
Menor ou igual a
Maior que
Maior ou igual a
Igual a
Diferente de
. Usado para comparar duas variveis de
referncia a objetos.
Como. Usado para comparar duas
seqncias de caracteres.

Operadores Lgicos
Os operadores lgicos so usados em operaes lgicas.
Operador

Descrio

And

usado para acrescentar condies a um teste lgico. Ser True se todas as


condies forem verdadeiras, caso contrrio, ser False. Se uma das expresses for
nula, o resultado ser Null.
usado para inserir mais de uma condio em uma expresso lgica. Se uma das
condies for verdadeira o resultado ser True, caso todas as condies forem falsas,
o resultado ser False. Se uma das expresses for nula, ser Null.
usado para gerar uma negao lgica. Esse operador inverte a lgica de uma
condio.
Executa uma equivalncia lgica. Se as duas expresses forem verdadeiras ou falsas,
o resultado ser True, caso contrrio, ser False ou Null.
Efetua uma implicao lgica.
Executa uma excluso lgica. Retorna True se apenas uma das expresses for
verdadeira, caso contrrio, ser False. Se uma delas for nula, ser Null.

Or
Not
Eqv
Imp
Xor
Operadores de Concatenao
So usados para juntar textos.

Operador

Descrio

&
+

Concatena textos.
Soma nmeros e tambm usado para concatenar textos.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

28

MS-Excel 2003 - VBA

Estruturas de Controle

Nesse tpico, voc ir aprender como escrever procedimentos que testam condies e depois executam apenas certas instrues
baseadas nos resultados desses testes. A flexibilidade de qualquer linguagem de programao vem da sua capacidade de usar
estruturas de controle para alterar a ordem de execuo das instrues.
As estruturas de controle do VBA incluem as seguintes instrues:
Use

Para testar

If...Then
If..Then...Else
If...Then...ElseIf
Select Case

Uma nica condio e executar uma instruo ou um bloco de instrues.


Uma nica condio e escolher entre dois blocos de instrues.
Mais de uma condio e executar um dos vrios blocos de instrues.
Uma nica condio e executar um dos vrios blocos de instrues.

Select Case
Voc pode usar a instruo Select Case em vez de vrias instrues ElseIF em uma estrutura If...Then quando quiser comparar a
mesma condio com valores diferentes. Uma instruo Select Case fornece a mesma capacidade de tomada de decises da instruo
If...Then...Else, mas melhora a eficincia e a leitura do cdigo.

Exerccio
Voc ir criar uma funo para testar alguns valores
numricos em uma planilha. Se os valores forem
menores que 400, exibir a palavra Baixo. Se os
valores estiverem entre 400 e 600, exibir Mdio. Se os
valores forem maiores que 600, exibir Alto. Nesse
exerccio voc utilizar a instruo Select Case. Veja a
planilha ao lado.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

29

MS-Excel 2003 - VBA

Como Acessar o Editor do Visual


Basic
1. Clique no menu Ferramentas.
2. Apontar em Macro.
3. Clicar na opo Editor do Visual
Basic.

4. No Editor do Visual Basic, clique no menu


Inserir.
5. Clique na opo Mdulo.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

30

MS-Excel 2003 - VBA

6. Na folha de mdulo, digite a


funo mostrada na figura ao
lado.

Como Inserir a Funo na Planilha


1. Pressione as teclas <Alt> + <F11>, para
retornar a planilha Valores.
2. Selecione a clula B2 da planilha Valores.
3. Clique no menu Inserir.
4. Clique na opo Funo.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

31

MS-Excel 2003 - VBA

5. Na caixa de dilogo Inserir funo, no


campo Ou selecione uma categoria,
selecione Definida pelo usurio.
6. No campo Selecione uma funo:, escolha
Testa_Valor.
7. Clique no boto OK.

8. Selecione na planilha a clula A2.


9. Clique no boto OK.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

32

MS-Excel 2003 - VBA

Estruturas de Repetio (Loops)

Voc pode usar as estruturas de repetio para executar repetidamente um bloco de comandos de seu procedimento. As instrues do
VBA utilizadas nas estruturas de repetio so:
Use

Para

Do While...Loop

Testar uma condio no incio do loop, executar o loop apenas quando a condio for True, e continuar at a
condio se tornar False.
Testar uma condio no incio do loop, executar o loop apenas quando a condio for False, e continuar at a
condio se tornar True.
Executar sempre o loop uma vez, testar a condio no final do loop, continuar enquanto a condio for True, e
parar quando a condio se tornar False.
Executar sempre o loop uma vez, testar a condio no final do loop, continuar enquanto a condio for False, e
parar quando a condio se tornar True.
Executar um loop um certo nmero de vezes, usando o contador de loops que comea e termina com valores
previamente definidos.
Executar um loop uma vez para cada objeto em uma coleo.

Do Until...Loop
Do...Loop While
Do...Loop Until
For...Next
For Each...Next

For...Next
Executa um bloco de comandos um nmero especfico de vezes. Veja um exemplo:
For contador = incio To fim Step passo
comandos
Exit For
comandos
Next contador
Onde
contador uma varivel numrica usada como um contador de ciclo.
incio o valor inicial do contador.
fim o valor final do contador.
passo a quantidade que o contador alterado atravs do ciclo. Se no for especificado, o padro de incremento ser um. O passo
pode ser positivo ou negativo.
A instruo Exit For somente pode ser usada dentro de uma estrutura For...Next e fornece uma alternativa para sair do loop.
Geralmente a instruo Exit For usada com a verificao de uma alguma condio (If...Then) e transfere o controle para a instruo
imediatamente aps ao Next.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

33

MS-Excel 2003 - VBA

Exerccio
Voc ir criar uma macro para testar alguns valores
numricos em uma planilha. Os valores maiores que
500 sero formatados com negrito e a cor da fonte
vermelha. Nesse exerccio voc utilizar a instruo
For...Next. Veja a planilha ao lado.

Como Acessar o Editor do Visual


Basic
1. Clique no menu Ferramentas.
2. Apontar em Macro.
3. Clicar na opo Editor do Visual
Basic.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

34

MS-Excel 2003 - VBA

4. Na janela Project Explorer, d


um duplo-clique na Plan3
(Valores).
5. Na folha de mdulo, digite o
procedimento ao lado.
6. Na barra de ferramentas, clique
no boto Executar macro, para
testar a sua macro.

Mtodo Cells
O mtodo Cells proporciona um deslocamento relativo entre clulas, ou seja, em relao clula ativa no momento da execuo do
procedimento. Ele pode retornar somente uma clula ou uma faixa de clulas.
Sintaxe: Cells(linha, coluna)
Propriedade Value
Especifica o estado ou o contedo de um controle.

Instruo With...End With


Por ser um programa orientado a objetos, o VBA permite que cada objeto tenha diversas propriedades que podem modificadas
individualmente. Escrever o cdigo para modificar cada propriedade separadamente muito trabalhoso. A estrutura da instruo
With...End With ajuda voc a fazer referncia a vrias propriedades de maneira mais eficiente e a eliminar redundncias.
As instrues With...End With so um mtodo simplificado de fazer referncias que pode ser processado com maior eficincia pelo VBA.
Requer menos cdigo e permite identificar as propriedades associadas a um determinado objeto rapidamente.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

35

MS-Excel 2003 - VBA

Exerccio
Voc ir criar uma macro para testar alguns valores
numricos em uma planilha. Os valores maiores que
500 sero formatados com negrito, tamanho 14 e a cor
da fonte vermelha. Nesse exerccio voc utilizar a
instruo With...End With. Veja a planilha ao lado.

1. Pressione as teclas <Alt> +


<F11>.
2. Na janela Project Explorer, d
um duplo-clique na Plan3
(Valores).
3. Na folha de mdulo, digite o
procedimento ao lado.
4. Observe como ficou o cdigo
com a instruo With...End
With.
5. Na barra de ferramentas, clique
no boto Executar macro, para
testar a sua macro.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

36

MS-Excel 2003 - VBA

Caixas de Entrada e de Sada

A maneira mais fcil para adicionar uma caixa de dilogo ao seu aplicativo usar uma caixa de dilogo predefinida. O VBA fornece dois
tipos de caixas de dilogo predefinidas: a caixa de entrada e a caixa de sada.

Funo InputBox
A funo InputBox cria e exibe uma caixa de dilogo que contm uma aviso, uma caixa de edio e os botes OK e Cancelar. Voc
pode usar essa caixa de entrada para insero de dados pelo usurio. Voc pode definir o texto na barra de ttulo, o aviso exibido ao
usurio e a posio da caixa de dilogo na tela.
O valor de retorno da funo InputBox uma string contendo os dados da caixa de edio. Se a caixa de edio estiver vazia ou o
usurio der um clique no boto Cancelar, o valor de retorno uma string vazia.
Sintaxe: InputBox(Prompt, Title, Default, Xpos, Ypos, Helpfile, Context)
Prompt o texto da mensagem.
Title o texto exibido na barra de ttulo da caixa. Se omitido, ser exibido Microsoft Excel.
Default o texto padro a ser exibido quando a caixa for carregada. Se omitido, a caixa de edio ficar vazia.
Xpos um nmero, em twips, referente posio a partir da esquerda da tela em que ser posicionada a caixa. Se omitido, a caixa
ser centralizada na horizontal.
Ypos um nmero, em twips, referente posio vertical da caixa em relao tela.
Helpfile Identifica, quando houver, o arquivo de ajuda da caixa.
Context o nmero do contexto da ajuda. Esse argumento deve ser fornecido quando Helpfile for especificado.
Voc ir criar uma macro de entrada de nomes na planilha.
Exerccio
1. Na folha de mdulo, digite o
procedimento ao lado.
2. Na barra de ferramentas, clique
no boto Executar macro
para testar a sua macro.

Execute a macro e digite um nome. Se voc clicar no boto OK, esse nome ser includo na clula A2. Se voc clicar no boto
Cancelar, mesmo que tenha digitado um nome, a clula A2 ficar vazia.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

37

MS-Excel 2003 - VBA

Funo MsgBox
A funo Msgbox cria uma caixa de dilogo que pode exibir uma mensagem com vrios botes e cones diferentes. O usurio pode
clicar em dos botes para responder mensagem ou cancelar a caixa de mensagem.
Sintaxe: MsgBox(Prompt, Buttons, Title, Helpfile, Context)
Prompt o texto do corpo da mensagem.
Buttons So os botes e cones a serem exibidos.
Title o texto exibido na barra de ttulo da caixa. Se omitido, ser exibido Microsoft Excel.
Helpfile Identifica, quando houver, o arquivo de ajuda da caixa.
Context o nmero do contexto da ajuda. Esse argumento deve ser fornecido quando Helpfile for especificado.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

38

MS-Excel 2003 - VBA

A tabela abaixo mostra os valores para o argumento Buttons:


Constante

Valor

vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
vbRetryCancel
vbCritical

0
1
2
3
4
5
16

vbQuestion

32

vbExclamation

48

vbInformation

64

vbDefaultButton1
vbDefaultButton2
vbDefaultButton3
vbDefaultButton4
vbApplicationModal

0
256
512
768
0

vbSystemModal

4096

Descrio do Boto
Exibe somente o boto OK
Exibe os botes OK e Cancelar
Exibe os botes Abortar, Repetir e Ignorar
Exibe os botes Sim, No e Cancelar
Exibe os botes Sim e No
Exibe os botes Repetir e Cancelar
Exibe o cone Mensagem crtica
Exibe o cone Consulta de aviso
Exibe o cone Mensagem de aviso

vbMsgBoxHelpButton
vbMsgBoxSetForeground
vbMsgBoxRight
vbMsgBoxRtlReading

16384
65536
524288
1048546

Exibe o cone Mensagem de informao


O primeiro boto o padro
O segundo boto o padro
O terceiro boto o padro
O quarto boto o padro
Janela restrita do aplicativo. O usurio deve responder caixa de mensagem
antes de continuar o trabalho.
Janela restrita do sistema. Todos os aplicativos so suspensos at que o
usurio responda caixa de mensagem.
Adiciona o boto Ajuda
A janela da caixa de mensagem ser a de primeiro plano
Alinha o texto direita
Especifica que o texto deve aparecer como leitura da direita para a esquerda
em sistemas hebraico e rabe

A tabela abaixo mostra os valores de retorno de cada boto pressionado:


Constante

Valor

vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo

1
2
3
4
5
6
7

Boto
OK
Cancelar
Abortar
Repetir
Ignorar
Sim
No

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

39

MS-Excel 2003 - VBA

Voc ir criar uma macro de confirmao de impresso.


Exerccio
1. Na folha de mdulo, digite o
procedimento ao lado.
2. Na barra de ferramentas, clique
no boto Executar macro
para testar a sua macro.

vbCrLf Constante que insere uma quebra de linha na mensagem.


& (E comercial) um operador que faz concatenao de texto.
- Indica uma continuao na linha de baixo.
Execute a macro e clique no boto Sim. Ser exibido o Visualizar impresso da planilha. Se voc clicar no boto No, a macro ser
cancelada.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

40

MS-Excel 2003 - VBA

Procedimentos de Evento

As macros criadas pelo usurio permitem automatizar as tarefas realizadas frequentemente. Para executar essas macros, voc pode
utilizar a caixa de dilogo Macro ou atribu-las aos botes da barra de ferramentas. Entretanto, em muitas ocasies, prefervel executar
as macros automaticamente, sem clicar em um boto ou selecionar no menu.
Os procedimentos de evento permitem executar as macros automaticamente. O uso apropriado desses eventos pode simplificar a
interao entre um usurio e sua pasta de trabalho.
Os eventos de uma pasta de trabalho (workbook) afetam globalmente a aplicao, enquanto que os eventos relacionados a uma
planilha (worksheet) afetam apenas a planilha onde o evento ocorre.
A tabela abaixo lista os principais procedimentos de eventos do Excel:
Eventos de Pasta de Trabalho
Evento
Activate
BeforeClose
BeforePrint
NewSheet
Open
SheetActivate
SheetBeforeRightClick
SheetChange
SheetSelectionChange

Descrio
Ocorre quando a pasta de trabalho se torna ativa.
Ocorre antes da pasta de trabalho ser fechada. Se a pasta de trabalho tiver sido alterada, esse evento
ocorrer antes do usurio ser solicitado a salvar as alteraes.
Ocorre antes de uma planilha ou faixa ser impressa.
Ocorre quando uma planilha criada na pasta de trabalho.
Ocorre quando a pasta de trabalho aberta.
Ocorre quando alguma planilha na pasta de trabalho ativada.
Ocorre quando alguma planilha clicada com o boto direito do mouse, antes da ao padro de clique
com o boto direito.
Ocorre quando as clulas de qualquer planilha so alteradas pelo usurio ou por um vnculo externo.
Ocorre quando a seleo alterada em qualquer planilha. No ocorre quando a seleo est em uma folha
de grfico.
Eventos de Planilha

Evento
Activate
BeforeRightClick
Calculate
Change
Deactivate
SelectionChange

Descrio
Ocorre quando uma planilha, folha de grfico ou grfico incorporado ativado.
Ocorre quando uma planilha clicada com o boto direito do mouse, antes da ao padro de clicar com o
boto direito.
Ocorre toda vez que um clculo executado em uma planilha, alterando seus valores.
Ocorre quando as clulas da planilha so alteradas pelo usurio ou por um vnculo externo.
Ocorre quando a planilha ou o grfico desativado.
Ocorre quando a seleo na planilha alterada.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

41

MS-Excel 2003 - VBA

Exerccio
Voc ir criar uma macro para formatar
automaticamente todas as clulas alteradas em uma
planilha. Quando a clula for alterada, a macro deve
exibir uma mensagem e formatar a clula com negrito,
cor da fonte em azul e bordas vermelhas. Veja a figura
ao lado.

1. Pressione as teclas
<Alt> + <F11>.
2. No Editor do Visual Basic, d
um duplo-clique na Plan3
(Valores).
3. Na folha de mdulo, digite o
procedimento ao lado.
4. V para a planilha e teste sua
macro.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

42

MS-Excel 2003 - VBA

Caixas de Dilogo Predefinidas

Alm da caixa de entrada (InputBox) e da caixa de mensagem (MsgBox), o Excel possui 849 caixas de dilogo predefinidas, que
podem ser exibidas para que o usurio possa escolher as opes desejadas, facilitando o trabalho do programador.
A tabela abaixo mostra o nome de algumas caixas de dilogo:
Caixa de Dilogo

Constante

Assistente de funo
Assistente de grfico
Bordas
Classificar
Configurar pgina
Formatao condicional
Imprimir
Inserir Planilha
Salvar como
Subtotais
Validao de dados
Zoom

xlDialogFunctionWizard
xlDialogChartWizard
xlDialogBorder
XlDialogSort
xlDialogPageSetup
xlDialogConditionalFormatting
xlDialogPrint
xlDialogWorkbookInsert
xlDialogSaveAs
xlDialogSubtotalCreate
xlDialogDataValidation
xlDialogZoom

Exemplo
O exemplo ao lado exibe a caixa de
dilogo Abrir Arquivo, com a pasta
padro definida para E-Curso.

Clique no boto Executar Sub/UserForm

para testar o procedimento.

Explicaes:
O objeto Application representa o prprio Excel e seus objetos. Atravs dele, voc pode configurar o Excel para visualizaes,
execues e outras funcionalidades.
O mtodo Dialogs retorna uma caixa de dilogo predefinida. Esse mtodo tem como argumento uma constante predefinida que comea
com xlDialog e corresponde ao nome da caixa de dilogo. Por exemplo, a constante para a caixa de dilogo Salvar como
xlDialogSaveAs.
O mtodo Show exibe a caixa de dilogo. Voc no pode substituir a funcionalidade da caixa de dilogo, o Excel que realiza todas as
aes requisitadas pelo usurio.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

43

MS-Excel 2003 - VBA

Controles de Formulrios

Um formulrio um modelo do Excel que utiliza controles, tais como: botes de opo, caixas de combinao, caixas de seleo, etc.
Esses controles podem exibir dados, inserir dados ou realizar uma ao. Os controles de formulrios so formulrios de planilhas que
podem ser facilmente adicionados a partir da barra de ferramentas Formulrios. Os controles de formulrios podem executar um
procedimento quando forem selecionados ou clicados.
Exerccio
Voc ir criar uma caixa de combinao
em uma planilha com trs opes: Abrir,
Salvar como e Imprimir. Quando o
usurio clicar na opo Abrir, ser exibida
a caixa de dilogo Abrir. E assim
sucessivamente para as outras opes.
Veja a figura ao lado.

Como Exibir a Barra de Ferramentas


Formulrios
1. Clique no menu Exibir.
2. Aponte em Barras de ferramentas.
3. Clique na opo Formulrios.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

44

MS-Excel 2003 - VBA

4. Na clula D1, digite Abrir, na clula


D2, digite Salvar como e na clula D3,
digite Imprimir.
5. Na barra de ferramentas
Formulrios, clique no boto Caixa de
combinao.
6. Na clula B2, desenhe um retngulo.

7. Clique com o boto direito do mouse


em cima da caixa de combinao.
8. Clique na opo Formatar controle.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

45

MS-Excel 2003 - VBA

9. Posicione o cursor na caixa de texto


Intervalo de entrada e selecione a faixa
D1:D3.
10. Posicione o cursor na caixa de texto
Vnculo da clula e clique na clula E1.
11. Clique no boto OK.

12. Pressione as teclas <Alt> + <F11>,


para acessar o editor do Visual
Basic.
13. Em uma folha de mdulo, digite as
macros exibidas na figura ao lado.

A constante xlDialogPrintPreview especifica a janela do Visualizar Impresso.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

46

MS-Excel 2003 - VBA

14. Na mesma folha de mdulo, digite a


macro ao lado. Essa macro ser
atribuda a caixa de combinao que foi
criada na planilha.

Explicaes:
A propriedade Application retorna um objeto Application que representa o Microsoft Excel.
O mtodo Run executa uma macro ou chama uma funo.
Como Atribuir a macro ComboBox
Caixa de Combinao
1. Pressione as teclas <Alt> + <F11>,
para retornar planilha.
2. Clique o boto direito do mouse em
cima da caixa de combinao.
3. Clique na opo Atribuir macro.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

47

MS-Excel 2003 - VBA

4. Na lista, selecione a macro ComboBox.


5. Clique no boto OK.
Agora escolha uma opo na caixa de
combinao e teste as suas macros.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

48

MS-Excel 2003 - VBA

Formulrios

O que um Formulrio?
A forma mais comum de comunicao com o usurio atravs de um formulrio. Um formulrio do Excel um modelo que utiliza
controles, tais como: botes de opo, caixas de combinao, caixas de seleo, etc. Um formulrio no VBA um objeto UserForm.
Um UserForm uma caixa de dilogo personalizada que voc cria no Editor do Visual Basic usando a caixa de ferramentas.
Os passos para a criao de um formulrio so:
1. Faa um design de como o formulrio ser. O modo como o formulrio parece chamado de Interface com o Usurio.
2. Depois crie as macros para fazer funcionar o formulrio. Esses so os procedimentos que interagem com os objetos do Excel. As
tarefas que o formulrio executa so chamadas Funcionalidade.
3. Faa o formulrio executar as macros e fornea um modo de exibir o formulrio.
Para iniciar o projeto, voc ir abrir a pasta de trabalho Controle de Estoque.xls. Essa pasta contm duas planilhas: uma planilha
Ttulo que est vazia e uma planilha de Produtos, com as seguintes colunas Cdigo, Descrio, Quantidade e Preo. Veja a figura
abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

49

MS-Excel 2003 - VBA

Como Criar um Formulrio


1. Clique no menu Inserir.
2. Clique na opo UserForm.

Veja a figura abaixo, um formulrio novo com o nome de UserForm1 e ao lado direito da caixa de ferramentas com uma guia de
Controles. A caixa de ferramentas pode ser posicionada em qualquer parte da tela.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

50

MS-Excel 2003 - VBA

Altere o nome do formulrio para frmTela_Inicial. Na janela de Propriedades, na propriedade Name, apague UserForm1 e digite
frmTela_Inicial. Na propriedade Caption apague UserForm1 e digite Tela Inicial. Veja a figura abaixo:

Convenes para Nomes de Controles


importante adotar um padro para os nomes dos controles, facilitando assim a criao e a manuteno do cdigo. Voc deve aplicar
na designao de nomes para controles, uma conveno que lhe permita especificar tanto o contexto quanto a descrio. Os nomes
cmdIniciar e cmdFinal, por exemplo, tm um prefixo de trs letras que identifica o tipo de controle no programa. Assim muito til
abreviar o contexto (cmd) e o nome (Iniciar) em um identificador simples - cmdIniciar.
Veja na tabela abaixo, sugestes para abreviaes dos controles:
Controle
CheckBox
ComboBox
CommandButton
Form
Frame
Image
Label
ListBox
OptionButton
Page
ScrollBarr
SpinButton
TabStrip
TextBox
ToggleButton

Descrio
Caixa de seleo
Caixa de combinao
Boto de comando
Formulrio
Moldura
Imagem
Rtulo
Caixa de listagem
Boto de opo
Multipgina
Barra de rolagem
Boto de rotao
Faixa de tabulao
Caixa de texto
Boto de ativao

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

Prefixo
chk
cmb
cmd
frm
fra
img
lbl
lst
opt
pge
scr
spi
tst
txt
tgb

51

MS-Excel 2003 - VBA

Explicaes dos Botes da Caixa de Ferramentas

Boto

Nome

Descrio

Selecionar objetos
Rtulo

Permite selecionar os objetos. Quando um objeto est selecionado, voc somente poder
redimensionar ou mover o controle.
Permite a insero de textos (rtulos) no formulrio. Esse texto no pode ser alterado pelo usurio.

Caixa de texto

Permite a criao de caixas de edio para a digitao de dados.

Caixa de combinao
Caixa de listagem

Permite que se desenhe uma combinao de caixa de listagem e caixa de texto. Voc pode
escolher um item da lista ou digitar na caixa de texto.
Permite a criao de uma caixa de listagem, onde o usurio pode selecionar uma opo.

Caixa de seleo

O boto Caixa de seleo quando selecionado, apresenta um X.

Boto de opo

O boto de opo marcado por um crculo preto.

Boto de ativao

Esse boto permite a criao de um boto que ativa e desativa.

Quadro

Permite a criao de uma moldura para agrupamento.

Boto de comando

Cria um boto que permite ao usurio executar um comando.

TabStrip

Permite que sejam criadas vrias pginas para a mesma rea de uma caixa de dilogo.

Multi-pgina

Apresenta vrias telas de informaes como um nico conjunto.

Barra de rolagem

Permite criar uma barra de rolagem.

Boto de rotao

Esse boto permite definir um controle giratrio para selecionar opes

Imagem

Esse boto permite exibir uma imagem grfica de um bitmap, cone ou metafile no seu formulrio.

RefEdit

Em um formulrio, este controle exibe o endereo de um intervalo de clulas que voc inseriu ou
selecionou em uma ou mais planilhas. Se o controle RefEdit estiver incorporado em uma planilha,
voc pode vincular o contedo do controle a uma clula em qualquer planilha na pasta de trabalho.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

52

MS-Excel 2003 - VBA

Sistema de Controle de Estoque

Formulrio frmTela_Inicial
O nosso projeto possui vrios formulrios. O primeiro formulrio ser a tela principal do projeto. Voc deve inserir nesse formulrio os
seguintes controles: um controle Imagem, um controle Rtulo e seis botes de controle. Veja a figura abaixo:

As configuraes das propriedades dos controles esto relacionadas na tabela abaixo:


Nome do Controle (Name)

ImgBandeira

LblTitulo
cmdExibir
cmdClassificar
cmdConsultar
cmdAtualizar
cmdMenores_Estoques
cmdSair

Propriedade

Valor

Picture
Width
Height
Top
Left
Caption
ForeColor
Font
Caption
Caption
Caption
Caption
Caption
Caption

Brasil.gif
42
30
0
0
Controle de Estoque
&H00FF0000& (azul)
Tahoma, negrito, 14
Exibir Planilha
Classificar Produtos
Consultar Produtos
Atualizar Estoque
Menores Estoques
Sair

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

53

MS-Excel 2003 - VBA

Procedimento do Boto Exibir Planilha


No modo Design, d um duplo-clique no boto de comando Exibir Planilha. Digite o cdigo relacionado abaixo. As linhas na cor verde
so comentrios.

Procedimento do Boto Classificar Produtos


No modo Design, d um duplo-clique no boto de comando Classificar Produtos. Digite o cdigo relacionado abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

54

MS-Excel 2003 - VBA

Criando Procedimentos Automticos


Um procedimento automtico executado automaticamente sempre que ocorrer um evento. Voc pode associar procedimentos
automticos com eventos em nvel de pasta de trabalho ou em nvel de planilha. Os procedimentos automticos devem ser digitados em
mdulos do VBA e com nomes especficos, tais como, Auto_Open e Auto_Close. Voc ir criar uma macro para ser executada quando
a pasta de trabalho for aberta. Quando o usurio abrir a pasta de trabalho Controle de Estoque.xls ser exibido o formulrio Tela
Inicial.
O primeiro passo inserir um mdulo no projeto. Um mdulo um documento que armazena comandos de macro gravados ou criados
pelo usurio para executar uma tarefa especfica.
Como Inserir um Mdulo
1. Clique no menu Inserir.
2. Clique na opo Mdulo.

No Mdulo1, digite o cdigo relacionado abaixo:

Explicaes:
Propriedade DisplayAlerts
O valor padro True. Defina essa propriedade como False se voc no quiser exibir avisos e mensagens de alerta enquanto uma
macro estiver sendo executada.
Mtodo Show
Carrega e exibe um formulrio, ou exibe um formulrio j carregado. Para ocultar o formulrio utilize o mtodo Hide.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

55

MS-Excel 2003 - VBA

Formulrio frmConsulta_Codigo

As configuraes das propriedades dos controles esto relacionadas na tabela abaixo:


Nome do Controle (Name)

Propriedade

Valor

frmConsultar_Produtos
lblCodigo_Produto
txtCodigo_Produto
cmdConsultar_OK
cmdConsultar_Cancelar

Caption
Caption
ForeColor
Caption
Caption

Consultar Produtos
Digite o Cdigo do Produto
&H00FF0000& (azul)
OK
Cancelar

Formulrio frmExibe_Dados

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

56

MS-Excel 2003 - VBA

As configuraes das propriedades dos controles esto relacionadas na tabela abaixo:


Nome do Controle (Name)

Propriedade

Valor

frmExibir_Produtos
lblCodigo
lblDescricao
lblQuantidade
lblPreco

Caption
Caption
Caption
Caption
Caption
BackStyle
BorderColor
BorderStyle
Font
Forecolor
Locked
BackStyle
BorderColor
BorderStyle
Font
Forecolor
Locked
BackStyle
BorderColor
BorderStyle
Font
Forecolor
Locked
BackStyle
BorderColor
BorderStyle
Font
Forecolor
Locked
Caption

Consultar Produtos
Cdigo........:
Descrio:..:
Quantidade:
Preo.........:
0 fmBackStyleTransparent
&H80000000& (cinza)
1 - fmBorderStyleSingle
Negrito
&H00FF0000& (azul)
True
0 fmBackStyleTransparent
&H80000000& (cinza)
1 - fmBorderStyleSingle
Negrito
&H00FF0000& (azul)
True
0 fmBackStyleTransparent
&H80000000& (cinza)
1 - fmBorderStyleSingle
Negrito
&H00FF0000& (azul)
True
0 fmBackStyleTransparent
&H80000000& (cinza)
1 - fmBorderStyleSingle
Negrito
&H00FF0000& (azul)
True
Continua

txtCodigo

txtDescricao

txtQuantidade

txtPreco

cmdContinua

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

57

MS-Excel 2003 - VBA

Procedimento do Boto Consultar Produtos do Formulrio frmTela_Inicial


No modo Design, d um duplo-clique no boto de comando Consultar Produtos e digite o cdigo relacionado abaixo:

Explicaes:
O mtodo Hide oculta um objeto, mas no o descarrega da memria. Quando um formulrio est oculto, o usurio no pode interagir
com o aplicativo at que todo o cdigo no procedimento do evento tenha terminado sua execuo.
O mtodo SetFocus move o foco para um objeto especificado.

Procedimento do Boto OK do Formulrio frmConsulta_Codigo


No modo Design, d um duplo-clique no boto de comando OK e digite o cdigo relacionado abaixo:
Private Sub cmdConsultar_Ok_Click()
Dim strCodigo As String
Dim intAlerta As Integer
Dim strDescricao As String
Dim intQuantidade As Integer
Dim sinPreco As Single
Sheets("Produtos").Activate
Range("A4").Select
strCodigo = UCase(frmConsulta_Codigo.txtCodigo)
intAlerta = 0
Do While intAlerta = 0
If ActiveCell.Text = strCodigo Then
ActiveCell.Offset(0, 1).Activate
strDescricao = ActiveCell.Text
ActiveCell.Offset(0, 1).Activate
intQuantidade = ActiveCell.Value
ActiveCell.Offset(0, 1).Activate
sinPreco = ActiveCell.Value
intAlerta = 1
Else
ActiveCell.Offset(1, 0).Activate
End If
If ActiveCell = "" Then

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

58

MS-Excel 2003 - VBA

MsgBox "O cdigo " & strCodigo & " nao existe. Digite outro cdigo."
frmConsulta_Codigo.txtCodigo = ""
frmConsulta_Codigo.txtCodigo.SetFocus
Exit Sub
End If
Loop
frmExibe_Dados.txtCodigo = strCodigo
frmExibe_Dados.txtDescricao = strDescricao
frmExibe_Dados.txtQuantidade = intQuantidade
frmExibe_Dados.txtPreco = Format(sinPreco, "R$ #,##0.00")
frmConsulta_Codigo.Hide
frmExibe_Dados.Show
End Sub
Explicaes:
A funo Ucase retorna uma string que contm os caracteres especificados, convertidos em letras maisculas.
O mtodo Offset executa um deslocamento relativo clula selecionada antes que o deslocamento seja executado. Se voc quiser
fazer o deslocamento para linhas acima e colunas esquerda, atribua valores negativos.
Sintaxe: Objeto.Offset(linha acima ou abaixo da clula selecionada, coluna esquerda ou direita da clula selecionada)
A funo Format retorna uma string que contm uma expresso formatada segundo instrues contidas em um formato.

Procedimento do Boto Cancelar do Formulrio frmConsulta_Codigo


No modo Design, d um duplo-clique no boto de comando Cancelar e digite o cdigo relacionado abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

59

MS-Excel 2003 - VBA

Formulrio frmAtualiza_Cdigo

As configuraes das propriedades dos controles esto relacionadas na tabela abaixo:


Nome do Controle (Name)

Propriedade

Valor

frmAtualizar_Codigo
lblCodigo_Produto
cmbCodigo
cmdAtualizar_Cancelar

Caption
Caption
ForeColor
Caption

Atualizar Estoque
Digite o Cdigo do Produto
&H00FF0000& (azul)
Cancelar

Formulrio frmAtualiza_Estoque

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

60

MS-Excel 2003 - VBA

As configuraes das propriedades dos controles esto relacionadas na tabela abaixo:


Nome do Controle (Name)

Propriedade

Valor

frmAtualiza_Estoque
lblDescricao
lblEstoque_Atual
lblQuantidade

Caption
Caption
Caption
Caption
AutoSize
Font
Forecolor
Locked
Font
Forecolor
Locked
Font
Forecolor
Locked
Caption
Caption
Caption
Caption
Caption

Atualizar Estoque
Descrio:
Estoque atual:
Quantidade:
True
Negrito
&H00FF0000& (azul)
True
Negrito
&H00FF0000& (azul)
True
Negrito
&H00FF0000& (azul)
True
Opes
Sada
Entrada
OK
Cancelar

txtDescricao

txtEstoque_Atual

txtQuantidade
fraOpcoes
optOpcao_Saida
optOpcao_Entrada
cmdOKAtualizaEstoque
cmdCancelarEstoque

Procedimento do Boto Atualizar Estoque do Formulrio frmTela_Inicial


No modo Design, no formulrio principal, d um duplo-clique no boto de comando Atualizar Estoque e digite o cdigo relacionado
abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

61

MS-Excel 2003 - VBA

Procedimento da Caixa de Combinao do Formulrio frmAtualiza_Codigo


No modo Design, d um duplo-clique na caixa de combinao cmbCodigo e digite o cdigo relacionado abaixo:
Private Sub cmbCodigo_Click()
Dim strCodigo As String
Dim intAlerta As Integer
Dim strDescricao As String
Dim intQuantidade As Integer
Sheets("Produtos").Activate
Range("A4").Select
strCodigo = UCase(frmAtualiza_Codigo.cmbCodigo)
intAlerta = 0
Do While intAlerta = 0
If ActiveCell.Text = strCodigo Then
ActiveCell.Offset(0, 1).Activate
strDescricao = ActiveCell.Text
ActiveCell.Offset(0, 1).Activate
intQuantidade = ActiveCell.Value
intAlerta = 1
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
frmAtualiza_Codigo.Hide
frmAtualiza_Estoque.txtDescricao = strDescricao
frmAtualiza_Estoque.txtEstoque_Atual = intQuantidade
frmAtualiza_Estoque.txtQuantidade = ""
frmAtualiza_Estoque.cmdOkAtualizaEstoque.Enabled = False
frmAtualiza_Estoque.txtQuantidade.SetFocus
frmAtualiza_Estoque.Show
End Sub

Procedimento do Boto Cancelar do Formulrio frmAtualiza_Codigo


No modo Design, d um duplo-clique no boto de comando Cancelar e digite o cdigo relacionado abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

62

MS-Excel 2003 - VBA

Procedimento da Caixa de Texto Quantidade do Formulrio frmAtualiza_Estoque


No modo Design, d um duplo-clique na caixa de texto txtQuantidade e digite o cdigo relacionado abaixo:

Explicaes:
O evento Change ocorre quando a definio da propriedade Value alterada, independentemente da alterao resultar da execuo do
cdigo ou de uma ao do usurio na interface.
A propriedade Enabled ativa ou desativa um controle do formulrio. O controle ficar desativado se a propriedade Enabled for definida
como False.
Outra rotina que voc pode criar para o campo txtQuantidade, ser usando o evento KeyUp. Essa rotina no permite a digitao de
letras na caixa de texto Quantidade. Veja o cdigo abaixo.

Explicaes:
O evento KeyUp ocorre quando uma tecla solta enquanto um controle tem o foco.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

63

MS-Excel 2003 - VBA

Procedimento do Boto OK do Formulrio frmAtualiza_Estoque


No modo Design, d um duplo-clique no boto de comando OK e digite o cdigo relacionado abaixo:
Private Sub cmdOkAtualizaEstoque_Click()
Dim intQuantidade_Estoque As Integer
' Verifica se foi selecionada alguma opcao no frame Opcoes
If frmAtualiza_Estoque.optOpcao_Saida.Value = False _
And frmAtualiza_Estoque.optOpcao_Entrada.Value = False Then
MsgBox "Voce deve especificar se uma Entrada ou Saida."
frmAtualiza_Estoque.txtQuantidade = ""
frmAtualiza_Estoque.CMDOkAtualizaEstoque.Enabled = False
frmAtualiza_Estoque.txtQuantidade.SetFocus
Exit Sub
End If
' Verifica se o valor digitado na Quantidade numrico
If Not IsNumeric(txtQuantidade) Then
MsgBox "A quantidade deve ser numerica.."
frmAtualiza_Estoque.txtQuantidade = ""
frmAtualiza_Estoque.CMDOkAtualizaEstoque.Enabled = False
frmAtualiza_Estoque.txtQuantidade.SetFocus
Exit Sub
End If
' Verifica se o valor digitado na Quantidade <= 0
If txtQuantidade <= 0 Then
MsgBox "O valor deve ser maior que zero."
frmAtualiza_Estoque.txtQuantidade = ""
frmAtualiza_Estoque.CMDOkAtualizaEstoque.Enabled = False
frmAtualiza_Estoque.txtQuantidade.SetFocus
Exit Sub
End If
intQuantidade_Estoque = frmAtualiza_Estoque.txtQuantidade
' Se for uma Entrada, soma ao estoque. Se for uma Saida, subtrai do estoque
If frmAtualiza_Estoque.optOpcao_Saida.Value = True Then
ActiveCell.Formula = ActiveCell.Value - intQuantidade_Estoque
txtEstoque_Atual = ActiveCell.Formula
Else
ActiveCell.Formula = ActiveCell.Value + intQuantidade_Estoque
txtEstoque_Atual = ActiveCell.Formula
End If
frmAtualiza_Estoque.txtQuantidade = ""
frmAtualiza_Estoque.txtQuantidade.SetFocus
frmAtualiza_Estoque.CMDOkAtualizaEstoque.Enabled = False
frmAtualiza_Estoque.optOpcao_Entrada.Value = False
frmAtualiza_Estoque.optOpcao_Saida.Value = False
MsgBox "Estoque atualizado."
End Sub

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

64

MS-Excel 2003 - VBA

Explicaes:
A funo IsNumeric retorna True se um valor inserido for um nmero, ou False, caso no seja.
A propriedade Formula usada para inserir uma frmula em uma clula. Se a frmula inserida contiver funes de planilha, o Excel
converter as funes para o idioma definido na pasta de trabalho.

Procedimento do Boto Cancelar do Formulrio frmAtualiza_Estoque


No modo Design, d um duplo-clique no boto de comando Cancelar e digite o cdigo relacionado abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

65

MS-Excel 2003 - VBA

Procedimento do Boto Menores Estoques do Formulrio frmTela_Inicial


No modo Design, d um duplo-clique no boto de comando Menores Estoques e digite o cdigo abaixo:

Explicaes:
1 Na filtragem dos produtos voc usar o gravador de macros para gerar o cdigo.
A propriedade ActiveWindow retorna um objeto Window representando a janela ativa. O objeto Window representa uma janela.
A propriedade SelectedSheets retorna uma coleo Sheets representando todas as planilhas selecionadas na janela ativa.
O mtodo PrintPreview mostra uma visualizao do objeto tal como ele aparece quando impresso.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

66

MS-Excel 2003 - VBA

Procedimento do Boto Sair do Formulrio frmTela_Inicial


No modo Design, d um duplo-clique no boto de comando Sair e digite o cdigo abaixo:

Explicaes:
A propriedade ActiveWorkbook retorna um objeto Workbook representando a pasta de trabalho da janela
ativa.
O mtodo Save salva as alteraes da pasta de trabalho ativa.
O mtodo Close fecha a pasta de trabalho ativa.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

67

MS-Excel 2003 - VBA

Depurao de Erros

A Depurao compreende uma fase muito importante no desenvolvimento de um projeto. Depurar o processo de testes sistemticos
utilizados para encontrar e remover erros. O VBA fornece ferramentas para lhe ajudar a analisar a execuo da aplicao e o
comportamento das propriedades e das variveis utilizadas.

Tipos de Erros
Os erros podem ser classificados em trs nveis, que so:
a)

b)
c)

Erros de Linguagem Tambm chamados de Erros de Sintaxe. Esses erros so resultantes de uma instruo digitada
incorretamente. Voc pode ter errado na grafia de uma palavra-chave ou omitido alguma pontuao ou esquecido de fechar
blocos de instrues, tais como If e End If ou For e Next. O VBA detecta esses erros na digitao ou durante a compilao,
antes da execuo do cdigo.
Erros em Tempo de Execuo Acontecem durante a execuo do cdigo. Geralmente causada por alguma solicitao
indevida, como abertura de arquivos que no existem, parmetros incorretos, etc. Os erros em tempo de execuo podem ser
tratados com rotinas de tratamento de erros.
Erros de Lgica Ocorrem quando uma aplicao no se comporta como deveria. Uma aplicao que contm um erro de
lgica pode ser ao mesmo tempo vlida sintaticamente e capaz de executar operaes totalmente vlidas, mas poder
produzir resultados incorretos. O VBA no pode detectar os erros de lgica. Voc precisa testar o cdigo e analisar os
resultados para verificar se o cdigo est sendo executado corretamente.

A melhor forma de evitar erros preveni-los, usando os seguintes mtodos:


- Projetar os seus mdulos cuidadosamente, dividindo o seu cdigo em procedimentos Sub e Function, com cada procedimento tendo
um objetivo especfico e bem definido.
- Incluir muitos comentrios. Quando for alterar o seu cdigo, voc ir entend-lo melhor se tiver escrito comentrios que descrevem o
objetivo de cada procedimento.
- Usar a instruo Option Explicit, na seo de declaraes de cada um dos seus mdulos. Um dos erros mais comuns est na grafia
incorreta dos nomes de variveis.
- Digitar o cdigo com letras minsculas.
- Sempre alinhar o cdigo usando a tecla <Tab>.
- Pedir para outra pessoa executar os testes no seu cdigo.

Estados de uma Aplicao


Para que voc possa testar e depurar uma aplicao, necessrio saber em qual dos trs modos o VBA se encontra.
Na barra de ferramentas Padro, encontra-se trs botes que permitem uma rpida mudana de um modo para outro. Veja a figura
abaixo:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

68

MS-Excel 2003 - VBA

Se voc souber quais destes botes esto habilitados, voc sabe em qual modo o VBA se encontra.
Modo

Botes Habilitados

Execuo (Run Time)


Projeto (Design Time)
Interrupo (Break Mode)

Interromper e Redefinir
Executar, Interromper e Redefinir
Executar e Redefinir

Ferramentas de Depurao
No modo de Interrupo (Break Mode) o cdigo est em processamento, mas suspenso entre as instrues em execuo. Nesse
modo, voc pode usar as ferramentas de depurao para examinar o seu cdigo.
Os botes da barra de ferramentas Depurar fornecem atalhos aos comandos que voc usa durante a depurao do seu cdigo.
Como Exibir a Barra de Ferramentas
Depurar
1. No Editor do Visual Basic,
clique no menu Exibir.
2. Aponte na opo Barras de
ferramentas.
3. Clique em Depurar.

Veja na figura abaixo, a barra de ferramentas Depurar:

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

69

MS-Excel 2003 - VBA

A tabela abaixo descreve a funo de cada boto da barra de ferramentas Depurar.


Boto

Nome

Funo

Modo de criao

Ativa e desativa o modo Projeto (Design).

Executar Sub/UserForm
Interromper

Se o cursor estiver em um procedimento, executa o procedimento. Se um UserForm estiver


ativo, executa o UserForm.
Para a execuo de um programa e entra no modo de Interrupo.

Redefinir

Limpa a pilha de execuo e as variveis em nvel de mdulo e redefine o projeto.

Ativar/desativar pontos de
interrupo
Depurao total

Define ou remove um ponto de interrupo na linha atual.


Executa o cdigo uma instruo de cada vez.

Depurao parcial

Executa o cdigo um procedimento ou instruo de cada vez.

Depurao circular

Executa as linhas restantes de um procedimento.

Janela Variveis locais

Exibe a janela Variveis locais.

Janela Verificao imediata

Exibe a janela Verificao imediata.

Janela Inspeo de variveis

Exibe a janela Inspeo de variveis.

Inspeo de variveis rpida

Exibe a caixa de dilogo Inspeo de variveis rpida com o valor atual da expresso
selecionada.
Exibe a caixa de dilogo Chamadas, que lista as chamadas de procedimentos atualmente
ativos. Procedimentos no aplicativo que foram iniciados, mas no foram concludos.

Pilha de chamadas

Como Entrar no Modo de Interrupo


O VBA entra no modo de Interrupo, se uma das seguintes condies acontecer:
- Uma instruo gera um erro em tempo de execuo.
- Encontra um ponto de interrupo.
- Encontra uma instruo Stop.
- Pressionando as teclas <Ctrl> + <Break>.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

70

MS-Excel 2003 - VBA

Exerccio
Abra uma folha de mdulo e
digite o procedimento ao
lado.
Execute o procedimento e
digite zero para o
denominador.

Ser exibida uma mensagem de erro e o


seu procedimento ser interrompido.
O erro ocorre porque no possvel haver
diviso por zero.
Clique no boto Depurar para entrar no
modo de interrupo (depurao).

A partir dessa janela voc


pode:
- Ver a linha do cdigo que
causou o erro. Veja a seta
esquerda da linha da
frmula.
- Analisar o contedo das
variveis existentes no
programa, colocando o
ponteiro do mouse em
cima da varivel desejada.

Tambm possvel exibir a janela Verificao imediata, aonde voc pode executar comandos e atribuir valores, aps pressionar a
tecla <Enter> e tem a possibilidade de continuar a execuo do procedimento.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

71

MS-Excel 2003 - VBA

Na primeira linha da janela


Verificao imediata, foi atribudo 2
varivel intDenominador.
Na segunda linha foi exibido o valor
atual da varivel intDenominador. O
erro que provocou a interrupo foi
corrigido.

Voc tambm pode inserir pontos de interrupo, atravs do menu Depurar, da instruo Stop ou da tecla <F9>.
Como Inserir um Ponto de Interrupo
1. Selecione a linha desejada.
2. Clique no menu Depurar.
3. Clique na opo
Ativar/desativar pontos de
interrupo.

Veja na figura ao lado, que a


linha de cdigo fica com seu
fundo vermelho, indicando
que antes da execuo
dessa linha haver uma
interrupo.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

72

MS-Excel 2003 - VBA

Rotina de Tratamento de Erros

Ao criar procedimentos em VBA, voc deve sempre prever possveis problemas. Mesmo que o seu cdigo esteja escrito corretamente,
alguns usurios podero tentar utilizar seus procedimentos de modo inadequado provocando falhas.
Embora no seja possvel prever todos os problemas que possam ocorrer, voc pode utilizar algumas tcnicas de tratamento de erros
que procuram por erros e interrompem a execuo do procedimento assim que o erro for detectado.
A instruo On Error digitada no incio de uma sub-rotina, informa ao Excel que, se ocorrer um erro, ele deve executar determinadas
aes. As instrues de tratamento de erros mais comuns so:
Instruo

Descrio

On Error GoTo linha

Ativa a rotina de tratamento de erros que inicia na linha especificada. O argumento linha pode ser
qualquer rtulo de linha ou nmero de linha. Se ocorrer um erro em tempo de execuo, o
controle desvia para linha. O argumento linha deve estar no mesmo procedimento em que se
encontra a instruo On Error, seno ocorrer um erro em tempo de compilao.
Especifica que, quando ocorrer um erro em tempo de execuo, o controle passar para a
instruo imediatamente seguinte instruo onde ocorreu o erro.
Desativa a rotina de tratamento de erros no procedimento atual.

On Error Resume Next


On Error GoTo 0

Se voc no usar uma instruo On Error, qualquer erro em tempo de execuo que ocorrer ser fatal, isto , ser exibida uma
mensagem de erro e a execuo pra.
As instrues de tratamento de erros devem ser adicionadas no final de um procedimento ou em um procedimento separado.
Exerccio
D um duplo-clique no
mdulo do procedimento
Dividir.
Execute o procedimento e
digite zero para o
denominador.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

73

MS-Excel 2003 - VBA

Ser exibida uma mensagem de erro e o


seu procedimento ser interrompido.
O erro ocorre porque no possvel haver
diviso por zero.
Clique no boto Fim.

Agora voc ir inserir as


instrues assinaladas com
os nmeros 1 e 2. Veja a
figura ao lado.
A palavra Erro o nome de
uma linha e poderia ser
qualquer nome que no
seja uma palavra reservada
do VBA.
Para tratar o erro, uso
bloco If...End If com
Err.Number para verificar
se o nmero do erro igual
a 11. O nmero 11 significa
diviso por zero.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

74

MS-Excel 2003 - VBA

A listagem de erros que o VBA interpreta, relacionadas com os seus respectivos nmeros de identificao por ser encontrada no Ajuda
do Editor do Visual Basic.
Como Acessar a Listagem
de Erros
1. Na rotina de tratamento de
erros, selecione a
instruo On Error.
2. Pressione a tecla <F11>.

3. Clique no link Instruo On


Error.
4. Clique no link Consulte tambm.
5. Na caixa de dilogo Tpicos
encontrados, selecione Erros
interceptveis.
6. Clique no boto Exibir.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

75

MS-Excel 2003 - VBA

7. Clique no link do nmero do erro,


para exibir uma explicao sobre
o erro.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

76

MS-Excel 2003 - VBA

Apndices

Recursos Novos
As principais novidades que foram incorporadas no Office 2003 sero apresentadas abaixo. Para os usurios de verses anteriores isto
ajudar na adaptao nova interface. Aos iniciantes, conhecer os novos recursos facilitar a compreenso do modo como o Office
2003 trabalha.
A maior parte dos novos recursos tem como objetivo as empresas. A misso Office 2003 chegar at o nvel dos servidores
corporativos como um sistema completo para a gesto dos escritrios.

Suporte a XML
A grande novidade o suporte linguagem XML. XML (Extensible Markup Language) a linguagem que possibilita codificar
documentos, facilitando o intercmbio de dados entre diferentes sistemas. O XML funciona como uma espcie de idioma universal. Nas
verses profissionais do Office, alm de salvar as planilhas no formato XLS, o Excel tambm salva no padro XML.

Trabalho em Grupo
Outro recurso importante do Excel o trabalho em grupo. Voc criar nas empresas os espaos de trabalho compartilhados. Trata-se de
ambientes virtuais em que os usurios podem desenvolver projetos e trocar documentos. A criao desses ambientes virtuais requer o
uso de servidores como o Windows Server 2003 e o SharePoint Portal Service, que a soluo da Microsoft para intranets.

Ortografia e Gramtica
Na rea de ortografia e gramtica, h vrias novidades. Alm do dicionrio de sinnimos, que j existia na verso anterior, foi
incorporado o recurso de Traduo. Esse recurso, traduz palavras e frases em 12 idiomas diferentes, incluindo portugus, ingls,
francs, espanhol, italiano e at lnguas orientais, como chins, coreano e japons. O usurio deve indicar os idiomas de origem e
destino e selecionar no documento, ou digitar no painel de tarefas, a expresso a ser traduzida.

Maior Segurana
O Servio de Gerenciamento de Direitos de Informao (SGDI) um recurso para proteger documentos, impedindo que pessoas
erradas tenham acesso a informaes confidenciais. Ferramentas de GDI esto embutidas nos programas do Office 2003 nas verses
profissionais. No Excel, o menu Arquivo tem a opo Permisso, que d acesso ao GDI. Esse um recurso para empresas. O GDI usa
um servidor Windows Server 2003 para autenticar os usurios.

Mudanas na Linguagem VBA


Foram criadas novas funes, mas a inteno da Microsoft transformar o Office num sistema, que vai do desktop at as aplicaes
corporativas. A verso 2003 possui um pacote de ferramentas chamado Visual Studio Tools for Microsoft Office System. Essas
ferramentas permitem aos programadores que trabalham com o Visual Studio.Net a criao de aplicaes que funcionem com o Office.
O Visual Studio Tools traz plug-ins para que as linguagens do Visual Studio.NET acessem os objetos do Office, como planilhas do Excel
e documentos do Word.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

77

MS-Excel 2003 - VBA

Funcionalidade de Lista
No Microsoft Office Excel 2003, voc pode criar listas na planilha para agrupar e agir de acordo com dados relacionados. Pode tambm
criar uma lista de dados existentes ou criar uma lista a partir de um intervalo vazio. Quando especifica um intervalo como uma lista, voc
pode facilmente gerenciar e analisar os dados independentemente dos outros dados que estejam fora dela. Alm disso, as informaes
contidas em uma lista podem ser compartilhadas com outras atravs da integrao com o Microsoft Windows SharePoint Services.
Uma nova interface de usurio e um conjunto correspondente de funcionalidade ficam disponveis para intervalos que esto designados
como lista.

Por padro, toda coluna da lista est com o AutoFiltro habilitado na linha do cabealho, o que permite que voc filtre ou
classifique rapidamente os dados.

A borda de lista azul-escura demarca claramente o intervalo de clulas que formam a lista.

A linha no quadro de lista que contm um asterisco denomina-se linha de insero. Digitar informaes nessa linha adiciona
automaticamente dados lista.

possvel adicionar uma linha de total lista. Quando voc clica em uma clula dentro da linha de total, pode escolher em
uma lista suspensa de funes agregadas.

Voc pode modificar o tamanho da lista arrastando a ala de redimensionamento da imagem no canto inferior direito da borda
da lista.

Integrao com o Windows SharePoint Services


As listas do Excel permitem que voc colabore as informaes contidas em uma lista com perfeita integrao com o Windows
SharePoint Services. Voc pode criar uma lista do SharePoint com base na lista do Excel em um site do SharePoint publicando-a. Se
optar por vincular a lista ao site do SharePoint, qualquer alterao feita na lista no Excel ser refletida no site do SharePoint quando
voc sincroniz-la.
Voc tambm pode usar o Excel para editar listas existentes do Windows SharePoint Services. Pode tambm modificar a lista offline e
sincronizar suas alteraes posteriormente para atualizar a lista do SharePoint.

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados

78

MS-Excel 2003 - VBA

Especificaes do MS-Excel 2003


A tabela abaixo apresenta algumas especificaes do Excel.
Atributo

Limite Mximo

Nmero de linhas em uma planilha


Nmero de colunas em uma planilha
Nmero de planilhas em uma pasta de trabalho
Caracteres em uma clula

65.536
256 (A at IV)
255
Texto: 32.767 (somente 1.024 so exibidos na clula)
Frmula: 1024
32
Limitado pela memria do computador
10% a 400%
16
15 dgitos
1,79769313486231E308
-2,2250738585072E-308
7
01/01/1900
31/12/9999
9999:59:59
Limitado pela memria do computador
256
255

Clulas variveis em um cenrio


Funes personalizadas
Zoom
Nveis de desfazer
Preciso de nmero
Maior nmero positivo permitido
Menor nmero negativo permitido
Funes IF aninhadas
Menor data permitida
Maior data permitida
Quantidade mxima de tempo que pode ser inserida
Campos de linha ou de coluna em uma tabela dinmica
Campos de pgina e de dados em uma tabela dinmica
Seqncia de dados em um grfico

Ka Solution Tecnologia em Software Ltda


Todos os direitos reservados