




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Macro Excel
Tipologia: Notas de estudo
Oferta por tempo limitado
Compartilhado em 19/06/2010
4.7
(10)8 documentos
1 / 398
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Em oferta
Bertolo Lições de VBA do Excel 1
Bertolo As Fases do Curso 2
O Excel é um programa que tem um grande potencial, mas a maioria do pessoal o maneja de forma simples, utilizando somente as suas opções básicas. Porém há algo muito importante que tenho a lhes dizer. O Excel conta com uma linguagem
muito poderosa chamada Visual Basic , ou melhor, somente com uma parte da linguagem, mas que permite resolver os problemas mais facilmente. Porém, devemos aprender a programá-lo e para isso é que existe este curso. As pessoas poderiam dizer que este curso é de um nível muito alto, e talvez o seja, mas é fácil de aprender, já que se manipularão as coisas termos simples, e eu gosto de falar com palavras que todo mundo entenda, por isso o torna mais fácil. A programação empregada neste este curso ou as estruturas que aparecerão são criadas pelo próprio aplicativo, já que para manejar a programação de Visual Basic do Excel é necessário ter muita criatividade, cada pessoa pode criar estruturas diferentes, mas que trabalhem de forma igual. Assim mãos àobra e divirtam-se!
Bertolo As Fases do Curso 4
Entre no maravilhoso mundo do VBA (macros) com estas 29 lições. Não somente a linguagem de programação para desenvolver macros ( Visual Basic for Application ou VBA ) é fácil para aprender, mas o seu ambiente de desenvolvimento é extremamente amigável para o usuário. Desde 1997, você pode desenvolver muito mais que comandos de macro (macros) com VBA. O VBA é para todo mundo. Ele é uma linguagem muito simples e projetada para os USUÁRIOS. Com o VBA você pode desenvolver pequenos procedimentos (10 linhas ou menos) que lhe pouparão um monte de tempo, eliminando tarefas repetitivas. Você também pode desenvolver programas complexos e poderosos por uma fração do preço que ele poderia lhe custar para conseguí-los desenvolvidos por especialistas em computação. A experiência tem me mostrado em incontáveis vezes que certas análises e relatórios sofisticados SOMENTE podem ser desenvolvidos com o Excel e o VBA. Isto é porque o Excel é o programa de análise e relatório mais usado no mundo.
Divirta-se
Bertolo Fase #1: Desenvolvendo Procedimentos VBA em Excel 5
Lição 1: Introdução ao VBA do Excel - Lição 2: Vocabulário das Macros VBA do Excel - Lição 3: O Gravador de Macros Excel - Lição 4: O Visual Basic Editor - Lição 5: Modificando Macros no Visual Basic Editor - Lição 6: Escrevendo Macros no VBEditor - Lição 7: Testando Macros no Visual Basic Editor - Lição 8: Eventos VBA do Excel - Lição 9: Segurança e Proteção no VBA do Excel
Lição 1: Introdução ao VBA do Excel
O VBA é " Visual Basic for Application ". Ele é uma linguagem de programação que permite usuários a programarem macros para executar tarefas repetitivas ou complexas automaticamente dentro do Excel. Com o VBA do Excel você pode desenvolver pequenos procedimentos (macros) que tornarão a sua vida profissional mais fácil e lhe permitir fazer mais em menos tempo. Mas o VBA também é uma linguagem de programação muito poderosa com a qual você pode desenvolver dentro do Excel programas reais que executem em poucos minutos tarefas muito complexas. Com o VBA do Excel você pode desenvolver um programa que faça EXATAMENTE o que você precisa.
Lição 2: Vocabulário das Macros VBA do Excel
Se como eu você for um contador você tem dispensar anos numa faculdade para aprender lançamentos de débitos e créditos. Quando você falar com outros contadores eles entenderão a respeito do que você está falando, mas se você falar com advogados ou engenheiros eles não têm uma pista. Em programação existem certos termos que você precisa aprender sobre eles para descobrir o básico e o mais complexo. Estes termos são "objetos", "propriedades", "métodos" e outros. Aqui está o que eles são e o que eles significam.
Lição 3: O Gravador de Macros do Excel
Quando você iniciar o gravador de macro você pode escolher para anexar a macro a uma tecla do teclado. Quando ela foi gravada você apenas clicou na tecla que você escolheu e a macro por outro lado fez isto novamente. Desenvolva a sua primeira macro Excel com esta lição passo a passo sobre como usar o Gravador de Macros do Excel. Após 12 anos de programação eu ainda uso o Gravador de Macros do Excel diariamente. Ele é o melhor professor e o maior dos assistentes.
Lição 4: O Visual Basic Editor
O Visual Basic Editor - VBE é o subprograma em Excel com o qual você desenvolve, testa e modifica as suas macros, em Excel. Ele é um ambiente muito amigável para o usuário. Você não precisa instalá-lo, ele já está lá toda vez que você abrir o Excel. Aqui está como configurá-lo para tornar a sua experiência tanto quanto possível, fácil, agradável e útil. Desenvolver macros, criar useforms com controles (botões de comando, caixa de listagens, caixas de texto, caixas de combinação (listas drop-down ), etc..). Configure e mude todas as propriedades dos componentes.
Bertolo Lições de VBA do Excel 7
você uma ferramenta que vai além daquele feijão com arroz geralmente praticado por muitos todo o dia. Você pode esperar em desenvolver aplicações muito brilhantes se você:
O que são estas 9 lições?
Por favor, não pule o primeiro capítulo sobre o vocabulário. Algumas das coisas que eu preciso falar para você sobre elas mais tarde soarão como Marcianas. Se você falar Marciano, então, siga em frente.... Daí então eu lhe apresentarei ao gravador de macro, uma característica única que permite a você criar macros enquanto você está fazendo manualmente o que você gostaria que a macro fizesse. Daí então nas próximas 4 lições, eu darei uma olhada no Visual Basic Editor (VBE), o ambiente de programação mais amigável do usuário no mercado. Você então aprenderá sobre os EVENTOS que disparam as macros (lição 8), controles (botões de comando) e os userforms. Finalmente há a lição 9 sobre segurança e proteção.
Bertolo Fase #1: Desenvolvendo Procedimentos VBA em Excel 8
Lição #01: Introdução ao VBA do Excel
VBA é " Visual Basic for Application ". É uma linguagem de programação que permite os usuários a programarem macros para efetuar tarefas complexas dentro de uma aplicação. Com o VBA do Excel você pode desenvolver pequenos procedimentos (macros e/ou funções) que tornarão sua vida profissional mais fácil e lhe permitir fazer mais em menos tempo. Mas o VBA também é uma linguagem de programação muito poderosa com a qual você pode desenvolver dentro do Excel programas reais que efetuarão em uns poucos minutos tarefas muito complexas. Com o VBA para o Excel você pode desenvolver um programa que faça EXATAMENTE o que você precisa.
O
O que é VBA?
Existe um VBA para cada Aplicativo
Existe o VBA para o Excel, o VBA para o Word, o VBA para o Project, o VBA para o Access. Você pode usar o VBA em Autocad, Oracle e mesmo com o EssBase. Todos os VBA's são semelhantes, mas variam nos objetos com os quais eles trabalham. Todos eles têm a mesma fonte Visual Basic (VB).
De onde veio o VBA?
Nos anos “70” uma nova linguagem de computador apareceu chamada Basic. Eu a usei em calculadoras avançadas (TI 59). Naquele tempo, a RAM (memória) e a CPU's (o cérebro do computador) eram muito, muito pequenos e você estava limitado no que você poderia fazer com a linguagem. Lembro-me ainda que no final daquela década eu era Estagiário numa Empresa de Construção Civil, no Rio de Janeiro, e tinha programado uma folha de pagamento completa (salários, impostos, benefícios) para 500 empregados na calculadora Texas Instrument 59. Com os computadores de hoje em dia veio o Visual Basic (VB). Ela é ainda o Basic, mas, um monte de elementos está pré-programado, tornando a tarefa do usuário muito mais simples. A Microsoft adotou a linguagem e introduziu-a como um componente de todas as suas aplicações.
Deveria eu aprender VBA ou VB?
Digamos que VB é para programadores e VBA é para usuários (ou desenvolvedores). Pessoalmente, eu tive várias horas de treinamento em VB, mas eu faço todo o meu trabalho no VBA para Excel. Você não precisa aprender VB para ser bom em VBA. Eu tenho adotado o VBA para o Excel porque a maioria das funções que eu preciso para organizar e analisar os dados de negócios está pre-programada no Excel. Custa muito menos para desenvolver aplicações financeiras e administrativas no Excel do que re-inventar a roda e fazer tudo em VB.
Qual é a diferença entre VB, VBA para Excel, para Access, para Word, para Project, etc.?
Para responder esta questão eu lhe pediria para imaginar um encontro de cinco pessoas falando Português, um advogado, um contador, um médico, um químico e um psicólogo. Todos eles falam Português, mas quando for à vez de falar a respeito do seu trabalho diário nenhum deles entende totalmente o outro. É o mesmo com o VB e
Bertolo Lição #01 – Introdução ao VBA do Excel 10
Prática #01: Introdução ao VBA do Excel
Bertolo Fase #1: Desenvolvendo Procedimentos VBA em Excel 11
Lição 2: Vocabulário das Macros VBA do Excel^1
o universo do VBA do Excel (Macros) existe algum vocabulário (terminologia) que você poderá querer adotar de modo que outros possam lhe entender e de modo que você possa entender os outros. Isto ocorre em qualquer linguagem de programação. Alguns dos termos são bem conhecidos, e requerem pouca explicação. Outros são termos que você não deve ter encontrado antes. O que segue é uma lista dos termos chaves do Visual Basic que são cobertos nesta lição:
Objeto Propriedade Método Argumento Coleções Procedimento Subrotina Função Macro Declaração Expressão
Esta lição dará uma explicação destes termos junto com ilustrações de modo que quando você encontrar estes termos nas outras lições você não ficará confuso. Também, você encontrará que outras lições dão uma cobertura em profundidade destes termos.
O que é uma MACRO?
Macros do Excel: É uma série de passos que se armazenam e que podem ser ativados com alguma tecla de controle (Ctrl) mais uma letra. Por exemplo, todos os dias emprego freqüentemente em minhas células os mesmos passos: Tamanho de Fonte (Tamanho da letra), Negrito, Fonte (Tipo de letra) e Cor de Fonte (Cor de Letra). Para não estar repetindo estes passos, posso armazená-los numa macro e, quando executar esta macro, os passos antes mencionados se executarão quantas vezes eu desejar. Enfim, uma macro é uma série de instruções realizadas pelo Excel, ao invés de você. As macros ou sub-rotinas começam com a palavra Sub, seguida pelo nome da macro. Elas terminam com as palavras End Sub. O que segue é um exemplo de uma subrotina ou macro:
Sub AlôMundo() MsgBox "Alô Mundo" End Sub
(^1) NOTA: Esta lição é sobre o vocabulário de programação. Se você estiver procurando
códigos (as palavras usadas para falar ao Excel em VBA) vá para a seção de código VBA ( páginas deles)..
Bertolo Lições de VBA do Excel 13
Você deve ter notado que grandes objetos, freqüentemente, incluem objetos menores. Por exemplo, um objeto pasta contém objetos folhas de planilhas. Um objeto planilha contém objetos células. Se você olhar ao seu redor, o mesmo se aplica. Um objeto casa contém objetos salas. E objeto sala contém objetos móveis e utensílios.
SOBRE COLEÇÕES...
Uma coleção é um grupo de objetos que são todos do mesmo tipo. As coleções estão quase sempre no plural. Exemplos de coleções são pastas, folhas de planilhas, e diagramas. Os membros individuais de uma coleção podem ser referenciados especificando a coleção e, daí então, ou o nome do membro, ou um número que indique a posição do membro na coleção. Por exemplo, se a primeira folha de planilha na coleção Sheets é chamada Sheet1, uma das duas declarações seguintes selecionará esta folha e a tornará a folha ativa:
Sheets("Plan1").Select
ou Sheets(1).Select
Coleção
Membro
Um dos modos principais que o Visual Basic funciona é especificando um objeto e daí então uma ação a ser imposta ao objeto. É por isso que o Visual Basic é chamado de linguagem orientada ao objeto.
SOBRE AS PROPRIEDADES...
Se você observar os objetos ao seu redor, você verá que eles têm propriedades. Por exemplo, uma casa tem uma propriedade endereço , uma pessoa tem uma propriedade nome , uma sala tem uma propriedade cor , e uma televisão tem uma propriedade ativa (ou está ligada ou desligada). Os objetos no Microsoft Excel também têm propriedades. Por exemplo, uma célula tem uma propriedade endereço , uma folha de planilha tem uma propriedade nome , e uma fonte tem uma propriedade cor.
Como os exemplos acima ilustram, as propriedades são características de um objeto. Alguns objetos no Microsoft Excel têm muitas propriedades, outros têm muito poucas. A maioria das propriedades dos objetos é expressa como números (tais como o tamanho da margem), strings de textos (tal como um nome de uma folha), ou valores Booleanos (True ou False).
Se você observar os objetos ao seu redor, você pode mudar algumas propriedades de um objeto, mas nem sempre todas as propriedades. Por exemplo, você pode ligar e desligar sua televisão. E você pode pintar uma sala para mudar sua cor. Mas você não pode mudar onde a sua casa está localizada. O mesmo se aplica ao Microsoft Excel. Você pode mudar quase todas as propriedades que você encontrar, mas existem umas poucas que você não pode mudar. Por exemplo, você pode mudar o valor de uma célula (a propriedade Valor), mas você não pode mudar o número de células de uma folha.
O Visual Basic funciona muito do jeito que você faz no Microsoft Excel. Se você quiser entrar com um valor numa célula, você primeiro seleciona a célula daí então
Bertolo Lição #02 – O Vocabulário das Macros VBA do Excel 14
você digita nela o valor. No Visual Basic, você especificará a célula, digita um ponto , especifica uma propriedade Valor, digita um sinal de igual e digita o valor para a célula. Por exemplo: Como entrar comum valor numa
célula
Outra maneira
Exemplos de Propriedade
ActiveCell.Value = 5
Neste caso ActiveCell é uma palavra-chave que se refere à célula ativa , que é a célula destacada pelo cursor. Value é uma palavra-chave que representa o valor da propriedade de uma célula. Por favor, note que são muitas as maneiras de se referir às células além de ActiveCell. Estas maneiras serão cobertas, em detalhes, nas lições posteriores.
Exatamente como você especifica sua cidade, rua, e número da casa num endereço, você pode fazer o mesmo no Visual Basic para melhor identificar uma célula particular:
Workbooks("Custo.Xls").Sheets("Folha1"). _
Range("A1").Value = 5 Neste caso, vários objetos (uma pasta, uma folha de planilha e uma célula) são juntados com pontos para identificar uma célula particular. Dai então a propriedade (Value novamente neste caso) é ligada com um ponto. Finalmente um sinal de igual é entrado seguido por um número. A string acima diz ao Visual Basic que ajuste o valor da célula A1 da folha de planilha Folha1 na pasta Custo.Xls para 5. Por favor, note que célula A1 não tem que ser a célula ativa.
Se você quiser encontrar o valor de uma propriedade em vez de mudá-la, especifique o objeto e a propriedade. Normalmente, o valor que é retornado é armazenado numa variável ou usado numa declaração. Por exemplo, a declaração seguinte mostra uma caixa de mensagem que lhe diz o valor da célula ativa:
MsgBox ActiveCell.Value
Outra maneira é usar a janela local que será discutida na lição sobre depuração de suas macros.
A declaração seguinte armazena o nome da folha de planilha ativa numa variável chamada X, para uso posterior:
X = ActiveSheet.Name
Neste caso, ActiveSheet é o objeto e se refere à folha de planilha ativa. Name é a propriedade. A variável nesta declaração é chamada simplesmente de "X". Nomes mais compridos e mais descritivos de variável são permitidos. Falar em propriedade é pensar então no verbo ser/estar ou ter. A seguir, mostramos outros exemplos de propriedades de objetos do VBA: Selection.Font.Bold = True ..................A fonte está em negrito. Sheets("Talqual").Visible = True.......A folha de planilha Talqual está visível
Bertolo Lição #02 – O Vocabulário das Macros VBA do Excel 16
maiúscula para qualquer palavra significante compreendida no nome como proInfo, proDadosBrutos, proSempreque. Você verá mais tarde quão importante este prefixo e letra maiúscula costumam ser.
" Range("A2")", " ThisWorkbook " e "Application " são objetos , "Value " é uma propriedade e "Close " e "Quit" são métodos. Este procedimento VBA será atribuído a um objeto botão (controle) e quando o usuário clicar nele (o evento ) o procedimento VBA rodará (o método rodar será aplicado). Este procedimento VBA diz ao computador que quando o usuário clicar no botão, a célula "A2" recebe um valor 2 e o Excel é fechado.
Aqui vão alguns códigos muito comuns:
Trasladar-se a uma Célula
Range("A1").Select
Escrever em uma Célula
Activecell.FormulaR1C1="Bertolo"
Letra em Negrito
Selection.Font.Bold = True
Letra Cursiva (Itálico)
Selection.Font.Italic = True
Letra Sublinhada
Selection.Font.Underline = xlUnderlineStyleSingle
Centralizar o Texto
With Selection
.HorizontalAlignment = xlCenter
End With
Alinhar à esquerda
With Selection
.HorizontalAlignment = xlLeft
End With
Bertolo Lições de VBA do Excel 17
Alinhar à Direita
With Selection .HorizontalAlignment = xlRight End With
Tipos de Letra (Fonte)
With Selection.Font .Name = "AGaramond" End With
Tamanho de Letra (Tamanho de Fonte)
With Selection.Font .Size = 15 End With
Copiar
Selection.Copy
Colar
ActiveSheet.Paste
Cortar
Selection.Cut
Ordenar Ascendente
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Ordenar Descendente
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Buscar
Cells.Find(What:=" Bertolo ", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate
Inserir Arquivo
Bertolo Lições de VBA do Excel 19
Funções são conjuntos de declarações que retornam um valor. Exemplos de funções que são construídas no Microsoft Excel são a função Soma() e a função TIR().
As funções escritas por um usuário são chamadas User Defined Function (UDF's). Tais funções são úteis porque elas podem ser usadas nas células da planilha para fazer cálculos especializados não programados nas funções existentes no Microsoft Excel. Também, você pode usar funções para trocar complexas fórmulas de célula SE. Você pode, também, usar funções em suas macros. O que segue é um exemplo de uma função UDF:
Function TamanhoDaCaixa(X, Y) TamanhoDaCaixa = X * Y End Function
Esta função calcula o tamanho de uma caixa e retorna com um número baseado nos valores fornecidos para X e Y. Para usá-la, você deverá digitar = TamanhoDaCaixa ( célula referência, célula referência ) numa célula de uma planilha. Por favor, note que as macros e as funções podem ser muito complexas e poderosas!
Você pode, e você vai usar todas as funções Excel dentro de seu código VBA, mas você também pode usar as funções do VBA como UCASE, LCASE, NOW(), etc..
(Activecell.Value=NOW())
FORNECENDO ARGUMENTOS
Argumentos são valores que são passados às macros , aos métodos , e às funções. Para ilustrar o que é um argumento, primeiro selecione uma célula e selecione Editar, Copiar do menu da barra de ferramentas Padrão do Excel.. Daí então, vá a outra célula e selecione Editar, Colar especial. Aparecerá o menu seguinte:
Bertolo Lição #02 – O Vocabulário das Macros VBA do Excel 20
As diferentes seleções que você pode fazer neste painel representam os argumentos para o comando colar especial. A declaração seguinte do Visual Basic tem o mesmo efeito que as seleções na caixa acima:
ActiveCell.PasteSpecial paste :=xlValues, _ (^) Argumentos de operation :=xlNone, _ um Método skipBlanks :=False, _ transpose :=False
Nesta declaração, as palavras: paste, operation, skipBlanks e transpose são os argumentos para o método PasteSpecial. Os valores são atribuídos a um argumento por uma combinação de dois pontos e um sinal de igual. Neste caso os valores ou são numéricos, especificados pelas constantes do Visual Basic (xlValues e xlNone), ou são valores Booleanos que são as palavras: Verdadeiro(True) ou Falso (False). As constantes do Visual Basic são apenas nomes para números. Usando nomes para números, torna as declarações do Visual Basic mais fáceis de entender e os valores mais fáceis de lembrar.
SOBRE AS EXPRESSÕES E DECLARAÇÕES
As macros, e as funções, são constituídas de declarações , e estas declarações são constituídas de expressões. Na função TamanhoDaCaixa = X * Y acima, X * Y é uma expressão e TamanhoDaCaixa = X * Y é uma declaração. Uma declaração pode se estender por múltiplas linhas, ou apenas ser de uma única linha de tamanho. Na macro AlôMundo , cada uma de suas linhas são declarações. Outros exemplos de declarações são: IF..THEN, DO...LOOP, FOR...NEXT, WITH...END WITH, EXIT FOR, EXIT DO, EXIT SUB que veremos em detalhes em lições posteriores.
O PROJETO VBA
Um projeto VBA pode compreender 4 tipos de componentes: a pasta , as planilhas , os módulos e os userforms. Componentes de um Projeto
Workbooks (Pasta): A pasta é um arquivo Excel (algo.xls) também chamado de planilha. O objeto "ThisWorkbook" é a pasta para a qual a macro foi criada. O código:
ThisWorkbook.Close
é um método que fechará a pasta dentro da qual a macro ativa está rodando.
Worksheets (Planilha): Uma folha de planilha do Excel 2007 que pode ter 1.048.576 linhas e 18.278 colunas.
Módulos : É uma espécie de um arquivo no qual você guarda a maioria de suas macros (= sub-rotinas VBA). Módulos são criados e nomeados no Visual Basic Editor.