Excel 2016 com VBA · 1. Cria macro de gravação; 2. Diferencia referência relativa e absoluta;...

Post on 29-Aug-2018

231 views 0 download

Transcript of Excel 2016 com VBA · 1. Cria macro de gravação; 2. Diferencia referência relativa e absoluta;...

Excel 2016 com VBAAula 2

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 2 – Parte 01

- Objeto, Propriedade, método e evento.- Transferindo dados entre duas planilhas- Comando: application.screenupdating- Comando: MSGBOX – enviando mensagens

para o usuário da planilha.

Projeto VBA

O projeto VBA é composto por:

• Pasta de Trabalho• Planilhas

• Formulários• Módulos• Classes

Estes dois próprios do Excel

Estes três próprios do VBA

Elementos VBA

1-Objeto

-Uma unidade de dados que representa um elemento dasua planilha, tudo que é manipulável no aplicativo échamado de objeto.

Ex: O próprio Excel (application), pastas detrabalho(Workbook), planilhas(Sheet), células(cell), folhasde gráficos(chart), botões, menus, etc.

Elementos VBA

2-Coleções

-Uma coleção é um grupo de objetos que são todos domesmo tipo. As coleções estão quase sempre no plural.Exemplos de coleções são pastas, folhas de planilhas, ediagramas.

Ex: Sheets(“Plan1).Select ou

Sheets(1).Select

Coleção

Membro

Elementos VBA

3-Propriedades

-Propriedades são características de cada objeto.Tamanho, cor, valor.

Ex:Range(“A1”).Value = “Senac”

Value é a propriedade para o objeto Range(“Célula”).

Objeto

Propriedade

Elementos VBA

4-Método

-Ações que submetemos os objetos. Não alteram aspropriedades do objeto mas submetem eles a ações maisamplas.

Ex:Range(“A1”).Select

Select é a ação de selecionar a célula que é um objeto.

Elementos VBA

5-Eventos

-Ações que são reconhecidas por outros objetos, comoexemplo.

WorkbookOpen

A pasta de trabalho(workbook) aula2.xlsm é capaz deentender a ação de ser aberto.

Elementos VBA

6-Procedimentos

-São conjuntos de declarações que realizam uma tarefaespecífica. Procedimentos podem ser ou macros oufunções.

Sub AlôMundo()MsgBox "Alô Mundo"

End Sub

Elementos VBA

7-Funções

Funções são conjuntos de declarações que retornam umvalor. Exemplos de funções que são construídas noMicrosoft Excel são a função Soma() e a função Média()

Function TamanhoDaCaixa(X, Y)

TamanhoDaCaixa = X * Y

End Function

Abra o arquivo aula2_parte01 no Excel.

InserirBotão de Ação

Mensagem de Conclusão

Planilha que receberá os dados gravados.

Sub InserirRegistro()'' InserirRegistro Macro'

Range("B5:G5").SelectSelection.CopySheets(“Clientes").SelectRange("A1").SelectSelection.End(xlDown).SelectSelection.End(xlUp).SelectRange("A2").SelectActiveSheet.PasteRange("A2").SelectSheets(“Cadastro").SelectRange("B5:G5").SelectApplication.CutCopyMode = FalseSelection.ClearContentsRange("G8").SelectActiveCell.FormulaR1C1 = "Gravação OK..."Range("B5").Select

End Sub

Código VBA antes das

alterações.

Sub InserirRegistros()'

' InserirRegistros Macro'

Application.ScreenUpdating = False – 6ª. alteração

Range("G8").Value = "“ - 4ª. AlteraçãoRange("B5:G5").SelectSelection.CopySheets("Clientes").Select

Range("A1048576").Select - 1ª. Alteração.Selection.End(xlUp).Select - 2ª alteração

ActiveCell.Offset(1, 0).Select - 3ª. Alteração.

ActiveSheet.PasteSheets("Cadastro").SelectRange("B5:G5").SelectApplication.CutCopyMode = FalseSelection.ClearContentsRange("G8").SelectActiveCell.FormulaR1C1 = "Gravação OK..."

MsgBox "Processo concluído...", vbOKOnly, "Concluído“ – 5ª. Alteração.

Range("B5").SelectApplication.ScreenUpdating = True – 7ª. Alteração

End Sub

Código VBA depois das alterações.

Macros e VBA - ExcelAula 2 – Parte 02- Cadastro de clientes com dados em células

não contínuas.

- Instrução: SHEETS().select

Abra o arquivo aula2_parte02 no Excel.

Sub inserirdados2()'' inserirdados2 Macro'

Range(“B5”).SelectSelection.CopySheets(“Clientes”).SelectRange("A1").SelectSelection.End(xlDown).SelectSelection.End(xlUp).SelectRange("A2").SelectActiveSheet.PasteActiveSheet.Previous.SelectRange("D5").SelectApplication.CutCopyMode = FalseSelection.CopyActiveSheet.Next.SelectRange("C2").SelectActiveSheet.PasteActiveSheet.Previous.SelectRange("F5").SelectApplication.CutCopyMode = FalseSelection.Copy

Código VBA antes das

alterações.

PARTE 1

ActiveSheet.Next.SelectRange("E2").SelectActiveSheet.PasteActiveSheet.Previous.SelectRange("B8").SelectApplication.CutCopyMode = FalseSelection.CopyActiveSheet.Next.SelectRange("B2").SelectActiveSheet.PasteActiveSheet.Previous.SelectRange("D8").SelectApplication.CutCopyMode = FalseSelection.CopyActiveSheet.Next.SelectRange("D2").SelectActiveSheet.PasteActiveSheet.Previous.SelectRange("F8").SelectApplication.CutCopyMode = FalseSelection.CopyActiveSheet.Next.Select

Código VBA antes das

alterações.

PARTE 2

Range("F2").SelectActiveSheet.PasteActiveSheet.Previous.SelectRange("F8,D8,B8,B5,D5,F5").SelectRange("F5").ActivateApplication.CutCopyMode = FalseSelection.ClearContentsRange("B5").Select

End Sub

Código VBA antes das

alterações.

PARTE 3

Sub inserirdados2()' inserirdados2 Macro'

Application.ScreenUpdating = False Sheets("Cadastro").Select – 1ª alteração.Range(“B5”).SelectSelection.CopySheets(“Clientes”).SelectRange("A1").SelectSelection.End(xlDown).SelectSelection.End(xlDown).SelectSelection.End(xlUp).SelectActiveCell.Offset(1, 0).Select - 2ª alteração.ActiveSheet.PasteActiveSheet.Previous.SelectRange("D5").SelectApplication.CutCopyMode = FalseSelection.CopyActiveSheet.Next.SelectActiveCell.Offset(0, 2).Select – 3ª. AlteraçãoActiveSheet.PasteActiveSheet.Previous.SelectRange("F5").SelectApplication.CutCopyMode = FalseSelection.Copy

Código VBA após as alterações

PARTE 1

ActiveSheet.Next.SelectActiveCell.Offset(0, 2).Select – 4ª. AlteraçãoActiveSheet.PasteActiveSheet.Previous.SelectRange("B8").SelectApplication.CutCopyMode = FalseSelection.CopyActiveSheet.Next.SelectActiveCell.Offset(0, -3).Select – 5ª. AlteraçãoActiveSheet.PasteActiveSheet.Previous.SelectRange("D8").SelectApplication.CutCopyMode = FalseSelection.CopyActiveSheet.Next.SelectActiveCell.Offset(0, 2).Select – 6ª. AlteraçãoActiveSheet.PasteActiveSheet.Previous.SelectRange("F8").SelectApplication.CutCopyMode = FalseSelection.CopyActiveSheet.Next.Select

Código VBA depois das alterações.

PARTE 2

ActiveCell.Offset(0, 2).Select – 7ª. AlteraçãoActiveSheet.PasteActiveSheet.Previous.SelectRange("F8,D8,B8,B5,D5,F5").SelectRange("F5").ActivateApplication.CutCopyMode = FalseSelection.ClearContentsRange("B5").SelectApplication.ScreenUpdating = True

MsgBox "Processo concluído...", vbOKOnly, "Concluído“

End Sub

Código VBA depois das alterações.

PARTE 3

Macros e VBA - ExcelAula 2 – Parte 03

-Caixas de Combinação(Formulários)Células Origem,Célula vinculada e Lista dinâmica – função desloc()

Aba desenvolver – Grupo Controles – Inserir Caixa de Combinação

Depois de Inserido, botão direito do mouse e clique em Formatar Controle

Utilização da função desloc() para criar lista dinâmica.

DESLOC(LISTAS!$A$1;0;0;CONT.VALORES(LISTAS!$A:$A);1)

Parâmetros:

DESLOC(ref, lins, cols, [altura], [largura])

A sintaxe da função DESLOC tem os seguintes argumentos:

•ref Obrigatório. A referência na qual você deseja basear o deslocamento. Ref deve ser

uma referência a uma célula ou intervalo de células adjacentes; caso contrário, DESLOC

retornará o valor de erro #VALOR!.

•lins Obrigatório. O número de linhas, acima ou abaixo, a que se deseja que a célula

superior esquerda se refira. Usar 5 como o argumento de linhas, especifica que a célula

superior esquerda na referência está cinco linhas abaixo da referência. Lins podem ser

positivas (que significa abaixo da referência inicial) ou negativas (acima da referência

inicial).

•cols Obrigatório. O número de colunas, à esquerda ou à direita, a que se deseja que a

célula superior esquerda do resultado se refira. Usar 5 como o argumento de colunas,

especifica que a célula superior esquerda na referência está cinco colunas à direita da

referência. Cols pode ser positivo (que significa à direita da referência inicial) ou negativo

(à esquerda da referência inicial).

•altura Opcional. A altura, em número de linhas, que se deseja para a referência

fornecida. Altura deve ser um número positivo.

•largura Opcional. A largura, em número de colunas, que se deseja para a referência

fornecida. Largura deve ser um número positivo.

Macros e VBA - ExcelAula 2 – Parte 04

-Caixas de Seleção-Botão de Opção-Caixa de grupo

Você pode inserir controles de formulário como caixas de seleção ou botões de opção

para facilitar a entrada de dados. Caixas de seleção funcionam bem para formulários

com várias opções. Os botões de opção são melhores quando o usuário tem apenas

uma opção.

Desenvolvedor, clique em Inserir e,

em Controles de Formulário, clique em .

Para adicionar um botão de opção, clique na

guia Desenvolvedor, clique em Inserir e,

em Controles de Formulário, clique em .

Formatar Controles

O interessante é que ambos os controles anteriores sejam inseridos em uma Caixa de

Grupo. Caixas de grupo e controles de quadro são objetos retangulares com rótulos opcionais.Use uma caixa de grupo ou um controle de quadro para organizar visualmente os itensrelacionados em um formulário.

Macros e VBA - ExcelAula 2 – Parte 05

-Barra de Rolagem

Uma barra de rolagem horizontal e vertical são exibidos em um Excel pasta de trabalho

para que você pode percorrer os dados em suas planilhas. No entanto, você pode ativar

barras de rolagem ou desativar conforme necessário.

Formatar Controles

Macros e VBA - ExcelAula 2 – Parte 06

-Botão

Você pode usar um botão (um controle de Formulário) ou um botão de comando (um controle ActiveX) para executar uma macro que realiza uma ação sempre que um usuário clica nesse botão.

Formatar Controles

Perguntas?