Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM
description
Transcript of Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM
-
Abra este livro e descubra como:
TrabalharnoVisualBasicEditor
Dicasparalidarcomerroseexterminaodebugs
Maneirasdemontarprocedimentoseeventosautomticos
ComousarogravadordemacroExcel
TcnicasearmadilhasdeUserForm
InstruesparaprojetarmacrosVBA
Etapasparaacessarsuasmacrosatravsdainterfacedeusurio
Segredosparacriaradd-insExcel
www.altabooks.com.br
Programando Excel VBA
JOHN WALKENBACHAutor do best-seller Programando Excel 2007 VBA Para Leigos
Aprenda a: Usar as ferramentas essenciais e as
operaes em VBA
Trabalhar com objetos Range e fluxo de controle de programa
Lidar com erros e eliminar bugs em seu cdigo
Desenvolver interfaces de usurio personalizadas para os seus aplicativos, incluindo caixas de dilogo
Programando Excel VBA
Voc est pronto para fazer o Excel pular entre argolas? As suas planilhas funcionam exatamente da maneira desejada? Com este livro, voc pode dizer sim! Em seu interior, voc encontrar instrues passo a passo sobre como aperfeioar significativamente a potncia do Excel, usando a linguagem VBA. Logo ser possvel montar os seus prprios aplicativos Excel para conseguir o mximo de seus dados.
Mergulhe em VBA veja como VBA implementado em Excel, aplique tcnicas avanadas e use VBA com outros aplicativos Office
Entre nele explore os conceitos de programao a partir de objetos Range e funes de planilhas para eventos e manuseio de erros
Comunicao a chave aprenda como montar caixas de dilogo que parecem ter vindo diretamente do laboratrio de software da Microsoft
Segurana em primeiro lugar use macros Excel para tornar as suas planilhas mais seguras e bloquear vrus
Torne-o seu desenvolva funes personalizadas, crie add-ins, projete aplicativos orientados por usurio e incremente suas opes de carreira
Acesse o site www.paraleigos.com.br
e conhea outros ttulos!
Acelere na faixa de alta velocidade do Excel e dispare pelas personalizaes de planilhas
John Walkenbach tambm conhecido como Mr. Planilha a maior autoridade em Excel. Criador do premiado Power Utility Pack, Walkenbach escreveu mais de 50 livros e 300 artigos para publicaes, incluindo PC World, InfoWorld e Windows.
ISBN 978-85-7608-680-2
Computadores/Spreadsheets Tornando tudo mais fcil!
Traduo da 2 Edio
Walkenbach
VBA Excel.indd 1 15/02/2013 14:17:41
-
Abs Retorna a um valor de um nmero absoluto
Array Retorna uma variante que esta em ordem
Asc Converte um caractere para um valor ASCII
Atn Retorna o nmero inicial
CallByName Invoca ou prepara um mtodo de propriedade
CBool Converte uma expresso para boolean
CByte Converte uma expresso para um tipo de dados
CCur Converte uma expresso de um tipo de dados para a moeda CDate Converte uma expresso de um tipo de dados para o dia
CDbl Converte uma expresso de um tipo de dados em dupla
CDec Converte uma expresso de um tipo de dados em
Choose Seleciona e retorna um valor da lista
Chr Converte um valor ANSI da fila
CInt Converte um tipo de dados em uma expresso inteira
CLng Converte uma expresso longa de um tipo de dados
Cos Retorna o co-seno de um nmero
CreateObject Cria um automaticamente um objeto OLE
CSng Converte um tipo de dados em uma nica expresso
CStr Converte uma fila de expresso de um tipo de dados
CurDir Retorna par o caminho atual
CVar Converte um tipo de dados em uma varivel
CVDate Converte um tipo de dados um uma expresso
CVErr Retorna at um nmero definido como errado
Date Retorna at o sistema de dados atual
DateAdd Retorna a uma data especifica acrescentando intervalos sequenciais
DateDiff Retorna a uma data especifica subtraindo intervalos
DatePart Retorna a uma parte da data que contm algo especifico
DateSerial Converte uma data em uma serie de nmero
DateValue Converte um fila de dados
Day Retorna o dia do ms de um dado
DDB Retorna um ativo para um perodo especifico usando um mtodo decrescente
Dir Retorna o nome de um arquivo ou diretrio correspondente a um padro
DoEvents Submete a execuo, para que o sistema possa processar outros eventos
Environ Retorna uma fila associada com o sistema de operao varivel
EOF Retorna True se o texto do arquivo tiver chego no final
Error Retorna a mensagem de erro correspondente a um nmero incorreto
Exp Retorna a base natural do logartimo aumentando a fora
FileAttr Retorna o modo de arquivo para texto
Exp Retorna para o dia e a hora que o arquivo foi modificado pela ultima vez
FileLen Retorna para o nmero de bytes de um arquivo
Filter Retorna um subconjunto de grande variedade que filtra base de critrios
Fix Retorna a poro inteira de um nmero
Format Mostra uma expresso particularmente formatada
Format Currency
Retorna um nmero como uma linha formatada como moeda
FormatDate Time
Retorna um nmero como uma linha formatada no dia e hora
Format Number
Retorna um nmero formatado como linha
Format Percent
Retorna um nmero como uma linha, formatado com porcentagem
FreeFile Retorna para o prximo arquivo disponvel para usar a declarao Open
FV Retorna o futuro valor baseado no perodo de anuidade fixa, pagamentos e taxa de juros fixa
GetAll Retorna uma lista de configuraes e valores (configurao original criada com SaveSetting) de uma aplicao registrada pelo Windows
GetAttr Retorna um cdigo atribudo que representa um arquivo
GetObject Recupera um objeto OLE de um arquivo
GetSetting a Retorna um valor de uma chave de configurao registrada pelo Windows
Hex Converte decimal em hexadecimal
Hour Retorna o tempo e hora
IIf Retorna um em duas partes, dependendo da avaliao de uma expresso
Input Retorna um nmero especfico de nmeros de caracteres para um arquivo de texto
InputB Retorna um nmero especifico de bytes para um arquivo de texto
InputBox Mostra uma caixa de entrada do prompt para o usurio
InStr Retorna a posio de uma linha para dentro de uma outra linha
InStrB Retorna a posio do byte de uma linha para dentro de uma outra linha
InStrRev Retorna a posio de uma linha dentro de uma outra , comean-do do final da linha
Int Retorna a parte inteira de um nmero
IPmt Retorna o pagamento de juros dando o perodo de anuidade fixado
IRR Retorna taxa interna para um perodo de fluxo de dinheiro
IsArray Retorna True se a varivel estiver em ordem
IsDate Retorna True se a varivel for data
IsEmpty Retorna True se a varivel for iniciada
IsError Retorna True se uma expresso para um valor incorreto
IsMissing Retorna True se um argumento opcional no foi
Funes
Programando Excel VBA, Traduo da 2 Edio Fol
ha
de Cola
Para Leigos: a srie de livros para iniciantes que mais vende no mundo.
ExcelVBABokks.indb 1 15/02/2013 13:59:14
-
IsNumeric Retorna True se uma expresso pode ser avaliada como um nmero
IsObject Retorna True se uma expresso referir um objeto automtico OLE
Join Retorna uma linha criada por um nmero ligado a uma sublinha contida em uma ordem
LBound Retorna uma ordem de um nvel inferior
LCase Retorna uma linha convertida em minscula
Left Retorna um especifico caractere de nmero do lado esquerdo da linha
LeftB Retorna um especifico nmero de bytes do lado esquerdo da linha
Len Retorna quantidade de uma linha em caracteres
LenB Retorna a quantidade de uma linha em bytes
Loc Retorna a atual posio de leitura ou escrita do texto
LOF Retorna um nmero de bytes em arquivo de texto
Log Retorna o logaritmo natural de um nmero
LTrim Retorna a cpia de uma linha sem espao principal
Mid Retorna um nmero especifico de um caractere de uma linha
MidB Retorna um nmero especifico de bytes de uma linha
Minute Retorna o minuto de uma hora desejada
MIRR Retorna a taxa interna para um perodo de fluxo de dinheiro (usando diferentes taxas)
Month Retorna para o ms de um dia desejado
Month-Name
Retorna uma linha indicando o especifico ms
MsgBox Mostra a forma de caixa de mensagens
Now Retorna ao sistema atual de data e hora
NPer Retorna a um nmero de anuidade baseada no perodo fixo de pagamentos e taxa de juros
NPV Retorna o valor lquido atual de um investimento baseado no perodo de fluxo de dinheiro e desconto de taxa
Oct Converte decimal em octal
Partition Retorna uma variante de linha indicando onde ocorre o nmero calculado em uma serie de colunas
Pmt Retorna o pagamento para a anuidade baseada em um perodo, fixo e taxa de juros fixa
PPmt Retorna o principal pagamento para dar um perodo de anuidade baseado na taxa de juros fixa
PV Retorna o presente valor de uma anuidade baseado no perodo fixo de pagamento, para ser pago no futuro e fixado a taxa de juros
QBColor Retorna o RGB correspondente cor de um nmero especfico (compativelmente usado no Quick Basic)
Rate Retorna a taxa de juros por perodo de anuidade
Replace Retorna uma linha onde uma sublinha foi reposta
RGB Retorna um nmero representando um valor colorido RGB
Space Retorna uma linha com um especifico nmero de espaos
Spc Posiciona o output em um fluxo output
Split Retorna uma ordem constante de nmeros de uma sublinha
Sqr Retorna raiz quadrada de um nmero
Str Retorna uma linha representada por um nmero
Right Retorna um nmero especfico de caracteres do lado direito de uma linha
RightB Retorna um nmero especifico de bytes do lado direito de uma linha
Rnd Retorna um nmero aleatrio entre 0 e 1
Round Rodeia um nmero para um especifico espao de nmero decimal
RTrim Retorna uma copia de uma linha sem espaos rasteiros
Second Retorna o segundo
Seek Retorna a atual posio do arquivo de texto
Sgn Retorna um inteiro que indica o sinal de um nmero
Shell Roda um programa executvel
Sin Retorna a um nmero determinado
StrComp Retorna um valor indicado, resultado de uma comparao
StrConv Retorna a variante de uma linha
String Retorna a uma linha ou caractere repetidos
StrRe-verse
Reverte a ordem de uma sequncia de caracteres
Switch Avalia uma lista de expresses e retorna o valor associado com a primeira expresso da lista que True
SYD Retorna a soma de anos depreciada em um determinado perodo
Tab Posiciona o output em um fluxo output
Tan Retorna a tangente de um nmero
Time Retorna ao tempo atual do sistema
Timer Retorna o nmero de um Segundo desde a meia-noite
TimeSe-rial
Retorna o tempo especificando a hora minuto e segundo
TimeVa-lue
Converte uma linha para uma serie de nmeros
Trim Retorna a linha contendo uma copia da linha especificada sem limite de espaos
TypeNa-me
Retorna uma linha que descreve o tipo de dado da varivel
UBound Retorna uma ordem superior
UCase Converte uma linha em uppercase
Val Retorna os nmeros contidos em uma linha
VarType Retorna o valor indicando o subtipo de varivel
Weekday Retorna um nmero representando o dia da semana
Weekday Retorna uma linha indicando o dia da semana especifico
Year Retorna o ano da data
Folha
de Cola
Programando Excel VBA, Traduo da 2 Edio
Para Leigos: a srie de Livros para iniciantes que mais vende no mundo.
ExcelVBABokks.indb 2 04/02/2013 14:01:35
-
John Walkenbach
Programando Excel VBA
Traduo da 2a Edio
Rio de Janeiro, 2013
ExcelVBABokks.indb 1 15/02/2013 13:59:15
-
Rua Viva Cludio, 291 Bairro Industrial do JacarCEP: 20970-031 Rio de Janeiro Tels.: 21 3278-8069/8419 Fax: 21 3277-1253
www.altabooks.com.br e-mail: [email protected]/altabooks www.twitter.com/alta_books
Translated From Original: Excel VBA Programming For Dummies ISBN: 978-0-470-50369-0. Original English language edition Co-pyright 2007 by Wiley Publishing, Inc. All rights reserved including the right of reproduction in whole or in part in any form. This translation published by arrangement with Wiley Publishing, Inc. Portuguese language edition Copyright 2013 by Starlin Alta Editora e Consultoria Eireli. All rights reserved including the right of reproduction in whole or in part in any form.
Willey, the Wiley Publishing Logo, for Dummies, the Dummies Man and related trad dress are trademarks or registered trademarks of John Wiley and Sons, Inc. and/or its affiliates in the United States and/or other countries. Used under license.
Todos os direitos reservados e protegidos por Lei. Nenhuma parte deste livro, sem autorizao prvia por escrito da editora, poder ser repro-duzida ou transmitida.
Erratas: No site da editora relatamos, com a devida correo, qualquer erro encontrado em nossos livros.
Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou Comercial so de responsabilidade de seus proprietrios. A Editora informa no estar associada a nenhum produto e/ou fornecedor apresentado no livro.
Impresso no Brasil
Vedada, nos termos da lei, a reproduo total ou parcial deste livro.
Programando Excel VBA Para Leigos, Traduo da 2 Edio Copyright 2013 da Starlin Alta Editora e Consultoria Eireli. ISBN: 978-85-7608-680-2
Produo Editorial Editora Alta BooksGerncia Editorial Anderson VieiraSuperviso Grfica e Editorial Angel CabezaSuperviso de Qualidade Editorial Sergio Luiz de SouzaConselho de Qualidade Editorial Adalberto Taconi Anderson Vieira Angel Cabeza Pedro S Sergio Luiz de SouzaEditoria Atualizao Augusto Coutinho Cristiane Santos Marcelo Vieira Vanessa Gomes
Equipe de Design Adalberto Taconi Bruna Serrano Iuri Santos Marco Aurlio Silva
Equipe Editorial Ana Lucia Silva Brenda Ramalho Camila Werhahn Claudia Braga Daniel Siqueira Evellyn Pacheco Jaciara Lima Juliana de Paulo Licia Oliveira Milena Souza Natlia Gonalves Paulo Camerino Rafael Surgek Thi Alves Vinicius Damasceno
Traduo Juliana Morais Missina
Copidesque Savannah Hartman
Reviso Gramatical Equipe Alta Books
Reviso Gramatical Jefferson Santos
Diagramao Francisca Santos
Marketing e Promoo Daniel Schilklaper [email protected]
1 reimpresso, outubro de 2013
Dados Internacionais de Catalogao na Publicao (CIP)
W177p Walkenbach, John. Programando Excel VBA para leigos / John Walkenbach. Rio de Janeiro, RJ : Alta Books, 2012. 408 p. : il. ; 24 cm. (Para leigos) Inclui ndice. Traduo de: Excel VBA programming for dummies (2. ed.). ISBN 978-85-7608-680-2
1 1. Excel (Programa de computador). 2. Visual Basic for applications (Linguagem de programao de computador). 3. Planilhas eletrnicas. 4. Negcios - Programas de computador. I. Ttulo. II. Srie.
CDU 004.4:004.438 CDD 005.3
ndice para catlogo sistemtico:1. Excel (Programa de computador) : Visual Basic for applications 004.4:004.4382. Visual Basic for applications : Excel (Programa de computador) 004.4:004.438
(Bibliotecria responsvel: Sabrina Leal Araujo CRB 10/1507)
ExcelVBABokks.indb 2 15/02/2013 13:59:15
-
Sobre o AutorJohn Malkenbach o autor best-seller de mais de 50 livros de planilhas e mora no sul do Arizona. Quando ele no est usando Excel, provavel-mente est tocando banjo, trajando casaca.
ExcelVBABokks.indb 3 15/02/2013 13:59:15
-
DedicatriaEste livro dedicado ao Toad e Sra. Toad porque estou ficando sem pessoas para dedicatrias em livro.
Agradecimentos do AutorEu sou grato a todas as pessoas da Wiley Publishing por me dar a opor-tunidade de escrever livros sobre Excel. Agradecimentos especiais a Colleen Totz Diamond (editor de projeto) e a Jan Karel Pieterse (editor tcnico). Com certeza eles tornaram o meu trabalho muito mais fcil.
ExcelVBABokks.indb 4 15/02/2013 13:59:15
-
Sumrio Resumido
Introduo ............................................................................1
Parte I: Introduo ao VBA ..................................................... 11Captulo 1: O Que VBA ? ....................................................................................................... 13
Captulo 2: Saltando Para o Lugar Certo .......................................................................... 23
Parte II: Como o VBA Trabalha com o Excel .............................35Captulo 3: Trabalhando no Visual Basic Editor .................................................................. 37
Captulo 4: Introduo ao Modelo de Objeto do Excel....................................................... 55
Captulo 5: Procedimentos Function e Sub no VBA ....................................................... 69
Captulo 6: Usando o Gravador de Macro do Excel ........................................................ 81
Parte III: Conceitos de Programao ..................................... 93Captulo 7: Elementos Essenciais da Linguagem VBA ................................................... 95
Captulo 8: Trabalhando com Objetos Range ............................................................... 115
Captulo 9: Usando VBA e Funes de Planilha ............................................................... 129
Captulo 10: Controlando o Fluxo de Programa e Tomando Decises ....................... 141
Captulo 11: Procedimentos e Eventos Automticos ................................................... 161
Captulo 12: Tcnicas de Tratamento de Erros ................................................................. 183
Captulo 13: Tcnicas de Extermnio de Bugs ................................................................... 197
Captulo 14: Exemplos de Programao em VBA .............................................................. 211
Parte IV: Como se Comunicar com Seus Usurios ................. 233Captulo 15: Caixas de Dilogo Simples .............................................................................. 235
Captulo 16: Princpios Bsicos de UserForm .................................................................... 253
Captulo 17: Usando os Controles de UserForm ............................................................... 269
Captulo 18: Tcnicas e Truques do UserForm ................................................................. 289
Captulo 19: Como Acessar suas Macros atravs da Interface de Usurio ................... 313
ExcelVBABokks.indb 5 15/02/2013 13:59:15
-
Parte V: Juntando Tudo ..................................................... 331Captulo 20: Como Criar Funes de Planilha e Viver para Contar ........................... 333
Captulo 21:Criando Add-Ins do Excel................................................................................. 349
Parte VI: A Parte dos Dez .................................................. 361Captulo 22: Dez Perguntas de VBA (E Respostas) ........................................................... 363
Captulo 23: (Quase) Dez Recursos do Excel ..................................................................... 367
ndice .................................................................................371
vi Programando Excel VBA Para Leigos, Traduo da 2 Edio
ExcelVBABokks.indb 6 15/02/2013 13:59:15
-
Sumrio
Introduo ............................................................................... 1 Este o Livro Certo? .......................................................................................................1
Ento, Voc Quer Ser um Programador ...................................................................2
Por Que se Preocupar? ...................................................................................................3
O Que Presumo Sobre Voc ...........................................................................................3
Seo Obrigatria das Convenes Tipogrficas.......................................................4
Verifique Suas Configuraes de Segurana ...............................................................5
Como Este Livro Est Organizado ................................................................................6
Parte I: Introduo ao VBA ......................................................................................6
Parte II: Como VBA Funciona com Excel ...............................................................6
Parte III: Conceitos de Programao ......................................................................7
Parte IV: Comunicao com Seus Usurios...........................................................7
Parte V: Juntando Tudo ............................................................................................7
Parte VI: A Parte dos Dez .........................................................................................7
Espere, H Mais! ........................................................................................................7
cones Usados Neste Livro .............................................................................................7
Como Obter os Arquivos de Exemplos ........................................................................8
E Agora? ............................................................................................................................9
Parte I: Introduo ao VBA ..................................................... 11Captulo 1: O Que VBA ? ..................................................................................................................13
Tudo Bem, Ento o Que VBA? ..................................................................................13
O Que Voc Pode Fazer com VBA? .............................................................................14
Inserir um grupo de texto ......................................................................................15
Automatizar tarefas executadas com frequncia .................................................15
Automatizar operaes repetitivas ......................................................................15
Criar um comando personalizado ........................................................................15
Criar um boto personalizado ..............................................................................16
Desenvolver novas funes de planilhas ............................................................16
Criar aplicativos completos, guiados por macro ...............................................16
Criar suplementos (add-ins) personalizados para o Excel ...............................16
Vantagens e Desvantagens do VBA ............................................................................16
ExcelVBABokks.indb 7 15/02/2013 13:59:15
-
Vantagens do VBA ...................................................................................................17
Desvantagens do VBA .............................................................................................17
VBA Resumidamente ....................................................................................................18
Uma Excurso pelas Verses Anteriores ...................................................................20
Captulo 2: Saltando Para o Lugar Certo .........................................................................................23Primeiros Passos ...........................................................................................................23
Usurios de Excel 2010 ...........................................................................................24
Usurios de Excel 2007 ...........................................................................................24
O Que Voc Far ............................................................................................................25
Dando os Primeiros Passos .........................................................................................25
Gravando a Macro .........................................................................................................26
Testando a Macro ..........................................................................................................27
Examinando a Macro ....................................................................................................27
Modificando a Macro ....................................................................................................30
Salvando Planilhas que Contm Macros ...................................................................30
Entendendo a Segurana de Macro ............................................................................31
Mais sobre a Macro NameAndTime ...........................................................................33
Parte II: Como o VBA Trabalha com o Excel ............................. 35Captulo 3: Trabalhando no Visual Basic Editor ............................................................................37
O Que o Visual Basic Editor? ....................................................................................37
Ativando o VBE ........................................................................................................37
Entendendo os componentes do VBE ..................................................................38
Como Trabalhar com a Janela de Projeto .................................................................40
Adicionando um novo mdulo VBA .....................................................................41
Removendo um mdulo VBA ................................................................................41
Exportando e importando objetos .......................................................................42
Trabalhando com a Janela de Cdigo ........................................................................42
Minimizando e maximizando janelas ...................................................................42
Criando um mdulo ................................................................................................44
Como inserir cdigo VBA em um mdulo ...........................................................44
Inserindo o cdigo diretamente ............................................................................45
Usando o gravador de macro ................................................................................47
Copiando o cdigo VBA .........................................................................................49
Personalizando o Ambiente VBA ................................................................................49
Usando a guia Editor ...............................................................................................50
Usando a guia Formato do editor .........................................................................52
viii Programando Excel VBA Para Leigos, Traduo da 2 Edio
ExcelVBABokks.indb 8 15/02/2013 13:59:15
-
Usando a guia Geral ................................................................................................53
Usando a guia Encaixe ............................................................................................54
Captulo 4: Introduo ao Modelo de Objeto do Excel ................................................................55Excel um Objeto? .......................................................................................................56
Escalando a Hierarquia de Objetos ............................................................................56
Enchendo Sua Cabea com Colees ........................................................................58
Como Fazer Referncia aos Objetos ..........................................................................58
Como navegar pela hierarquia ..............................................................................59
Simplificando referncias a objetos .....................................................................60
Mergulhando nas Propriedades e nos Mtodos do Objeto ....................................60
Propriedades do objeto ..........................................................................................62
Mtodos de Objeto..................................................................................................63
Eventos de objeto....................................................................................................64
Descobrindo Mais .........................................................................................................64
Usando o sistema de Ajuda de VBA .....................................................................65
Como usar o Pesquisador de Objeto ...................................................................66
Como relacionar automaticamente propriedades e mtodos .........................66
Captulo 5: Procedimentos Function e Sub no VBA .....................................................................69Subs versus Funes ....................................................................................................69
Observando os procedimentos Sub .....................................................................70
Observando os procedimentos Function ............................................................70
Nomeando Subs e Functions .................................................................................71
Executando Procedimentos Sub .................................................................................71
Executando diretamente o procedimento Sub ...................................................73
Executando um procedimento a partir da caixa de dilogo Macro ................74
Executando uma macro usando uma tecla atalho .............................................75
Executando um procedimento a partir de um boto ou forma .......................76
Executando um procedimento a partir de outro procedimento .....................78
Executando Procedimentos Function ........................................................................78
Chamando uma funo a partir de um procedimento Sub ..............................79
Chamando uma funo a partir de uma frmula de planilha ...........................79
Captulo 6: Usando o Gravador de Macro do Excel .....................................................................81Isto Est Vivo ou VBA? ..............................................................................................81
O Bsico sobre Gravao .............................................................................................82
Preparao para Gravar ...............................................................................................84
Relativo ou Absoluto? ...................................................................................................84
Sumrio ix
ExcelVBABokks.indb 9 15/02/2013 13:59:15
-
Gravando no modo absoluto .................................................................................84
Gravando no modo relativo ...................................................................................85
O Que Gravado? .........................................................................................................87
Opes da Gravao .....................................................................................................88
Nome da Macro .......................................................................................................88
Tecla de Atalho ........................................................................................................89
Armazenar Macro Em .............................................................................................89
Descrio ..................................................................................................................89
Essa Coisa Eficiente? .................................................................................................90
Parte III: Conceitos de Programao ....................................... 93Captulo 7: Elementos Essenciais da Linguagem VBA ................................................................95
Usando Comentrios em Seu Cdigo VBA ................................................................95
Usando Variveis, Constantes e Tipos de Dados .....................................................97
Entendendo variveis .............................................................................................97
O que so tipos de dados do VBA? ......................................................................98
Declarando e estendendo variveis .....................................................................99
Trabalhando com constantes..............................................................................105
Constantes pr-fabricadas ...................................................................................106
Trabalhando com strings .....................................................................................107
Trabalhando com datas .......................................................................................108
Usando Declaraes de Atribuio ..........................................................................109
Exemplos de declarao de atribuio ..............................................................109
Sobre aquele sinal de igual ..................................................................................109
Operadores regulares ...........................................................................................110
Trabalhando com Arrays ...........................................................................................112
Declarando arrays .................................................................................................112
Arrays multidimensionais ....................................................................................113
Arrays dinmicos ..................................................................................................113
Usando Labels (Etiquetas) .........................................................................................114
Captulo 8: Trabalhando com Objetos Range .............................................................................. 115Uma Reviso Rpida ...................................................................................................115
Outras Maneiras de Fazer Referncia a uma Faixa ................................................117
A propriedade Cells ..............................................................................................117
A propriedade Offset ............................................................................................118
Fazendo referncia a colunas e linhas inteiras .................................................119
Algumas Propriedades teis do Objeto Range .......................................................119
x Programando Excel VBA Para Leigos, Traduo da 2 Edio
ExcelVBABokks.indb 10 15/02/2013 13:59:15
-
A propriedade Value .............................................................................................120
A propriedade Text ...............................................................................................121
A propriedade Count ............................................................................................121
As propriedades Column e Row .........................................................................121
A propriedade Address ........................................................................................122
A propriedade HasFormula..................................................................................122
A propriedade Font ...............................................................................................123
A propriedade Interior .........................................................................................123
A propriedade Formula ........................................................................................124
A propriedade NumberFormat ............................................................................125
Alguns Mtodos teis do Objeto Range ..................................................................126
O mtodo Select ....................................................................................................126
Os mtodos Copy e Paste ....................................................................................127
O mtodo Clear ......................................................................................................127
O mtodo Delete ....................................................................................................128
Captulo 9: Usando VBA e Funes de Planilha ......................................................................... 129O Que uma Funo? .................................................................................................129
Usando Funes VBA Integradas ..............................................................................130
Exemplo de funo VBA .......................................................................................130
Funes VBA que fazem mais do que retornar um valor ...............................132
Descobrindo funes VBA ...................................................................................133
Usando Funes de Planilha no VBA .......................................................................135
Exemplos de funes e planilhas ........................................................................136
Introduzindo funes de planilha .......................................................................138
Mais Sobre o Uso de Funes de Planilha ...............................................................139
Usando Funes Personalizadas ..............................................................................139
Captulo 10: Controlando o Fluxo de Programa e Tomando Decises .................................. 141Seguindo o Fluxo, Cara ...............................................................................................141
A Declarao GoTo ......................................................................................................142
Decises, decises ................................................................................................143
A estrutura If-Then ................................................................................................143
A estrutura Select Case ........................................................................................148
Fazendo Seu Cdigo Dar um Loop ............................................................................151
Loop For-Next ........................................................................................................152
Loop Do-While .......................................................................................................156
Loop Do-Until .........................................................................................................157
Fazendo Loop atravs de uma Collection ...............................................................158
Sumrio xi
ExcelVBABokks.indb 11 15/02/2013 13:59:16
-
Captulo 11: Procedimentos e Eventos Automticos ................................................................ 161Preparao para o Grande Evento ...........................................................................161
Os eventos so teis? ...........................................................................................163
Programando procedimentos que lidam com eventos ...................................164
Aonde Vai o Cdigo VBA? ..........................................................................................164
Escrevendo um Procedimento Que Lida com Evento ...........................................165
Exemplos Introdutrios .............................................................................................167
O evento Open para uma pasta de trabalho .....................................................167
O evento BeforeClose para uma pasta de trabalho .........................................169
O evento BeforeSave para uma pasta de trabalho ...........................................169
Exemplos de Ativao de Eventos ............................................................................170
Ativar e desativar eventos em uma planilha .....................................................170
Ativar e desativar eventos em uma pasta de trabalho ....................................171
Eventos de ativao de pasta de trabalho ........................................................173
Outros Eventos Relacionados Worksheet (Planilha) ..........................................174
O evento BeforeDoubleClick ...............................................................................174
O evento BeforeRightClick ...................................................................................174
O evento Change ...................................................................................................175
Eventos No Associados a Objetos ..........................................................................177
O evento OnTime ..................................................................................................178
Eventos de pressionamento de teclas ...............................................................180
Captulo 12: Tcnicas de Tratamento de Erros ........................................................................... 183Tipos de Erros..............................................................................................................183
Um Exemplo Errneo ..................................................................................................184
A imperfeio da macro .......................................................................................185
A macro ainda no perfeita...............................................................................186
A macro j est perfeita? ......................................................................................186
Desistindo da perfeio ........................................................................................187
Como Lidar com Erros de Outra Maneira ...............................................................188
Revendo o procedimento EnterSquareRoot .....................................................188
Sobre a declarao On Error ...............................................................................189
Como Lidar com Erros: Os Detalhes ........................................................................190
Recuperao depois de um erro .........................................................................190
Lidando com erros resumidamente ...................................................................192
Como saber quando ignorar erros .....................................................................192
Como identificar erros especficos .....................................................................193
Um Erro Intencional ....................................................................................................194
xii Programando Excel VBA Para Leigos, Traduo da 2 Edio
ExcelVBABokks.indb 12 15/02/2013 13:59:16
-
Captulo 13: Tcnicas de Extermnio de Bugs ............................................................................ 197Espcies de Bugs .........................................................................................................197
Como Identificar Bugs ................................................................................................198
Tcnicas de Depurao ..............................................................................................199
Como examinar o seu cdigo ..............................................................................199
Usando a funo MsgBox .....................................................................................200
Inserindo declaraes Debug.Print ....................................................................201
Usando o depurador VBA ....................................................................................202
Sobre o Depurador ......................................................................................................202
Configurando pontos de interrupo em seu cdigo ......................................202
Usando a janela Inspeo de Variveis ..............................................................206
Usando a janela de Variveis locais ....................................................................207
Dicas para Reduo de Bugs .....................................................................................208
Captulo 14: Exemplos de Programao em VBA ...................................................................... 211Como Trabalhar com Ranges (faixas) ......................................................................211
Copiando uma faixa ..............................................................................................212
Copiando uma faixa de tamanho varivel .........................................................213
Selecionando ao final de uma linha ou coluna .................................................214
Selecionando uma linha ou coluna .....................................................................215
Movendo uma faixa ...............................................................................................215
Como fazer loop eficientemente atravs de uma faixa ...................................216
Como fazer loop eficientemente atravs de uma faixa (Parte II) ...................217
Solicitando o valor de uma clula .......................................................................218
Determinando o tipo de seleo .........................................................................219
Identificando uma seleo mltipla ...................................................................219
Mudando as Configuraes do Excel .......................................................................220
Mudando configuraes Booleanas ...................................................................221
Mudando configuraes no Booleanas............................................................221
Trabalhando com Grficos ........................................................................................222
Modificando o tipo de grfico .............................................................................224
Fazendo Looping atravs da coleo ChartObjects ........................................224
Modificando propriedades Chart .......................................................................225
Aplicando formatao de grfico........................................................................225
Dicas de Velocidade do VBA ......................................................................................227
Desativando a atualizao de tela ......................................................................227
Desativando o clculo automtico .....................................................................228
Eliminando aquelas inoportunas mensagens de alerta ..................................228
Sumrio xiii
ExcelVBABokks.indb 13 15/02/2013 13:59:16
-
Simplificando referncias de objeto ...................................................................229
Declarando tipos de variveis .............................................................................230
Como usar a estrutura With-End With ...............................................................231
Parte IV: Como se Comunicar com Seus Usurios ................... 233Captulo 15: Caixas de Dilogo Simples ...................................................................................... 235
Alternativas a UserForm ............................................................................................235
A Funo MsgBox ........................................................................................................236
Obtendo uma resposta de uma caixa de mensagem .......................................237
Personalizando caixas de mensagem ................................................................238
A Funo InputBox ......................................................................................................241
Sintaxe InputBox ...................................................................................................241
Um exemplo de InputBox .....................................................................................242
O Mtodo GetOpenFilename .....................................................................................244
A sintaxe para o mtodo GetOpenFilename .....................................................244
Um exemplo de GetOpenFilename .....................................................................245
Selecionando mltiplos arquivos .......................................................................247
O Mtodo GetSaveAsFileName ..................................................................................248
Como Obter um Nome de Pasta ...............................................................................249
Exibindo as Caixas de Dilogo Integradas do Excel...............................................250
Captulo 16: Princpios Bsicos de UserForm ............................................................................ 253Como Saber Quando Usar um UserForm ................................................................253
Criando UserForms: Uma Viso Geral ......................................................................254
Trabalhando com UserForms....................................................................................255
Inserindo um novo UserForm .............................................................................255
Adicionando controles a um UserForm .............................................................256
Mudando propriedades em um controle UserForm ........................................257
Observando a janela de Cdigo de UserForm ..................................................258
Exibindo um UserForm .........................................................................................259
Usando informaes de um UserForm ..............................................................259
Um Exemplo de UserForm .........................................................................................260
Criando o UserForm ..............................................................................................260
Adicionando os botes de comando .................................................................261
Adicionando os botes de opo .......................................................................262
Adicionando procedimentos que lidam com eventos .....................................263
Criando uma macro para exibir a caixa de dilogo .........................................265
Como disponibilizar a macro ..............................................................................266
Testando a macro ..................................................................................................267
xiv Programando Excel VBA Para Leigos, Traduo da 2 Edio
ExcelVBABokks.indb 14 15/02/2013 13:59:16
-
Captulo 17: Usando os Controles de UserForm ......................................................................... 269Comeando com os Controles da Caixa de Dilogo ..............................................269
Adicionando controles .........................................................................................269
Introduzindo propriedades de controle ............................................................270
Controles de Caixa de Dilogo: Os Detalhes ...........................................................273
Controle Caixa de Seleo....................................................................................274
Controle Caixa de Combinao ...........................................................................274
Controle Boto de comando ................................................................................275
Controle Quadro ....................................................................................................276
Controle Imagem ...................................................................................................276
Controle Rtulo .....................................................................................................277
Controle Caixa de Listagem .................................................................................278
Controle Multi-pgina ...........................................................................................279
Controle Boto de Opo .....................................................................................279
Controle RefEdit ....................................................................................................280
Controle Barra de Rolagem ..................................................................................281
Controle Boto de Rotao ..................................................................................282
Controle TabStrip ..................................................................................................282
Controle Caixa de Texto .......................................................................................282
Controle ToggleButton .........................................................................................283
Trabalhando com Controles de Caixa de Dilogo ..................................................284
Movendo e redimensionando controles ............................................................284
Alinhando e espaando controles ......................................................................284
Acomodando teclado de usurios ......................................................................285
Testando um UserForm ........................................................................................287
Esttica de Caixa de Dilogo .....................................................................................287
Captulo 18: Tcnicas e Truques do UserForm ........................................................................... 289Como Usar Caixas de Dilogo ...................................................................................289
Um Exemplo de UserForm .........................................................................................289
Criando a caixa de dilogo ...................................................................................290
Escrevendo cdigo para exibir a caixa de dilogo...........................................292
Disponibilizando a macro ....................................................................................292
Testando a sua caixa de dilogo .........................................................................293
Adicionando procedimentos que lidam com eventos .....................................294
Validando os dados ...............................................................................................295
Agora a caixa de dilogo funciona ......................................................................296
Mais Exemplos do UserForm .....................................................................................296
Um exemplo de Caixa de Listagem .....................................................................296
Sumrio xv
ExcelVBABokks.indb 15 15/02/2013 13:59:16
-
Preenchendo uma Caixa de Listagem ................................................................297
Selecionando uma faixa ........................................................................................301
Usando mltiplos conjuntos de Botes de opo ...........................................302
Utilizando um Boto de Rotao e uma Caixa de Texto .................................303
Usando um UserForm como um indicador de progresso ...............................305
Criao de uma caixa de dilogo Multi-pgina .................................................308
Exibindo um grfico em um UserForm ..............................................................310
Uma Lista de Verificao de Caixa de Dilogo ........................................................311
Captulo 19: Como Acessar suas Macros atravs da Interface de Usurio ......................... 313O Que Aconteceu com CommandBars? ...................................................................313
Personalizao da Faixa de Opes .........................................................................314
Como personalizar manualmente a Faixa de Opes .....................................314
Personalizando a Faixa de Opes com XML ...................................................316
Personalizando Menus de Atalho .............................................................................321
Comandando a coleo de CommandBars .......................................................321
Listando todos os menus de atalho ...................................................................321
Referncia a CommandBars ................................................................................322
Referncia a controles em um CommandBar ...................................................323
Propriedades de controles CommandBar .........................................................324
Exemplos de Menu de Atalho VBA ...........................................................................326
Adicionando um novo item ao menu de atalho Cell ........................................326
Desativando um menu de atalho ........................................................................328
Criando uma Barra de Ferramentas Personalizadas .............................................329
Parte V: Juntando Tudo ........................................................ 331Captulo 20: Como Criar Funes de Planilha e Viver para Contar .................................. 333
Por Que Criar Funes Personalizadas? ..................................................................333
Como Entender os Princpios Bsicos de Funo VBA .........................................334
Escrevendo Funes ...................................................................................................335
Trabalhando com Argumentos de Funo ..............................................................335
Exemplos de Funo ...................................................................................................336
Uma funo sem argumento ................................................................................336
Uma funo com um argumento .........................................................................336
Uma funo com dois argumentos .....................................................................338
Uma funo com um argumento faixa ...............................................................339
Uma funo com um argumento opcional ........................................................340
Uma funo com um nmero indefinido de argumentos ................................342
xvi Programando Excel VBA Para Leigos, Traduo da 2 Edio
ExcelVBABokks.indb 16 15/02/2013 13:59:16
-
Funes Que Retornam um Array ............................................................................343
Retornando um array de nomes de meses .......................................................343
Retornando uma lista classificada ......................................................................344
Como Usar a Caixa de Dilogo Inserir Funo ........................................................345
Exibindo a descrio da funo ..........................................................................346
Descries de argumento ....................................................................................347
Captulo 21: Criando Add-Ins do Excel ......................................................................................... 349Certo Ento, o Que um Add-In? .........................................................................349
Por Que Criar Add-Ins? ...............................................................................................350
Trabalhando com Add-Ins .........................................................................................351
Princpios Bsicos do Add-In ....................................................................................352
Um Exemplo de Add-In ...............................................................................................353
Configurando a pasta de trabalho ......................................................................353
Testando a pasta de trabalho ..............................................................................355
Como adicionar informaes descritivas ..........................................................356
Protegendo o cdigo VBA ....................................................................................357
Criando o add-in ....................................................................................................357
Abrindo o add-in ...................................................................................................357
Distribuindo o add-in ............................................................................................358
Como modificar o add-in ......................................................................................359
Parte VI: A Parte dos Dez ..................................................... 361Captulo 22: Dez Perguntas de VBA (E Respostas) .................................................................... 363
Captulo 23: (Quase) Dez Recursos do Excel .............................................................................. 367O Sistema de Ajuda do VBA .......................................................................................367
Suporte de Produtos Microsoft .................................................................................367
Grupos de Notcias da Internet .................................................................................368
Sites da Internet ...........................................................................................................369
Blogs do Excel ..............................................................................................................369
Google ...........................................................................................................................369
Bing ................................................................................................................................369
Grupos e Usurios Locais ..........................................................................................370
Meus Outros Livros .....................................................................................................370
ndice ................................................................................. 371
Sumrio xvii
ExcelVBABokks.indb 17 15/02/2013 13:59:16
-
xviii Programando Excel VBA Para Leigos, Traduo da 2 Edio
ExcelVBABokks.indb 18 15/02/2013 13:59:16
-
Introduo
Saudaes, futuro programador de Excel...Obrigado por comprar este livro. Creio que voc descobrir que ele oferece uma maneira rpida e agradvel de encontrar os prs e os contras de programao em Microsoft Excel. Ainda que voc no tenha a mais vaga ideia do que se trata programao, este livro pode ajud-lo a fazer o Excel pular atravs de argolas rapidamente (bem, talvez demore algum tempo).
Diferentemente de outros livros de programao, este foi escrito em linguagem simples, para que pessoas normais pudessem entender. Melhor ainda, ele est cheio de informaes do tipo s os fatos e no do tipo que voc poderia precisar uma vez a cada trs geraes.
Este o Livro Certo?V at qualquer grande livraria e voc descobrir muitos livros sobre Excel (livros demais, na minha opinio). Uma rpida olhada pode ajud-lo a decidir se este livro realmente o certo para voc. Este livro:
5 Foi desenvolvido para aqueles que pretendem se adaptar rapidamente programao de Aplicativos Visual Basic (VBA).
5 No requer experincia anterior com programao.
5 Cobre os comandos mais comuns.
5 adequado para o Excel 2007 ou para o Excel 2010.
5 Voc poder at dar um sorriso ocasionalmente ele tem at desenhos animados.
Se voc est usando Excel 2000, XP, ou 2003, este livro no para voc. O Excel 2007 e o Excel 2010 so muito diferentes das verses anteriores. Caso ainda esteja usando uma verso de Excel anterior de 2007, procure um livro que seja especfico para aquela verso.
ExcelVBABokks.indb 1 15/02/2013 13:59:16
-
2 Programando Excel VBA Para Leigos, Traduo da 2a Edio
A propsito, este no um livro de introduo ao Excel. Se voc estiver procurando por um livro de Excel de objetivos gerais, verifique quaisquer outros livros publicados pela Alta Books, no site www.altabooks.com.br.
Note que o ttulo deste livro no O Guia Completo de Programao VBA em Excel Para Leigos. Eu no abordo todos os aspectos de progra-mao em Excel e, novamente, provvel que voc no queira saber tudo sobre esse assunto. No caso, improvvel, de querer um livro de programao de Excel mais compreensvel, poderia experimentar o Microsoft Excel 2010 Power Programming com VBA, de John Walkenbach (esse camarada prolfico ou o qu?), publicado pela Wiley. E sim, tambm est disponvel uma edio para Excel 2007.
Ento, Voc Quer Ser um Programador
Alm de ganhar dinheiro para pagar minhas contas, meu objetivo principal mostrar para usurios de Excel como usar a linguagem VBA uma ferramenta que ajuda a ampliar significativamente o poder da planilha mais popular do mundo. No entanto, usar VBA envolve programao.
Se voc como a maioria dos usurios de computador, a palavra programador cria uma imagem de algum que se parece e se comporta de um modo totalmente diferente de voc. Talvez palavras como nerd, geek e dweeb apaream na memria.
Os tempos mudaram. Programar computadores se tornou mais fcil, e at as pessoas chamadas normais fazem isso e at admitem isso aos amigos e familiares. Programar significa apenas desenvolver instrues que o computador executa automaticamente. Programar em Excel refere-se ao fato de que possvel orientar o Excel a executar automaticamente tarefas que em geral voc faz manualmente poupando muito do seu tempo (voc espera) e reduzindo erros. Eu poderia continuar, mas preciso guardar alguma coisa boa para o Captulo 1.
Se voc leu at aqui, seguro apostar que voc precisa se tornar um programador de Excel. Isto pode ser algo que voc decidiu por si mesmo, ou (mais provavelmente) algo que seu chefe imps. Neste livro, eu lhe digo o suficiente sobre programao em Excel de modo que voc no se sentir um idiota na prxima vez que ficar preso em uma sala com um grupo de aficionados em Excel. E quando terminar este livro, voc poder dizer, honestamente, Sim, eu programo em Excel.
ExcelVBABokks.indb 2 15/02/2013 13:59:16
-
3 Introduo
Por Que se Preocupar?A maioria dos usurios de Excel nunca se importa em explorar a progra-mao VBA. O seu interesse neste tpico o coloca, definitivamente, em uma tropa de elite. Bem-vindo ao grupo! Se voc ainda no est conven-cido de que se tornar um mestre em programao no Excel uma boa ideia, tenho alguns bons motivos pelos quais voc poderia querer dedicar algum tempo para aprender a programar VBA.
5 Isso o tornar mais competitivo no mercado de trabalho. Gostando ou no, os aplicativos da Microsoft so extremamente populares. Voc j deve saber que todas as aplicaes da Microsoft suportam VBA. Quanto mais voc sabe sobre VBA, melhores so as suas chances para progredir em seu trabalho.
5 Permitir que voc explore o mximo do seu investimento em software (ou, mais provavelmente o investimento do seu empregador). Usar Excel sem saber VBA como comprar uma TV e assistir a apenas os canais mpares.
5 Aumentar sua produtividade (eventualmente).Definitivamente, demora algum tempo para conhecer VBA, mas esse tempo ser compensado quando voc for mais produtivo. como o que lhe disseram sobre ir para a faculdade.
5 divertido (bem, algumas vezes). Algumas pessoas gostam, de fato, de fazer certas coisas com Excel que seriam impossveis de outra forma. Quando voc terminar este livro, poder ser uma dessas pessoas.
Est convencido agora?
Penso que...Normalmente, pessoas que escrevem livros tm em mente um leitor alvo. Neste livro, o meu leitor alvo um conglomerado de dzias de usurios de Excel que conheci atravs dos anos (tanto pessoalmente como no ciberespao). Os seguintes pontos descrevem bem o meu hipottico leitor alvo:
5 Voc tem acesso a um PC no trabalho e provavelmente em casa.
5 Voc usa Excel 2007 ou Excel 2010.
5 Voc vem usando computadores h muitos anos.
5 Voc usa Excel frequentemente no trabalho, e considera ser mais capaz no uso da ferramenta do que o pblico geral.
5 Voc precisa que o Excel faa algumas coisas que atualmente no consegue que ele faa.
5 Voc tem pouca ou nenhuma experincia em programao.
ExcelVBABokks.indb 3 15/02/2013 13:59:16
-
4 Programando Excel VBA Para Leigos, Traduo da 2a Edio
5 Voc compreende que o sistema de Help do Excel pode realmente ser til. Encare os fatos, este livro no cobre tudo. Se voc conseguir se entender com o sistema de Help, voc conseguir achar as peas que faltam.
5 Voc precisa concluir algum trabalho e possui pouca tolerncia livros grossos e chatos sobre computao.
Seo Obrigatria das Convenes Tipogrficas
Todos os livros de computao possuem uma seo sobre isto. Eu acho que existe alguma lei federal exigindo isso. Leia ou simplesmente pule esta etapa.
Algumas vezes, eu me refiro a combinaes de teclas, o que significa que voc pressionar uma tecla enquanto aperta outra, por exemplo, Ctrl+Z significa que voc pressiona a tecla Ctrl e a tecla Z ao mesmo tempo.
Nos comandos de menu, uso um caractere distinto para separar itens do menu. Por exemplo, para abrir um arquivo do livro-texto, voc usa o seguinte comando:
ArquivoAbrir
Observe que no Excel 2007, no h algo como um menu File (Arquivo) visvel em sua tela. No Excel 2007, o menu Arquivo foi substitudo pelo Office Button (Boto Office), uma pequena engenhoca redonda que aparece do lado superior esquerdo de qualquer aplicativo do Office 2007, que implementou o que chamado de Ribbon (Barra). A certa altura, a Microsoft resolveu que o Office Button no era uma ideia to boa e o Excel 2010 descartou aquele Office Button redondo e o substituiu por uma guia de Boto chamada Arquivo. Neste livro, eu o chamo de Arquivo, portan-to, se voc usar Excel 2007, lembre-se apenas de que Arquivo significa pequena engenhoca redonda do lado superior esquerdo.
Qualquer texto que voc precisar inserir aparece em negrito. Por exemplo, eu poderia dizer, entre com =SUM(B:B) na clula A1.
A programao em Excel envolve desenvolver cdigo isto , as instrues que o Excel segue. Todo o cdigo neste livro apresentado com uma fonte como:
Range(A1:A12).Select
Alguns cdigos de linhas longas no cabem nas margens deste livro. Em tais casos, eu uso a sequncia de caracteres padro VBA de continua-o de linha: um espao seguido por um caractere de sublinhado. Eis um exemplo:
ExcelVBABokks.indb 4 15/02/2013 13:59:16
-
5 Introduo
Selection.PasteSpecial Paste:=xlValues, _ Operation:=xlNone, SkipBlanks:=False, _ Transpose:=False
Quando inserir este cdigo, voc poder digit-lo como est ou coloc--lo em uma linha nica (retirando os espaos e os sublinhados).
Verifique Suas Configuraes de Segurana
Vivemos em um mundo cruel. Parece que h sempre um estrategista tentando obter vantagem de voc ou causando algum tipo de problema. O mundo da computao igualmente cruel. Provavelmente, voc sabe a respeito de vrus de computador, os quais podem causar coisas desagradveis em seu sistema. Mas, voc sabe que os vrus de compu-tador tambm podem estar em um arquivo Excel? verdade. De fato, relativamente fcil escrever um vrus de computador usando VBA. Inocentemente, um usurio pode abrir um arquivo Excel e espalhar o vrus para outros arquivos Excel, e para outros sistemas.
Com o passar dos anos, a Microsoft se tornou cada vez mais preocupa-da com problemas de segurana. Isto uma coisa boa, mas tambm significa que usurios do Excel precisam entender como as coisas funcionam. Voc pode checar as configuraes de segurana do Excel clicando em Arquivo < Opes < Central de confiabilidade < Configu-raes da Central de Confiabilidade. Existe uma mirade de opes l dentro, e corre o boato que nunca mais se ouviu falar das pessoas que abriram tal caixa de dilogo.
Se voc clicar na guia Configuraes de Macro ( esquerda da caixa de dilogo [Central de Confiabilidade]), as suas opes sero como a seguir:
5 Desabilitar todas as macros sem notificao: As macros no funcionaro, no importa o que voc fizer.
5 Desabilitar todas as macros com notificao: Quando voc abre um arquivo Excel com macros, voc ver uma Barra de Mensagem aberta com uma opo para voc clicar e habilitar as macros, ou (se o VBE estiver aberto), voc receber uma mensagem perguntando se quer habilitar as macros.
5 Desabilitar todas as macros, exceto as digitalmente assinadas: Apenas macros com uma assinatura digital podem rodar (porm, at mesmo para aquelas assinaturas que no foram marcadas como confiveis, voc receber o aviso de segurana).
5 Habilitar todas as macros (no recomendado; cdigos possivelmente perigosos podem ser executados).
ExcelVBABokks.indb 5 15/02/2013 13:59:16
-
6 Programando Excel VBA Para Leigos, Traduo da 2a Edio
Imagine este cenrio: Voc passa uma semana escrevendo um programa VBA matador, que revolucionar a sua empresa. Voc o testa cuidadosa-mente e depois envia ao seu chefe. Ele o chama ao seu escritrio e reclama que a sua macro no faz absolutamente nada. O que est acontecendo? Possivelmente, as configuraes de segurana do Excel de seu chefe no permitem a execuo de macros. Ou talvez ele tenha decidido aceitar a sugesto padro da Microsoft e desativar as macros ao abrir o arquivo.
A questo toda? S porque uma planilha Excel contm uma macro, no garante que a macro ser executada. Tudo depende da configurao de segurana e se o usurio decide ativar ou desativar macros para aquele arquivo.
Para trabalhar com este livro, ser preciso habilitar as macros para os arquivos com os quais voc trabalha. Meu conselho usar o segundo nvel de segurana. Ento, quando abrir o arquivo que criou, voc pode simplesmente habilitar as macros. Se voc abrir um arquivo de algum que no conhece, voc deve desabilitar as macros e verificar o cdigo VBA para ter certeza de que no possui nada destrutivo ou malicioso. Geralmente, muito fcil identificar um cdigo VBA suspeito.
Como Este Livro Est OrganizadoEu dividi este livro em seis partes importantes, cada qual contendo vrios captulos. Embora eu tenha arrumado os captulos em uma sequncia lgica, voc pode l-los em qualquer ordem que quiser. Eis uma rpida viso geral do que est guardado para voc.
Parte I: Introduo ao VBAA Parte I contm dois captulos. No primeiro captulo, apresento a lingua-gem VBA. No Captulo 2, fao-o suar, levando-o para um passeio guiado.
Parte II: Como o VBA Funciona com ExcelAo escrever este livro, eu assumi que voc j sabe como usar Excel. Os quatro captulos na Parte II mostram de forma mais clara como VBA implementado no Excel. Todos esses captulos so importantes, portanto, eu no recomendo que os pule, certo?
ExcelVBABokks.indb 6 15/02/2013 13:59:16
-
7 Introduo
Parte III: Conceitos de ProgramaoOs oito captulos na Parte III o levam ao que realmente a programa-o. Voc talvez no precise saber todas essas coisas, mas ficar grato se estiverem l quando voc precisar.
Parte IV: Como se Comunicar com Seus UsuriosUma das melhores partes de programar em Excel desenvolver caixas de dilogo (bem, pelo menos, eu gosto). Os cinco captulos da Parte IV lhe mostram como criar caixas de dilogo que parecem ter vindo diretamente do laboratrio de software da Microsoft.
Parte V: Juntando TudoOs dois captulos da Parte V renem informaes dos captulos anterio-res. Voc descobrir como incluir os seus prprios botes personalizados na interface de usurio do Excel e aprender como desenvolver funes personalizadas de planilhas, criar add-ins, projetar aplicativos orientados por usurio e at mesmo trabalhar com outros aplicativos Office.
Parte VI: A Parte dos DezTradicionalmente, livros da srie Para Leigos possuem uma parte final que consiste de pequenos captulos com listas prticas e informativas. Porque eu sou um f de tradies, este livro contm dois de tais captulos, os quais voc pode pesquisar quando de sua convenincia (se voc for como a maioria dos leitores, ir para esta parte primeiro).
Espere, H Mais!Eu me entusiasmei e escrevi dois outros captulos, que no caberiam neste livro, pois ultrapassei o limite de pginas. Ento, eu os coloquei no site do livro, juntamente com os exemplos de arquivos (veja Como Obter os Arquivos de Exemplo mais adiante nesta Introduo). Os dois captulos extras so Trabalhando com Cores e 10 Dicas Sobre o Que Fazer e o Que No Fazer em VBA.
cones Usados Neste LivroEm determinada ocasio, uma empresa de pesquisa de mercado deve ter mostrado aos editores que poderiam vender mais cpias de seus
ExcelVBABokks.indb 7 15/02/2013 13:59:16
-
8 Programando Excel VBA Para Leigos, Traduo da 2a Edio
livros de computador se eles acrescentassem cones nas margens daqueles livros. cones so aquelas pequenas figuras que supostamente chamam sua ateno para vrios itens ou lhe ajudam a decidir se algo digno de leitura.
No sei se essa pesquisa vlida, mas no quero arriscar. Portanto, aqui esto os cones que voc encontrar em suas viagens da primeira ltima capa.
Quando voc vir este cone, o cdigo sendo discutido est disponvel na Web. Faa o download dele para evitar muita digitao. Para mais informaes, veja Como Obter os Arquivos de Exemplos.
Este cone sinaliza material que pode ser considerado tcnico. possvel que voc o julgue interessante, mas, se estiver com pressa, pode pul-lo.
No pule informaes marcadas com este cone. Ele identifica um atalho que pode poupar muito do seu tempo (e talvez at permita que voc saia do trabalho mais cedo).
Este cone diz quando voc precisa armazenar informaes nos reces-sos de seu crebro para uso posterior.
Leia tudo o que estiver marcado com este cone. Caso contrrio, voc pode perder seus dados, explodir seu computador, causar uma fuso nuclear ou talvez at arruinar todo o seu dia.
Como Obter os Arquivos de ExemplosVisite o site da Alta Books para acessar a pgina deste livro e fazer o download dos arquivos de exemplos, bem como ver os Captulos Extras (Bnus): www.altabooks.com.br (procure pelo nome do livro). Com os arquivos de exemplos, voc poupar muita digitao. Melhor ainda, ser possvel brincar com eles e tentar diversas alteraes. Na verdade, eu recomendo enfaticamente que voc brinque com esses arquivos. A melhor maneira de dominar VBA experimentando.
PAPO
DE
ES
PECIALISTA
DICA
LEM
BRE-SE
CUIDA
DO!
ExcelVBABokks.indb 8 15/02/2013 13:59:17
-
9 Introduo
E Agora?Ler esta introduo foi o primeiro passo. Agora, hora de ir em frente e se tornar um programador.
Se voc for um programador iniciante, sugiro que inicie pelo Captulo 1 e siga o livro at ter descoberto o suficiente para fazer o que deseja. O Captulo 2 oferece alguma experincia prtica imediata, assim voc ter a iluso de que est progredindo.
Mas este um pas livre (pelo menos na hora que escrevia estas palavras). Por isso, eu no denunciarei voc caso resolva consult-lo aleatoriamente e ler o que aguar o seu gosto.
Espero que voc se divirta muito lendo este livro, tanto quanto eu o fiz ao escrev-lo.
ExcelVBABokks.indb 9 15/02/2013 13:59:17
-
10 Programando Excel VBA Para Leigos, Traduo da 2a Edio
ExcelVBABokks.indb 10 15/02/2013 13:59:17
-
Parte I
Introduo ao VBA
Por Rich TennantA 5 Onda
Na ARCA*, geralmente os funcionrios usam Excel com Programao VBA para criar frmulas para desastre.
* Ag
ncia
Reg
ulad
ora
de C
aos
Alh
eio
ExcelVBABokks.indb 11 15/02/2013 13:59:18
-
Nesta parte...
Cada livro precisa comear em algum lugar. Este comea apresentando-o ao Visual Basic para Aplicativos (e tenho certeza que vocs dois se tornaro grandes amigos no decorrer de algumas dzias de captulos). Depois de feitas as apresenta-es, o Captulo 2 o levar atravs de uma seo de programao da vida real do Excel.
ExcelVBABokks.indb 12 15/02/2013 13:59:18
-
Captulo 1
Neste Captulo Como conseguir uma viso geral dos conceitos do VBA
Descubra o que se pode fazer com o VBA
Descubra as vantagens e desvantagens de usar o VBA
Uma pequena aula de histria sobre o Excel
O Que VBA ?
Se voc est ansioso para pular na programao de VBA, segure-se um pouco. Este captulo totalmente desprovido de qualquer ma-terial de treinamento prtico. No entanto, ele contm algumas informa-es essenciais de apoio que o ajudam a se tornar um programador de Excel. Em outras palavras, este captulo prepara o caminho para tudo que vem pela frente e d a voc um sentido de como a programao de Excel se ajusta no esquema geral do universo. No aborrece tanto como voc poderia imaginar.
Tudo Bem, Ento o Que VBA?VBA, que significa Visual Basic for Applications (Visual Basic para aplicativos), uma linguagem de programao desenvolvida pela Microsoft voc sabe, a empresa que tenta faz-lo comprar uma nova verso do Windows a cada ano. Excel, juntamente com outros membros do Microsoft Office, inclui a linguagem VBA (sem custos extras). Resumidamente, VBA uma ferramenta que pessoas como voc e eu usam para desenvolver programas que controlam o Excel.
Imagine um rob inteligente que saiba tudo sobre o Excel. Esse rob pode ler instrues e pode tambm operar o Excel com muita rapidez e preciso. Quando voc quiser que o rob faa algo no Excel, voc programa as instrues dele, usando cdigos especiais. Diga ao rob para seguir suas instrues, enquanto voc se senta e relaxa, tomando um copo de limonada. Isso que VBA, uma linguagem de cdigo para os robs. Mas, veja, o Excel no vem com um rob e nem faz limonada.
ExcelVBABokks.indb 13 15/02/2013 13:59:18
-
14 Parte I: Introduo ao VBA
A terminologia de programao em Excel pode ser um pouco confusa. Por exemplo, VBA uma linguagem de programao, mas tambm serve como uma linguagem de macro. Como voc domina algo escrito em VBA e executado em Excel? uma ma-cro ou um programa? Normalmente, o sis-tema Help (Ajuda) do Excel se refere aos procedimentos VBA como macros, assim, eu uso essa terminologia.
Uso o termo automatizar neste livro. Esse termo significa que uma srie de etapas so completadas automaticamente. Por exem-
plo, se voc escrever uma macro que acres-centa cor a algumas clulas, imprime a pla-nilha e depois remove a cor, essas trs etapas foram automatizadas.
A propsito, macro no um acrnimo de Messy And Confusing Repeated Operation (Operao Repetida Confusa e Desordena-da). Ao invs disso, ela vem da palavra gre-ga makros, que significa grande que tam-bm descreve o seu contracheque depois de se tornar um programador especialista em macro.
Algumas palavras sobre terminologia
O Que Voc Pode Fazer com VBA?Voc, provavelmente, est ciente que os usurios do Excel usam o programa para milhares de diferentes tarefas. Seguem alguns exemplos:
5 Anlise de dados cientficos
5 Preparao de oramentos e previses financeiras
5 Criao de faturas e outros formulrios
5 Desenvolvimento de grficos de dados
5 Manuteno de listagens de assuntos como nomes dos clientes, notas dos alunos ou ideias para presentes (um lindo bolo de frutas seria adorvel)
5 Etc., etc., etc.
Os exemplos so muitos, mas acredito que voc j entendeu. O que quero dizer que o Excel usado para coisas variadas, e qualquer um que ler este livro tem diferentes necessidades e expectativas considerveis. Uma coisa que todos os leitores tm em comum a necessidade de automatizar algum aspecto do Excel. Isso, meu caro leitor, o que VBA significa.
Por exemplo, seria possvel criar um programa VBA para importar alguns nmeros e depois, formatar e imprimir o seu relatrio de vendas ao final do ms. Depois de desenvolver e testar o programa, voc pode executar a macro com um nico comando, levando o Excel a executar automaticamente muitos procedimentos demorados. Ao invs de lutar atravs de uma cansativa sequncia de comandos, voc pode pegar uma caneca de suco e deixar o seu computador fazer o trabalho exatamente o que ele deveria fazer, certo?
PAPO
DE
ES
PECIALISTA
ExcelVBABokks.indb 14 15/02/2013 13:59:18
-
15 Captulo 1: O Que VBA ?
Nas sees seguintes, descreverei, em poucas palavras, alguns usos comuns para as macros VBA. Um ou dois destes far que voc se ligue.
Inserir um grupo de textoSe com frequncia voc precisa entrar com o nome da empresa, endereo e nmero de telefone em sua planilha de trabalho, possvel criar uma macro para digitar essas informaes, desde que seja o que voc quer. Por exemplo, voc pode desenvolver uma macro que digite automaticamente uma lista de todas as pessoas de vendas que traba-lham para a sua empresa.
Automatizar tarefas executadas com frequncia Suponhamos que voc o gerente de vendas e precisa preparar o relatrio de vendas do fim do ms para satisfazer seu chefe. Se for uma tarefa direta, voc pode desenvolver um programa VBA para execut-la. O seu chefe ficar impressionado com a qualidade e consistncia dos seus relatrios e voc pode ser promov