curso de macros en excel (vba)

75
Programação básica de macros em VBA para Excel

Upload: unasp

Post on 10-Aug-2015

114 views

Category:

Education


11 download

TRANSCRIPT

Page 1: Curso de Macros en Excel (VBA)

Programação básica de macros em VBA para

Excel

Page 2: Curso de Macros en Excel (VBA)

Video

Page 3: Curso de Macros en Excel (VBA)

O mundo das linguagens de programação

http://eteab.com.br/cms/index.php/2012/03/linguagens-de-programacao-mais-utilizadas-fevereiro-2012/

Page 4: Curso de Macros en Excel (VBA)

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

Page 5: Curso de Macros en Excel (VBA)

Excel e o VBA

Page 6: Curso de Macros en Excel (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

Page 7: Curso de Macros en Excel (VBA)

Excel

Page 8: Curso de Macros en Excel (VBA)

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.

Page 9: Curso de Macros en Excel (VBA)

Um valor acrescentado...

Page 10: Curso de Macros en Excel (VBA)

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).

Page 11: Curso de Macros en Excel (VBA)

Usando o gravador de Macros

Page 12: Curso de Macros en Excel (VBA)

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.

Page 13: Curso de Macros en Excel (VBA)

Ativando a Guia Desenvolvedor

Page 14: Curso de Macros en Excel (VBA)

Gravar uma macro

1. No grupo Código da guia Desenvolvedor, clique em Gravar Macro e em OK para iniciar a gravação

Page 15: Curso de Macros en Excel (VBA)

Gravação de macros

Page 16: Curso de Macros en Excel (VBA)

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

Page 17: Curso de Macros en Excel (VBA)

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...

Page 18: Curso de Macros en Excel (VBA)

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.

Page 19: Curso de Macros en Excel (VBA)

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.

Page 20: Curso de Macros en Excel (VBA)

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.

Page 21: Curso de Macros en Excel (VBA)

Trabalhando com o editor de programação em Visual

Basic for Applications (VBE)

Page 22: Curso de Macros en Excel (VBA)

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.

Page 23: Curso de Macros en Excel (VBA)

Partes do editor

Janela de Código

Janela do projeto

Janela de Propiedades

Page 24: Curso de Macros en Excel (VBA)

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

Page 25: Curso de Macros en Excel (VBA)

Criando um módulo

Em geral, um módulo VBA pode conter três tipos de código

DeclaraçõesProcedimentos

subProcedimentos

Function

Page 26: Curso de Macros en Excel (VBA)

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.

Page 27: Curso de Macros en Excel (VBA)

Procedimentos Sub

Um grupo de instruções de programação que executam alguma ação.

Page 28: Curso de Macros en Excel (VBA)

Procedimentos Function

Um grupo de instruções que retorna um valor, semelhante ao que faz uma fórmula dentro de uma planilha Excel.

Page 29: Curso de Macros en Excel (VBA)

Exemplos de possíveis códigos dentro de um módulo

Declarações

Procedimentos Function

Procedimentos SUB

Page 30: Curso de Macros en Excel (VBA)

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.

Page 31: Curso de Macros en Excel (VBA)

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.

Page 32: Curso de Macros en Excel (VBA)

Criando código manualmente (Exemplo 2)

Page 33: Curso de Macros en Excel (VBA)

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.

Page 34: Curso de Macros en Excel (VBA)

Personalizando o ambiente do VBE

Page 35: Curso de Macros en Excel (VBA)

Introdução ao modelo de objetos do Excel

Page 36: Curso de Macros en Excel (VBA)

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.

Page 37: Curso de Macros en Excel (VBA)

Hierarquia do modelo de objetos ExcelApplicatio

n

Workbooks

Workbook

WorkSheets

Range

Page 38: Curso de Macros en Excel (VBA)

Entendendo melhor – Objeto Porta

Casa.Quartos(“Recamara1").Portas(1).Abrir

Page 39: Curso de Macros en Excel (VBA)

Exemplo – localizando alguma células

Range

Dentro de

Worksheet

Dentro de

Workbook

Dentro do Excel

Célula Planilha Pasta Excel

Page 40: Curso de Macros en Excel (VBA)

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

Page 41: Curso de Macros en Excel (VBA)

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.

Page 42: Curso de Macros en Excel (VBA)

Exemplos

Worksheets("Plan1")

Worksheets(1)

Page 43: Curso de Macros en Excel (VBA)

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

Page 44: Curso de Macros en Excel (VBA)

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...

Page 45: Curso de Macros en Excel (VBA)

Navegando pela hierarquia - Simplificada

Range("A1").Value

Worksheets(1).Range("A1").Value

Workbooks("Curso VBA.xlsm").Worksheets(1).Range("A1").Value

Page 46: Curso de Macros en Excel (VBA)

Exemplo 3

Usando a hierarquia de objetos selecione Uma célula Uma fileira Uma coluna

Page 47: Curso de Macros en Excel (VBA)

Simplesmente selecionando não faço muito, vamos adicionar funcionalidade...

Page 48: Curso de Macros en Excel (VBA)

Propriedades e Métodos de Objetos

Page 49: Curso de Macros en Excel (VBA)

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.

Page 50: Curso de Macros en Excel (VBA)

Entendendo melhor – Objeto Porta

Método- Abrir

- Fechar

Propriedades- Cor

- Material

Casa.Quartos(“Recamara1").Portas(1).Abrir

Page 51: Curso de Macros en Excel (VBA)

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

Page 52: Curso de Macros en Excel (VBA)

Exemplo 4 – Mostrar o valor

Sub MostraValor()    Conteudo = Worksheets("Plan1").Range("A1").Value    MsgBox ConteudoEnd Sub

Page 53: Curso de Macros en Excel (VBA)

Exemplo 5 – Alterar o valor

Sub AlteraValor()    Worksheets("Plan1").Range("A1").Value = 456.78End Sub

Page 54: Curso de Macros en Excel (VBA)

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

Page 55: Curso de Macros en Excel (VBA)

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.

Page 56: Curso de Macros en Excel (VBA)

Exemplo 7 – limpar conteúdo (ClearContents)

Sub limparConteudo()    Range("A1").ClearContentsEnd Sub

Page 57: Curso de Macros en Excel (VBA)

Exemplo 8 – copiar uma célula a outra

Sub CopiarUm()

Worksheets("Plan1").Activate Range("A1").Copy Range("B1") End Sub

Page 58: Curso de Macros en Excel (VBA)

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.

Page 59: Curso de Macros en Excel (VBA)

Listagem automática de propriedades e métodos

Page 60: Curso de Macros en Excel (VBA)

Procedimentos Sub e Function

Page 61: Curso de Macros en Excel (VBA)

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.

Page 62: Curso de Macros en Excel (VBA)

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

Page 63: Curso de Macros en Excel (VBA)

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

Page 64: Curso de Macros en Excel (VBA)

Algumas forma de executar os

procedimentos

Page 65: Curso de Macros en Excel (VBA)

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.

Page 66: Curso de Macros en Excel (VBA)

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).

Page 67: Curso de Macros en Excel (VBA)

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+).

Page 68: Curso de Macros en Excel (VBA)

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.

Page 69: Curso de Macros en Excel (VBA)
Page 70: Curso de Macros en Excel (VBA)

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.

Page 71: Curso de Macros en Excel (VBA)

Chegando no fimFazendo um programa...

Page 72: Curso de Macros en Excel (VBA)

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

Page 73: Curso de Macros en Excel (VBA)

Layout

Page 74: Curso de Macros en Excel (VBA)

Execução

Page 75: Curso de Macros en Excel (VBA)

Parabéns você já é um programador !!!Continue praticando...