Excel 2016 com VBA - … · Os objetos mais usados do Excel na programação VBA são Workbook,...

Preview:

Citation preview

Excel 2016 com VBAAula 3

Prof. Guilherme Nonino Rosa

Apresentação:

Prof. Guilherme Nonino Rosa- Graduado em Ciências da Computação pela Unifran – Universidade

de Franca no ano de 2000.

- Pós-Graduado em Tecnologia da Informação aplicada aos Negócios pela Unip-Universidade Paulista no ano de 2011.

- Licenciado em Informática pela Fatec – Faculdade de Tecnologia de Franca no ano de 2011.

- Docente do Senac – Ribeirão Preto desde fevereiro/2012

- Docente do Centro de Educação Tecnológica Paula Souza, nas Etecsde Ituverava e Orlândia de fevereiro/2010

- Docente na Faculdade Anhanguera – Ribeirão Preto desde de fevereiro/2013

Contatos:

Prof. Guilherme Nonino Rosa

guilherme.nrosa@sp.senac.br

OBJETIVOS DO CURSO:

Capacitar o aluno a desenvolver macros, formulários e funções personalizadas utilizando recursos do Excel e do VBA, a fim de otimizar o

processamento, armazenamento e apresentação de informações nas planilhas do Excel.

NORMAS DO LABORATÓRIO

• Proibido ingerir bebidas e alimentos dentro do laboratório

• Evitar atender o celular durantes as aulas.• Evite faltar, pois não há como voltar na aula anterior.

CRITÉRIOS DE AVALIAÇÃO

A avaliação da aprendizagem será contínua e cumulativa, priorizando aspectos qualitativos

relacionados com o processo de aprendizagem e o desenvolvimento do aluno observado durante

a realização das atividades propostas, individualmente e/ou em grupo.

APROVAÇÃO/FREQÜÊNCIA

FREQÜÊNCIA = 75%(7,5 horas)

ENTREGA DOS CERTIFICADOS :

NO ÚLTIMO DIA DO CURSO OU RETIRAR NA SECRETARIA (1º ANDAR)

Usuário:Senha:

1. Cria macro de gravação; 2. Diferencia referência relativa e absoluta; 3. Salva arquivo de Excel com macros; 4. Configura recursos de segurança de macros; 5. Identifica os elementos da interface do VBE; 6. Cria macro de programação; 7. Consulta documentação da Microsoft ou equivalente, quando necessário; 8. Utiliza recursos de tratamento de erro, quando necessário; 9. Utiliza caixa de entrada e caixa de mensagem; 10. Utiliza variáveis e constantes; 11. Utiliza estrutura de desvio condicional; 12. Utiliza estruturas de repetição; 13. Cria funções personalizadas; 14. Cria formulários personalizados; 15. Integra diferentes recursos de programação do VBA em um único projeto.

Macros e VBA - ExcelAula 3 – Parte 01

- Detalhes importantes da programação VBA.

Nomes importantes para os objetos no VBA

Sheet(s) = planilha

WORKBOOK = Pasta de trabalho

Objetos e Coleções

Objetos são os blocos de construção fundamentais do Visual Basic.Um objeto é um tipo especial de variável que contém ambos, dados ecódigos. A coleção é um grupo de objetos da mesma classe.

Os objetos mais usados do Excel na programação VBA são Workbook,Worksheet, Sheet, e Range.

Workbooks é uma coleção de todos os objetos workbook. Worksheetsé uma coleção de objetos worksheet. O objeto Workbook representauma workbook, o objeto Worksheet representa uma planilha, oobjeto Sheet representa uma planilha ou gráfico, e o objeto Rangerepresenta um intervalo de células.

Alt + F11 – Abrir tela do Microsoft VBA

Selecione EstaPasta_de_trabalho e ao lado selecione Workbook

Digite o conteúdo abaixo e sai do VBA.

Salve sua planilha como: Pasta de Trabalho habilitada para Macro do Excel e reabra o arquivo novamente.

Macros e VBA - ExcelAula 3 – Parte 02

- Evento Activate- Código Range- Evento DoubleClick- Evento Calculate- Comentar código- Janela de Verificação Imediata

Exibir código VBA da planilha.

Botão direito do Mouse –Menu aberto – Exibir

Código.

Veja que sua plan1 esta selecionada e clicaremos para exibir o objeto Worksheetevento Activate

Digitaremos o código abaixo:

Toda vez que ativarmos a plan1 a mensagem aparecerá em nossa tela, devido ao uso do evento ACTIVATE.

Incrementando outros comandos, veja como fica:

ActiveSheet.Range(“C3”).Select – estou selecionando a célula C3 dentro do método Activate.

Trabalhando com outros eventos da planilha

1) Evento BeforeDoubleClick

2) Evento Calculate

Comentando linhas no VBA

Inclua o apóstrofo (‘) na frente da linha.

Janela de Verificação imediata.

Janela de Verificação imediata.

? Significa que o resultado do comando será exibido na Verificação Imediata

Comandos interessantes no VBATrasladar-se a uma CélulaRange("A1").Select

Escrever em uma CélulaActivecell.FormulaR1C1="Bertolo“

Letra em NegritoSelection.Font.Bold = True

Letra Cursiva (Itálico)Selection.Font.Italic = True

Letra SublinhadaSelection.Font.Underline = xlUnderlineStyleSingle

Centralizar o Texto With Selection.HorizontalAlignment = xlCenterEnd With

Alinhar à esquerda With Selection.HorizontalAlignment = xlLeftEnd With

Alinhar à Direita With Selection.HorizontalAlignment = xlRightEnd 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

Comandos interessantes no VBAColar 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

Comandos interessantes no VBAInserir LinhaSelection.EntireRow.Insert

Eliminar LinhaSelection.EntireRow.Delete

Inserir Coluna Selection.EntireColumn.Insert

Eliminar Coluna Selection.EntireColumn.Delete

Abrir uma Pasta Workbooks.Open Filename:="C:\Meus documentos\aula3.xls“

Gravar um Pasta ActiveWorkbook.SaveAs Filename:="C:\Meus documentos\piscis.xls", FileFormat :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= False, CreateBackup:=False

Macros e VBA - ExcelAula 3 – Parte 03Variáveis e seus tipos.- String- Double- Date- Variant

VariávelUma variável é um objeto que você cria e naqual você pode armazenar texto (STRING),datas(DATE), números(INTEGER, LONG,SIMPLE, DOUBLE) ou qualquer outra coisatambém(VARIANT).

Declaração:Dim var01 as STRING.

TiposTipo de Dados

Tamanho de Armazenamento

Intervalo permitido

Boolean 2 bytes True ou False

Integer 2 bytes -32.768 a 32.767

Long 4 bytes -2.147.483.648 a 2.147.483.647

Double 8 bytes -1,79769313486232E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos

Currency 8 bytes -922.337.203.685.477,5808 a 922.337.203.685.477,5807

Date 8 bytes 1 de janeiro de 100 a 31 de dezembro de 9999

String 10 bytes e o comprimento da sequencia de caracteres

Obs: Caso não declare o tipo, o VBA assume como sendo Variant

Declarações

Localização Instrução de declaração Escopo

Dentro de um procedimento Dim “variável” As Variável disponível apenas este procedimento.

No início do módulo Dim “variável” as...OuPublic variável As

Variável disponível para todos os procedimentos de todos os módulos.

No início do módulo Private variável As Variável disponível para todos os procedimentos apenas no módulo em que foi declarada.

Visibilidade de procedimentos

Instrução Escopo

Public Public Sub Exemplo1() – Trata-se de um procedimento público que pode ser visto e chamado em qualquer módulo e melhor identado no VBA.

Private Private Sub Exemplo2() – trata-se de um procedimento privadoque só pode ser chamado apenas no módulo que está.

Sub Sub Exemplo1() - Trata-se de um procedimento público que pode ser visto e chamado em qualquer módulo.

Abra uma planilha nova, aba desenvolver, inserir botão do Controles ActiveX

Duplo click no botão

E vamos inserir o código

E vamos inserir o código

Private Sub CommandButton1_Click()

Dim vValor1 As StringDim vValor2 As IntegerDim vValor3 As LongDim vValor4 As Boolean

vValor1 = "Guilherme Nonino Rosa"vValor2 = ActiveSheet.Range("A1").ValuevValor3 = 2000vValor4 = False

MsgBox vValor1MsgBox vValor2

MsgBox vValor1 & " - " & vValor2MsgBox vValor3 & " / " & vValor4

ActiveSheet.Range("a2").Value = vValor1ActiveSheet.Range("b2").Value = vValor2ActiveSheet.Range("c2").Value = vValor3ActiveSheet.Range("d2").Value = vValor4

End Sub

Macros e VBA - ExcelAula 3 – Parte 04

-Option Explicit – Tornar a declaração de variáveis obrigatória.-Atribuindo variáveis com o comando SET-Operações matemáticas com variáveis-Tipo Worksheet

Operadores

Operadores

Operadores

Montamos a planilha e vamos inserir o código.

Inclua a variável Dim d_hoje as Date

d_hoje = date

W.Range(“E2”).Value = d_hoje

Funções importantes do Ambiente VBA.

• F8 – depuração total• CTRL + F8 – executar até o cursor.Shift+F9 – Inspecionar variáveis• F9 – Ativar/desativar pontos de

interrupção• CTRL+SHIFT+F9 – Limpar todos os

pontos de interrupção.

Macros e VBA - ExcelAula 3 – Parte 05

Estrutura de controle condicional- Estrutura IF .. THEN- Estrutura IF.. THEN.. ELSE...END IF- Estrutura SELECT..CASE..ELSE

Seleção simples(If ... Then) — testa uma condição única e executa uma instrução ou um bloco de instruções.

Seleção composta(If … Then … Else) — testa uma condição única e executa um entre dois blocos de instruções.

Sintaxe: If condição Then

Instruções

End If

Sintaxe: If condição ThenInstruções

Else

Instruções

End If

Seleção composta encadeada(If … Then … ElseIf) — testa mais de uma condição e executa um dos vários blocos de instruções..

Sintaxe: If condição ThenInstruções

ElseIf condição ThenInstruções

. . .Else

InstruçõesEnd If

Seleção de múltipla escolha(Select Case) — testa uma condição única e executa um dos vários blocos de instruções.

Sintaxe: Select Case var_teste

Case expr: instruções. . .Case Else: instruções

End Select

1º Exemplo

No código acima, a condiçãotestada pelo If é se o valor de x épositivo (x > 0). Caso estaexpressão seja verdadeira, oprimeiro bloco de código(Absoluto = x) será executado, eo segundo, ignorado; casocontrário, apenas o segundobloco (Absoluto = -x) seráexecutado.

2º Exemplo

A estrutra If … Then … Else pode ser estendida com o uso da Estrutura ElseIf. Elapermite que você construa um nível de teste lógico em vários níveis, permitindoestender seu teste além de uma única condição.

Duplo click no botão para abrir o Ambiente VBA

Alterando as propriedades do botãoName: btnCalcularCaption: Calcular

Segue o código

Macros e VBA - ExcelAula 3 – Parte 06

Estrutura condicional- Select Case

Perguntas?