Excel 2016 com VBA · 1. Cria macro de gravação; 2. Diferencia referência relativa e absoluta;...
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
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?