527
 Autor: Júlio Battisti site: www.juliobattisti.com.br  e-mail: [email protected]  

Macros Programacao VBA_Excel.pdf

Embed Size (px)

Citation preview

  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    1/527

    Autor: Jlio Battistisite: www.juliobattisti.com.br

    e-mail: [email protected]

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    2/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina2de527

    Nota sobre direitos autorais:

    Este ebook de autoria de Jlio Battisti, sendo comercializado diretamente atravs do sitewww.juliobattisti.com.br

    ou atravs do site de leiles Mercado Livre:www.mercadolivre.com.br.

    Ao adquirir este ebook voc tem o direito de l-lo na tela do seu computador e de imprimirquantas cpias desejar. vetada a distribuio deste arquivo, mediante cpia ou qualqueroutro meio de reproduo, para outras pessoas. Se voc recebeu este ebook atravs do e-mailou via ftp de algum site da Internet, ou atravs de um CD de Revista, saiba que voc est comuma cpia pirata, no autorizada. O valor cobrado por este arquivo praticamente simblicopelas horas e horas de trabalho que ele representa. Novos cursos somente podem serdesenvolvidos pela honestidade de pessoas que adquirem o arquivo do curso e no odistribuem livremente para outras pessoas. Se voc recebeu uma cpia deste arquivo sem t-laadquirido diretamente com o autor, seja honesto, entre em contato com o autor, atravs do e-

    mail [email protected] , para regularizar esta cpia.Ao regularizar a sua cpia voc estar remunerando, mediante uma pequena quantia, otrabalho do autor e incentivando que novos trabalhos sejam disponibilizados.

    Se voc tiver sugestes sobre novos cursos que gostaria de ver disponibilizados, entre emcontato pelo e-mail: [email protected] .

    Visite periodicamente o site www.juliobattisti.com.br

    para ficar por dentro das novidades:

    Cursos de informtica. Artigos e dicas sobre Certificaes da Microsoft. Artigos sobre Carreira e Trabalho. Dicas de livros e sites sobre diversos assuntos. Simulados gratuitos, em portugus, para os exames da Microsoft.

    PI RATARI A CRI ME, COM PENA DE CADEI A. EUAGRADEO PELA SUA HON ESTI DADE. SE VOC COMPROUUMA CPI A DESTE CURSO, DI RETAMENTE COM O AUTOR,

    NO DI STRI BUA CPI AS PARA OUTRAS PESSOAS. SEVOC RECEBEU UMA CPI A I LEGAL DESTE ARQUI VO,NO ADQUI RI DA DI RETAMENTE COM O AUTOR JLI OBATTI STI , ENTRE EM CONTATO E REGULARI ZE A SUA

    CPI A.

    http://www.juliobattisti.com.br/http://www.mercadolivre.com.br/http://www.juliobattisti.com.br/http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    3/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina3de527

    Conhea outros livros do autor Jlio Battisti:

    Windows Server 2003 Curso Completo 1568 pginas

    O livro ensina desde os fundamentos bsicos do Active

    Directory, passando pela instalao do Windows Server 2003 epor dicas sobre o projeto, implementao e migrao doWindows 2000 Server para o Windows Server 2003. Vocaprender, em detalhes, sobre os servios decompartilhamento de arquivos e impressoras, segurana, comotornar o Windows Server 2003 um servidor Web, aprendersobre os servios de rede: DNS, DHPC, WINS, RRAS, IPSec,Anlise de Segurana, Group Policy Objects e muito mais.Confira, vale a pena.

    Manual de Estudos Para o Exame 70-216 - 712 pginas

    Neste aguardado lanamento da Axcel Books Editora

    Certificao Microsoft Guia de Estudos Para o MCSE

    Exame70-216, o autor Jlio Battisti descreve, de forma detalhada ecom exemplos passo-a-passo, todos os tpicos que fazemparte do programa oficial da Microsoft para o exame decertificao. A obra apresenta e explica desde os princpiosbsicos, incluindo os fundamentos do protocolo TCP/IP;passando por instalao, configurao e administrao do DNS,DHCP, WINS e RRAS; alm de ainda tratar de questes quantoao roteamento, NAT, Certificados Digitais, IPSec, entre outros.

    Windows XP Home & Professional 840 pginas

    O novo mundo do Windows XP, que representa a nova era dosistema operacional para usurios e administradores estreunido nesta obra. Jlio Battisti apresenta a nova interface dosistema, completamente redesenhada e com a experincia deum profissional certificado da Microsoft. Na obra, os leitoresiro aprender a implementar, configurar e utilizar o

    WindowsXP, desvendando as funcionalidades, alm das configuraesde segurana, de desempenho e de estabilidade do sistema. Olivro aborda ainda toda a parte de Internet do Windows XP

    conectando e usando a Internet; configurando o firewall deconexo; alm dos novos recursos do correio eletrnico. Vejatambm os detalhes sobre o Active Directory, as configuraes

    de rede e protocolo TCP/IP, criptografia, registry do Windows,entre tantos outros assuntos. O leitor ainda vai poder contarcom um captulo exclusivo e um simulado com 100questes/respostas destinados aos interessados no exame deCertificao 70-270 da Microsoft.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    4/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina4de527

    ASP.NET: Uma Nova Revoluo

    Na Criao de Sites eAplicaes Web 730 pginas

    Conhea o ASP.NET, a mais nova verso do ASP, querepresenta uma mudana no modelo de desenvolvimento de

    aplicaes Web. O livro traz todas as informaes necessriassobre o assunto, inclusive os detalhes da iniciativa .NET, o CLR,o MSI L e o C# , a nova linguagem da Microsoft. Aprenda osnovos controles do ASP.NET e como utilizar o Visual Studio.NETpara criar pginas ASP.NET. Veja ainda como criar formulriosavanados para edio de dados, configurar as opes desegurana do Windows 2000, do IIS e do ASP.NET, alm deaprender como criar pginas ASP.NET para as mais diversasfunes.

    SQL Server 2000: Administrao & DesenvolvimentoCurso Completo 816 pginas

    O lanamento destinado aos usurios/leitores da versoanterior do SQL Server, o SQL 7, alm de redes decomputadores em geral, Windows 2000 Server, TCP/IP, Bancosde Dados em geral, do Microsoft Access e do Visual Basic. Oleitor aprender na obra destinada do iniciante ao avanadodetalhes sobre o modelo de dados relacional, como instalar oSQL Server 2000 em diferentes plataformas, alm da criao eadministrao de bancos de dados, tabelas e outros objetos.Aprenda ainda Como criar pginas ASP que acessam os dadosdo SQL Server 2000.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    5/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina5de527

    PR-REQUISITOS PARA O CURSO:

    Para que voc possa acompanhar as lies deste curso necessrio que voc j tenhapreenchido os seguintes pr-requisitos:

    Curso bsico de Excel em 120 Lies, disponvel no seguinte endereo:(http://www.juliobattisti.com.br/excel120/excel120.asp ) ou conhecimento equivalente.

    Curso de Excel Avanado em 120 Lies, disponvel no seguinte endereo:(http://www.juliobattisti.com.br/excel120avancado/excel120avancado.asp ) ouconhecimento equivalente.

    Conhecimento dos aspectos bsicos do Modelo Relacional de banco de dados. Parasaber mais sobre o Modelo Relacional de dados, consulte as seguintes lies do cursobsico de Access, disponvel no meu site, no seguinte endereo:

    o http://www.juliobattisti.com.br/accbasico/modulo1/licao2.htm

    o http://www.juliobattisti.com.br/accbasico/modulo1/licao3.htm

    o http://www.juliobattisti.com.br/accbasico/modulo1/licao4.htm

    o http://www.juliobattisti.com.br/accbasico/modulo1/licao5.htm

    o http://www.juliobattisti.com.br/accbasico/modulo1/licao6.htm

    Estes conhecimentos sero fundamentais para acompanhar os tpicos apresentados no curso.Muitos dos tpicos dependem destes pr-requisitos.

    Orientaes sobre os arquivos de Exemplos:

    Antes deiniciar o curso, crie uma pasta chamada Excel Avanado edescompacte os arquivos de exemplos do curso, dentro desta

    pasta.

    Algumas palavras do autor:

    Este curso foi criado com o objetivo de ajud-lo a entender e a utilizar no seu dia-a-dia, aprogramao VBA Visual Basic for Applications, para implementar solues com oMicrosoft Excel. O curso composto de 6 Mdulos, com 25 lies por mdulo.

    Em cada lio so apresentados conceitos tericos, seguidos por exemplos prticos, passo-a-

    passo, para que voc possa consolidar os conceitos tericos apresentados.

    Um bom estudo a todos e espero, sinceramente, que este curso possa ajud-los a utilizarmelhor a programao VBA no Microsoft Excel.

    http://www.juliobattisti.com.br/accbasico/modulo1/licao6.htmhttp://www.juliobattisti.com.br/accbasico/modulo1/licao4.htmhttp://www.juliobattisti.com.br/accbasico/modulo1/licao2.htmhttp://www.juliobattisti.com.br/excel120avancado/excel120avancado.asphttp://www.juliobattisti.com.br/excel120/excel120.ashttp://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    6/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina6de527

    ND I CE DO CURSO

    Introduo.............................................................................................................................................. 9Mdulo 1 Introduo s Macros e ao VBA no Excel......................................................................... 11

    Lio 01: Uma Introduo s Macros ............................................................................................ 12

    Lio 02: O que so exatamente Macros??? ................................................................................ 15Lio 03: Conhecendo do que feita uma Macro ......................................................................... 18Lio 04: Operaes com Macros................................................................................................. 21Lio 05: Associando botes com macros .................................................................................... 23Lio 06: Introduo ao VBA......................................................................................................... 27Lio 07: O Ambiente de programao o Editor VBA Parte I .................................................. 30Lio 08: O Ambiente de programao o Editor VBA Parte 2 ................................................. 33Lio 09: VBA - Declarao de Variveis...................................................................................... 36Lio 10: VBA - Clculos, Operadores Aritmticos e Exemplos.................................................... 40Lio 11: VBA - Estrutura If...Then e os Operadores de Comparao.......................................... 45Lio 12: Estruturas For...Next, Do...While e Do...Until................................................................. 50Lio 13: VBA - Funes do VBA Funes de Tipo Parte 1.................................................... 56Lio 14: VBA - Funes do VBA Funes de Tipo Parte 2.................................................... 61

    Lio 15: VBA - Funes do VBA Funes de Converso de Tipo Parte 1 ............................ 64Lio 16: VBA - Funes do VBA Funes de Converso de Tipo Parte 2 ............................ 68Lio 17: VBA - Funes do VBA Funes Para Tratamento de Texto ..................................... 70Lio 18: VBA - Funes do VBA Data, Hora e Funes Matemticas...................................... 74Lio 19: VBA - O Conceito de Mdulos, Procedimentos e Funes Parte I ............................. 82Lio 20: VBA - O Conceito de Mdulos, Procedimentos e Funes Parte II ............................ 89Lio 21: VBA Criando Funes Personalizadas Parte I......................................................... 92Lio 22: VBA Um exemplo prtico calculando o DV do CPF - Algoritmo.............................. 96Lio 23: Usando o VBA Para Criar uma Funo de Validao do DV do CPF............................ 98Lio 24: Usando a Funo ValidaCPF, Criada na Lio 21....................................................... 102Lio 25: Mais Alguns Exemplos de Funes Personalizadas.................................................... 103Lio 26: Mais Alguns Exemplos de Funes Personalizadas.................................................... 109Lio 27: Concluso do Mdulo 1 ............................................................................................... 113

    Mdulo 2 O Modelo de Objetos do Excel ....................................................................................... 114Lio 01: O que um Modelo de Objetos? ................................................................................. 115Lio 02: Descrio dos Principais Objetos do Modelo de Objetos do Excel.............................. 119Lio 03: O Microsoft Object-Browser: Navegando pela Hierarquia de Objetos ......................... 125Lio 04: Objeto Application O Pai de Todos - Introduo ....................................................... 128Lio 05: Objeto Application Como Declarar e Utilizar ............................................................. 131Lio 06: Objeto Application Propriedades que Retornam Objetos Filho ................................. 135Lio 07: Objeto Application Exibindo/Ocultando itens do Excel.............................................. 139Lio 08: Objeto Application Habilitando/Desabilitando Recursos do Excel............................. 142Lio 09: Objeto Application Associando Macros Teclas Especiais ...................................... 144Lio 10: Objeto Application Operaes com Arquivos............................................................ 148Lio 11: Objeto Application Reclculo da Planilha ................................................................. 153Lio 12: Conceitos Avanados na Criao de Funes e Procedimentos................................. 155

    Lio 13: Conceitos Avanados na Criao de Funes e Procedimentos................................. 158Lio 14: Conceitos Avanados na Criao de Funes e Procedimentos................................. 163Lio 15: Conceitos Avanados na Criao de Funes e Procedimentos................................. 166Lio 16: Conceitos Avanados na Criao de Funes e Procedimentos................................. 170Lio 17: Conceitos Avanados na Criao de Funes e Procedimentos................................. 172Lio 18: A funo MsgBox em Detalhes.................................................................................... 178Lio 19: A funo InputBox em Detalhes................................................................................... 181Lio 20: O Tratamento de Erros no VBA Parte 1.................................................................... 185Lio 21: O Tratamento de Erros no VBA Parte 2..................................................................... 189Lio 22: O Tratamento de Erros no VBA Parte 3..................................................................... 192Lio 23: O Tratamento de Erros no VBA Parte 4..................................................................... 194Lio 24: O Tratamento de Erros no VBA Parte 5..................................................................... 198Lio 25: O Tratamento de Erros no VBA Parte 6..................................................................... 201

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    7/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina7de527

    Lio 26: Concluso do Mdulo 2 ............................................................................................... 204Mdulo 3 O Objeto Range e Exemplos Prticos............................................................................. 205

    Lio 01: Apresentao do Objeto Range................................................................................... 206Lio 02: Objeto Range Outras Maneiras de Criar um Objeto Range...................................... 211Lio 03: Objeto Range Outras Maneiras de Criar um Objeto Range...................................... 216Lio 04: Objeto Range Column, Columns, Row e Rows Parte 1......................................... 219

    Lio 05: Objeto Range Column, Columns, Row e Rows Parte 2......................................... 223Lio 06: Objeto Range Principais Mtodos e Propriedades Parte 1.................................... 226Lio 07: Objeto Range Principais Mtodos e Propriedades Parte 2.................................... 231Lio 08: Objeto Range Principais Mtodos e Propriedades Parte 3.................................... 235Lio 09: Objeto Range Principais Mtodos e Propriedades Parte 4.................................... 237Lio 10: Objeto Range Principais Mtodos e Propriedades Parte 5.................................... 242Lio 11: Objeto Range Principais Mtodos e Propriedades Parte 6.................................... 246Lio 12: Objeto Range Principais Mtodos e Propriedades Parte 7.................................... 249Lio 13: Objeto Range Principais Mtodos e Propriedades Parte 8.................................... 253Lio 14: Objeto Range Principais Mtodos e Propriedades Parte 9.................................... 257Lio 15: Objeto Range Principais Mtodos e Propriedades Parte 10.................................. 262Lio 16: Exemplos Prticos de Uso dos Objetos do Excel Parte 1......................................... 265Lio 17: Exemplos Prticos de Uso dos Objetos do Excel Parte 2......................................... 269

    Lio 18: Exemplos Prticos de Uso dos Objetos do Excel Parte 3......................................... 272Lio 19: Exemplos Prticos de Uso dos Objetos do Excel Parte 4......................................... 274Lio 20: Exemplos Prticos de Uso dos Objetos do Excel Parte 5......................................... 277Lio 21: Exemplos Prticos de Uso dos Objetos do Excel Parte 6......................................... 281Lio 22: Exemplos Prticos de Uso dos Objetos do Excel Parte 7......................................... 285Lio 23: Exemplos Prticos de Uso dos Objetos do Excel Parte 8......................................... 289Lio 24: Exemplos Prticos de Uso dos Objetos do Excel Parte 9......................................... 292Lio 25: Resumo do Mdulo...................................................................................................... 295

    Mdulo 4 Estudo dos Objetos Workbook e Worksheet................................................................... 296Lio 01: Apresentao dos Objetos Workbook e Worksheet..................................................... 297Lio 02: Objeto Workbook e Coleo Workbooks Mtodos e Propriedades .......................... 301Lio 03: Objeto Workbook e Coleo Workbooks Mtodos e Propriedades .......................... 304Lio 04: Objeto Workbook e Coleo Workbooks Mtodos e Propriedades .......................... 308

    Lio 05: Mais Mtodos e Propriedades dos Objetos Workbook e Worksheets ......................... 311Lio 06: Mais Mtodos e Propriedades dos Objetos Workbook e Worksheets ......................... 314Lio 07: O Objeto WorkSheet Mtodos e Propriedades Parte 1 ......................................... 317Lio 08: O Objeto WorkSheet Mtodos e Propriedades Parte 2 ......................................... 320Lio 09: O Objeto WorkSheet Mtodos e Propriedades Parte 3 ......................................... 323Lio 10: O Objeto WorkSheet Mtodos e Propriedades Parte 4 ......................................... 327Lio 11: Eventos Conceitos e Definies ............................................................................... 330Lio 12: Eventos Eventos do Objeto Worksheet .................................................................... 334Lio 13: Eventos Eventos do Objeto Worksheet .................................................................... 338Lio 14: Eventos Eventos do Objeto Workbook ..................................................................... 341Lio 15: Eventos Eventos do Objeto Workbook ..................................................................... 344Lio 16: Eventos Eventos do Objeto Application .................................................................... 348Lio 17: Eventos Eventos do Objeto Application .................................................................... 351

    Lio 18: Exemplos Prticos ....................................................................................................... 354Lio 19: Exemplos Prticos ....................................................................................................... 357Lio 20: Exemplos Prticos ....................................................................................................... 360Lio 21: Exemplos Prticos ....................................................................................................... 363Lio 22: Exemplos Prticos ....................................................................................................... 366Lio 23: Exemplos Prticos ....................................................................................................... 369Lio 24: Exemplos Prticos ....................................................................................................... 372Lio 25: Resumo do Mdulo...................................................................................................... 375

    Mdulo 5 Criao de Aplicaes Usando UserForms .................................................................... 376Lio 01: User Form Introduo e Conceito ............................................................................. 377Lio 02: User Form Criando um Novo User Form .................................................................. 380Lio 03: User Form Propriedades e Eventos.......................................................................... 384Lio 04: User Form Trabalhando com a Caixa de Ferramentas ............................................. 389

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    8/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina8de527

    Lio 05 User Form Trabalhando com a Caixa de Ferramentas .............................................. 392Lio 06: User Form Trabalhando com Controles Parte 1 .................................................... 395Lio 07: User Form Trabalhando com Controles Parte 2 .................................................... 398Lio 08: User Form Trabalhando com Controles Parte 3 .................................................... 402Lio 09: User Form Trabalhando com Controles Parte 4 .................................................... 405Lio 10: User Form Caixa de Combinao............................................................................. 409

    Lio 11: User Form Propriedades dos Controles Parte 1 .................................................... 412Lio 12: User Form Propriedades dos Controles Parte 2 .................................................... 415Lio 13: User Form Propriedades dos Controles Parte 3 .................................................... 418Lio 14: User Form Propriedades dos Controles Parte 4 .................................................... 421Lio 15: User Form Propriedades dos Controles Parte 5 .................................................... 424Lio 16: User Form Propriedades dos Controles Parte 6 .................................................... 428Lio 17: User Form Propriedades dos Controles Parte 7 .................................................... 431Lio 18: User Form Propriedades dos Controles Parte 8 .................................................... 434Lio 19: User Form Propriedades dos Controles Parte 9 .................................................... 437Lio 20: User Form Propriedades dos Controles Parte 10 .................................................. 440Lio 21: User Form Propriedades dos Controles Parte 11 .................................................. 443Lio 22: User Form Propriedades dos Controles Parte 12 .................................................. 446Lio 23: User Form Propriedades dos Controles Parte 13 .................................................. 449

    Lio 24: User Form Propriedades dos Controles Parte 14 .................................................. 452Lio 25: Resumo do Mdulo...................................................................................................... 455Mdulo 6 Controles e Exemplos Prticos ........................................................................................ 456

    Lio 01: User Forms O controle Caixa de Listagem ............................................................... 457Lio 02: User Forms O controle Caixa de Seleo................................................................. 460Lio 03: User Forms O controle Boto de Opo - OptionButton........................................... 464Lio 04: User Forms O controle Boto de ativao - ToggleButton........................................ 468Lio 05: User Forms Os controles Boto de Comando e Frame ............................................ 472Lio 06: User Forms O controle Barra de Rolagem................................................................ 475Lio 07: User Forms O controle Boto de Rotao ................................................................ 478Lio 08: User Forms O controle Image................................................................................... 481Lio 09: Exemplos prticos para o seu dia-a-dia....................................................................... 484Lio 10: Exemplos prticos para o seu dia-a-dia....................................................................... 487

    Lio 11: Exemplos prticos para o seu dia-a-dia....................................................................... 490Lio 12: Exemplos prticos para o seu dia-a-dia....................................................................... 493Lio 13: Exemplos prticos para o seu dia-a-dia....................................................................... 496Lio 14: Exemplos prticos para o seu dia-a-dia....................................................................... 499Lio 15: Exemplos prticos para o seu dia-a-dia....................................................................... 502Lio 16: Exemplos prticos para o seu dia-a-dia....................................................................... 505Lio 17: Exemplos prticos para o seu dia-a-dia....................................................................... 508Lio 18: Exemplos prticos para o seu dia-a-dia....................................................................... 511Lio 19: Exemplos prticos para o seu dia-a-dia....................................................................... 513Lio 20: Exemplos prticos para o seu dia-a-dia....................................................................... 515Lio 21: Exemplos prticos para o seu dia-a-dia....................................................................... 518Lio 22: Exemplos prticos para o seu dia-a-dia....................................................................... 521Lio 23: Exemplos prticos para o seu dia-a-dia....................................................................... 523

    Lio 24: Exemplos prticos para o seu dia-a-dia....................................................................... 525Lio 25: Resumo do Mdulo...................................................................................................... 527

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    9/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina9de527

    Introduo

    Este um curso sobre programao VBA no Microsoft Excel. Neste curso voc aprender autilizar uma srie de comandos e objetos do Excel, para implementar solues sofisticadas, asquais somente so possveis de serem implementadas com o uso de programao. As telas eexemplos foram criados usando o Excel 2000, porm a quase totalidade dos comandos sovlidos tambm para o Excel 97 e para o Excel XP.

    A programao utilizada para solucionar problemas no Excel, os quais no teriam como sersolucionados usando funes e comandos de planilha. Por exemplo, no existe uma funo noExcel para a validao do DV de um CPF ou CNPJ. Neste caso, somente usandoprogramao, o usurio poder criar uma funo personalizada, a qual faz a validao do CPFe do CNPJ. Neste curso voc aprender, dentre outras coisas, a criar funes personalizadas,as quais atendem necessidades especficas. A seguir uma breve descrio do que serabordado em cada mdulo do Curso.

    Mdulo 1:Neste mdulo voc aprender os fundamentos sobre Macros e VBA. Mostrareiexatamente o que uma macro, o que programao VBA, o ambiente de programao, asprincipais funes do VBA e como criar os primeiros programas. Os conceitos apresentadosneste mdulo sero fundamentais para os demais mdulos do curso. Em todos os exemplos docurso, voc ir utilizar um ou mais conceito apresentado neste mdulo.

    Mdulo 2:Nas lies do Mdulo 2 voc aprender sobre o conceito de funes, sub-rotinas emdulos. Mostrarei como criar funes que podem ser utilizadas em vrias planilhas de umapasta de trabalho. Tambm apresentarei o conceito mais importante quando se trata deprogramao VBA; A Hierarquia de Objetos do Excel. Voc ver que com o uso dos Objetos

    do Excel possvel acessar qualquer elemento de uma planilha. Apresentarei o primeiroobjeto na Hierarquia de Objetos: O Objeto Application.

    Mdulo 3:Neste mdulo continuarei o estudo sobre os objetos do Excel. Voc aprendersobre os objetos Workbook e Worksheet, dois importantes objetos, utilizados em uma srie desituaes. Alm da sintaxe, dos mtodos e propriedades dos objetos, apresentarei uma srie deexemplos prticos, os quais voc poder, facilmente, adaptar para uso nas rotinas que vocdesenvolver.

    Mdulo 4:Este mdulo sobre o objeto Range, sem dvidas o objeto mais utilizado emprogramao VBA no Excel. O objeto Range representa uma ou mais faixas de clulas em um

    planilha do Excel. Qual problema que no envolve acessar dados de uma faixa de clulas efazer clculos ou pesquisas em uma faixa? Praticamente todos. Por isso que o objeto Range ,sem dvidas, o objeto mais utilizado na programao VBA no Excel. Voc aprender sobre osprincipais mtodos e propriedades deste objeto, alm de uma srie de exemplos prticos, osquais ilustram detalhadamente como funciona e como pode ser utilizado o objeto Range.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    10/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina10de527

    Mdulo 5:Neste mdulo voc aprender sobre UserForms. Com a utilizao de UserFormsvoc pode criar formulrios personalizados, semelhantes aos que podem ser criados usandolinguagens de programao como o Visual Basic ou Delphi. Mostrarei como criar umUserForm, quais os controles disponveis e como utiliz-los, como funciona o modelo deeventos do Windows e uma srie de exemplos prticos para que voc possa comear a criar

    seus prprios formulrios personalizados.

    Mdulo 6:Neste ltimo mdulo do curso continuarei o estudo de UserForms, apresentandoum estudo dos diversos controles que podem ser utilizados em um UserForm. Na seqnciaapresentarei uma srie de exemplos prticos, os quais voc certamente utilizar no seutrabalho do dia-a-dia. Apresentarei exemplos de uso dos principais objetos da Hierarquia deobjetos do Excel.

    Este curso foi especialmente projetado para torn-lo mais produtivo com o Microsoft Excel. Odomnio da programao VBA permite que voc implemente solues para problemas queno teriam soluo, somente com o uso de Funes de Planilha e comandos do Excel. O

    domnio da programao VBA exige dedicao, estudo e muita experimentao. Semnenhuma dvida um esforo que vale a pena.

    o meu mais sincero desejo que este curso possa ser de grande utilidade para voc, ajudando-o a utilizar todos os recursos disponveis nesta fantstica ferramenta que a ProgramaoVBA no Excel. Um bom estudo e muito sucesso.

    Para enviar suas dvidas referentes aos assuntos e exemplos abordados neste curso, paraenviar sugestes de alteraes/correes, para sugerir novos cursos, para criticar e paraelogiar (porque no?), s entrar em contato pelo e-mail: [email protected].

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    11/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina11de527

    Mdulo 1 Introduo s Macros e ao VBA no Excel

    Neste mdulo voc aprender os fundamentos sobre Macros e VBA. Mostrarei exatamente oque uma macro, o que programao VBA, o ambiente de programao, as principaisfunes do VBA e como criar os primeiros programas. Os conceitos apresentados nestemdulo sero fundamentais para os demais mdulos do curso. Em todos os exemplos docurso, voc ir utilizar um ou mais conceito apresentado neste mdulo.

    Vou iniciar o mdulo mostrando como criar uma macro e como verificar o Cdigo VBA que criado, o qual na prtica quem faz o trabalho da macro. Tambm mostrarei comoassociar teclas de atalho e botes de comando com uma Macro.

    O prximo passo ser aprender a utilizar o Ambiente de Programao do VBA, tambmchamado de Editor do VBA. Voc aprender a criar cdigo, a navegar atravs dos objetosdisponveis e a utilizar os vrios recursos de ajuda fornecidos pelo Editor. Mostrarei as

    diversas partes que compem o Editor do VBA e como utiliz-las.

    Em seguida passarei ao estudo da linguagem VBA propriamente dita. Estes tpicos so a baseda linguagem, os quais sero utilizados em todos os exemplos prticos do curso. Vocaprender sobre os fundamentos do VBA, tais como:

    Declarao de variveisTipos de dadosOperadores aritmticosValores lgicosOperadores lgicos

    Estrutura de controleEstruturas de decisoEstruturas de repetioExemplos de utilizao

    Seguindo o nosso estudo, apresentarei as principais funes internas do VBA. Farei aapresentao dividindo as funes em categorias, tais como funes de Data/Hora, funes detexto e assim por diante. Para encerrar o mdulo voc aprender sobre o conceito de Mdulos,procedimentos e funes. Este conceito muito importante para que voc aprenda a criarcdigo que possa ser reaproveitado. Isso aumenta, e muito, a sua produtividade no uso doVBA,

    Ento mos obra. Chega de apresentaes e rodeios e vamos iniciar o nosso estudo daprogramao VBA no Excel. Um bom estudo a todos e no esquea: em caso de dvidassobre os exemplos apresentados neste curso, entre em contato pelo e-mail:[email protected]

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    12/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina12de527

    Lio 01: Uma Introduo s Macros

    Introduo:

    Existem situaes onde no conseguimos resolver um determinado problema, simplesmente

    utilizando os comandos e frmulas do Excel (embora existam milhares de funes disponveisno Excel). Nessas situaes temos que fazer o uso de recursos como Macros e Programao.A linguagem de programao do Excel o VBA Visual Basic for Applications. O VBA alinguagem de programao para todos os aplicativos do Microsoft Office: Word, Excel,Access e PowerPoint.

    Nas lies desse mdulo voc aprender sobre Macros e sobre os fundamentos da linguagemVBA. Mostrarei o que uma Macro, para que serve, quando devemos usar Macros, comocriar e alterar Macros. Em seguida voc aprender os fundamentos bsicos da linguagemVBA.

    Nas lies desse mdulo veremos os conceitos tericos da linguagem VBA. Nas lies doprximo mdulo, veremos exemplos de aplicao do VBA para a soluo de problemasprticos, os quais no poderiam ser solucionados sem o uso de programao.

    O que so Macros??

    Nesse tpico apresentaremos uma viso geral sobre Macros. Nas prximas lies iremosdetalhar os vrios aspectos relacionados Macros.

    Caso voc execute uma tarefa vrias vezes no Microsoft Excel, possvel automatiz-la comuma macro. Uma macro uma seqncia de comandos e funes armazenados em ummdulo de cdigo do VBA e pode ser executada sempre que voc precisar executar a tarefa.Quando voc grava uma macro, o Excel armazena informaes sobre cada etapa realizada medida que voc executa uma seqncia de comandos. Em seguida, voc executa a macropara repetir, ou "reproduzir", os comandos.

    Por exemplo, vamos supor que, seguidamente, voc precisa formatar uma clula com Negrito,cor de fonte Vermelha, Itlico, Fonte Verdana de Tamanho 13, com quebra automtica delinha. Ao invs de ter que executar todos os comandos de formatao em cada clula, vocpode criar uma Macro que aplica todos os comandos de formatao. Aps criada a Macro,cada vez que voc tiver que aplicar o conjunto de comandos de formatao, basta executar a

    Macro, o que normalmente feito atravs da associao de uma combinao de teclas com aMacro, como por exemplo Ctrl+L. No nosso exemplo, cada vez que voc quisesse formataruma clula com os formatos descritos, bastaria clicar na clula e pressionar Ctrl+L. Bem maisfcil do que aplicar cada comando individualmente.

    Voc pode Gravar uma macro para realizar uma tarefa em uma etapa: Antes de gravaruma macro, planeje as etapas e os comandos que voc deseja que a macro execute. Secometer um erro durante a gravao da macro, as correes feitas tambm sero gravadascomo comandos da macro. Ao gravar macros, o VBA armazena cada macro em um novomdulo de cdigo VBA, anexado a uma pasta de trabalho (arquivo .xls).

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    13/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina13de527

    Por exemplo, se voc insere com freqncia seqncias de caracteres de texto extensas nasclulas, voc pode gravar uma macro para formatar essas clulas de maneira que o textoretorne automaticamente. Selecione a clula em que deseja inserir o retorno automtico detexto e inicie a gravao da Macro. Clique em Clulas no menu Formatar, clique na guiaAlinhamento, marque a caixa de seleo Retorno automtico de texto, clique em OK e, em

    seguida, clique em Parar gravao (voc ver exemplos prticos nas prximas lies).

    Como Tornar uma macro fcil de ser executada: Voc pode executar uma macroescolhendo-a de uma lista na caixa de dilogo Macro. Para que uma macro seja executadasempre que voc clicar em um boto especfico ou pressionar determinada combinao deteclas, voc pode atribuir a macro a um boto da barra de ferramentas, a um atalho no tecladoou um objeto grfico em uma planilha. Veremos como fazer essas atribuies nas prximaslies.

    Como Exibir e alterar macros: Depois de gravar uma macro, voc poder exibir o cdigoda macro com o Editor do VBA para corrigir erros ou alterar a funo da macro. O Editor do

    VBA um programa criado para facilitar a escrita e a edio de cdigo de macro paraprincipiantes e fornece bastante Ajuda on-line. Voc no precisa aprender a programar ou ausar a linguagem do Visual Basic para fazer alteraes simples nas suas macros. Nasprximas lies veremos como exibir e editar macros.

    Na Figura a seguir temos um exemplo de cdigo associado com uma Macro. Esse umexemplo de cdigo VBA:

    Como Gerenciar suas macros Com o Editor do VBA:Voc pode editar macros, copiarmacros de um mdulo para outro, copiar macros entre pastas de trabalho diferentes, renomearos mdulos que armazenam as macros ou renomear as macros. Por exemplo, se voc quisesseque a macro de retorno automtico de texto, do exemplo anterior, tambm deixasse o textoem negrito, voc poderia gravar outra macro para aplicar negrito a uma clula e copiar asinstrues dessa macro para a macro de retorno automtico de texto.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    14/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina14de527

    Segurana da macro:O Microsoft Excel 2000 fornece proteo contra vrus que podem sertransmitidos atravs das macros. Se voc compartilha macros com outros usurios, voc podecertific-las com uma assinatura digital de forma que os outros usurios possam verificar queas macros so de origem confivel. Sempre que voc abrir uma pasta de trabalho que

    contenha macros, poder verificar a origem das macros antes de ativ-las.

    Programao no Excel A linguagem VBA:

    As Macros so uma excelente soluo quando queremos automatizar uma tarefa que realizada atravs de uma srie de cliques de mouse ou digitaes no teclado. Porm existemsituaes mais complexas, que envolvem clculos ou uma lgica mais apurada, onde no possvel encontrar a soluo do problema, simplesmente usando os comandos ou frmulasprontas do Excel.

    Nessas situaes temos que fazer uso de programao. Um programa (ou mdulo como

    chamado no Excel) uma seqncia de comandos VBA, onde cada comando executa umpasso especfico, necessrio resoluo do problema.

    Nota: Para um melhor aproveitamento e entendimento do VBA importante que o amigoleitor j tenha uma noo bsica de Lgica de Programao. Voc encontra um excelentecurso de Lgica de Programao no seguinte endereo: www.webaula.com.br. O curso gratuito, apenas necessrio fazer um cadastro no site, cadastro esse que tambm gratuito.

    Por exemplo, vamos supor que voc precisasse fazer a verificao do CPF que digitado emuma clula. O clculo do DV do CPF, o qual de domnio pblico, envolve uma srie deoperaes aritmticas. Para implementar uma funo que faz a verificao do DV do CPF,voc ter que fazer uso de programao.

    Por isso que, conforme descrito anteriormente, nas lies desse mdulo veremos os comandosbsicos da linguagem VBA, para aplic-los em alguns exemplos prticos nas lies dosdemais mdulos deste curso.

    http://www.webaula.com.br/http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    15/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina15de527

    Lio 02: O que so exatamente Macros???

    Conforme descrito anteriormente, uma macro uma seqncia de comandos (cliques demouse ou toques de teclado) que so gravados em um Mdulo VBA e podem ser executados,sempre que necessrio. A grande vantagem de gravarmos uma seqncia de comandos que

    poderemos utiliz-la sempre que necessrio. Para isso basta executar a macro na qual foigravada a seqncia de comandos.

    As Macros so uma excelente opo para automatizar tarefas repetitivas. Com o uso deMacros temos um ganho de produtividade considervel, ao evitar que tenhamos que executarmanualmente, os diversos passos de uma tarefa, passos estes que podem ser automatizadosatravs do uso de uma macro. Cada comando do Excel ou clique na planilha representadopor um ou mais comandos VBA, na Macro.

    Existem duas maneiras distintas para a criao de uma macro:

    Podemos usar o gravador de Macros:Nesse caso o Excel grava cada uma das aesque faro parte da Macro e transforma essas aes nos comandos VBA equivalentes.Quando a macro for executada, os comandos VBA que sero efetivamenteexecutados. Cada comando VBA corresponde a uma ao efetiva da macro.Criar a Macro usando VBA:A partir do momento em que voc domina a linguagemVBA, poder criar a macro digitando os comandos VBA necessrios. Isso feitousando o Editor de VBA, conforme veremos nas prximas lies.

    Melhor do que definies a prtica!!

    Melhor do que uma srie de definies ver uma Macro em ao. Vamos a um exemplosimples, onde criaremos uma Macro. Em seguida vamos execut-la . Na prxima lioanalisaremos o cdigo VBA criado pelo gravador de macros.

    Exemplo 1: Criar uma macro usando o Gravador de Macros. A macro dever formatar aclula atual com Negrito, cor de fonte Vermelha, com fundo cinza. Gravar a macro com onome de FormataVermCinza.

    1. Abra o Excel.2. Abra a Planilha C:\Programao VBA no Excel\Mdulo 1 Exerccio 01.xls.3. Clique na clula A4.

    4. Agora vamos iniciar a gravao da Macro.5. Selecione o comando Ferramentas -> Macro -> Gravar nova macro.6. Ser exibida a janela Gravar Macro.7. No campo Nome da macro digite: FormataVermCinza.8. No campo Tecla de atalho digite L. Observe que o Excel troca para Ctrl+Shift+L. Issoacontece porque a combinao Ctrl+L j deve estar associada com algum comando do Excel.Com isso estamos associando a combinao Ctrl+Shift+L com a macro FormataVermCinza,ou seja, cada vez que quisermos executar essa macro basta pressionar Ctrl+Shift+L.9. O campo descrio simplesmente uma descrio da funcionalidade da macro. Digiteo texto indicado na Figura a seguir:

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    16/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina16de527

    10. Clique em OK. A gravao da Macro ser iniciada. Todos os comandos que vocexecutar, durante a gravao da Macro, faro parte da Macro.

    11. Uma nova barra ( ) exibida na planilha do Excel. Essa barra utilizada paraparar a gravao da Macro. Agora devemos escolher os comandos que faro parte da macro.

    Aps ter executado os comandos que faro parte da macro, basta clicar no boto ( ) paraencerrar a gravao da Macro.12. Clique no boto ( ) para aplicar Negrito.

    13. Na lista de Cores da fonte ( ) selecione Vermelho.

    14. Na lista de Cores de fundo ( ) selecione Cinza.

    15. Clique no boto ( ) para encerrar a gravao da Macro.16. Agora a macro FormataVermCinza foi criada e podemos utiliza-la sempre quenecessrio.

    Para executar a macro FormataVermCinza faa o seguinte:

    1. Clique na Clula B7.2. Pressione Ctrl+Shift+L.3. A macro FormataVermCinza executada e as formataes definidas pela macro(Negrito, fonte Vermelha e fundo Cinza) so automaticamente aplicadas na Clula B7. Vejaque com um simples comando de teclado, executo uma srie de comandos (nesse exemplo:

    trs comandos de formatao). Esse exemplo nos d uma pequena idia do poder e facilidadedo uso das macros.4. Tambm possvel executar a macro usando o comando Ferramentas -> Macro ->Macros.5. Clique na clula B5.6. Selecione o comando Ferramentas -> Macro -> Macros.7. Ser exibida a janela Macro, onde so listadas todas as macros existentes na pasta detrabalho atual (no arquivo carregado no Excel), conforme indicado na Figura a seguir:

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    17/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina17de527

    8. Clique na Macro FormataVermCinza para selecion-la.9. Clique no boto Executar.10. A Macro ser executada e as respectivas formataes sero aplicadas clula B5.11. A sua planilha deve estar conforme indicado na Figura a seguir:

    12. Mantenha a planilha aberta, pois iremos utiliz-la na prxima lio.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    18/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina18de527

    Lio 03: Conhecendo do que feita uma Macro

    Na Lio anterior podemos ver uma macro em ao. Criamos uma macro chamadaFormataVermCinza. Essa macro composta por trs comandos de formatao. Cada vez quea macro executada, os trs comandos de formatao so novamente executados e aplicados

    clula onde esta o cursor ou na faixa de clulas selecionadas. At aqui tudo OK. Nenhumanovidade. A pergunta que pode surgir :

    Como que o Excel faz isso?

    Ou de outra forma:

    Do que feita uma macro?

    Conforme veremos nessa lio, uma macro gravada no Excel como uma seqncia decomandos VBA. Por exemplo, ao clicarmos no boto ( ), para a aplicao de negrito, oExcel gera um comando VBA que faz a formatao em negrito. Nessa lio aprenderemos aacessar o cdigo VBA gerado pelo Excel (embora ainda no sejamos capazes de entender essecdigo).

    Para acessar os comandos VBA associado com uma macro, siga os seguintes passos:

    1. Voc deve estar com a planilha C:\Programao VBA no Excel\Mdulo 1 Exerccio01.xls aberta, se no estiver, abra-a.2. Selecione o comando Ferramentas -> Macro -> Macros.3. Ser exibida a janela Macro.

    4. Clique na macro FormataVermCinza para selecion-la.5. Clique no boto Editar.6. O Editor do VBA ser carregado e sero exibidas as seguintes linhas de cdigo:

    Sub FormataVermCinza()'' FormataVermCinza Macro' Macro que faz a formatao em fonte Vermelha, Negrito e' fundo Cinza.'' Atalho do teclado: Ctrl+Shift+L'

    Selection.Font.Bold = TrueSelection.Font.ColorIndex = 3With Selection.Interior

    .ColorIndex = 15

    .Pattern = xlSolidEnd With

    End Sub

    Esses so os comandos VBA (por enquanto no se preocupe se voc no entender o quesignifica cada comando, pois este ser exatamente o objeto de estudo deste curso, ou seja,

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    19/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina19de527

    Programao VBA) que formam a macro FormataVermCinza. Apenas para adiantar umpouco o assunto, a seguir descrevo o que faz cada um dos principais comandos dessa Macro:

    Selection.Font.Bold = True

    Esse comando aplica a formatao em Negrito para a clula ondeest o cursor (ou no conjunto de clulas selecionadas), quandoa macro executada.

    Selection.Font.ColorIndex = 3

    Esse comando aplica cor de fonte Vermelha para a clula ondeest o cursor (ou no conjunto de clulas selecionadas), quandoa macro executada.

    With Selection.Interior

    .ColorIndex = 15

    .Pattern = xlSolidEnd With

    Esses comandos aplicam a cor de fundo cinza, na clula ondeest o cursor (ou no conjunto de clulas selecionadas), quandoa macro executada.

    Esses so comandos da linguagem VBA. Com o uso do VBA temos acesso a todos oscomandos e funes do Microsoft Excel, alm de muitos outros recursos no diretamentedisponveis atravs dos menus de comandos e das funes de planilha do Excel, ou seja,

    recurso que somente esto disponveis atravs da programao VBA. Tudo o que voc fazusando o teclado e o mouse, tambm possvel de ser feito com o uso do VBA, porm deuma maneira automatizada. O uso de macros especialmente indicado naquelas situaes emque temos um conjunto de comandos que precisam ser executados, repetidamente, emdiferentes situaes. Nesses casos muito mais prtico criar uma macro composta peloconjunto de comandos e, cada vez que os comandos precisarem ser executados, executar amacro.

    Na Figura a seguir, apresento uma viso do Editor do Visual Basic. Veremos mais detalhessobre esse editor nas prximas lies, quando comearmos a trabalhar com o VBA.

    7. Selecione o comando Arquivo -> Fechar e Voltar para o Microsoft Excel.8. Voc estar de volta planilha C:\Programao VBA no Excel\Mdulo 1 Exerccio01.xls.9. Salve e feche a planilha.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    20/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina20de527

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    21/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina21de527

    Lio 04: Operaes com Macros

    Nessa lio aprenderemos a renomear, excluir e fazer outras alteraes em macros. Tambmaprenderemos a alterar outras opes associadas com a Macro, tal como o comando de teclado(tecla de atalho) para executar a macro.

    Existem algumas operaes que podem ser feitas com uma macro, aps a sua criao. A maisbvia (e o motivo pelo qual uma macro criada) para executar a macro. Alm da execuo possvel executar outras operaes com uma macro, conforme descrito a seguir:

    Para renomear uma macro siga os seguintes passos:

    1. Abra o arquivo onde est a macro a ser renomeada.2. Selecione o comando Ferramentas -> Macro -> Macros.3. Ser exibida a janela Macro.4. Clique na macro a ser renomeada para selecion-la.

    5. Clique no boto Editar.6. Ser aberto o editor do VBA. O nome da macro vem logo aps o comando Sub daprimeira linha, conforme destacado na Figura a seguir:

    Renomeando uma Macro.

    7. Para renomear a macro basta alterar o nome aps o comando Sub e depois clicar no

    boto ( ) para salvar as alteraes.8. Em seguida s fechar o Editor de VBA.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    22/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina22de527

    Para excluir uma macro siga os seguintes passos:

    1. Abra o arquivo onde est a macro a ser excluda.2. Selecione o comando Ferramentas -> Macro -> Macros.3. Ser exibida a janela Macro.

    4. Clique na macro a ser excluda para selecion-la.5. Clique no boto Excluir.6. O Excel emite um aviso solicitando que voc confirme a excluso, conforme indicadona Figura a seguir:

    Confirmando a excluso da macro.

    7. Clique em Sim para confirmar a excluso ou em No para cancelar a excluso damacro.

    Para alterar a tecla de atalho e o comentrio associado com uma macro, siga osseguintes passos:

    1. Abra o arquivo onde est a macro a ser alterada.2. Selecione o comando Ferramentas -> Macro -> Macros.3. Ser exibida a janela Macro.4. Clique na macro a ser alterada para selecion-la.5. Clique no boto Opes...6. Ser exibida a janela Opes de Macro, onde voc pode alterar a tecla de atalho e ocomentrio associado com a macro, conforme indicado na Figura a seguir:

    Janela de Opes da Macro.

    7. Faa as alteraes desejadas e clique em OK.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    23/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina23de527

    Lio 05: Associando botes com macros

    Nessa lio criaremos mais uma macro de exemplo. Alm da criao da macro aprenderemosa criar um novo boto, na Barra de Ferramentas do Excel e a associar esse boto com a macro.Dessa forma toda vez que precisarmos executar a macro, bastar clicar no boto associado

    com a macro.

    Exemplo 2:Criar uma macro usando o Gravador de Macros. A macro dever formatar Asclulas selecionadas com formato Contbil, com duas casas decimais, cor de fonte Vermelha eItlico. Gravar a macro com o nome de FormataContbil. Criar um boto de comando naBarra de Ferramentas padro e associar esse boto com a macro FormataContbil.

    1. Abra o Excel.2. Abra a Planilha C:\Programao VBA no Excel\Mdulo 1 Exerccio 02.xls.3. Clique na clula F2.4. Agora vamos iniciar a gravao da Macro.

    5. Selecione o comando Ferramentas -> Macro -> Gravar nova macro.6. Ser exibida a janela Gravar Macro.7. No campo Nome da macro digite: FormataContbil.8. Na lista Armazenar macro em, selecione a opo Esta pasta de trabalho.9. O campo descrio simplesmente uma descrio da funcionalidade da macro. Digiteo texto indicado na Figura a seguir:

    Definio do nome e da descrio da macro FormataContbil.

    10. Clique em OK. A gravao da Macro ser iniciada. Todos os comandos que vocexecutar, durante a gravao da Macro, faro parte da Macro.

    11. Uma nova barra ( ) exibida na planilha do Excel. Essa barra utilizada paraparar a gravao da Macro. Agora devemos escolher os comandos que faro parte da macro.

    Aps ter executado os comandos que faro parte da macro, basta clicar no boto ( ) paraencerrar a gravao da Macro.12. Clique no boto ( )) para aplicar Itlico.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    24/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina24de527

    13. Na lista de Cores da fonte ( ) selecione Vermelho.14. Selecione o comando Formatar -> Clulas. Clique na opo Contbil e selecioneduas casas decimais, conforme indicado na Figura a seguir:

    Formatao Contbil com duas casas decimais.

    15. Clique em OK.

    16. Clique no boto ( ) para encerrar a gravao da Macro.17. Agora a macro FormataContbil foi criada e podemos utiliza-la sempre quenecessrio.

    Agora vamos aprender como associar um boto com a macro FormataContbil.

    Para associar um boto com uma macro siga os seguintes passos:

    1. Clique com o boto direito do mouse em uma das barras de ferramentas do Excel. Porexemplo, clique com o boto direito do mouse na rea cinza, ao lado do boto ( ).2. No menu que exibido clique na opo Personalizar.3. Ser exibida a janela Personalizar.4. Clique na guia Comandos.5. Na lista de Categorias que exibida d um clique na opo Macros conforme indicadona Figura a seguir:

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    25/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina25de527

    A opo Macros da guia Comandos.

    6. Clique no boto ( ) e arraste-o para a barra de ferramentas padro, ao lado esquerdodo boto ( ), conforme indicado na Figura a seguir:

    Arrastando o boto que ser associado com a Macro.

    7. A janela Personalizar ser fechada e o boto ( ) ser adicionado barra deferramentas padro.

    8. D um clique no boto ( ).

    9. Ser exibida a janela Atribuir macros. Nessa janela voc pode selecionar a macro queser associada com o boto, isto , a macro que ser executada quando voc clicar no boto.10. Clique na macro FormataContbilpara selecion-la, conforme indicado na Figura aseguir.11. Clique em OK.

    12. Pronto, agora o boto ( ) est associado com a macro FormataContbil.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    26/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina26de527

    Associando a macro FormataContbil com o boto.

    13. Vamos testar se o boto est funcionando.14. Clique na clula F10.

    15. Clique no boto ( ).16. Observe que a macro executada e as respectivas formataes so aplicadas clula

    F10. Isso comprova que o boto ( ) est associado macro FormataContbil.17. Salve e Feche a planilha.

    Muito bem, sobre macros basicamente isso: O que so Macros?, Como criar, como editar,como excluir e como associar um boto de comando. A partir da prxima lio vamos iniciaro estudo da linguagem de programao VBA.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    27/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina27de527

    Lio 06: Introduo ao VBA

    Nas lies iniciais desse mdulo aprendemos a criar macros simples, as quais reproduzemuma srie de comandos de mouse e teclado. Para que possamos criar macros mais sofisticadase resolver problemas mais complexos com o Excel, precisamos utilizar programao VBA.

    Conforme descrito anteriormente, a linguagem de programao do Excel (e de todos osaplicativos do Office) o VBA: Visual Basic for Application.

    Uma linguagem de programao, basicamente, um conjunto de comandos, rotinas, objetos efunes que executam tarefas especficas. Considere o exemplo genrico a seguir, onde soutilizados comandos para acessar uma tabela do access a partir de uma planilha do Excel:

    Comentrios iniciais do Programa. Acessa dados da tabela pedidos do banco de dados C:\Meus documentos\vendas.mdb

    Acessar o banco de dados

    Acessar a tabela PedidosAplicar um filtro para Pas=BrasilExibir os dados obtidos na planilha atualFormatar a primeira linha com negritoFormatar a primeira linha com fonte azul

    Encerrar a macro

    Por que eu preciso aprender a usar o VBA?

    A utilizao de Macros em conjunto com os recurso do VBA nos oferece um grande nmero

    de opes na busca por solues para os problemas mais complexos. Porm existem situaesem que, por mais que saibamos utilizar todos os recursos, comandos e funes do Excel, essautilizao no capaz de solucionar o problema proposto. Nestas situaes temos que utilizarprogramao. Muitos usurios acreditam que possvel solucionar todo e qualquer problemausando somente os comandos e funes do Excel. Isso no verdade. Existem situaes ondevoc ter que criar suas prprias rotinas e funes, para solucionar um determinado problema.E isso s pode ser feito com o uso de programao.

    Muitos usurios entram em contato via email, dizendo: Por favor, me d uma soluo queno envolva programao, no quero saber de programao. Respeito a opinio de todos,mas fugir da programao, significa abrir mo dos recursos mais poderosos que oExcel disponibiliza, significa ficar sem poder solucionar problemas mais complexos. Aprogramao uma ferramenta realmente til. E voc ver, no decorrer deste curso,que programao no nenhum bixo de sete cabeas.

    A linguagem de programao utilizada pelo Microsoft Excel o VBA - Visual Basic forApplications. Conforme veremos a partir de agora esta uma linguagem, ao mesmo tempo,extremamente simples e poderosa. Com o VBA temos acesso completo a todos os elementosde todos os objetos de uma planilha do Excel. Tambm temos acesso a elementos externos,tais como bancos de dados do Access.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    28/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina28de527

    Com cdigo VBA podemos criar uma rotina para validao do dgito verificador de umaclula que contm um valor de CPF, CNPJ ou de um campo NmeroDoProcesso; podemoscriar cdigo que percorre todas as linhas de uma planilha, alterando os valores de uma oumais colunas, com base em uma ou mais condies, podemos automatizar rotinas paraimportao e exportao de dados e assim por diante.

    Nesta introduo a linguagem VBA, trataremos dos seguintes assuntos:

    1. Programao com o Microsoft Excel.2. Introduo a linguagem VBA - Visual Basic For Applications.3. Aprendendo VBA:

    Uma viso geral. O Ambiente de Programao. Anatomia dos Mdulos do VBA. Tipos de dados. Variveis. Escopo de Variveis. Estruturas de controle, etc.

    4. Exerccios e Exemplos.5. Funes e procedimentos.6. Funes de Data e Hora.

    Programao com o Microsoft Excel - Por que utilizar?.

    O VBA nos oferece possibilidades de controle e personalizao para criar aplicativosque vo alm das aes de macro.

    O VBA uma linguagem de programao interna do Microsoft Excel (na prtica alinguagem de programao para todos os aplicativos do Office: Access, Word, Excel ePowerPoint). Usamos o VBA pelo mesmo motivo que utilizamos macros - paraautomatizar tarefas e rotinas repetitivas, envolvendo os diversos elementos do banco deuma planilha (clulas, faixas de clulas, grficos, planilhas, funes, realizar clculos,etc.). No entanto, o VBA oferece maior poder e controle mais detalhado do que as aesde macro.

    Na prtica as aes de macro duplicam as operaes que podemos realizar manualmente,usando o mouse para executar comandos nos menus e o teclado. O VBA vai alm da

    simples automao de seqncias de aes. Ele oferece um conjunto de ferramentas quelhe permite criar aplicaes personalizadas com base nos elementos do Excel e nosobjetos de planilha do Excel. Por exemplo, podemos criar uma rotina em VBA em umaplanilha do Excel. Esta rotina pode acessar dados em uma segunda planilha que est narede, em um drive mapeado em um servidor. A mesma rotina alm de acessar os dadospode fazer clculos, consolidaes, gerar os resultados no formato de uma planilha doExcel e salvar a planilha na rede ou publicar os dados no formato HTML, no servidor daIntranet da empresa. Este apenas um pequeno exemplo do que pode ser feito como oVBA.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    29/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina29de527

    Vantagens em utilizarmos o VBA:

    Nas primeiras lies deste mdulo, j utilizamos macros e aprendemos a automatizaralgumas tarefas como a aplicao de formatos personalizados. O VBA apresenta, emrelao as macros, as seguintes vantagens:

    Acessando dados de uma ou mais planilhas: Com aes de macrosestamos limitados a operar com os dados atualmente sendo exibido na pastade trabalho atual O VBA permite trabalhar com qualquer conjunto dedados, quer seja da pasta de trabalho atual, quer seja de outra pasta detrabalho na rede ou com outros formatos de dados, como por exemplo dearquivos .txt ou bancos de dados do Microsoft Access.

    Manipulao de objetos: O VBA oferece mtodos de criao emodificao dos objetos de uma planilha no Excel (assunto que serabordado nas lies dos Mdulos 2,3, 4, alm de uma srie de exemplosprticos, apresentados no Mdulo 6). Chamamos de objeto qualquerelemento do Microsoft Excel, por exemplo: uma planilha, uma faixa declulas, um grfico, etc.

    Criao de funes definidas pelo usurio: Este um dos maioresbenefcios do VBA. Podemos criar funes que executam clculosrepetitivos. Por exemplo, vrios planilhas podem conter um campo CPF ouCNPJ. Poderamos criar, em cada planilha, o cdigo necessrio para avalidao do DV do CPF ou do CNPJ. Porm este procedimento no omais indicado, pois alm da duplicao do cdigo necessrio a validao,teramos dificuldades para fazer atualizaes neste cdigo, pois cadaalterao necessria teria que ser feita em vrios locais. O ideal criarmos

    uma funo para validao do DV (uma funo deve ser criada dentro deum mdulo. Trataremos disso mais adiante.). Em cada planilha, onde fornecessria a utilizao da funo, chamamos a funo, passando o valor doCPF como parmetro. A funo calcula o DV e retorna o resultado para aplanilha. Desta maneira precisamos criar uma nica funo. Quando foremnecessrias alteraes, basta alterar a funo (em um nico local, ou seja,no mdulo onde a funo foi criada) e todos os formulrios passaro autilizar a verso atualizada da funo.

    Definio de condies e controle de fluxo: O VBA oferece umavariedade de comandos e estruturas para a realizao de testes condicionaise para a repetio de um conjunto de comandos. Aprenderemos a utilizar

    todas as estruturas de controle de fluxo e testes condicionais, mais adiante. Realizao de clculos complexos e soluo de problemas que

    envolvem uma lgica complexa: Com macros impossvel a realizao declculos mais complexos, simplesmente atravs da automao de comandosde teclado e mouse. Tambm no possvel a resoluo de problemas queenvolvem uma lgica complexa, como por exemplo clculo do imposto derenda, recolhimentos de tributos, etc.

    Muito bem, esta lio foi para fazer uma apresentao do VBA e convenc-lo de quo til este recurso.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    30/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina30de527

    Lio 07: O Ambiente de programao o Editor VBA Parte I

    O Microsoft Excel fornece um ambiente de programao bastante poderoso, com uma srie derecursos que facilitam a criao de cdigo VBA. Neste tpico vamos aprender a utilizar osaspectos bsicos do Ambiente de Programao do VBA. O ambiente de programao um

    editor que facilita a criao de cdigo. Dentro do ambiente de programao, so oferecidasuma srie de facilidades e dicas para que o Programador possa encontrar, facilmente, osobjetos disponveis, bem como os mtodos e propriedades de cada objeto.

    Se no tivssemos disponvel um Ambiente de Programao, teramos que lembrar da sintaxede todos os comandos, dos mtodos e propriedades dos objetos. Convenhamos que isso praticamente impossvel, pois com o VBA temos acesso a milhares de objetos ( isso mesmo:milhares de objetos, comandos e funes. Por enquanto estou utilizando bastante o termoobjeto, sem t-lo explicado ainda. Mais adiante detalharei o conceito de classes, mdulos eobjetos). Cada objeto pode ter dezenas de propriedades, mtodos e colees (alguns temcentenas de propriedades e mtodos).

    O ambiente de Desenvolvimento fornece uma srie de facilidades para a criao de cdigoVBA. Por exemplo, ao digitar o nome de um objeto e um ponto ser aberta, automaticamente,uma lista com todos os mtodos e propriedades deste objeto. Ao invs de lembrar do nomedos mtodos/propriedades, basta selecion-los em uma lista. Se selecionarmos um mtodo, aodigitarmos o parnteses de abertura, ser exibida uma lista com os argumentos esperados pelomtodo, bem como o tipo (texto, nmero, data, etc) de cada argumento. Se digitarmos umcomando incorretamente, o Ambiente de Desenvolvimento emite uma mensagem e coloca emdestaque o comando que foi digitado incorretamente. Estas so apenas algumas dasfacilidades fornecidas pelo Ambiente de Desenvolvimento do VBA.

    Para conhecermos melhor o referido ambiente, vamos a um exemplo prtico. Vamos abriruma planilha, que contm uma macro chamada AplicaNegrito e editar essa macro. Lembreque para editar uma macro, temos que acessar o cdigo VBA associado macro. Isso feitono Editor do VBA, ou seja, no Ambiente de Desenvolvimento do VBA.

    Exemplo 3: Acessar o Editor VBA para alterar a macro AplicaNegrito, da planilhaC:\Programao VBA no Excel\Mdulo 1 Exerccio 03.xls.

    1. Abra o Excel.2. Abra a Planilha C:\Programao VBA no Excel\Mdulo 5 Exerccio 03.xls.

    3. Como j existem macros nesta planilha, o Excel pede uma confirmao, perguntandose voc deseja ativar as macros existentes, conforme indicado na prxima figura. Essaconfirmao solicitada devido ao perigo representado pelos vrus de Macro, que podemafetar os aplicativos do Microsoft Office.4. Clique no boto Ativar Macros.5. A planilha ser aberta.6. Nessa planilha existe uma macro chamada AtivaNegrito. Vamos editar essa macro. Onosso objetivo conhecer alguns detalhes sobre o Ambiente de Desenvolvimento do VBA.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    31/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina31de527

    Confirmao para ativao de macros, na abertura da planilha.

    7. Selecione o comando Ferramentas -> Macro -> Macros...8. Ser exibida a janela Macro.

    9. Clique na macro AplicaNegrito para selecion-la.10. Clique no boto Editar.11. Ser aberto o editor do VBA e o cdigo associado macro AplicaNegrito.12. Na Figura a seguir, temos a descrio de algumas partes da janela do editor VBA.

    O Editor VBA.

    No lado esquerdo da tela temos duas janelas:

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    32/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina32de527

    Project VBA Project: Nessa janela so exibidos os vrios elementos que fazem parte daPasta de trabalho atual. Aqui so exibidas as planilhas e mdulos da pasta de trabalho(arquivo .xls) carregado no Excel. Ao criarmos uma macro podemos cria-la em umadeterminada planilha. Os mdulos so utilizados para criar funes e procedimentos que

    podem ser chamados em todas as planilhas da pasta de trabalho atual. Aprenderemos maissobre funes e procedimentos nas prximas lies.

    Janela na parte de baixo: A janela abaixo da janela Project, exibe as propriedades doelemento selecionado na janela Project. Por exemplo, ao selecionar Plan1, na janela Project,na janela de baixo sero exibidas as propriedades de Plan1, conforme indicado na Figura aseguir:

    7

    Propriedades do objeto selecionado em VBAProject.

    13. Feche o Editor do VBA e a planilha.

    Nas prximas lies veremos mais algumas funcionalidades do Editor VBA.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    33/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina33de527

    Lio 08: O Ambiente de programao o Editor VBA Parte 2

    Nesta lio mostrarei mais alguns importantes recursos do Ambiente de Programao doVBA. Mostrarei como o ambiente procura ajudar o programador, medida que este digita oseu cdigo. Tambm descreverei a estrutura de cdigo contida em uma planilha do Excel.

    Para mostrar as funcionalidades do ambiente de programao, utilizarei um exemplo prtico.

    Exemplo 4:Acessar o Editor VBA para aprender sobre as funcionalidades do ambiente deprogramao e sobre a estrutura de cdigo VBA em uma planilha.

    1. Abra o Excel.2. Abra a Planilha C:\Programao VBA no Excel\Mdulo 1 Exerccio 04.xls.3. Para abrir o Editor do VBA pressione Alt+F11 ou selecione o comando Ferramentas -> Macro -> Editor do Visual Basic.4. O ambiente de programao do VBA ser aberto, conforme indicado na figura aseguir:

    O Editor do VBA.

    5. No lado esquerdo da janela, no painel VBAProject, so exibidas entradas para asdiversas planilhas da pasta de trabalho atual (Grf1, Plan1, Plan2 e Plan3 para o nossoexemplo). Voc pode criar cdigos, funes e rotinas associadas com uma determinadaplanilha da pasta de trabalho. Uma funo ou rotina criada em uma planilha, poder serutilizado somente dentro da planilha onde foi criada. As rotinas que devem estar disponveispara todas as planilhas da pasta de trabalho, devem ser criadas em Mdulos independentes decdigo. No exemplo da Figura anterior, temos um mdulo chamado Mdulo 1. Para planilhasmais complexas, possvel criar vrios mdulos de cdigo, dividindo os procedimentos emcategorais, tais como funes para clculos de data, funes de validao de dados, funes

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    34/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina34de527

    de clculos financeiros e assim por diante. Esta diviso facilita a localizao, manuteno ealterao das funes existentes. muito importnte que voc entenda este ponto. Vamosrepetir para fixar bem. As rotinas de cdigo VBA em uma pasta de trabalho do Excel, podemser criadas associadas com uma planilha ou com um Mdulo de cdigo. As rotinas que fazemparte de um mdulo de cdigo, podero ser utilizadas em qualquer planilha da pasta de

    trabalho onde o Mdulo foi criado.

    6. Conforme voc aprender nas lies do Mdulo 2, a programao VBA no Excel, fazuso de um grande conjunto de objetos. Cada objeto contm um grande nmero de mtodos epropriedades. O Editor do VBA facilita a utilizao dos mtodos e propriedades de um objeto,pois quando voc digita o nome do objeto e depois um ponto, o Excel exibe uma lista de todasas propriedades e mtodos do respectivo objeto. Esse recurso um dos que eu considero maisimportantes, pois evitam de o programador ter que decorar o nome de todos os mtodos epropriedades e reduzem o nmero de vezes que o programador tem que consultar a Ajuda doExcel ou o manual de programao. No exemplo da Figura a seguir, estou utilizando o objetoRange (que voc estudar em detalhes neste curso). Ao digitar Range. , o Editor do VBA

    exibe uma lista de mtodos e propriedades do objeto Range, conforme indicado na Figura aseguir:

    7. Aps selecionar um mtodo e digitar o parnteses de abertura, o Editor VBA apresentaa lista de argumentos que deve ser fornecida para o mtodo selecionado, bem como o tipo decada argumento, conforme indicado na Figura a seguir. Esta tambm uma dica valiosa, queevita erros e evita que o programador tenha que fazer uma srie de tentativas, at conseguirinformar todos os parmetros corretamente:

    8. Outro recurso muito til do Editor VBA a janela Pesquisador de Objetos. Esta janelaexibe uma listagem de todos as bibliotecas disponveis, bem como a lista de cada objeto decada biblioteca, juntamente com todas as propriedades e mtodos de cada objeto. umaverdadeira jia, que facilita muito o trabalho do Programador. Para exibir a janelaPesquisador de Objetos, pressione a tecla F2 ou selecione o comando Exibir -> Pesquisadorde objeto. Ser exibida a janela indicada na Figura a seguir:

    Nota: No Mdulo 2, apresentarei os conceitos de Biblioteca, Objetos, Mtodos ePropriedades, em mais detalhes.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    35/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina35de527

    9. Na lista Todas as Bibliotecas voc pode selecionar uma biblioteca especfica, para queo Pesquisador de objeto, use somente os objetos da Biblioteca selecionada. Por exemplo,selecione a biblioteca Excel. Sero exbidos apenas os objetos do Excel. Na lista de objetos,localize o objeto Range e clique para marc-lo. No painel da direita, ser exibida uma listados mtodos e propriedades do objeto Range, conforme indicado na figura a seguir:

    10. Para obter ajuda sobre um mtodo ou propriedade, clique no mtodo ou propriedade

    desejado e depois clique no boto ( ). A ajuda do Excel ser aberta, e ser carregada apgina de ajuda sobre o mtodo ou propriedade selecionada.11. Para fechar o Pesquiador de objeto, clique no boto x, da janela do Pesquisador deobjeto.12. Para fechar o Editor do VBA, selecione o comando Arquivo -> Fechar e voltar para oMicrosoft Excel. Muito bem, agora voc j conhece os recursos do editor do VBA. O prximopasso aprender os fundamentos da linguagem VBA, para criar suas primeiras rotinas deprogramao.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    36/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina36de527

    Lio 09: VBA - Declarao de Variveis

    A partir desta lio, voc iniciar o estudo da lingaugem VBA. O VBA composto por umasrie de comandos bsicos, os quais fazem parte de praticamente toda linguagem deprogramao. So comandos para declarao de variveis, para realizao de operaes

    aritmticas e lgicas e comandos para fazer testes lgicos e para executar a repetio de umconjunto de comandos, com base em uma ou mais condies. Esses comandos bsicos seroutilizados em praticamente todos os exemplos deste curso e em qualquer rotina deprogramao que voc venha a desenvolver na prtica.

    Iniciaremos o nosso estudo de VBA pela definio do conceito de variveis a aprendendo adeclarar variveis no VBA.

    Nota:A medida que os conceitos forem sendo apresentados, faremos alguns testes. Para ostestes criarei uma macro chamada MacroTeste, a qual irei associar um combinao de teclasde Atalho: Ctrl+. Para testar os comandos, a medida que estes forem sendo apresentados,

    vamos acessar o cdigo VBA da macro MacroTeste (usando o Editor VBA) e inserir oscomandos a serem testados. Em seguida voltaremos para a planilha e executaremos a Macropara testar os comandos. Para facilitar o processo de execuo da Macro usaremos acombinao de teclas Ctrl+T, a qual est associada macro. Vou utilizar uma planilhachamada Mdulo 1 Exemplos Bsicos VBA.xls. A seguir descrevo os passos para criaoda MacroTeste e para associar a combinao Ctrl+T com esta macro. Voc criar a macrosem nenhum comando. Os comandos sero inseridos e testados, nos exemplos prticos, daslies deste mdulo.

    Exemplo:

    Para criar a macro MacroTeste, siga os passos indicados a seguir:

    1. Abra o Excel.2. Abra a Planilha C:\Programao VBA no Excel\ Mdulo 1 Exemplos BsicosVBA.xls.3. Selecione o comando Ferramentas -> Macro -> Gravar nova macro...4. Ser exibida a janela Gravar Macro. No campo Nome da macro:, digite MacroTeste.No campo Tecla de atalho, ao lado do Ctrl, digite T. Sua janela deve estar conforme indicadona Figura a seguir:

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    37/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina37de527

    5. Clique em OK.6. Ser exibida a barra de gravao da Macro. Como queremos criar uma macro embranco, vamos parar a gravao da macro sem ter executado nenhum comando.

    7. Clique no boto ( ), da barra de ferramentas da macro ( ), para encerrar agravao da macro MacroTeste.8. Pronto, agora temos uma macro chamada MacroTeste, a qual no tem nenhumcomando. A cada exemplo, voc ir alterar esta macro, inserindo comandos do VBA naMacro. Depois voc usar a combinao de teclas Ctrl+T, para testar o funcionamento damacro. A cada novo exemplo, os comandos do exemplo anterior sero apagados e oscomandos do novo exemplo digitados.

    Declarao de variveis e tipos de dados:

    Uma varivel um espao na memria do computador, reservado para armazenar um ou mais

    valores. Fazemos referncia a este espao utilizando nomes, ou seja, atribumos nomes asvariveis utilizadas no VBA. Como o valor armazenado pode variar, a medida que o cdigoVBA executado, estas estruturas so chamadas de variveis.

    No VBA, no obrigatrio a declarao de variveis. Porm recomendvel que declaremostodas as variveis, de tal forma que o cdigo fique mais claro e de fcil compreenso. Paradeclararmos uma varivel, utilizamos o comando Dim, conforem exemplificado abaixo:

    Dim xDim nomeDim teste

    Neste caso estamos apenas declarando o nome da varivel, sem declarar de que tipo (texto,nmero inteiro, nmero com decimal, data, etc) a varivel. Uma varivel declarada sem tipo considerada do tipo Variant, o que na prtica significa que a varivel pode conter qualquertipo de valor. Pode parecer uma prtica interessante a no declarao do tipo da varivel,porm isso altamente desaconselhvel. Se no declararmos o tipo, conforme descritoanteriormente, a varivel poder conter qualquer valor. Neste caso o que impede de umcampo numrico conter valores de texto ou vice-versa??

    A sintaxe para o comando Dim a seguinte:

    Dim nome_da_varivel As tipo_da_varivel

    Tambm podemos declarar mais do que uma varivel, com um nico comando Dim. Para isto,basta separar os nomes das variveis, com vrgula, conforme exemplificado abaixo:

    Dim x, y, z As StringDim nome as DoubleDim teste1, teste2 As Integer

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    38/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina38de527

    IMPORTANTE:

    Observe que definimos o tipo de cada varivel. O Tipo define quaisdados podem ser armazenados em uma varivel. Por exemplo, variveis que armazenamvalores numricos, no devem aceitar caracteres de texto. Variveis que armazenam datas,no devem aceitar datas invlidas, como por exemplo 30/02/2001. Toda varivel no VBA,

    do tipo Variant, isto significa que a varivel pode ser de qualquer tipo. O que define o tipo davarivel o valor que est armazenado no momento. Existem funes que converso de tipo,conforme veremos mais adiante.

    Tambm podemos utilizar variveis que no foram, explicitamente, declaradas com ocomando Dim. Com isso, a varivel criada na memria, no momento da sua utilizao. Parafazer com que toda varivel tenha que ser, explicitamente, declarada, antes de ser utilizada,devemos utilizar o seguinte comando na seo de declarao do mdulo:

    Option Explicit

    Ao colocarmos este comando na seo de declarao do mdulo, estamos definindo que todavarivel deve ser declarada, antes de ser utilizada em uma expresso. Se tentarmos utilizaruma varivel no declarada, ser gerado um erro de compilao e a execuo dos comandos suspensa. Na Listagem 1, temos um exemplo simples de utilizao de variveis nodeclaradas explicitamente.

    Listagem 1 Utilizao de variveis no declaradas.

    Dim a As IntegerDim b As Integera=5b=2c=a+bMsgbox "A varivel C vale: " & c

    Ao tentarmos executar este cdigo, tendo sido definida a opo "Option Explicit", obteremosa mensagem de erro indicada na prxima figura. Este erro acontece porque tentamos utilizaruma varivel c, varivel esta que no foi declarada.

    O tipo Variant formado de pequenas unidades, chamadas subtipos. Cada subtipo, identificade que maneira os dados so armazenados em uma varivel do tipo Variant Por exemplo,variveis do subtipo Integer so armazenadas de uma maneira diferente de variveis dosubtipo Long. Na Tabela a seguir temos uma descrio dos principais subtipos.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    39/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina39de527

    Tabela - Subtipos do tipo Variant disponveis no VBA:

    Subtipo SubtipoEmpty O Valor zero para variveis numricas ou uma String de tamanho zero (

    ), para variveis de texto.Null A varivel no contm dados vlidos.

    Boolean Contm variveis que somente podem assumir dois valores:Verdadeiro ouFalso (True ou False).

    Byte Valor inteiro, na faixa de 0 at 255.

    Integer Valor inteiro, na faixa de -32768 at 32767.

    Currency Valores na faixa de 923.337.203.685.447,5808 at922.337.203.685.447,5807

    Long Valor inteiro, na faixa de 2.147.483.648 at 2.147.483.647.

    Date(Time) um nmero que representa a data entre 01 de Janeiro do ano 100, at

    31 de Dezembro de 9999 (Olha o bug do ano 10000 chegando).String Texto de tamanho varivel, pode conter, aproximadamente, 2 bilhes de

    caracteres.

    Object Pode conter um objeto qualquer, como um Controle Activex, ou um ObjetoCOM+

    Error Pode conter um nmero de erro.

    Antes de fazermos alguns exemplos prticos, vamos aprender um pouco mais sobre o uso devariveis no VBA. Vamos falar sobre operadores aritmticos e de comparao. Mas isso j assunto para a prxima lio.

    http://www.juliobattisti.com.br/
  • 5/19/2018 Macros Programacao VBA_Excel.pdf

    40/527

    Macros e Programao VBA no Excel

    Autor: Jlio Cesar Fabris BattistiSite: www.juliobattisti.com.br

    Confira tambm o livro: Windows Server 2003 Curso Completo, 1568 pginas Pgina40de527

    Lio 10: VBA - Clculos, Operadores Aritmticos e Exemplos

    Fazendo clculos