Você está na página 1de 112

Excel Macros e Programao em VBA

Modelo de Objetos do Excel


5

Objeto: representa um elemento da Pasta do Excel ou o prprio Excel;


Objeto Application o aplicativo Excel;

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

Excel Macros e Programao em VBA


Mtodos e Propriedades de Objetos
Cada objeto possui mtodos e propriedades. Mtodos: utilizados para executar determinadas aes. So representados por verbos; Exemplos: Abrir uma planilha, ativar uma planilha, selecionar uma faixa de clulas, excluir uma faixa de clulas; Propriedades: descrevem caractersticas dos objetos;

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

Excel Macros e Programao em VBA


Colees de Objetos
Coleo: conjunto de objetos do mesmo tipo;

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

Excel Macros e Programao em VBA


Variveis de objeto
Uma varivel de objeto armazena muitos valores. Basicamente, qualquer propriedade que est associada ao objeto associada varivel de objeto. Exemplos: Dim App As Application Dim Wb As Workbook Dim Ws As Worksheet

13 de setembro de 2007

UTFPR Damat

Apostila - 117

Pg. 4

Excel Macros e Programao em VBA


Instruo Set
Atribui uma referncia de objeto a uma varivel ou propriedade.

Exemplo:
Dim Ws As worksheet Set Ws = ThisWorkbook.Worksheets(Dados).

13 de setembro de 2007

UTFPR Damat

Apostila - 117

Pg. 5

Excel Macros e Programao em VBA


Estrutura For...Each
Estrutura utilizada para percorrer todos os elementos de uma coleo. Exemplo: Percorrer todos os elementos da coleo Worksheets de uma pasta de trabalho do Excel, exibindo o nome de todas as planilhas;

13 de setembro de 2007

UTFPR Damat

Apostila - 117

Pg. 6

Excel Macros e Programao em VBA


Objeto Application
Representa todo o aplicativo Microsoft Excel. uma instncia do Excel carregada na memria, isto , ao abrir o Excel, automaticamente criado na memria do computador um Objeto Application. Elementos de um Objeto Application: 1. Definies e opes para o aplicativo como um todo; 2. Mtodos que retornam objetos de outros nveis, como ActiveCell, ActiveSheet e assim por diante.

Possui 218 propriedades e mtodos.


13 de setembro de 2007
UTFPR Damat

Apostila - 119

Pg. 7

Excel Macros e Programao em VBA


Objeto Application
Quando estamos trabalhando dentro de uma planilha do Excel, no se faz necessria a criao explcita de um objeto Application;

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

Excel Macros e Programao em VBA


Exemplos de cdigo que usam um Objeto Application
Declarao e utilizao do objeto Application:
ObjetoApplication

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

Excel Macros e Programao em VBA


Exemplos de cdigo que usam um Objeto Application
Neste exemplo, inicialmente declaro uma varivel chamada App, como sendo do tipo Application: Dim App As Application Inicializo esta varivel, apontando-a para a instncia atual do Excel. Isso feito usando o mtodo Application, do objeto Excel: Set App = Excel.Application

13 de setembro de 2007

UTFPR Damat

Apostila - 131

Pg. 10

Excel Macros e Programao em VBA


Exemplos de cdigo que usam um Objeto Application
Utilizo a propriedade ActivePrinter, para exibir o nome da impressora configurada como Impressora padro, ou seja, impressora ativa: MsgBox "Impressora padro: " & App.ActivePrinter Esta linha de cdigo, produzir a mensagem indicada no exemplo da Figura a seguir:

13 de setembro de 2007

UTFPR Damat

Apostila - 131

Pg. 11

Excel Macros e Programao em VBA


Exemplos de cdigo que usam um Objeto Application
Utilizo a propriedade Build, para exibir o nmero de compilao, ou seja, o nmero oficial de Verso do Excel: MsgBox "Verso do Excel: " & App.Build

Esta linha de cdigo, produzir a mensagem indicada no exemplo da Figura a seguir:

13 de setembro de 2007

UTFPR Damat

Apostila - 132

Pg. 12

Excel Macros e Programao em VBA


Exemplos de cdigo que usam um Objeto Application
Utilizo a propriedade Path, para exibir o caminho completo, onde est instalado o executvel do Excel:

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

Excel Macros e Programao em VBA


Exemplos de cdigo que usam um Objeto Application
Propriedade EnableAutoComplete
Esta propriedade utilizada para habilitar/desabilitar o recurso de AutoCompletar, o qual est habilitado, por padro.

13 de setembro de 2007

UTFPR Damat

Apostila - 142

Pg. 14

Excel Macros e Programao em VBA


Exemplos de cdigo que usam um Objeto Application
ObjetoApplication

Exemplo da Propriedade EnableAutoComplete

Este exemplo desativa o recurso de AutoCompletar.


Application.EnableAutoComplete = False

Este exemplo ativa o recurso de AutoCompletar. Application.EnableAutoComplete = True


13 de setembro de 2007
UTFPR Damat

Apostila - 142

Pg. 15

Excel Macros e Programao em VBA


Associao de Macros Teclas Especiais
Mtodo OnKey: utilizado para executar um procedimento especificado quando uma determinada tecla ou combinao de teclas pressionada; Sintaxe:

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

Excel Macros e Programao em VBA


Associao de Macros Teclas Especiais
Exemplo: criar uma tecla de atalho que atribui o procedimento ImportaDados seqncia de teclas CTRL+SINAL DE ADIO e atribui ImprimeEspecial seqncia de teclas SHIFT+CTRL+SETA DIREITA. Application.OnKey "^{+}", "ImportaDados

Application.OnKey "+^{RIGHT}", "ImprimeEspecial"

13 de setembro de 2007

UTFPR Damat

Apostila - 144

Pg. 17

Excel Macros e Programao em VBA


Associao de Macros Teclas Especiais
Tabela com os cdigos para teclas que no tem caracteres exibidos quando so pressionadas:

13 de setembro de 2007

UTFPR Damat

Apostila - 145

Pg. 18

Excel Macros e Programao em VBA


Associao de Macros Teclas Especiais

13 de setembro de 2007

UTFPR Damat

Apostila - 145

Pg. 19

Excel Macros e Programao em VBA


Associao de Macros Teclas Especiais

13 de setembro de 2007

UTFPR Damat

Apostila - 145

Pg. 20

Excel Macros e Programao em VBA


Associao de Macros Teclas Especiais

13 de setembro de 2007

UTFPR Damat

Apostila - 145

Pg. 21

Excel Macros e Programao em VBA


Associao de Macros Teclas Especiais
Pode-se tambm usar teclas combinadas com SHIFT e/ou CTRL e/ou ALT. A tabela lista as combinaes:

13 de setembro de 2007

UTFPR Damat

Apostila 146

Pg. 22

Excel Macros e Programao em VBA


Associao de Macros Teclas Especiais
Utilizao do Mtodo OnKey Este mtodo normalmente utilizado em um procedimento associado ao evento Open da pasta de trabalho. O cdigo associado ao evento Open ser executado automaticamente quando o evento Open for disparado, neste caso, quando a pasta de trabalho for aberta. Para desativar uma tecla de atalho, basta inserir no argumento Procedure uma seqncia vazia . Por exemplo:

Application.OnKey "+^{RIGHT}", ""

13 de setembro de 2007

UTFPR Damat

Apostila - 146 Pg. 23

Excel Macros e Programao em VBA


Mdoto OnTime
Utilizado para programar um procedimento para ser executado em um momento especificado no futuro Sintaxe:
Application.OnTime(EarliestTime, Procedure, LatestTime, Schedule)

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

Excel Macros e Programao em VBA


Mdoto OnTime
LatestTime:
Variant opcional. Especifica at quando o procedimento pode ser executado. Por exemplo, se LatestTime estiver definido como EarliestTime+30 e o Microsoft Excel no estiver em modo Pronto, Copiar, Recortar ou Localizar em EarliestTime devido a um outro procedimento estar sendo executado, o Microsoft Excel ir esperar 30 segundos para que o primeiro procedimento termine. Se o Microsoft Excel no estiver em modo Pronto dentro de 30 segundos, o procedimento no ser executado. Se esse argumento for omitido, o Microsoft Excel esperar at que o procedimento possa ser executado.

13 de setembro de 2007

UTFPR Damat

Apostila - 146 Pg. 25

Excel Macros e Programao em VBA


Mdoto OnTime
Schedule: Variant opcional. True para programar um novo procedimento OnTime. False para limpar um procedimento definido anteriormente. O valor padro True
Obs.: use Now + TimeValue(time) para programar algo para ser executado quando uma quantidade de tempo especfica tiver decorrido. Use TimeValue(time) para programar algo para ser executado em um momento especfico.

13 de setembro de 2007

UTFPR Damat

Apostila - 147

Pg. 26

Excel Macros e Programao em VBA


Mdoto OnTime
ObjetoApplication

Este exemplo executa my_Procedure aps 15 segundos:


Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

Este exemplo executa my_Procedure s 17:00: Application.OnTime TimeValue("17:00:00"), "my_Procedure"

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

Apostila - 148 Pg. 27

Excel Macros e Programao em VBA


Application Mtodo Open
ObjetoApplication

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

Excel Macros e Programao em VBA


Exemplos de cdigo que usam um Objeto Application

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

Excel Macros e Programao em VBA


Mtodo GetOpenFileName
Exibe a caixa de dilogo Abrir padro. Retorna o nome de arquivo do usurio sem realmente abrir nenhum arquivo. utilizado para obter o nome (caminho completo) de um arquivo e retornar este nome para uma varivel do tipo texto. Sintaxe:
Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

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

Excel Macros e Programao em VBA


Mtodo GetOpenFileName
Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

Title: Variant opcional. Especifica o ttulo da caixa de dilogo;


ButtonText: Variant opcional. Somente Macintosh; MultiSelect: Variant opcional. True para permitir que vrios nomes de arquivos sejam selecionados. False para permitir que somente um nome de arquivo seja selecionado. O valor padro False.

13 de setembro de 2007

UTFPR Damat

Apostila - 148 Pg. 31

Excel Macros e Programao em VBA


Mtodo GetOpenFileName
Exemplos:
ObjetoApplication

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

Excel Macros e Programao em VBA


Mtodo GetOpenFileName
Exemplos:
ObjetoApplication

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

MsgBox ArquivoaCarregar xl.Application.Workbooks.Open ArquivoaCarregar


13 de setembro de 2007
UTFPR Damat

Apostila - 149

Pg. 33

Excel Macros e Programao em VBA


Mtodo FindFile
ObjetoApplication

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

Apostila - 152 Pg. 34

Excel Macros e Programao em VBA


Objeto Application
Propriedade DisplayAlerts:

Se o valor atribudo for True, as mensagem de alerta sero acionadas.


Se o valor atribudo for False, ento as mensagens no sero acionadas.

Exemplo: Application.DisplayAlerts = True


13 de setembro de 2007
UTFPR Damat

Apostila - 152 Pg. 35

Excel Macros e Programao em VBA


Objeto Application Reclculo da Planilha
Por padro o Excel faz o reclculo automtico das planilhas. Sempre que o valor de uma clula alterado, todas as frmulas que dependem do valor que foi alterado so recalculadas; Este procedimento pode ser controlado usando o comando Ferramentas Opes Guia Clculo.
Por vezes vantagem desabilitar o reclculo automtico. O mtodo Calculate e a propriedade Calculation ajudam a controlar este processo.

13 de setembro de 2007

UTFPR Damat

Apostila - 153

Pg. 36

Excel Macros e Programao em VBA


Objeto Application Mtodo Calculate
Utilizado para forar um reclculo imediato, ou em todas as pastas de trabalho abertas, ou em uma planilha especfica ou ainda em um intervalo de clulas em uma planilha. Ver tabela:

Exemplo:

13 de setembro de 2007

UTFPR Damat

Apostila - 154

Pg. 37

Excel Macros e Programao em VBA


Objeto Application Propriedade Calculation
Retorna ou define o modo de clculo. Pode assumir o valor definido por uma das seguintes constantes X1Calculation:

Exemplo 1: Calcula valores em pastas de trabalho, antes de serem salvas em disco.


Application.Calculation = xlCalculationManual Application.CalculateBeforeSave = True
13 de setembro de 2007
UTFPR Damat

Apostila - 154

Pg. 38

Excel Macros e Programao em VBA


Objeto Application Propriedade Calculation
ObjetoApplication

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

Excel Macros e Programao em VBA


Objeto Application Propriedade Calculation
Sub PropriedadeCalculation() 'Pgina 154 Application.Calculation = xlCalculationManual For i = 1 To 5 Cells(1, i) = 3 * i Next 'Comandos que fazem a alterao dos dados Application.Calculate 'Faz o reclculo da planilha Application.Calculation = xlCalculationAutomatic End Sub

13 de setembro de 2007

UTFPR Damat

Apostila - 154

Pg. 40

Excel Macros e Programao em VBA


Objeto Workbook
O objeto Workbook representa uma pasta de trabalho do Microsoft Excel (arquivo.xls). um membro da coleo Workbooks, que contm todos os objetos Workbook atualmente abertos. Propriedades para retornar um objeto Workbook: 1. Usa-se workbooks(ndice), onde o ndice o nmero ou o nome da pasta de trabalho aberta. Exemplos: Workbooks(1)

Workbooks(Vendas)
13 de setembro de 2007
UTFPR Damat

Apostila - 120

Pg. 41

Excel Macros e Programao em VBA


Objeto Workbook
2. A propriedade Name retorna o nome da pasta de trabalho. Por exemplo:

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

Excel Macros e Programao em VBA


Objeto Workbook
Mtodo Open: Abre uma pasta de trabalho.
ObjetosWorkbook Worksheet

Sub AbrePasta() Workbooks.Open("C:\ExApp.xls") End Sub

13 de setembro de 2007

UTFPR Damat

Apostila 299

Pg. 43

Excel Macros e Programao em VBA


Objeto Workbook
Mtodo Close: utilizado para fechar uma pasta de trabalho; Sintaxe:

13 de setembro de 2007

UTFPR Damat

Apostila - 302

Pg. 44

Excel Macros e Programao em VBA


Objeto Workbook

13 de setembro de 2007

UTFPR Damat

Apostila - 302

Pg. 45

Excel Macros e Programao em VBA


Objeto Workbook

13 de setembro de 2007

UTFPR Damat

Apostila - 302

Pg. 46

Excel Macros e Programao em VBA


Objeto Workbook
ObjetosWorkbook Worksheet

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

Excel Macros e Programao em VBA


Objeto Workbook
Mtodo Add: Cria uma nova pasta de trabalho.
Mtodo SaveAs: equivalente ao comando Arquivo Salvar como... utilizado para salvar as alteraes da pasta de trabalho em um arquivo diferente do arquivo atual; Sub AddNew() Set NovaPasta = Workbooks.Add NovaPasta.Title = "Primeiro Trimestre - 2003" NovaPasta.Subject = "Vendas do Trimestre" NovaPasta.SaveAs filename:="C:\Vendas.xls" End Sub
13 de setembro de 2007
UTFPR Damat
ObjetosWorkbook Worksheet

Apostila - 299

Pg. 48

Excel Macros e Programao em VBA


Objeto Workbook
ObjetosWorkbook Worksheet

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

Excel Macros e Programao em VBA


Objeto Worksheet
O objeto Worksheet representa uma planilha do Excel. um membro da coleo Worksheets, que contm todas as planilha atualmente abertas. Use Worksheets(ndice), Charts(ndice), Worksheets(Nome) ou Charts(Nome) onde ndice o nmero de ordem da planilha ou nome da planilha ou grfico para retornar um nico objeto worksheet. Worksheets(1) Worksheets(Plan1) Charts(Grfico1)
13 de setembro de 2007
UTFPR Damat

Apostila - 121

Pg. 50

Excel Macros e Programao em VBA


Objeto Worksheet
ObjetosWorkbook Worksheet

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

Excel Macros e Programao em VBA


Objeto Worksheet
Propriedade ActiveSheet: Quando se quer fazer referncia planilha ativa Exemplo: ativa a Plan1, define a orientao da pgina como modo paisagem e em seguida imprime a planilha.

13 de setembro de 2007

UTFPR Damat

Apostila - 122

Pg. 52

Excel Macros e Programao em VBA


Objeto Worksheet
ObjetosWorkbook Worksheet

Propriedade Name: retorna o nome da planilha; Exemplo:

13 de setembro de 2007

UTFPR Damat

Apostila - 303

Pg. 53

Excel Macros e Programao em VBA


Objeto Worksheet
Propriedades ActiveChart: retorna um objeto Chart representando o grfico ativo da pasta de trabalho ativa ou na janela ou pasta de trabalho especificada;
ObjetosWorkbook Worksheet

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

Excel Macros e Programao em VBA


Objeto Worksheet
Sintaxe: Exemplo: Sub MtodoDelete() Application.DisplayAlerts = False Worksheets("Plan1").Delete MsgBox "Verifique a operao." Application.DisplayAlerts = True End Sub
13 de setembro de 2007
UTFPR Damat

Mtodo Delete: Exclui uma planilha da pasta de trabalho. Worksheets(NomedaPlanilha).Delete

ObjetosWorkbook Worksheet

Apostila - 308

Pg. 55

Excel Macros e Programao em VBA


Objeto Worksheet
ObjetosWorkbook Worksheet

Mtodo Add da Coleo Worksheets: Utilizado para criar uma nova planilha;

Sintaxe:
expresso.Add(Before, After, Count, Type) Exemplo:

Sub MtodoAddPlanilha() Worksheets.Add ActiveSheet.Name = "Plan1" End Sub


13 de setembro de 2007
UTFPR Damat

Apostila - 308

Pg. 56

Excel Macros e Programao em VBA


Eventos

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

Excel Macros e Programao em VBA


Eventos
Evento Activate: ocorre quando um objeto (Planilha, Grfico, Folha de dados, etc.) torna-se a janela ativa. Evento Deactivate: ocorre quando um objeto no mais uma janela ativa, ou seja, quando o objeto perde o foco. Sintaxe:

13 de setembro de 2007

UTFPR Damat

Apostila - 331

Pg. 58

Excel Macros e Programao em VBA


Eventos
Exemplo de Evento para Worksheet: Vamos criar um procedimento em resposta ao evento Activate. 1. Abra o Excel;
2. Abra a planilha C:\Programao VBA no Excel\Modulo 4 Exerccio 01- Eventos.xls.

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

Apostila - 331 Pg. 59

Excel Macros e Programao em VBA


Eventos
5. Na lista Geral, selecione Worksheet e na lista ao lado selecione Activate. Pode ocorrer de o Editor do VBA ter criado duas declaraes, uma para o evento Activate e uma para o Evento SelectionChange, conforme indicado a seguir:

13 de setembro de 2007

UTFPR Damat

Apostila - 331 Pg. 60

Excel Macros e Programao em VBA


Eventos
6. Exclua a declarao para o evento Worksheet_SelectionChange, mantendo apenas a declarao para o evento Worksheet_Activate; 7. Para o procedimento do evento Worksheet_Activate, insira o cdigo indicado a seguir:
If Range("B7").Value < 6500 Then MsgBox "META DE VENDAS NO ATINGIDA!!!" Else MsgBox "META DE VENDAS ATINGIDA!!! PARABNS!!!" End If

13 de setembro de 2007

UTFPR Damat

Apostila - 331

Pg. 61

Excel Macros e Programao em VBA


Eventos
8. A sua janela deve estar conforme indicado na Figura a seguir:

13 de setembro de 2007

UTFPR Damat

Apostila - 331

Pg. 62

Excel Macros e Programao em VBA


Eventos
9. Observe o objeto Worksheet selecionado na primeira lista e o evento Activate,selecionado na segunda lista. Ou seja, o Evento Activate do Objeto Worksheet. Clique no boto ( ) para salvar as alteraes e feche o Editor do VBA. 10.Agora vamos fazer com que o evento Activate da planilha Plan1 seja disparado.Clique em Plan2 para tirar o foco da planilha Plan1, agora clique de volta em Plan1 para colocar o foco em Plan1. Ao colocar o foco de volta em Plan1, ser disparado o evento Activate. O cdigo associado a este evento ser executado e ser exibida a mensagem indicada na Figura a seguir:

13 de setembro de 2007

UTFPR Damat

Apostila - 331

Pg. 63

Excel Macros e Programao em VBA


Eventos

13 de setembro de 2007

UTFPR Damat

Apostila - 331

Pg. 64

Excel Macros e Programao em VBA


Eventos
11.Clique em OK para fechar a mensagem. Esta mensagem foi exibida porque o valor da clula B7 5200, ou seja, um valor menor do que 6500. Agora vamos fazer uma alterao nas vendas do ano 2002. Vamos alterar as vendas deste ano para 4000, de tal maneira que o total de vendas fique em 8000, conforme indicado na Figura a seguir:

13 de setembro de 2007

UTFPR Damat

Apostila - 331

Pg. 65

Excel Macros e Programao em VBA


Eventos
12. Agora vamos fazer com que o evento Activate da planilha Plan1 seja disparado novamente. Clique em Plan2 para tirar o foco da planilha Plan1, agora clique de volta em Plan1 para colocar o foco em Plan1. Ao colocar o foco de volta em Plan1, ser disparado o evento Activate. O cdigo associado a este evento ser executado e ser exibida a mensagem indicada na Figura a seguir:

13 de setembro de 2007

UTFPR Damat

Apostila - 331

Pg. 66

Excel Macros e Programao em VBA


Eventos
Evento do Objeto Workbook: os eventos de pasta de trabalho ocorrem quando esta alterado ou quando qualquer planilha da pasta de trabalho alterada. Os eventos em pastas de trabalho so ativados por padro. Para visualizar os procedimentos de evento de uma pasta de trabalho, siga os passos indicados a seguir: 1. Abra o Excel. 2. Abra o arquivo a ser utilizado. 3. Selecione o comando Ferramentas -> Macro -> Editor Visual Basic... ou pressione Alt+F11. 4. Na rvore de opes, no lado esquerdo do Editor do VBA, clique na opo EstaPasta_de_trabalho.
13 de setembro de 2007
UTFPR Damat

Apostila - 341

Pg. 67

Excel Macros e Programao em VBA


Eventos
5. Na lista da esquerda selecione Workbook. 6. Abra a lista da direita e j sero exibidos todos os eventos do objeto Workbook, conforme ilustrado na Figura a seguir:

13 de setembro de 2007

UTFPR Damat

Apostila - 341

Pg. 68

Excel Macros e Programao em VBA


Eventos
7. Ao clicar em um dos eventos, ser criada a declarao para o procedimento associado ao evento. No exemplo a seguir, foi selecionado o evento Open, para o qual foi criada a seguinte declarao de procedimento:

Private Sub Workbook_Open()


End Sub

13 de setembro de 2007

UTFPR Damat

Apostila - 341 Pg. 69

Excel Macros e Programao em VBA


Eventos
Evento Open do Objeto Workbook: Ocorre quando a pasta de trabalho aberta.
Sintaxe:

Exemplo do Evento Open:

13 de setembro de 2007

UTFPR Damat

Apostila - 341 Pg. 70

Excel Macros e Programao em VBA


Objeto Range
Representa uma clula, uma linha, uma coluna, uma seleo de clulas contendo um ou mais blocos contguos ou um intervalo 3D; Referncia a clula: Define uma nica clula como objeto de um comando ou propriedade. Range (A1) Referncia a intervalo de clulas: Define um intervalo de clulas como objeto de um comando ou propriedade Range(A1:B5)
13 de setembro de 2007
UTFPR Damat

Apostila - 122

Pg. 71

Excel Macros e Programao em VBA


Objeto Range
Propriedade Value:
Retorna ou define o valor de uma determinada clula do Range. Exemplo:

Range("A5").Value = Range("A1").Value

13 de setembro de 2007

UTFPR Damat

Apostila - 122

Pg. 72

Excel Macros e Programao em VBA


Propriedade Frmula: Retorna ou define a frmula do objeto, em notao de estilo A1 e no idioma da macro. do tipo variant de leitura e gravao para objetos Range, String de leitura e gravao para todos os demais objetos.
Se a clula contiver uma constante, essa propriedade retornar a constante. Se a clula estiver vazia, Formula retornar uma cadeia de caracteres vazia. Se a clula contiver uma frmula, a propriedade Formula retornar a frmula como uma cadeia de caracteres no mesmo formato em que ela seria exibida na barra de frmulas.
13 de setembro de 2007
UTFPR Damat

Objeto Range

Apostila - - 250

Pg. 73

Excel Macros e Programao em VBA


Objeto Range
ObjetoRange

Exemplo: Define a frmula para o intervalo de clulas C2 a C6 da planilha 3.

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

Excel Macros e Programao em VBA


Mtodo Clear: Se aplica a outros objetos, alm do objeto Range.
Utilizado para limpar as frmulas e a formatao da clulas. Sintaxe: expresso.Clear Exemplo: Worksheets(Plan1).Range(A1:F40).Clear

Objeto Range

Charts(Grfico1).ChartArea.Clear
13 de setembro de 2007
UTFPR Damat

Apostila - 235

Pg. 75

Excel Macros e Programao em VBA


Mtodo ClearContents: Limpa as frmulas do intervalo. Limpa os dados de um grfico mas deixa a formatao.
Sintaxe:

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

Excel Macros e Programao em VBA


Objeto Range
Exemplo: Preencher o intervalo A1:H8 com nmeros randmicos definindo a frmula para cada clula do intervalo.

Worksheets("sheet1").Activate Range("A1:H8").Formula = "=rand()"

ObjetoRange

Exemplo: Limpa o contedo do intervalo chamado criteria.


Worksheets(1).Range("criteria").ClearContents
ObjetoRange

13 de setembro de 2007

UTFPR Damat

Apostila - 123

Pg. 77

Excel Macros e Programao em VBA


Objeto Range
Propriedade Cells Usa-se Cells(linha, coluna) onde linha o ndice da linha e coluna o ndice da coluna para retornar uma nica clula.

Exemplo 1: Define o valor da clula A1 como 24.


Worksheets(1).Cells(1, 1).Value = 24 Exemplo 2: Define uma frmula para a clula ativa. ActiveSheet.Cells(2, 1).Formula = "=sum(B1:B5)"
13 de setembro de 2007
UTFPR Damat

Apostila - 123

Pg. 78

Excel Macros e Programao em VBA


Objeto Range
Exemplo: Use expresso.Cells(linha,coluna), onde expresso uma expresso que retorna um objeto Range e linha e coluna so relativas ao canto superior esquerdo do intervalo, para retornar parte de um intervalo. O exemplo seguinte define uma frmula para a clula C5.

Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=rand()"

13 de setembro de 2007

UTFPR Damat

Apostila - 123

Pg. 79

Excel Macros e Programao em VBA


Objeto Range
Referncia a Intervalos:
Pode-se fazer referncia a um intervalos usando a sintaxe:

Range(Cells(linha, coluna), Cells(linha,coluna))


Exemplo: Define o estilo da linha da borda das clulas
A1 at J10.
ObjetoRange

Worksheets(1).Range(Cells(1, 1), Cells(10,8)).Borders.LineStyle = xlThick

13 de setembro de 2007

UTFPR Damat

Apostila - 123

Pg. 80

Excel Macros e Programao em VBA


Objeto Range
Propriedade OffSet Usa-se Offset(linha, coluna), onde linha e coluna so os deslocamentos de linha e coluna, para retornar um intervalo em um deslocamento especificado de um outro intervalo. Exemplo: Seleciona a clula trs linhas abaixo e uma coluna direita da clula do canto superior esquerdo da seleo atual. Sub Range4() Worksheets("Plan1").Activate Range("A1").Offset(3, 1).Value = "Teste" End Sub
13 de setembro de 2007
UTFPR Damat

Apostila - 124

Pg. 81

Excel Macros e Programao em VBA


Objeto Range
Propriedade Select
Seleciona uma clula ou um intervalo de clulas em cdigo.

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

Excel Macros e Programao em VBA


Objeto Range
Exemplo: Cria um objeto definido como a unio dos intervalos A1:B2 e C3:D4, e em seguida, seleciona o intervalo.

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

Excel Macros e Programao em VBA


Objeto Range
Propriedades Cells, Rows e Columns
ObjetoRange

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

Excel Macros e Programao em VBA


Objeto Range
ObjetoRange

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

Excel Macros e Programao em VBA


Objeto Range
Utilizao dos ndices da propriedade Cells: Digite os valores mostrados na figura na planilha 1.
ObjetoRange

Exemplo da Planilha PropCells

13 de setembro de 2007

UTFPR Damat

Apostila - 212

Pg. 86

Excel Macros e Programao em VBA


Objeto Range
Worksheets("PropCells").Activate Dim MinhaFaixa As Range Set MinhaFaixa = Range("A1:C5") MinhaFaixa.Cells(2, 3).Font.Bold = True MinhaFaixa.Cells(2, 3).Font.ColorIndex = 3
MsgBox "Valor da clula da 2 linha e da 3 coluna: " & MinhaFaixa.Cells(2, 3)

MinhaFaixa.Cells(3, 1).Font.Bold = True MinhaFaixa.Cells(3, 1).Font.ColorIndex = 7


MsgBox "Valor da clula da 3 linha e da 1 coluna: " & MinhaFaixa.Cells(3, 1)

13 de setembro de 2007

UTFPR Damat

Apostila - 212

Pg. 87

Excel Macros e Programao em VBA


Objeto Range
Range para intervalo de Linhas
ObjetoRange

Define um intervalo de linhas como objeto de um comando ou propriedade. Sintaxe: Range(Linha inicial:Linha final) Rows(Linha inicial:Linha final) Exemplo:

Worksheets(1).Range( 1:3).Select Worksheets(2).Rows( 1:3).Select


13 de setembro de 2007
UTFPR Damat

Apostila - 219

Pg. 88

Excel Macros e Programao em VBA


Objeto Range
Range para intervalo de Colunas
ObjetoRange

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

Excel Macros e Programao em VBA


Objeto Range
Propriedades Row e Column:
ObjetoRange

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

Excel Macros e Programao em VBA


Objeto Range
Propriedades Rows e Columns:
ObjetoRange

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

Excel Macros e Programao em VBA


Propriedade Areas Esta propriedade retorna uma coleo Areas, a qual representa todos os intervalos em uma seleo de vrias reas. do tipo somente leitura.
A coleo retornada pela propriedade Areas uma coleo das reas, ou blocos contguos de clulas, dentro de uma seleo ou objeto Range. No h objeto Area separado; os membros individuais da coleo Areas so objetos Range. A coleo Areas contm um objeto Range para cada intervalo de clulas contguo individual dentro da seleo. Se a seleo contiver somente uma rea, a coleo Areas conter um nico objeto Range correspondente a essa seleo.
13 de setembro de 2007
UTFPR Damat

Objeto Range

Apostila - 226

Pg. 92

Excel Macros e Programao em VBA


Objeto Range
ObjetoRange

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

Excel Macros e Programao em VBA


Objeto Range
Propriedade CurrentRegion: Retorna um objeto Range representado pela regio atual. Regio atual um intervalo limitado por qualquer combinao de linhas e colunas em branco. do tipo somente leitura. Observe a figura

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

Excel Macros e Programao em VBA


Mtodo Activate:

Objeto Range

Utilizado para ativar, ou melhor, colocar o foco em um determinado objeto.

13 de setembro de 2007

UTFPR Damat

Apostila - 227

Pg. 95

Excel Macros e Programao em VBA


Objeto Range
ObjetoRange

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

Excel Macros e Programao em VBA


Mtodo AutoFill:

Objeto Range
ObjetoRange

Utilizado para fazer o preenchimento automtico da faixa de clulas do objeto Range.


Sintaxe:

Exemplo: Worksheets("Plan2").Activate Range("A1:A3").AutoFill Range("A1:A10") MsgBox "Verifique o resultado da operao."


13 de setembro de 2007
UTFPR Damat

Apostila - 229

Pg. 97

Excel Macros e Programao em VBA


Mtodo Copy: Utilizado para copiar. Sintaxe 1: Copia o objeto range ou figura selecionada para a rea de transferncia.

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

Excel Macros e Programao em VBA


Mtodo Copy: Exemplo:
Worksheets("Plan1").Copy after:=Worksheets("Plan3") MsgBox "Verifique o resultado" Worksheets("Plan1").Range("A1:D4").Copy Destination:=Worksheets("Plan2").Range("E5") Worksheets("Plan2").Activate MsgBox "Verifique o resultado"

Objeto Range
ObjetoRange

13 de setembro de 2007

UTFPR Damat

Apostila - 237

Pg. 99

Excel Macros e Programao em VBA


Mtodo Cut: Utilizado para recortar o contedo do objeto Range para a rea de transferncia ou para col-lo em um local especificado.
Sintaxe: expresso.Cut(Destination)

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

Excel Macros e Programao em VBA


Objeto Workbook e Objeto Worksheet
Mtodo Paste: utilizado para colar o contedo da rea de transferncia na planilha. Sintaxe:

13 de setembro de 2007

UTFPR Damat

329 -

Pg. 101

Excel Macros e Programao em VBA


Objeto Workbook e Objeto Worksheet
Exemplo:
ObjetosWorkbook Worksheet

Worksheets("Plan3").Activate Worksheets("Plan3").Range("A1:B6").Copy ActiveSheet.Paste Destination:=ActiveSheet.Range("E1:F6") MsgBox "Verifique o resultado da operao"

13 de setembro de 2007

UTFPR Damat

329 -

Pg. 102

Excel Macros e Programao em VBA


Mtodo Calculate: Se aplica a outros objetos, alm do objeto Range.
Utilizado para calcular todas as pastas de trabalho (quando for usado com o objeto Workbook) abertas , uma planilha especfica em uma pasta de trabalho (quando usado com o mtodo Worksheet) ou um intervalo especificado de clulas em uma planilha (quando usado com o objeto Range). Ver resumo da aplicao deste mtodo na tabela.

Objeto Range

13 de setembro de 2007

UTFPR Damat

Apostila - 235

Pg. 103

Excel Macros e Programao em VBA


Propriedade End(xlDown): ObjetoRange Utilizada junto com o objeto Range para encontrar a ltima clula de um intervalo Range.
Sintaxe:

Objeto Range

Range(primeira clula, Range(segunda clula).End(xlDown))


Exemplo: Seleciona na planilha 3 o intervalo de A1 at B6. Worksheets(3).Activate Worksheets(3).Range("A1", Range("B1").End(xlDown)).Select
13 de setembro de 2007
UTFPR Damat

Apostila - 238

Pg. 104

Excel Macros e Programao em VBA


Objeto Range
ObjetoRange

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

Excel Macros e Programao em VBA


Objeto Range
ObjetoRange

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

Excel Macros e Programao em VBA


Objeto Range
ObjetoRange

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

Excel Macros e Programao em VBA


Objeto Range
Dimensionamento das variveis a serem utilizadas. Dim rngCell As Range Dim strName As String Dim AbreParen As Integer Dim FechaParen As Integer Ativao da planilha ExPrat2.

Worksheets("ExPrat2").Activate
13 de setembro de 2007
UTFPR Damat

Apostila - 285

Pg. 108

Excel Macros e Programao em VBA


Objeto Range
Defino um lao For..Each da clula A2 at a ltima clula, com dados, na col A. No nosso exemplo ser retornado o endereo da clula A8. Com isso a faixa a ser trabalhada ser A2:A8.
For Each rngCell In Range("A2", Range("A1").End(xlDown)) Armazena o valor da clula na varivel strName

strName = rngCell.Value

13 de setembro de 2007

UTFPR Damat

Apostila - 285

Pg. 109

Excel Macros e Programao em VBA


Objeto Range
Retorna a posio do Abre Parnteses ( AbreParen = InStr(1, strName, "(") Retorna a posio do Fecha Parnteses ) FechaParen = InStr(1, strName, ")") Com base nas posies do abre e fecha parnteses, extrair o nmero que est dentro do parnteses e salv-lo na Clula correspondente, na Coluna B.

rngCell.Offset(0, 1).Value = _ Mid(strName, AbreParen + 1, FechaParen - AbreParen - 1)


13 de setembro de 2007
UTFPR Damat

Apostila - 285

Pg. 110

Excel Macros e Programao em VBA


Objeto Range
Extrai o nome do cliente e salva na coluna C. rngCell.Offset(0, 2).Value = Mid(strName, 1, AbreParen - 2) Fecha o comando For Each Next rngCell

Acrescenta uma caixa de mensagem para verificarmos a operao efetuada.


MsgBox "Verifique o resultado da operao!"
13 de setembro de 2007
UTFPR Damat

Apostila - 285

Pg. 111

Excel Macros e Programao em VBA


Objeto Range
Exemplo Prtico 3: Preencher as clulas da coluna D com uma frmula que soma os valores das colunas A, B e C. Sub PreencheFormula() Dim myRng As Range Dim lastRw As Long Worksheets("ExPrat3").Activate
'Uso o mtodo End para obter a ltima linha da faixa de dados. lastRw =Worksheets("ExPrat3").Range("C1").End(xlDown).Row Worksheets("ExPrat3").Range("D1").Formula = "=SUM(A1:C1)"

Worksheets("ExPrat3").Range("D1").AutoFill _
Destination:=Worksheets("ExPrat3").Range("D1:D" & lastRw)

MsgBox "Verifique o resultado da operao!" End Sub


13 de setembro de 2007
UTFPR Damat

Apostila - 289

Pg. 112

Você também pode gostar