Apostila_Excel2003_VBA.pdf

78
EXCEL - VBA

Transcript of Apostila_Excel2003_VBA.pdf

  • EXCEL - VBA

  • 2 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    ndice Analtico Introduo ...................................................................................................................................... 6

    O que o Curso de MS-Excel 2003 com VBA................................................................... 6 Objetivo do Curso............................................................................................................... 6 A Quem se Destina............................................................................................................. 6

    Conceitos Bsicos......................................................................................................................... 7

    Histria do VBA .................................................................................................................. 7 Procedimentos x Funes .................................................................................................. 7 Procedimentos Public x Private.......................................................................................... 7 Objetos ............................................................................................................................... 7 A Estrutura de Objetos ....................................................................................................... 7 Colees............................................................................................................................. 8 Eventos............................................................................................................................... 8 Propriedades ...................................................................................................................... 9 Mtodos .............................................................................................................................. 9 Ambiente de Desenvolvimento........................................................................................... 9

    Macros .......................................................................................................................................... 10

    O que so Macros? .......................................................................................................... 10 Planejando as Macros ...................................................................................................... 10 Como Gravar uma Macro Usando o Gravador de Macros............................................... 11 Segurana de Macros ...................................................................................................... 12 Nvel de Segurana .......................................................................................................... 12 Como Alterar o Nvel de Segurana................................................................................. 12 Como Executar uma Macro Usando o Menu Ferramentas.............................................. 13 Como Alterar uma Macro no Editor do Visual Basic ........................................................ 14 Elementos da Janela do Editor do Visual Basic............................................................... 15 Modos de Visualizao..................................................................................................... 16 Como Atribuir uma Macro a um Boto na Barra de Ferramentas.................................... 18 Como Criar uma Funo .................................................................................................. 19 Como Inserir a Funo na Planilha .................................................................................. 20

    Variveis e Constantes ............................................................................................................... 22

    Escolhendo Nomes de Variveis...................................................................................... 22 Tipos de Variveis ............................................................................................................ 23 Abrangncia de uma Varivel .......................................................................................... 24 Variveis em Nvel do Procedimento (Locais) ................................................................. 24 Variveis Privadas............................................................................................................ 24 Variveis Pblicas ............................................................................................................ 25 Obrigando a Declarao de Variveis.............................................................................. 25 Como Ativar Automaticamente a Obrigatoriedade da Declarao de Variveis ............. 25 Constantes........................................................................................................................ 26

    Operadores................................................................................................................................... 27

    Operadores de Comparao ............................................................................................ 27 Operadores Lgicos ......................................................................................................... 27 Operadores de Concatenao ......................................................................................... 27

  • MS-Excel 2003 - VBA 3

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Estruturas de Controle................................................................................................................ 28

    If...Then............................................................................................................................. 28 Select Case ...................................................................................................................... 28 Exerccio ........................................................................................................................... 28 Como Acessar o Editor do Visual Basic........................................................................... 29 Como Inserir a Funo na Planilha .................................................................................. 30

    Estruturas de Repetio (Loops) ............................................................................................... 32

    Do While...Loop ................................................................................................................ 32 Do Until...Loop.................................................................................................................. 32 Do...Loop While ................................................................................................................ 32 Do...Loop Until .................................................................................................................. 32 For...Next .......................................................................................................................... 32 For Each...Next................................................................................................................. 32 Exerccio ........................................................................................................................... 33 Mtodo Cells..................................................................................................................... 34 Propriedade Value............................................................................................................ 34 Instruo With...End With ................................................................................................. 34 Exerccio ........................................................................................................................... 35

    Caixas de Entrada e de Sada..................................................................................................... 36

    Funo InputBox............................................................................................................... 36 Funo MsgBox................................................................................................................ 37 Exerccio ........................................................................................................................... 39

    Procedimentos de Evento .......................................................................................................... 40

    Eventos de Pasta de Trabalho ......................................................................................... 40 Eventos de Planilha.......................................................................................................... 40 Exerccio ........................................................................................................................... 41

    Caixas de Dilogo Predefinidas ................................................................................................. 42 Controles de Formulrios........................................................................................................... 43

    Exerccio ........................................................................................................................... 43 Como Exibir a Barra de Ferramentas Formulrios........................................................... 43 Propriedade Application ................................................................................................... 46 Como Atribuir a Macro ComboBox Caixa de Combinao ........................................... 46

    Formulrios .................................................................................................................................. 48

    O que um Formulrio?................................................................................................... 48 Como Criar um Formulrio ............................................................................................... 49 Como Inserir a Funo na Planilha .................................................................................. 49 Convenes para Nomes de Controles ........................................................................... 50 Explicaes dos Botes da Caixa de Ferramentas.......................................................... 51

  • 4 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

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

  • MS-Excel 2003 - VBA 5

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Depurao de Erros..................................................................................................................... 67

    Tipos de Erros .................................................................................................................. 67 Erros de Linguagem ......................................................................................................... 67 Erros em Tempo de Execuo ......................................................................................... 67 Erros de Lgica................................................................................................................. 67 Estados de uma Aplicao ............................................................................................... 67 Execuo (Run Time)....................................................................................................... 68 Projeto (Design Time)....................................................................................................... 68 Interrupo (Break Mode)................................................................................................. 68 Ferramentas de Depurao.............................................................................................. 68 Como Exibir a Barra de Ferramentas Depurar................................................................. 68 Como Entrar no Modo de Interrupo.............................................................................. 69 Exerccio ........................................................................................................................... 70 Janela Verificao imediata.............................................................................................. 70 Como Inserir um Ponto de Interrupo ............................................................................ 71

    Rotina de Tratamento de Erros .................................................................................................. 72

    On Error GoTo linha ......................................................................................................... 72 On Error Resume Next ..................................................................................................... 72 On Error GoTo 0 ............................................................................................................... 72 Exerccio ........................................................................................................................... 72 Como Acessar a Listagem de Erros................................................................................. 74

    Apndices..................................................................................................................................... 76

    Recursos Novos ............................................................................................................... 76 Suporte a XML.................................................................................................................. 76 Trabalho em Grupo........................................................................................................... 76 Ortografia e Gramtica ..................................................................................................... 76 Maior Segurana .............................................................................................................. 76 Mudanas na Linguagem VBA......................................................................................... 76 Funcionalidade de Lista.................................................................................................... 77 Integrao com o Windows SharePoint Services ............................................................ 77 Especificaes do MS-Excel 2003 ................................................................................... 78

  • 6 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Introduo

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

    O curso aborda os conceitos avanados do MS-Excel 2003, apresentando uma viso geral sobre a linguagem Visual Basic for Applications (VBA), onde os participantes aprendero a elaborar procedimentos (macros) de forma didtica e gradativa.

    Este curso est voltado para pessoas que tenham conhecimentos bsicos do MS-Windows 98/XP e do MS-Excel 2003.

    Objetivo do Curso

    O objetivo do curso fornecer aos participantes os conceitos e fundamentos de programao no ambiente do VBA (Visual Basic For Applications). O curso ser totalmente constitudo por aulas prticas nos computadores. No decorrer do curso, exponha suas dvidas ao instrutor, de preferncia durante as aulas, de forma que todos possam tambm aproveitar as explicaes dadas. Acima de tudo, no falte s aulas. Desse modo, voc conseguir acompanhar perfeitamente nosso curso, pondo-se em dia com a tecnologia mais moderna, utilizada em qualquer ramo do conhecimento tcnico cientfico. A Quem se Destina A todas as pessoas que desejam programar no Excel 2003 utilizando o VBA. A KA Solution deseja a todos que o curso seja um degrau a mais no sucesso pessoal ou profissional e agradece ao esforo e o talento dos alunos e instrutores que, estes sim, do vida a este material.

  • MS-Excel 2003 - VBA 7

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Conceitos Bsicos

    Antes de voc criar o primeiro procedimento em VBA, importante conhecer alguns conceitos bsicos da programao em Visual Basic. Histria do VBA VBA significa Visual Basic for Applications. O VBA uma evoluo do conceito de macro. As macros eram seqncias de comandos de teclado que poderiam ser gravadas e depois executadas. Essa idia se mostrou extremamente til, j que muitas tarefas repetitivas puderam ser simplificadas. Com a evoluo das macros, as seqncias passaram a ser editveis e foram includos comandos de controle de fluxo, como por exemplo: If, For, While, etc. Inevitavelmente elas se transformaram em verdadeiras linguagens de programao. O VBA foi uma evoluo das linguagens de macro. Sua grande vantagem a uniformidade de cdigo: em vez do programador se adaptar a muitas linguagens de macro diferentes, so os aplicativos que tm que ser compatveis com VBA. Procedimentos x Funes A diferena entre os procedimentos (Sub) e as funes (Function) que essas ltimas retornam um valor calculado. Um procedimento executa apenas comandos, mas no retorna valor. A funo tambm pode executar qualquer tipo de comando, mas retorna um valor. A escolha depende do contexto e das necessidades do programador Procedimentos Public x Private A diferena bsica entre esses dois tipos de procedimentos que o primeiro (Public) acessvel de qualquer parte do projeto. O procedimento Private s pode ser chamado dentro do mesmo mdulo. Se voc no quiser que a funo seja pblica, digite a palavra chave Private no lugar de Public. Caso voc omita essa informao, o VBA considera todas as funes e procedimentos como pblicos. Objetos Cada elemento no Excel pasta de trabalho, planilha, grfico, clula, etc pode ser representado por um objeto em VBA. Um objeto um tipo especial de varivel que contm dados e cdigo, e representa um elemento especfico no Excel. Exemplos de objetos: Application Representa o prprio Excel. Range uma rea da planilha. Workbook Representa uma pasta de trabalho. Worksheet uma planilha A Estrutura de Objetos A compreenso do conceito de Estrutura de Objetos fundamental para comear a entender o VBA. Toda vez que voc quiser trabalhar com um objeto no Excel, deve inicialmente construir uma expresso que retorna o objeto. Para criar a expresso, voc deve saber onde o objeto se situa dentro da hierarquia de objetos, ou modelo de objetos. A definio de qualquer objeto nada mais do que o detalhamento de seus componentes. Cada objeto tem um conjunto de propriedades e eventos associados que so utilizados pelo cdigo. Veja a figura abaixo:

  • 8 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Com a estrutura de objetos em mos, fica mais fcil escrever programas em VBA. O importante observar que h uma hierarquia que deve ser seguida. Se s h um workbook aberto no momento, voc pode comear o comando abaixo do nvel Workbook da estrutura de objetos. Todos os aplicativos do Office tm as suas prprias estruturas de objetos, que esto disponveis na documentao do programa. Colees Coleo um objeto que contm um grupo de objetos relacionados. Por exemplo, o objeto de coleo Worksheets contm objetos Worksheet. Cada objeto dentro de uma coleo chamado elemento daquela coleo. Uma vez que colees so objetos, elas tm propriedades e mtodos, como os objetos individuais. Exemplos de colees: Workbooks, Worksheets, Sheets, etc. Eventos Evento uma ao iniciada pelo usurio ou pelo sistema operacional, como por exemplo: um clique do mouse, um perodo de tempo, etc. A maioria dos objetos do Excel, alm de suas propriedades, pode responder a alguns eventos predeterminados. Quando voc clica em um boto, est ativando o evento Click. Exemplos de eventos: Click Ocorre quando o usurio clica com o mouse em cima do controle. KeyDown Ocorre quando o usurio pressiona uma tecla e o controle est com o foco. KeyPress Ocorre quando o usurio pressiona e solta uma tecla e o controle est com o foco. MouseDown Ocorre quando o usurio pressiona o boto do mouse sobre o controle.

  • MS-Excel 2003 - VBA 9

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Propriedades Propriedades so as caractersticas de um objeto, tais como tamanho, posio, cor, etc. As propriedades determinam a aparncia e o comportamento de um objeto. Exemplos de propriedades: ActiveCel Representa uma clula ativa. Formula Retorna ou define a frmula de um objeto. Caption Representa o ttulo (rtulo) do formulrio ou outro controle. Voc pode digitar um ttulo com at 255 caracteres. Name Identifica um controle dentro do cdigo dos programas. No podem existir controles com o mesmo nome. Sintaxe: Para definir o valor de uma propriedade atravs do cdigo, digite o objeto na frente da propriedade, seguido de um ponto, o nome da propriedade, um sinal de igual e o novo valor da propriedade. Objeto.Propriedade = Valor Veja um exemplo abaixo: frmTela_Inicial.Caption = "Sistema de Controle de Estoque" Mtodos Mtodos so aes que podem ser realizadas pelo objeto. So rotinas prontas para cada controle. Exemplos de mtodos: Activate Ativa algum objeto. Select Seleciona uma rea ou um objeto. Offset Desloca o cursor entre as clulas. Setfocus Move o foco para outro objeto. Sintaxe: Para usar um mtodo, digite o objeto na frente do mtodo, seguido de um ponto e o nome do mtodo. Objeto.Mtodo Veja um exemplo abaixo: frmTela_Inicial.Show Ambiente de Desenvolvimento Toda programao realizada no Editor do Visual Basic (VBE). O Editor do Visual Basic possui um ambiente integrado de desenvolvimento, separado do MS-Excel. Os principais recursos para desenvolvimento de aplicativos no VBE so: - Quando voc digita o nome de um objeto, um menu pop-up aparece exibindo todas as propriedades e mtodos relacionados ao objeto. - Quando voc digita um comando, exibida uma janela de dica, com a sintaxe completa do comando. - Durante a depurao, quando voc passa o ponteiro do mouse em cima de uma varivel, exibida uma pequena janela pop-up com o seu valor. - O VBE possui o Microsoft Forms, que uma poderosa ferramenta para criao de formulrios.

  • 10 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Macros

    O que so Macros? As macros so uma tima maneira de automatizar as tarefas rotineiras que voc executa no Excel. Na verdade, as macros so pequenos programas criados em Visual Basic for Applications (VBA). Elas fornecem instrues necessrias para executar tarefas sem a nossa interveno. As macros so muito teis quando se executa determinadas tarefas de forma repetida. Elas gravam seqncias de comandos que so armazenados em uma rotina em VBA. Ficam armazenadas na pasta de trabalho ativa ou em todas as pastas de trabalho. Quando elas so gravadas, o Excel armazena informaes sobre cada passo realizado pelo usurio (at os erros). Depois de gravada, a macro pode ser executada, repetindo todos os passos, mas de forma extremamente rpida. Planejando as Macros Como as macros so gravaes daquilo que executado pelos usurios, necessrio que os passos a ser dados sejam previamente planejados. Caso contrrio, algumas aes podem no ser executadas de acordo com o esperado. As macros precisam ser planejadas e devidamente revistas para que no haja problemas futuros. Como as macros so rotinas de programao, necessrio que se tenha em mente exatamente o que voc deseja fazer, ou melhor, o que a macro faa. No preciso saber nada sobre lgica de programao, mas apenas observar com cuidado a meta a ser atingida e quais sero os passos a ser dados para que isso acontea. Feito isso, voc pode comear a gravar as macros. Esse o processo que exige mais ateno, pois se algum passo for executado de forma incorreta, tambm ser gravado. Existem duas formas de criar uma macro: usando o gravador de macros ou digitando os comandos no Editor do Visual Basic. Gravando uma Macro O modo mais fcil para gravar uma macro usar o gravador de macros. O Excel converte cada comando selecionado em cdigo do VBA medida que grava e, consequentemente, tambm grava os erros. Portanto selecione os menus e comandos com cuidado. Uma vez que voc completou todas as tarefas, clique no boto Parar gravao para interromper o processo de gravao. Quando voc for ligar o gravador de macros, ser solicitado uma tecla de atalho para a nova macro. E o Excel reserva algumas teclas de atalho para uso prprio, como por exemplo + . Portanto, no utilize essas combinaes como teclas de atalho para macros. possvel armazenar suas macros na pasta de trabalho atual, em uma nova pasta de trabalho ou na pasta de trabalho pessoal de macros. O armazenamento de suas macros na pasta de trabalho pessoal de macros disponibiliza as macros para todas as pastas de trabalho do Excel.

  • MS-Excel 2003 - VBA 11

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    A primeira macro que voc ir gravar ser para fazer formatao em qualquer clula. Primeiramente, insira uma nova planilha com o nome Macros. Para gravar essa macro siga o roteiro abaixo. Como Gravar uma Macro Usando o Gravador de Macros

    1. Selecione a clula A1 da planilha de Macros. 2. Clique no menu Ferramentas, aponte em Macros e clique na opo Gravar nova macro. 3. No campo Nome da macro, digite Formatacao. 4. No campo Tecla de atalho, digite a letra f em letra minscula. 5. No campo Armazenar macro em, selecione Esta pasta de trabalho. 6. No campo Descrio, digite o seu nome. 7. Clique no boto OK.

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

  • 12 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

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

    Nvel de Segurana Descrio

    Muito Alto Ativa somente as macros que estiverem instaladas em locais confiveis. Alto Ativa somente as macros que possuem assinatura de um certificado digital. Mdio Exibe uma caixa de dilogo para voc decidir se as macros sero ou no ativadas. a opo mais

    recomendada. Baixo No exibe nenhum alerta e ativa as macros. No aconselhvel escolher essa opo.

    Assinatura digital uma marca eletrnica segura, baseada em criptografia. Esta assinatura confirma que a macro no foi alterada. Criptografia a codificao e decodificao de mensagens de forma a garantir a segurana e o sigilo no envio de informaes. Para alterar o nvel de segurana, siga o roteiro abaixo: Como Alterar o Nvel de Segurana

    1. Clique no menu Ferramentas, aponte em Macro e clique em Segurana. 2. Clique na guia Nvel de segurana. 3. Marque a opo Mdio. 4. Clique no boto OK.

  • MS-Excel 2003 - VBA 13

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

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

    1. Clique no menu Ferramentas. 2. Aponte em Macro. 3. Clique na opo Macros.

  • 14 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    4. Na lista do campo Nome da macro, selecione uma macro. 5. Clique no boto Executar.

    Alterando uma Macro Usando o VBA A sigla VBA significa Visual Basic for Applications. O VBA uma linguagem de programao orientada a eventos. Eventos so aes dos usurios, como a criao de planilhas, seleo de clulas, clique em um boto, etc. Para alterar uma macro usando o VBA, preciso abrir a macro no Editor do Visual Basic, que est incorporado ao Excel, mas ser aberto em uma janela separada. Como Alterar uma Macro no Editor do Visual Basic

    1. Clique no menu Ferramentas, aponte em Macro e clique na opo Macros. 2. Na lista do campo Nome da macro, selecione uma macro. 3. Clique no boto Editar.

  • MS-Excel 2003 - VBA 15

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Elementos da Janela do Editor do Visual Basic Nmero Nome Descrio

    1 Janela Explorer do Projeto um navegador onde voc pode exibir e alternar entre os objetos existentes no projeto. Exibe uma lista hierrquica dos projetos e dos objetos que cada projeto contm (formulrios, cdigos, classes, etc.).

    2 Janela Propriedades Lista as propriedades dos objetos selecionados e suas configuraes atuais. Quando voc seleciona vrios controles, a janela Propriedades exibe as propriedades comuns a todos os controles selecionados.

    3 Janela Cdigo Use esta janela para digitar, exibir e alterar os comandos em VBA. Voc pode abrir vrias janelas de cdigo. Ao digitar um comando em VBA, preste ateno sintaxe e ortografia. Se voc digitar incorretamente um cdigo ou usar uma sintaxe incorreta, o Excel exibir uma mensagem de erro.

  • 16 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Modos de Visualizao Boto Nome Funo

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

    Exibir objeto Alterna entre a janela do Editor do Visual Basic e a janela original da aplicao, exibindo o objeto

    selecionado.

    Alternar pastas Altera a exibio da janela do Explorer do Projeto entre a hierarquia dos objetos e uma lista simples

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

  • MS-Excel 2003 - VBA 17

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

  • 18 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Criar um Boto de Macro O Excel permite que voc crie botes para macros. Quando voc vincula um boto a uma macro, qualquer usurio pode clicar no boto para executar a macro. Voc pode atribuir uma macro a um boto da barra de ferramentas, a um item da barra de menus ou a um boto criado na prpria planilha. Como Atribuir uma Macro a um Boto na Barra de Ferramentas

    1. Clique no menu Ferramentas e na opo Personalizar. 2. Clique na guia Comandos. 3. No campo Categorias, selecione Macros. 4. No campo Comandos, arraste o cone para a barra de ferramentas de Formatao.

    5. Clique com o boto direito do mouse no cone da barra de ferramentas. 6. Clique na opo Atribuir macro. 7. Selecione a macro Formatao 8. Clique no boto OK. 9. Clique no boto Fechar.

  • MS-Excel 2003 - VBA 19

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Como Criar uma Funo

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

  • 20 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Como Inserir a Funo na Planilha

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

  • MS-Excel 2003 - VBA 21

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    8. No campo Media, selecione a clula D4. 9. Clique no boto OK.

  • 22 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Variveis e Constantes

    No desenvolvimento de um sistema, em alguns procedimentos voc precisa usar um valor vrias vezes, ou at passar esse valor para outros procedimentos. Para conseguir realizar essa operao, voc precisa criar variveis. Varivel um local da memria utilizado para armazenar temporariamente um valor que pode ser alterado durante a execuo do procedimento. Toda varivel deve possuir um nico nome com at 255 caracteres e precisa iniciar por uma letra. Escolhendo Nomes de Variveis Existem algumas regras para nomear as variveis. Um nome de varivel: - Deve iniciar por uma letra. - No pode conter espao em branco, ponto (.), ponto de exclamao (!) ou os caracteres @, &., $ e #. - No pode conter operador matemtico ou de comparao. - Deve ter um nome nico dentro de seu escopo. - No deve exceder a 255 caracteres. - No pode ter o nome de um mtodo, propriedade, funo, argumento ou palavra-chave reservada. O VBA no diferencia letras maisculas de minsculas, mas preserva a digitao de letras maisculas na instruo aonde o nome foi declarado.

  • MS-Excel 2003 - VBA 23

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Tipo Tamanho Intervalo

    Byte 1 byte 0 a 255 Boolean 2 bytes True ou False Integer 2 bytes Nmero inteiro entre -32.768 e 32.767 Long 4 bytes Nmero inteiro entre -2.147.483.648 e 2.147.483.647 Single 4 bytes De -3,40E38 a -1,40E-45 para nmeros negativos e de 1,40E-45 a 3,40E38 para

    nmeros positivos Double 8 bytes De -1,79E308 a 4,94E-324 para negativos e de 4,94E-324 a 1,79E308 para

    positivos Currency 8 bytes De -922.337.203.685.477,5808 a 922.337.203.685.477,5807 Decimal 14 bytes +/-

    79.228.162.514.264.337.593.543.950.335 sem vrgula decimal +/- 7,922816251426337593543950335 com 28 casas decimais direita

    Date 8 bytes De 01/01/100 a 31/12/9999 String (comprimento varivel)

    10 bytes + comprimento do texto

    De 0 a aproximadamente 2 bilhes de caracteres

    String (comprimento fixo) Comprimento do texto

    De 1 a aproximadamente 2 bilhes de caracteres

    Variant numrica 16 bytes Qualquer nmero at o intervalo de 1 double Variante texto 22 bytes +

    comprimento do texto A mesma faixa de string de comprimento varivel

    Object 4 bytes Uma referncia a um objeto Definido pelo usurio Depende da

    definio Depende do seu tipo de dados

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

  • 24 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Abrangncia Declarao Procedimento Dim dentro do mdulo Privativa Dim ou Private no topo do mdulo Pblica Public no topo do mdulo

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

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

  • MS-Excel 2003 - VBA 25

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

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

    1. No Editor do Visual Basic, clique no menu Ferramentas. 2. Clique em Opes.

  • 26 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

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

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

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

  • MS-Excel 2003 - VBA 27

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Operadores

    No VBA existem trs categorias de operadores, que so: Operadores de Comparao Os operadores de comparao so usados para comparar valores de duas expresses.

    Operador

    Descrio

    < Menor que Maior que >= Maior ou igual a = Igual a Diferente de Is . Usado para comparar duas variveis de

    referncia a objetos. Like Como. Usado para comparar duas

    seqncias de caracteres. Operadores Lgicos Os operadores lgicos so usados em operaes lgicas.

    Operador

    Descrio

    And usado para acrescentar condies a um teste lgico. Ser True se todas as condies forem verdadeiras, caso contrrio, ser False. Se uma das expresses for nula, o resultado ser Null.

    Or usado para inserir mais de uma condio em uma expresso lgica. Se uma das condies for verdadeira o resultado ser True, caso todas as condies forem falsas, o resultado ser False. Se uma das expresses for nula, ser Null.

    Not usado para gerar uma negao lgica. Esse operador inverte a lgica de uma condio.

    Eqv Executa uma equivalncia lgica. Se as duas expresses forem verdadeiras ou falsas, o resultado ser True, caso contrrio, ser False ou Null.

    Imp Efetua uma implicao lgica. Xor Executa uma excluso lgica. Retorna True se apenas uma das expresses for

    verdadeira, caso contrrio, ser False. Se uma delas for nula, ser Null. Operadores de Concatenao So usados para juntar textos.

    Operador

    Descrio

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

  • 28 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Estruturas de Controle

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

    Use

    Para testar

    If...Then Uma nica condio e executar uma instruo ou um bloco de instrues. If..Then...Else Uma nica condio e escolher entre dois blocos de instrues. If...Then...ElseIf Mais de uma condio e executar um dos vrios blocos de instrues. Select Case Uma nica condio e executar um dos vrios blocos de instrues.

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

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

  • MS-Excel 2003 - VBA 29

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Como Acessar o Editor do Visual Basic

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

    4. No Editor do Visual Basic, clique no menu Inserir. 5. Clique na opo Mdulo.

  • 30 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    6. Na folha de mdulo, digite a funo mostrada na figura ao lado.

    Como Inserir a Funo na Planilha

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

  • MS-Excel 2003 - VBA 31

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    5. Na caixa de dilogo Inserir funo, no campo Ou selecione uma categoria, selecione Definida pelo usurio. 6. No campo Selecione uma funo:, escolha Testa_Valor. 7. Clique no boto OK.

    8. Selecione na planilha a clula A2. 9. Clique no boto OK.

  • 32 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Estruturas de Repetio (Loops)

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

    Para

    Do While...Loop Testar uma condio no incio do loop, executar o loop apenas quando a condio for True, e continuar at a condio se tornar False.

    Do Until...Loop Testar uma condio no incio do loop, executar o loop apenas quando a condio for False, e continuar at a condio se tornar True.

    Do...Loop While Executar sempre o loop uma vez, testar a condio no final do loop, continuar enquanto a condio for True, e parar quando a condio se tornar False.

    Do...Loop Until Executar sempre o loop uma vez, testar a condio no final do loop, continuar enquanto a condio for False, e parar quando a condio se tornar True.

    For...Next Executar um loop um certo nmero de vezes, usando o contador de loops que comea e termina com valores previamente definidos.

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

  • MS-Excel 2003 - VBA 33

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Exerccio

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

    Como Acessar o Editor do Visual Basic

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

  • 34 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Mtodo Cells O mtodo Cells proporciona um deslocamento relativo entre clulas, ou seja, em relao clula ativa no momento da execuo do procedimento. Ele pode retornar somente uma clula ou uma faixa de clulas. Sintaxe: Cells(linha, coluna) Propriedade Value Especifica o estado ou o contedo de um controle. Instruo With...End With Por ser um programa orientado a objetos, o VBA permite que cada objeto tenha diversas propriedades que podem modificadas individualmente. Escrever o cdigo para modificar cada propriedade separadamente muito trabalhoso. A estrutura da instruo With...End With ajuda voc a fazer referncia a vrias propriedades de maneira mais eficiente e a eliminar redundncias. As instrues With...End With so um mtodo simplificado de fazer referncias que pode ser processado com maior eficincia pelo VBA. Requer menos cdigo e permite identificar as propriedades associadas a um determinado objeto rapidamente.

  • MS-Excel 2003 - VBA 35

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Exerccio

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

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

  • 36 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Caixas de Entrada e de Sada

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

    1. Na folha de mdulo, digite o procedimento ao lado. 2. Na barra de ferramentas, clique

    no boto Executar macro , para testar a sua macro.

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

  • MS-Excel 2003 - VBA 37

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

  • 38 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    A tabela abaixo mostra os valores para o argumento Buttons: Constante Valor Descrio do Boto

    vbOKOnly 0 Exibe somente o boto OK vbOKCancel 1 Exibe os botes OK e Cancelar vbAbortRetryIgnore 2 Exibe os botes Abortar, Repetir e Ignorar vbYesNoCancel 3 Exibe os botes Sim, No e Cancelar vbYesNo 4 Exibe os botes Sim e No vbRetryCancel 5 Exibe os botes Repetir e Cancelar vbCritical 16

    Exibe o cone Mensagem crtica vbQuestion 32

    Exibe o cone Consulta de aviso vbExclamation 48

    Exibe o cone Mensagem de aviso vbInformation 64

    Exibe o cone Mensagem de informao vbDefaultButton1 0 O primeiro boto o padro vbDefaultButton2 256 O segundo boto o padro vbDefaultButton3 512 O terceiro boto o padro vbDefaultButton4 768 O quarto boto o padro vbApplicationModal 0 Janela restrita do aplicativo. O usurio deve responder caixa de mensagem

    antes de continuar o trabalho. vbSystemModal 4096 Janela restrita do sistema. Todos os aplicativos so suspensos at que o

    usurio responda caixa de mensagem. vbMsgBoxHelpButton 16384 Adiciona o boto Ajuda vbMsgBoxSetForeground 65536 A janela da caixa de mensagem ser a de primeiro plano vbMsgBoxRight 524288 Alinha o texto direita vbMsgBoxRtlReading 1048546 Especifica que o texto deve aparecer como leitura da direita para a esquerda

    em sistemas hebraico e rabe A tabela abaixo mostra os valores de retorno de cada boto pressionado:

    Constante Valor

    Boto

    vbOK 1 OK vbCancel 2 Cancelar vbAbort 3 Abortar vbRetry 4 Repetir vbIgnore 5 Ignorar vbYes 6 Sim vbNo 7 No

  • MS-Excel 2003 - VBA 39

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Voc ir criar uma macro de confirmao de impresso. Exerccio

    1. Na folha de mdulo, digite o procedimento ao lado. 2. Na barra de ferramentas, clique

    no boto Executar macro , para testar a sua macro.

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

  • 40 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Procedimentos de Evento

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

    Eventos de Pasta de Trabalho

    Evento Descrio Activate Ocorre quando a pasta de trabalho se torna ativa. BeforeClose Ocorre antes da pasta de trabalho ser fechada. Se a pasta de trabalho tiver sido alterada, esse evento

    ocorrer antes do usurio ser solicitado a salvar as alteraes. BeforePrint Ocorre antes de uma planilha ou faixa ser impressa. NewSheet Ocorre quando uma planilha criada na pasta de trabalho. Open Ocorre quando a pasta de trabalho aberta. SheetActivate Ocorre quando alguma planilha na pasta de trabalho ativada. SheetBeforeRightClick Ocorre quando alguma planilha clicada com o boto direito do mouse, antes da ao padro de clique

    com o boto direito. SheetChange Ocorre quando as clulas de qualquer planilha so alteradas pelo usurio ou por um vnculo externo. SheetSelectionChange Ocorre quando a seleo alterada em qualquer planilha. No ocorre quando a seleo est em uma folha

    de grfico.

    Eventos de Planilha

    Evento Descrio Activate Ocorre quando uma planilha, folha de grfico ou grfico incorporado ativado. BeforeRightClick Ocorre quando uma planilha clicada com o boto direito do mouse, antes da ao padro de clicar com o

    boto direito. Calculate Ocorre toda vez que um clculo executado em uma planilha, alterando seus valores. Change Ocorre quando as clulas da planilha so alteradas pelo usurio ou por um vnculo externo. Deactivate Ocorre quando a planilha ou o grfico desativado. SelectionChange Ocorre quando a seleo na planilha alterada.

  • MS-Excel 2003 - VBA 41

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Exerccio

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

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

  • 42 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Caixas de Dilogo Predefinidas

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

    Caixa de Dilogo Constante

    Assistente de funo xlDialogFunctionWizard Assistente de grfico xlDialogChartWizard Bordas xlDialogBorder Classificar XlDialogSort Configurar pgina xlDialogPageSetup Formatao condicional xlDialogConditionalFormatting Imprimir xlDialogPrint Inserir Planilha xlDialogWorkbookInsert Salvar como xlDialogSaveAs Subtotais xlDialogSubtotalCreate Validao de dados xlDialogDataValidation Zoom xlDialogZoom

    Exemplo

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

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

  • MS-Excel 2003 - VBA 43

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Controles de Formulrios

    Um formulrio um modelo do Excel que utiliza controles, tais como: botes de opo, caixas de combinao, caixas de seleo, etc. Esses controles podem exibir dados, inserir dados ou realizar uma ao. Os controles de formulrios so formulrios de planilhas que podem ser facilmente adicionados a partir da barra de ferramentas Formulrios. Os controles de formulrios podem executar um procedimento quando forem selecionados ou clicados. Exerccio

    Voc ir criar uma caixa de combinao em uma planilha com trs opes: Abrir, Salvar como e Imprimir. Quando o usurio clicar na opo Abrir, ser exibida a caixa de dilogo Abrir. E assim sucessivamente para as outras opes. Veja a figura ao lado.

    Como Exibir a Barra de Ferramentas Formulrios

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

  • 44 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    7. Clique com o boto direito do mouse em cima da caixa de combinao. 8. Clique na opo Formatar controle.

  • MS-Excel 2003 - VBA 45

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

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

    A constante xlDialogPrintPreview especifica a janela do Visualizar Impresso.

  • 46 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    14. Na mesma folha de mdulo, digite a macro ao lado. Essa macro ser atribuda a caixa de combinao que foi criada na planilha.

    Explicaes: A propriedade Application retorna um objeto Application que representa o Microsoft Excel. O mtodo Run executa uma macro ou chama uma funo. Como Atribuir a macro ComboBox Caixa de Combinao

    1. Pressione as teclas + , para retornar planilha. 2. Clique o boto direito do mouse em cima da caixa de combinao. 3. Clique na opo Atribuir macro.

  • MS-Excel 2003 - VBA 47

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    4. Na lista, selecione a macro ComboBox. 5. Clique no boto OK. Agora escolha uma opo na caixa de combinao e teste as suas macros.

  • 48 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Formulrios

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

  • MS-Excel 2003 - VBA 49

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Como Criar um Formulrio

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

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

  • 50 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Convenes para Nomes de Controles importante adotar um padro para os nomes dos controles, facilitando assim a criao e a manuteno do cdigo. Voc deve aplicar na designao de nomes para controles, uma conveno que lhe permita especificar tanto o contexto quanto a descrio. Os nomes cmdIniciar e cmdFinal, por exemplo, tm um prefixo de trs letras que identifica o tipo de controle no programa. Assim muito til abreviar o contexto (cmd) e o nome (Iniciar) em um identificador simples - cmdIniciar. Veja na tabela abaixo, sugestes para abreviaes dos controles:

    Controle

    Descrio Prefixo

    CheckBox Caixa de seleo chk ComboBox Caixa de combinao cmb CommandButton Boto de comando cmd Form Formulrio frm Frame Moldura fra Image Imagem img Label Rtulo lbl ListBox Caixa de listagem lst OptionButton Boto de opo opt Page Multipgina pge ScrollBarr Barra de rolagem scr SpinButton Boto de rotao spi TabStrip Faixa de tabulao tst TextBox Caixa de texto txt ToggleButton Boto de ativao tgb

  • MS-Excel 2003 - VBA 51

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Explicaes dos Botes da Caixa de Ferramentas

    Boto

    Nome Descrio

    Selecionar objetos Permite selecionar os objetos. Quando um objeto est selecionado, voc somente poder

    redimensionar ou mover o controle.

    Rtulo Permite a insero de textos (rtulos) no formulrio. Esse texto no pode ser alterado pelo usurio.

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

    Caixa de combinao Permite que se desenhe uma combinao de caixa de listagem e caixa de texto. Voc pode

    escolher um item da lista ou digitar na caixa de texto.

    Caixa de listagem Permite a criao de uma caixa de listagem, onde o usurio pode selecionar uma opo.

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

    Boto de opo O boto de opo marcado por um crculo preto.

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

    Quadro Permite a criao de uma moldura para agrupamento.

    Boto de comando Cria um boto que permite ao usurio executar um comando.

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

    Multi-pgina Apresenta vrias telas de informaes como um nico conjunto.

    Barra de rolagem Permite criar uma barra de rolagem.

    Boto de rotao Esse boto permite definir um controle giratrio para selecionar opes

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

    RefEdit Em um formulrio, este controle exibe o endereo de um intervalo de clulas que voc inseriu ou

    selecionou em uma ou mais planilhas. Se o controle RefEdit estiver incorporado em uma planilha, voc pode vincular o contedo do controle a uma clula em qualquer planilha na pasta de trabalho.

  • 52 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Sistema de Controle de Estoque

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

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

    Nome do Controle (Name) Propriedade Valor

    Picture Brasil.gif Width 42 Height 30 Top 0

    ImgBandeira

    Left 0 Caption Controle de Estoque ForeColor &H00FF0000& (azul) LblTitulo Font Tahoma, negrito, 14

    cmdExibir Caption Exibir Planilha cmdClassificar Caption Classificar Produtos cmdConsultar Caption Consultar Produtos cmdAtualizar Caption Atualizar Estoque cmdMenores_Estoques Caption Menores Estoques cmdSair Caption Sair

  • MS-Excel 2003 - VBA 53

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

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

  • 54 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

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

    No Mdulo1, digite o cdigo relacionado abaixo:

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

  • MS-Excel 2003 - VBA 55

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Formulrio frmConsulta_Codigo

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

    Nome do Controle (Name) Propriedade Valor

    frmConsultar_Produtos Caption Consultar Produtos lblCodigo_Produto Caption Digite o Cdigo do Produto txtCodigo_Produto ForeColor &H00FF0000& (azul) cmdConsultar_OK Caption OK cmdConsultar_Cancelar Caption Cancelar

    Formulrio frmExibe_Dados

  • 56 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Nome do Controle (Name) Propriedade Valor

    frmExibir_Produtos Caption Consultar Produtos lblCodigo Caption Cdigo........: lblDescricao Caption Descrio:..: lblQuantidade Caption Quantidade: lblPreco Caption Preo.........:

    BackStyle 0 fmBackStyleTransparent BorderColor &H80000000& (cinza) BorderStyle 1 - fmBorderStyleSingle Font Negrito Forecolor &H00FF0000& (azul)

    txtCodigo

    Locked True BackStyle 0 fmBackStyleTransparent BorderColor &H80000000& (cinza) BorderStyle 1 - fmBorderStyleSingle Font Negrito Forecolor &H00FF0000& (azul)

    txtDescricao

    Locked True BackStyle 0 fmBackStyleTransparent BorderColor &H80000000& (cinza) BorderStyle 1 - fmBorderStyleSingle Font Negrito Forecolor &H00FF0000& (azul)

    txtQuantidade

    Locked True BackStyle 0 fmBackStyleTransparent BorderColor &H80000000& (cinza) BorderStyle 1 - fmBorderStyleSingle Font Negrito Forecolor &H00FF0000& (azul)

    txtPreco

    Locked True cmdContinua Caption Continua

  • MS-Excel 2003 - VBA 57

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Explicaes: O mtodo Hide oculta um objeto, mas no o descarrega da memria. Quando um formulrio est oculto, o usurio no pode interagir com o aplicativo at que todo o cdigo no procedimento do evento tenha terminado sua execuo. O mtodo SetFocus move o foco para um objeto especificado. Procedimento do Boto OK do Formulrio frmConsulta_Codigo No modo Design, d um duplo-clique no boto de comando OK e digite o cdigo relacionado abaixo:

    Private Sub cmdConsultar_Ok_Click() Dim strCodigo As String Dim intAlerta As Integer Dim strDescricao As String Dim intQuantidade As Integer Dim sinPreco As Single Sheets("Produtos").Activate Range("A4").Select strCodigo = UCase(frmConsulta_Codigo.txtCodigo) intAlerta = 0 Do While intAlerta = 0 If ActiveCell.Text = strCodigo Then ActiveCell.Offset(0, 1).Activate strDescricao = ActiveCell.Text ActiveCell.Offset(0, 1).Activate intQuantidade = ActiveCell.Value ActiveCell.Offset(0, 1).Activate sinPreco = ActiveCell.Value intAlerta = 1 Else ActiveCell.Offset(1, 0).Activate End If If ActiveCell = "" Then

  • 58 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    MsgBox "O cdigo " & strCodigo & " nao existe. Digite outro cdigo." frmConsulta_Codigo.txtCodigo = "" frmConsulta_Codigo.txtCodigo.SetFocus Exit Sub End If Loop frmExibe_Dados.txtCodigo = strCodigo frmExibe_Dados.txtDescricao = strDescricao frmExibe_Dados.txtQuantidade = intQuantidade frmExibe_Dados.txtPreco = Format(sinPreco, "R$ #,##0.00") frmConsulta_Codigo.Hide frmExibe_Dados.Show End Sub

    Explicaes: A funo Ucase retorna uma string que contm os caracteres especificados, convertidos em letras maisculas. O mtodo Offset executa um deslocamento relativo clula selecionada antes que o deslocamento seja executado. Se voc quiser fazer o deslocamento para linhas acima e colunas esquerda, atribua valores negativos. Sintaxe: Objeto.Offset(linha acima ou abaixo da clula selecionada, coluna esquerda ou direita da clula selecionada) A funo Format retorna uma string que contm uma expresso formatada segundo instrues contidas em um formato. Procedimento do Boto Cancelar do Formulrio frmConsulta_Codigo No modo Design, d um duplo-clique no boto de comando Cancelar e digite o cdigo relacionado abaixo:

  • MS-Excel 2003 - VBA 59

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Formulrio frmAtualiza_Cdigo

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

    Nome do Controle (Name) Propriedade Valor

    frmAtualizar_Codigo Caption Atualizar Estoque lblCodigo_Produto Caption Digite o Cdigo do Produto cmbCodigo ForeColor &H00FF0000& (azul) cmdAtualizar_Cancelar Caption Cancelar

    Formulrio frmAtualiza_Estoque

  • 60 MS-Excel 2003 - VBA

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

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

    Nome do Controle (Name) Propriedade Valor

    frmAtualiza_Estoque Caption Atualizar Estoque lblDescricao Caption Descrio: lblEstoque_Atual Caption Estoque atual: lblQuantidade Caption Quantidade:

    AutoSize True Font Negrito Forecolor &H00FF0000& (azul) txtDescricao

    Locked True Font Negrito Forecolor &H00FF0000& (azul) txtEstoque_Atual Locked True Font Negrito Forecolor &H00FF0000& (azul) txtQuantidade Locked True

    fraOpcoes Caption Opes optOpcao_Saida Caption Sada optOpcao_Entrada Caption Entrada cmdOKAtualizaEstoque Caption OK cmdCancelarEstoque Caption Cancelar

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

  • MS-Excel 2003 - VBA 61

    Ka Solution Tecnologia em Software Ltda Todos os direitos reservados

    Procedimento da Caixa de Combinao do Formulrio frmAtualiza_Codigo No modo Design, d um duplo-clique na caixa de combinao cmbCodigo e digite o cdigo relacionado abaixo:

    Private Sub cmbCodigo_Click() Dim strCodigo As String Dim intAlerta As Integer Dim strDescricao As String Dim intQuantidade As Integer Sheets("Produtos").Activate Range("A4").Select strCodigo = UCase(frmAtualiza_Codigo.cmbCodigo) intAlerta = 0 Do While intAlerta = 0 If ActiveCell.Text = strCodigo Then ActiveCell.Offset(0, 1).Activate strDescricao = ActiveCell.Text ActiveC