Professional Documents
Culture Documents
Objeto Workbook so as pastas de trabalho do Excel; Objeto Worksheet so as planilhas da pasta do Excel;
Objeto Range so as clulas das planilhas;
13 de setembro de 2007
UTFPR Damat
Apostila - 114
Pg. 1
Exemplo: o objeto Worksheet tem uma propriedade chamada Name, que retorna o nome da planilha.
13 de setembro de 2007
UTFPR Damat
Apostila - 114
Pg. 2
1. Workbooks - coleo de todas as pastas de trabalho abertas; 2. Worksheets coleo de todas as planilhas abertas;
13 de setembro de 2007
UTFPR Damat
Apostila - 116
Pg. 3
13 de setembro de 2007
UTFPR Damat
Apostila - 117
Pg. 4
Exemplo:
Dim Ws As worksheet Set Ws = ThisWorkbook.Worksheets(Dados).
13 de setembro de 2007
UTFPR Damat
Apostila - 117
Pg. 5
13 de setembro de 2007
UTFPR Damat
Apostila - 117
Pg. 6
Apostila - 119
Pg. 7
Usamos o objeto Application quanto temos que configurar alguma opo do Excel, como por exemplo, alterar as opes disponveis no menu Ferramentas Opes e tambm quanto temos que acessar dados de uma planilha externa.
13 de setembro de 2007
UTFPR Damat
Apostila - 119
Pg. 8
Public Sub TesteApp() Dim App As Application Set App = Excel.Application 'Exibe algumas propriedades do objeto Applicaton. MsgBox "Impressora padro: " & App.ActivePrinter MsgBox "Verso do Excel: " & App.Build MsgBox "Onde est instalado o Excel: " & App.Path End Sub
Detalhes a seguir:
13 de setembro de 2007
UTFPR Damat
Apostila - 131
Pg. 9
13 de setembro de 2007
UTFPR Damat
Apostila - 131
Pg. 10
13 de setembro de 2007
UTFPR Damat
Apostila - 131
Pg. 11
13 de setembro de 2007
UTFPR Damat
Apostila - 132
Pg. 12
MsgBox "Onde est instalado o Excel: " & App.Path Esta linha de cdigo, produzir a mensagem indicada no exemplo da Figura a seguir:
13 de setembro de 2007
UTFPR Damat
Apostila - 132
Pg. 13
13 de setembro de 2007
UTFPR Damat
Apostila - 142
Pg. 14
Apostila - 142
Pg. 15
Expresso: obrigatria e deve conter uma expresso que retorne um objeto Application;
Key: uma String obrigatria e determina uma seqncia de caracteres indicando a tecla a ser pressionada; Procedure: uma variant opcional. Indica o nome do procedimento a ser executado.
13 de setembro de 2007
UTFPR Damat
Apostila - 144
Pg. 16
13 de setembro de 2007
UTFPR Damat
Apostila - 144
Pg. 17
13 de setembro de 2007
UTFPR Damat
Apostila - 145
Pg. 18
13 de setembro de 2007
UTFPR Damat
Apostila - 145
Pg. 19
13 de setembro de 2007
UTFPR Damat
Apostila - 145
Pg. 20
13 de setembro de 2007
UTFPR Damat
Apostila - 145
Pg. 21
13 de setembro de 2007
UTFPR Damat
Apostila 146
Pg. 22
13 de setembro de 2007
UTFPR Damat
EarliestTime: Variant obrigatria. Especifica quando voc deseja que esse procedimento seja executado; Procedure: String obrigatria. Indica o nome do procedimento a ser executado.
13 de setembro de 2007
UTFPR Damat
Apostila - 146
Pg. 24
13 de setembro de 2007
UTFPR Damat
13 de setembro de 2007
UTFPR Damat
Apostila - 147
Pg. 26
Este exemplo cancela a definio de OnTime do exemplo anterior: Application.OnTime EarliestTime:=TimeValue("17:00:00"), _ Procedure:="my_Procedure", Schedule:=False
13 de setembro de 2007
UTFPR Damat
Criao de um objeto Application e aplicao do mtodo Open para abrir uma pasta do Excel: Abre a pasta de trabalho dada pelo caminho onde est dentro do computador ou por uma varivel que recebeu a atribuio da referida pasta.
Set xl = CreateObject("Excel.Sheet")
xl.Application.Workbooks.Open "C:\ExApp.xls"
13 de setembro de 2007
UTFPR Damat
Apostila 129
Pg. 28
Usamos a funo CreateObject para criar um objeto do tipo planilha do Excel, objeto esse que associado com a varivel xl:
Set xl = CreateObject("Excel.Sheet")
13 de setembro de 2007
UTFPR Damat
Apostila - 129
Pg. 29
FileFilter: Variant opcional. Uma seqncia que especifica critrios de filtragem do arquivo. Se omitido, o padro deste argumento ser Todos os arquivos(*.*),*.*; FilterIndex: Variant opcional. Especifica os nmeros de ndice dos critrios padro de filtragem de arquivo, de 1 at o nmero de filtros especificado em FileFilter.
13 de setembro de 2007
UTFPR Damat
Apostila - 148
Pg. 30
13 de setembro de 2007
UTFPR Damat
Este exemplo exibe a caixa de dilogo Open, com o filtro de arquivo definido para arquivos de texto. Se o usurio escolher um nome de arquivo, o cdigo exibir esse nome de arquivo em uma caixa de mensagens. O arquivo no ser aberto.
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then MsgBox "Open " & fileToOpen End If
13 de setembro de 2007
UTFPR Damat
Apostila - 149
Pg. 32
Este exemplo exibe a caixa de dilogo Open, com o filtro de arquivo definido para arquivos de texto (*.txt) e arquivos do Excel (*.xls), com um ttulo Arquivos e armazena o valor retornado na varivel ArquivoACarregar. Em seguida, abre o arquivo usando o mtodo Open. Set xl = CreateObject("Excel.Sheet") ArquivoaCarregar = Application.GetOpenFilename _
("Text Files (*.txt),*.txt, Excel Files(*.xls),*xls", 2, "Arquivos de Planilha")
Apostila - 149
Pg. 33
E mtodo utilizado para exibir a caixa de dilogo Abrir e permite que o usurio abra um arquivo. Se um novo arquivo for aberto com sucesso, esse mtodo retornar True. Se o usurio cancelar a caixa de dilogo, este mtodo retornar False.
Sintaxe:
Exemplo:
13 de setembro de 2007
UTFPR Damat
13 de setembro de 2007
UTFPR Damat
Apostila - 153
Pg. 36
Exemplo:
13 de setembro de 2007
UTFPR Damat
Apostila - 154
Pg. 37
Apostila - 154
Pg. 38
Exemplo 2: Definir a frmula de clculo para manual e em seguida para automtica. til quando muitas alteraes so feitas durante a execuo de um cdigo, o que pode tornar a execuo deste, muito lenta. Desta forma, executa-se o cdigo e faz-se a atualizao dos clculos apenas ao final.
13 de setembro de 2007
UTFPR Damat
Apostila - 154
Pg. 39
13 de setembro de 2007
UTFPR Damat
Apostila - 154
Pg. 40
Workbooks(Vendas)
13 de setembro de 2007
UTFPR Damat
Apostila - 120
Pg. 41
3. A propriedade ActiveWorkbook retorna a pasta de trabalho que est ativa no momento. O exemplo seguinte define o nome do autor da pasta de trabalho ativa:
4. A propriedade ThisWorkbook retorna a pasta de trabalho onde h cdigo de VBA. A pasta de trabalho ativa a que est chamando o suplemento. Por exemplo:
13 de setembro de 2007
UTFPR Damat
Apostila - 120
Pg. 42
13 de setembro de 2007
UTFPR Damat
Apostila 299
Pg. 43
13 de setembro de 2007
UTFPR Damat
Apostila - 302
Pg. 44
13 de setembro de 2007
UTFPR Damat
Apostila - 302
Pg. 45
13 de setembro de 2007
UTFPR Damat
Apostila - 302
Pg. 46
Exemplo: Esta linha de programao fecha a pasta Book1.xls e descarta quaisquer alteraes que tenham sido feitas.
Workbooks(ExApp.xls)Close SaveChanges:=False
13 de setembro de 2007
UTFPR Damat
Apostila - 303
Pg. 47
Apostila - 299
Pg. 48
Propriedade Path: retorna o caminho completo do objeto, excluindo o separador final e o nome do objeto. uma propriedade do tipo String e somente leitura;
Exemplo:
13 de setembro de 2007
UTFPR Damat
Apostila - 305
Pg. 49
Apostila - 121
Pg. 50
Propriedade Activate: Utilizada para ativar uma planilha ou grfico: Sub AtivaPeloNome() Worksheets(1).Activate Worksheets(Plan2).Activate Worksheets(Grfico1).Activate
End Sub
13 de setembro de 2007
UTFPR Damat
Apostila - 299
Pg. 51
13 de setembro de 2007
UTFPR Damat
Apostila - 122
Pg. 52
13 de setembro de 2007
UTFPR Damat
Apostila - 303
Pg. 53
Propriedade HasLegend: se for atribudo False, a legenda ser omitida. Se for atribudo True, a legenda ser exibida.
13 de setembro de 2007
UTFPR Damat
Apostila - 303
Pg. 54
ObjetosWorkbook Worksheet
Apostila - 308
Pg. 55
Mtodo Add da Coleo Worksheets: Utilizado para criar uma nova planilha;
Sintaxe:
expresso.Add(Before, After, Count, Type) Exemplo:
Apostila - 308
Pg. 56
Eventos:
So aes realizadas pelo usurio usando o teclado ou mouse. Por exemplo, ao abrir uma pasta de trabalho, so disparados diversos eventos do objeto Application e do objeto Workbook. Outro exemplo, seria quando voc clica em um boto de comando:
13 de setembro de 2007
UTFPR Damat
Apostila - 329
Pg. 57
13 de setembro de 2007
UTFPR Damat
Apostila - 331
Pg. 58
3. Selecione o comando Ferramentas -> Macro -> Editor Visual Basic... ou pressione Alt+F11.
4. Nas opes que so exibidas do lado esquerdo da tela clique em Plan1 (Plan1) para selecionar esta opo.
13 de setembro de 2007
UTFPR Damat
13 de setembro de 2007
UTFPR Damat
13 de setembro de 2007
UTFPR Damat
Apostila - 331
Pg. 61
13 de setembro de 2007
UTFPR Damat
Apostila - 331
Pg. 62
13 de setembro de 2007
UTFPR Damat
Apostila - 331
Pg. 63
13 de setembro de 2007
UTFPR Damat
Apostila - 331
Pg. 64
13 de setembro de 2007
UTFPR Damat
Apostila - 331
Pg. 65
13 de setembro de 2007
UTFPR Damat
Apostila - 331
Pg. 66
Apostila - 341
Pg. 67
13 de setembro de 2007
UTFPR Damat
Apostila - 341
Pg. 68
13 de setembro de 2007
UTFPR Damat
13 de setembro de 2007
UTFPR Damat
Apostila - 122
Pg. 71
Range("A5").Value = Range("A1").Value
13 de setembro de 2007
UTFPR Damat
Apostila - 122
Pg. 72
Objeto Range
Apostila - - 250
Pg. 73
Worksheets("Plan3").Activate Dim rng As Range Set rng = Worksheets("Plan3").Range("C2:C6") rng.Formula = "=A2-B2" MsgBox "Verifique o resultado da operao."
13 de setembro de 2007
UTFPR Damat
Apostila - 251
Pg. 74
Objeto Range
Charts(Grfico1).ChartArea.Clear
13 de setembro de 2007
UTFPR Damat
Apostila - 235
Pg. 75
Objeto Range
Expresso.ClearContents
Exemplo: Worksheets(Plan1).Range(A1:F40).ClearContents
Charts(Grfico1).ChartArea.ClearContents
13 de setembro de 2007
UTFPR Damat
Apostila - 236
Pg. 76
ObjetoRange
13 de setembro de 2007
UTFPR Damat
Apostila - 123
Pg. 77
Apostila - 123
Pg. 78
13 de setembro de 2007
UTFPR Damat
Apostila - 123
Pg. 79
13 de setembro de 2007
UTFPR Damat
Apostila - 123
Pg. 80
Apostila - 124
Pg. 81
Exemplo:
Mtodo Union
Range(B5:C8).Select
Usa-se Mtodo Union(intervalo1,intervalo2,...) para retornar intervalos de vrias reas isto , intervalos compostos de dois ou mais blocos contguos de clulas.
13 de setembro de 2007
UTFPR Damat
Apostila - 124
Pg. 82
Dim r1 As Range, r2 As Range Dim myMultiAreaRange As Range Worksheets(Plan1").Activate Set r1 = Range("A1:B2") Set r2 = Range("C3:D4") Set myMultiAreaRange = Union(r1, r2) myMultiAreaRange.Select
13 de setembro de 2007
UTFPR Damat
Apostila - 124
Pg. 83
Cells: retorna uma coleo de clulas. Esta propriedade est definida pelos parmetros passados quando da chamada da propriedade Cells; Rows: Retorna uma coleo de linhas do objeto Range. A coleo de linhas tambm um objeto do tipo Range;
Colums: retorna uma coleo de colunas do objeto Range. A coleo de coluna tambm um objeto Range.
13 de setembro de 2007
UTFPR Damat
Apostila - 207
Pg. 84
Estrutura For Each: percorre as clulas de um objeto Range Dim MinhaFaixa As Range Set MinhaFaixa = Range("A1:B5") For Each Celula In MinhaFaixa.Cells Celula.Value = 50 Next MsgBox "Verifique o resultado da operao." End Sub
13 de setembro de 2007
UTFPR Damat
Apostila - 210
Pg. 85
13 de setembro de 2007
UTFPR Damat
Apostila - 212
Pg. 86
13 de setembro de 2007
UTFPR Damat
Apostila - 212
Pg. 87
Define um intervalo de linhas como objeto de um comando ou propriedade. Sintaxe: Range(Linha inicial:Linha final) Rows(Linha inicial:Linha final) Exemplo:
Apostila - 219
Pg. 88
Define um intervalo de colunas como objeto de um comando ou propriedade. Sintaxe: Range(Coluna inicial:Coluna final) Columns(Coluna inicial:Coluna final) Exemplo: Worksheets(1).Range( A:C).Select Worksheets(2).Columns( A:C).Select
13 de setembro de 2007
UTFPR Damat
Apostila - 219
Pg. 89
Retorna o nmero da primeira linha ou coluna na primeira rea do intervalo especificado. do tipo Long e somente leitura. Exemplo: A primeira linha do cdigo retornar 3 porque a primeira referncia do intervalo B3, que est na linha 3 Msgbox Worksheets(plan1).Range(B3:D12).Row
A segunda linha do cdigo retornar 2 porque B , que a primeira coluna od intervalo, a coluna 2.
Msgbox Worksheets(plan1).Range(B3:D12).Column
13 de setembro de 2007
UTFPR Damat
Apostila - 219
Pg. 90
Retorna o nmero de linhas ou colunas do intervalo especificado. Exemplo: A primeira linha do cdigo retornar 10 porque o nmero total de linhas do intervalo. Msgbox Worksheets(plan1).Range(B3:D12).Rows.Count A segunda linha do cdigo retornar 3 porque o nmero total de colunas do intervalo
Msgbox Worksheets(plan1).Range(B3:D12).Columns.Count
13 de setembro de 2007
UTFPR Damat
Apostila - 219
Pg. 91
Objeto Range
Apostila - 226
Pg. 92
Exemplo: Set rangeToUse = Selection MsgBox rangeToUse.Areas.Count If rangeToUse.Areas.Count = 1 Then rangeToUse.Font.Bold = True Else For Each singleArea In rangeToUse.Areas singleArea.Borders.LineStyle = xlThick Next End If
13 de setembro de 2007
UTFPR Damat
Apostila - 227
Pg. 93
Neste exemplo, a regio atual A1:D7, ou seja, com este mtodo o Excel tenta detectar a regio da planilha que est sendo utilizada. Se houver clulas, linhas ou colunas em branco, dentro da regio em uso, o Excel poder retornar uma faixa incorreta.
13 de setembro de 2007
UTFPR Damat
Apostila - 240
Pg. 94
Objeto Range
13 de setembro de 2007
UTFPR Damat
Apostila - 227
Pg. 95
Exemplo 01: Este exemplo seleciona as clulas A1:C3 de Plan1 e, em seguida, faz de B2 a clula ativa.
Worksheets("Plan3").Activate Range("A1:C3").Select Range("B2").Activate Exemplo 02:Este exemplo abre a pasta ExApp.xls, ativa a pasta ObjetoRange e em seguida, ativa a pasta ExApp.xls. Workbooks.Open ("c:/ExApp.xls") Workbooks("ObjetoRange.xls").Activate Workbooks("ExApp.xls").Activate
13 de setembro de 2007
UTFPR Damat
Apostila - 228
Pg. 96
Objeto Range
ObjetoRange
Apostila - 229
Pg. 97
Objeto Range
expresso.copy
Sintaxe 2: Copia o objeto range selecionado para um intervalo especificado como destino ou para a rea de transferncia. expresso.copy(Destination) Sintaxe 2: Copia a planilha para um outro lugar na pasta de trabalho. expresso.copy(Antes, Depois)
13 de setembro de 2007
UTFPR Damat
Apostila - 237
Pg. 98
Objeto Range
ObjetoRange
13 de setembro de 2007
UTFPR Damat
Apostila - 237
Pg. 99
Objeto Range
Exemplo: Recorta o intervalo A1:G37 da Planilha Plan1 e o coloca na rea de tranferncia. Worksheets(Plan).Range(A1:G37).Cut
UTFPR Damat
13 de setembro de 2007
Apostila - 238
Pg. 100
13 de setembro de 2007
UTFPR Damat
329 -
Pg. 101
13 de setembro de 2007
UTFPR Damat
329 -
Pg. 102
Objeto Range
13 de setembro de 2007
UTFPR Damat
Apostila - 235
Pg. 103
Objeto Range
Apostila - 238
Pg. 104
Exemplo Prtico 1: Elaborar um cdigo que faz a comparao entre valores de duas colunas, linha a linha. Se o valor da segunda coluna for maior ou igual ao valor da primeira, a clula da segunda coluna ser colocada em destaque, atravs da alterao de sua cor de fundo.
13 de setembro de 2007
UTFPR Damat
Apostila - 278
Pg. 105
Worksheets("ExPrat1").Activate Dim CurrCell As Range For Each CurrCell In Range("C2:C13") If CurrCell.Value < CurrCell.Offset(0, -1).Value Then CurrCell.Interior.ColorIndex = 6 Else CurrCell.Interior.ColorIndex = xlNone End If Next MsgBox "Verifique o resultado da operao!"
13 de setembro de 2007
UTFPR Damat
Apostila - 278
Pg. 106
Exemplo Prtico 2: Elaborar um cdigo que separa dados de uma coluna em uma ou mais colunas. Considere os dados: Antes de ir para a pasta ObjetoRange.xls, verificar as prximas transparncias.
Nosso objetivo extrair somente o cdigo da coluna A (sem os parnteses) e coloc-lo na coluna B e extrair somente o nome e coloc-lo na coluna C:
13 de setembro de 2007
UTFPR Damat
Apostila 285
Pg. 107
Worksheets("ExPrat2").Activate
13 de setembro de 2007
UTFPR Damat
Apostila - 285
Pg. 108
strName = rngCell.Value
13 de setembro de 2007
UTFPR Damat
Apostila - 285
Pg. 109
Apostila - 285
Pg. 110
Apostila - 285
Pg. 111
Worksheets("ExPrat3").Range("D1").AutoFill _
Destination:=Worksheets("ExPrat3").Range("D1:D" & lastRw)
Apostila - 289
Pg. 112