curso de macros en excel (vba)
TRANSCRIPT
Programação básica de macros em VBA para
Excel
Video
O mundo das linguagens de programação
http://eteab.com.br/cms/index.php/2012/03/linguagens-de-programacao-mais-utilizadas-fevereiro-2012/
What about people who don’t plan to become programmers? Should they also learn to code?
Programming is changing the way almost every industry works. Look at farming, for example. Farmers are using algorithms to determine when and where to plant crops and water crops. Look at publishing. Editors are using algorithms to help decide what news articles should appear on the cover of a magazine or homepage of a website. And finance has become much more algorithm-driven as well. We’re preparing people for a rapidly changing world, one in which nearly everything is affected by technology.
Program or Perish: Why Everyone Should Learn to Code By: Richard Sine Mar 13, 2014
Excel e o VBA
O que é o Excel?
O Excel é um software que permite criar tabelas e calcular e analisar dados. Este tipo de software é chamado de software de planilha eletrônica.
O Excel permite criar tabelas que calculam automaticamente os totais de valores numéricos inseridos, imprimir tabelas em layouts organizados e criar gráficos simples
Excel
O que é uma Macro?
Uma macro é um pequeno programa que contém uma lista de instruções a realizar no Excel. Como sendo um repositório de operações, uma macro pode executar um conjunto de tarefas através de um único procedimento o qual pode ser invocado rapidamente.
As instruções que formam o corpo da macro são escritas num código próprio para que o computador as possa entender, essa linguagem é designada por VBA – Visual Basic for Applications.
Um valor acrescentado...
Criar Macros
Existem duas possibilidades de criação de macros: Através do Gravador de Macros Trabalhando com o editor de programação
em Visual Basic for Applications (VBA).
Usando o gravador de Macros
Antes de gravar uma macro
Verifique se a guia Desenvolvedor está visível na faixa de opções. Por padrão, a guia Desenvolvedor não permanece visível; sendo assim, proceda da seguinte forma:
1. Clique na guia Arquivo, clique em Opções e depois clique na categoria Personalizar Faixa de Opções.
2. Em Personalizar a Faixa de Opções, na lista Guias Principais, clique em Desenvolvedor e em OK.
Ativando a Guia Desenvolvedor
Gravar uma macro
1. No grupo Código da guia Desenvolvedor, clique em Gravar Macro e em OK para iniciar a gravação
Gravação de macros
Gravar uma macro
2. Execute algumas ações em sua planilha, como digitar um texto, selecionar colunas ou linhas, ou preencher alguns dados. (Exemplo)
3. No grupo Código da guia Desenvolvedor, clique em Parar Gravação
Exemplo 1
Faça uma macro para criar o gráfico de uma função de segundo grau (quadrática)
Crie outros macros, a imaginação é o limite...
Examinando uma Macro
Para editar uma macro, no grupo Código da guia Desenvolvedor, clique em Macros, selecione o nome da macro gravada e clique em Editar. Isso inicia o Editor do Visual Basic.
Outra forma de abrir o editor Alt+F11 Examine o código e veja como as ações que
você gravou aparecem codificadas. Alguns códigos provavelmente serão claros para você, enquanto outros não.
Editor do VBA para Excel
Até aqui você foi capaz de criar uma macro sem se preocupar pela programação dela.
Olhando o código em VBA você pensará que esta lendo grego ou chinês, mas até o final da aula tenho certeza de que receberá o dom de línguas e passara a entender.
Salvando pastas de trabalho que contem macros Na hora de salvar
o seu trabalho que contem uma ou mais macros, devem ser salvados num arquivo que esteja habilitado para macros, este tipo de arquivo é denominado com a extensão XLSM.
Trabalhando com o editor de programação em Visual
Basic for Applications (VBE)
Editor de Visual Basic VBA do Excel (VBE)
O que é um Editor de Visual Basic? Podemos dizer que é um ambiente de desenvolvimento que possibilita você a trabalhar na redação e edição das macros em VBA.
Para abrir o editor pode usar o menu desenvolvedor ou teclar Alt+F11.
Para que é Utilizado? Para que possamos através de formulários e objetos criarmos código de programação para facilitar a execução de soluções de uma maneira mais significativa.
Partes do editor
Janela de Código
Janela do projeto
Janela de Propiedades
Acrescentar um módulo
Siga os seguintes passos para acrescentar um novo módulo1. No VBE, selecione o nome do projeto na janela de
projetos
2. Selecione na barra de menu Inserir->Módulo
Ou
3. No nome do projeto faça um click direito
4. Selecione Inserir-> Módulo na janela de menu que se abre
Criando um módulo
Em geral, um módulo VBA pode conter três tipos de código
DeclaraçõesProcedimentos
subProcedimentos
Function
Declarações (Comentários)
Uma ou mais declarações de informações que você fornece ao VBA. Por exemplo, você pode declarar o tipo de dados para variáveis que você planeja usar, ou definir algumas outras opções do módulo.
Os comentários sempre estão precedidos de apóstrofos.
Procedimentos Sub
Um grupo de instruções de programação que executam alguma ação.
Procedimentos Function
Um grupo de instruções que retorna um valor, semelhante ao que faz uma fórmula dentro de uma planilha Excel.
Exemplos de possíveis códigos dentro de um módulo
Declarações
Procedimentos Function
Procedimentos SUB
Inserindo código VBA em um módulo
É possível inserir código VBA em um módulo de três diferentes modos:
1. Digitar o código manualmente
2. Usar o gravador de macro do Excel para transformar as ações gravadas em código VBA
3. Copiar o código de um módulo e colar em outro.
Criando código manualmente
Siga os procedimentos abaixo para criar um procedimento manualmente. Crie uma nova Pasta de Trabalho no Excel (novo
arquivo). Pressione ALT+F11 para abrir o VBE. Clique no nome da Pasta de Trabalho na janela Projeto. Acesse Inserir > Módulo para inserir um módulo no
projeto. Digite o seguinte conteúdo dentro do módulo.
Criando código manualmente (Exemplo 2)
Personalizando o ambiente VBE
Se você é (ou se tornar) um programador Excel, você passará boa parte do tempo com os módulos VBA na tela. Para tornar o ambiente de desenvolvimento mais confortável, o VBE possui algumas opções de personalização.
Com o VBE ativo, acesse Ferramentas -> Opções. Uma janela com quadro abas aparecerá: Editor, Formado do editor, Geral, e Encaixe.
Personalizando o ambiente do VBE
Introdução ao modelo de objetos do Excel
Objeto
A programação orientada a objeto é baseada na ideia de que os programas consistem em
diferentes objetos que têm atributos (ou propriedades) e podem ser manipulados. Estes objetos não são itens materiais, ao contrário eles existem apenas virtualmente, em forma binária.
Hierarquia do modelo de objetos ExcelApplicatio
n
Workbooks
Workbook
WorkSheets
Range
Entendendo melhor – Objeto Porta
Casa.Quartos(“Recamara1").Portas(1).Abrir
Exemplo – localizando alguma células
Range
Dentro de
Worksheet
Dentro de
Workbook
Dentro do Excel
Célula Planilha Pasta Excel
Coleções
Coleções são agrupamentos de objetos do mesmo tipo, e a própria coleção também é um objeto. Exemplos de coleções comuns:
•Workbooks Coleção de objetos Workbook abertos
•Worksheets Coleção de todos os objetos Worksheet de um determinado objeto
Workbook (todas as guias de planilhas de um determinado arquivo)
•Charts Coleção de todos os objetos Chart (guias de gráfico) de um determinado
objeto Workbook
Referenciando Objetos
Fazer referência a um objeto no código VBA é importante, porquê você deve informar qual é o objeto com o qual você está trabalhando, para que o programa saiba qual objeto manipular.
Para referenciar um único objeto de uma coleção, coloca-se o nome do objeto, ou seu índice, entre parênteses após o nome da coleção.
Exemplos
Worksheets("Plan1")
Worksheets(1)
Navegando pela hierarquia
Application.Workbooks("Curso VBA.xlsm")
Application.Workbooks("Curso VBA.xlsm").Worksheets(1)
Application.Workbooks("Curso VBA.xlsm").Worksheets(1).Range("A1").Value
Simplificando referências à objetos
O uso frequente da Referência Totalmente Qualificada em um código VBA pode deixá-lo muito longo e um pouco mais difícil de ser lido. Felizmente, o Excel possui alguns atalhos que podem simplificar a leitura e a digitação de código. O objeto Application é sempre assumido automaticamente, são poucos os casos onde ele é necessário. Omitindo-o então, a referência anterior ficaria assim...
Navegando pela hierarquia - Simplificada
Range("A1").Value
Worksheets(1).Range("A1").Value
Workbooks("Curso VBA.xlsm").Worksheets(1).Range("A1").Value
Exemplo 3
Usando a hierarquia de objetos selecione Uma célula Uma fileira Uma coluna
Simplesmente selecionando não faço muito, vamos adicionar funcionalidade...
Propriedades e Métodos de Objetos
Propriedades e Métodos de Objetos
Referenciar um objeto é importante, mas quase nada pode ser feito apenas com sua referência, para poder manipulá-lo, é necessário proceder com uma entre duas opções: Ler ou modificar a propriedade de um objeto. Especificar um método de ação para ser usado
com o objeto.
Entendendo melhor – Objeto Porta
Método- Abrir
- Fechar
Propriedades- Cor
- Material
Casa.Quartos(“Recamara1").Portas(1).Abrir
Propriedades dos objetos
Todo objeto tem propriedades. Você pode imaginar as propriedades como atributos que descrevem u objeto. As propriedades do objeto determinam sua aparência, seu comportamento, e até mesmo se ele deve estar ou não visível. Usando o VBA, é possível realizar duas ações com as propriedades dos objetos: Consultar o valor atual de uma propriedade Alterar o valor de uma propriedade
Exemplo 4 – Mostrar o valor
Sub MostraValor() Conteudo = Worksheets("Plan1").Range("A1").Value MsgBox ConteudoEnd Sub
Exemplo 5 – Alterar o valor
Sub AlteraValor() Worksheets("Plan1").Range("A1").Value = 456.78End Sub
Exemplo 6 – Modificar o tamanho e a cor
Sub propiedadesTamanhoCor()
Range("B2").Select Range("B2").Interior.Color = RGB(0, 255, 0) Columns("B:B").ColumnWidth = 18 End Sub
Métodos de Objetos
Além das propriedades, objetos também têm métodos. Um método é uma ação que você pode executar com um objeto. Um método pode alterar a propriedade de um objeto ou fazer com que o objeto faça algo.
Exemplo 7 – limpar conteúdo (ClearContents)
Sub limparConteudo() Range("A1").ClearContentsEnd Sub
Exemplo 8 – copiar uma célula a outra
Sub CopiarUm()
Worksheets("Plan1").Activate Range("A1").Copy Range("B1") End Sub
Ajudas
Agora que conhece um pouco sobre objetos, propriedades, métodos e eventos, você pode se interessar pelas seguintes ferramentas: Sistema de Ajuda do VBA (F1) Pesquisador de objeto (F2) Listagem automática de propriedades e métodos.
Listagem automática de propriedades e métodos
Procedimentos Sub e Function
Sub e Function
Os códigos VBA que você escreve no Editor do Visual Basic são conhecidos como procedimentos. os dois tipos mais comuns de procedimentos são Sub e Function. Um procedimento Sub é um grupo de declarações
VBA que executam alguma ação (ou ações) com o Excel.
Um procedimento Function é um grupo de declarações que executa algum cálculo e retorna um valor.
Procedimentos Sub
Todo procedimento Sub inicia com a palavra chave Sub e termina com a declaração End Sub. Abaixo, um exemplo.
Sub ExibirMensagem() MsgBox "Olá pessoal!"End Sub
Procedimentos Function (Exemplo 9)
Todo procedimento Function (função) inicia com a palavra chave Function e termina com a declaração End Function. Abaixo, um exemplo:
Function RaizCubica(numero) RaizCubica = numero ^ (1 / 3)End Function
Algumas forma de executar os
procedimentos
Algumas forma de executar os procedimentos
Execução direta Ative o VBE e selecione o módulo VBA que
contém o procedimento Posicione o cursor dentro do código (clique em
qualquer parte dentro do código, entre Sub e End Sub)
Pressione F5 (ou acesse Executar > Executar Sub/UserForm).
Digite o valor solicitado e pressione OK.
Algumas forma de executar os procedimentos
Execução a partir da janela Macro Ative o Excel. Acesse Desenvolvedor > Código > Macro
(ou pressione ALT+F8). Selecione a macro. Clique em Executar (ou faça um duplo
clique sobre o nome da macro).
Algumas forma de executar os procedimentos
Execução por tecla de atalho Para executar uma macro usando teclas de
atalho é necessário, antes, definir as teclas de atalho desejadas para a macro. Acesse Desenvolvedor > Código > Macros. Selecione o nome do procedimento. Coloque no botão Opções. Clique na opção Tecla de Atalho e digite uma
letra (ao lado de onde está escrito Ctrl+).
Algumas forma de executar os procedimentos
Execução a partir de um botão ou imagem Uma opção para executar as macros de forma amigável para o
usuário, é vinculá-la a algum botão (ou qualquer tipo de imagem) em uma planilha. Para isso, siga estes passos: Ative a planilha. Selecione Botão nos Controles de Formulário (conforme imagem
abaixo). Em seguida, clique na planilha e arraste para desenhar o botão no
tamanho que desejar. Após inserir o botão, o Excel mostrará a janela Atribuir macro. Selecione a macro que deseja associar ao botão. Clique em OK.
Executando procedimentos Function
As funções, diferente das macros Sub, podem ser executadas em apenas dois modos: Sendo chamadas por outra macro (Sub ou
Function) Sendo usada como uma fórmula em uma
planilha.
Chegando no fimFazendo um programa...
Solução da equação de segundo grau
Se Delta <0, Não tem raízes reais
Se Delta = 0, tem uma raiz
Se Delta >0, tem duas raízes
Layout
Execução
Parabéns você já é um programador !!!Continue praticando...