programando o excel ® vba para leigos - 2ª ed 2013 nodrm

Download Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM

If you can't read please download the document

Upload: karlys

Post on 09-Oct-2015

3.378 views

Category:

Documents


14 download

DESCRIPTION

Programando

TRANSCRIPT

  • 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