You are on page 1of 219

Microsoft Excel Estudo Avanado

Prefacio
O Microsoft Excel sem sombra de dvidas o aplicativo de processamento de dados em planilha mais utilizado no mercado assim como o mais completo software para este fim encontrado atualmente. Os recursos disponibilizados pelo Excel permitem o desenvolvimento de simples planilhas de clculos at complexos sistemas de informaes. O objetivo deste livro direcionar a utilizao deste software a recursos avanados e muitas vezes poucos explorados do Excel. O contedo apresentado neste ttulo pode ser utilizado seqencialmente para fins de auto-estudo e reviso, ou como apoio s aulas de Excel Avanado ministradas na CST-Arcelor. O contedo est separado por captulos e tpicos com ilustraes e procedimentos passo-a-passo em vrias situaes.

Pgina 2 de 219

Microsoft Excel Estudo Avanado

Notaes

Dica Dica sobre determinada funcionalidade ou recurso.

Informao Informao complementar a respeito do recurso ou softwares relacionados. Definio resumida de terminado recurso.

Cuidado! Procedimentos delicados que podem afetar negativamente seu trabalho.

Pgina 3 de 219

Microsoft Excel Estudo Avanado

Sumrio
Prefacio................................................................................................................... 2 Notaes................................................................................................................. 3 Sumrio................................................................................................................... 4 Captulo 1 Utilizando a ajuda do Excel .......................................................... 10 1.1 Assistente ............................................................................................... 10 1.1.1 Desabilitando o assistente do Office................................................ 10 1.2 Solicitando a ajuda.................................................................................. 12 1.3 Acessando a ajuda do Excel................................................................... 13 1.3.1 Contedo ......................................................................................... 13 1.3.2 Assistente de resposta .................................................................... 13 1.3.3 ndice ............................................................................................... 14 Captulo 2 Manipulao de Frmulas............................................................ 15 2.1 Frmulas................................................................................................. 15 2.1.1 Operadores aritmticos ................................................................... 15 2.1.2 Ordem das operaes em frmulas................................................. 16 2.2 Referenciando outra clula em uma frmula .......................................... 17 2.2.1 Referenciando colunas e linhas....................................................... 17 2.2.2 Referncia a uma outra planilha dentro da mesma pasta de trabalho 19 2.2.3 Referncia a outro arquivo do Excel................................................ 20 2.3 Referncias relativas, absolutas e mistas............................................... 21 2.3.1 Referncia relativa........................................................................... 21 2.3.2 Referncia absoluta......................................................................... 21 2.3.3 Referncia mista.............................................................................. 22 2.4 Criando uma frmula .............................................................................. 22 2.4.1 Criando uma frumla simples .......................................................... 22 2.4.2 Criando frmula com referncia a outras clulas............................. 23 Funes do Excel XP............................................................................................ 27 2.5 Funes de busca e referncia............................................................... 27 2.5.1 PROCV............................................................................................ 27 2.5.2 PROCH............................................................................................ 29 2.5.3 COL ................................................................................................. 31 2.5.4 COLS............................................................................................... 32 2.5.5 CORRESP ....................................................................................... 32 2.5.6 DESLOC.......................................................................................... 34 2.5.7 ENDEREO .................................................................................... 35 2.5.8 ESCOLHER ..................................................................................... 36 2.5.9 HIPERLINK...................................................................................... 38 2.5.10 INDIRETO ....................................................................................... 39 2.5.11 NDICE ............................................................................................ 40 2.5.12 LIN ................................................................................................... 41 2.5.13 LINS................................................................................................. 42 2.6 Funes Financeiras............................................................................... 42 2.6.1 DPD ................................................................................................. 42 2.6.2 PGTO ............................................................................................ 43 2.6.3 IPGTO ............................................................................................. 44 2.6.4 VF .................................................................................................... 45
Pgina 4 de 219

Microsoft Excel Estudo Avanado

2.6.5 VP.................................................................................................... 47 2.6.6 MTIR................................................................................................ 48 2.6.7 NOMINAL ........................................................................................ 49 2.6.8 NPER............................................................................................... 50 2.6.9 PGTO .............................................................................................. 51 2.6.10 PPGTO ............................................................................................ 52 2.6.11 TAXA ............................................................................................... 53 2.6.12 TIR................................................................................................... 54 2.6.13 VPL.................................................................................................. 56 2.7 Funes de Data e hora ......................................................................... 58 2.7.1 AGORA............................................................................................ 58 2.7.2 ANO................................................................................................. 58 2.7.3 DATA.VALOR .................................................................................. 60 2.7.4 DIA................................................................................................... 61 2.7.5 DIA.DA.SEMANA............................................................................. 62 2.7.6 DIA360............................................................................................. 63 2.7.7 HOJE ............................................................................................... 64 2.7.8 MS................................................................................................. 65 2.7.9 VALOR TEMPO............................................................................... 65 2.8 Funes Lgicas..................................................................................... 66 2.8.1 E ...................................................................................................... 66 2.8.2 FALSO............................................................................................. 67 2.8.3 NO................................................................................................. 67 2.8.4 OU ................................................................................................... 68 2.8.5 VERDADEIRO ................................................................................. 69 2.9 Funes Estatsticas............................................................................... 69 2.9.1 CONT.NM ..................................................................................... 69 2.9.2 CONT.SE......................................................................................... 70 2.9.3 CONT.VALORES............................................................................. 71 2.9.4 CONTAR.VAZIO.............................................................................. 72 2.9.5 CRESCIMENTO .............................................................................. 73 2.9.6 FREQNCIA ................................................................................. 75 2.9.7 MAIOR............................................................................................. 76 2.9.8 MXIMO .......................................................................................... 77 2.9.9 MXIMOA........................................................................................ 78 2.9.10 MED................................................................................................. 79 2.9.11 MDIA ............................................................................................. 80 2.9.12 MEDIAA........................................................................................... 81 2.9.13 MDIA.GEOMTRICA .................................................................... 82 2.9.14 MNIMO ........................................................................................... 84 2.9.15 QUARTIL ......................................................................................... 87 2.10 Funes de texto .................................................................................... 88 2.10.1 CONCATENAR................................................................................ 88 2.10.2 DEF.NM.DEC................................................................................ 89 2.10.3 DIREITA .......................................................................................... 90 2.10.4 ESQUERDA .................................................................................... 91 2.10.5 EXT.TEXTO..................................................................................... 92 2.10.6 LOCALIZAR..................................................................................... 93 Fundamentos bsicos de Macros e VBA .............................................................. 95
Pgina 5 de 219

Microsoft Excel Estudo Avanado

2.11 Introduo............................................................................................... 95 2.12 O que so Macros? ............................................................................. 95 2.12.1 Como Exibir e alterar macros .......................................................... 96 2.12.2 Como Gerenciar suas macros Com o Editor do VBA ...................... 97 2.13 Programao no Excel - A linguagem VBA ............................................ 97 2.14 O que so Macros? ................................................................................. 98 2.14.1 Criando uma macro assistida .......................................................... 98 2.14.2 Executando a macro...................................................................... 100 2.15 Conhecendo do que feita uma Macro................................................. 101 2.15.1 Acessando os comandos VBA ...................................................... 102 2.16 Operaes com Macros ........................................................................ 104 2.16.1 Renomeando uma macro .............................................................. 104 2.16.2 Excluindo uma macro .................................................................... 105 2.16.3 Alterando a tecla de atalho e o comentrio associado com uma macro 106 2.17 Associando botes a macros................................................................ 106 2.17.1 Assiciando um boto a uma macro................................................ 109 Introduo a linguagem VBA............................................................................... 111 2.18 Por que aprender VBA?........................................................................ 112 2.19 Programao com o Microsoft Excel .................................................... 112 2.19.1 Vantagens em utilizarmos o VBA .................................................. 113 2.20 O Ambiente de Programao - Editor VBA.......................................... 114 2.20.1 Acessando o Editor VBA ............................................................... 114 2.21 VBA Declarao de Variveis............................................................ 116 2.21.1 Declarao de variveis e tipos de dados ................................ 117 2.21.2 Utilizao de variveis no declaradas.......................................... 118 2.22 VBA - Clculos, Operadores Aritmticos e Exemplos ........................... 120 2.22.1 Fazendo clculos com os Operadores aritmticos: ....................... 120 2.23 Estrutura If...Then e os Operadores de Comparao ........................... 121 2.23.1 If Then Else ................................................................................... 122 2.23.2 Operadores de comparao do VBA ............................................. 123 2.24 Escopo de Variveis e Variveis do tipo Array ..................................... 124 2.24.1 O Escopo das variveis, no VBA. .................................................. 124 2.24.2 Escopo de procedimento / funo / macro .................................... 124 2.24.3 A estrutura Select...Case............................................................... 127 2.25 Estruturas For...Next, Do...While e Do...Until........................................ 128 2.25.1 Estruturas de repetio.................................................................. 128 2.25.2 A estrutura For...Next. ................................................................... 128 2.25.3 A estrutura Do...Loop..................................................................... 129 2.25.4 A estrutura Do While Condio...Loop........................................... 129 2.25.5 A estrutura Do... Loop While Condio.......................................... 130 2.25.6 A estrutura Do Until Condio...Loop. ........................................... 132 2.25.7 A estrutura Do... Loop Until Condio. .......................................... 133 Funes do VBA Funes de Tipo Parte 1 ................................................... 134 2.26 Tipos de dados e funes para converso de tipos.............................. 135 2.26.1 Determinando o Tipo de Dados contido em uma varivel. ............ 135 2.26.2 A funo IsArray. ........................................................................... 135 2.26.3 A funo VarType. ......................................................................... 137 2.27 Funes do VBA Funes de Tipo Parte 2..................................... 139
Pgina 6 de 219

Microsoft Excel Estudo Avanado

2.27.1 A funo IsDate. ............................................................................ 139 2.27.2 A funo IsEmpty........................................................................... 140 2.27.3 A funo IsNull............................................................................... 141 2.27.4 A funo IsNumeric. ...................................................................... 142 VBA Funes para converso de Tipos Parte 1 ............................................ 142 2.28 Por que converter tipos?....................................................................... 143 2.28.1 Funo Cbool ................................................................................ 143 2.28.2 Funo CByte................................................................................ 143 2.28.3 Funo CCur ................................................................................. 144 2.28.4 Funo CDate................................................................................ 145 2.28.5 Funo CDbl.................................................................................. 146 2.28.6 Funo CInt ................................................................................... 147 2.28.7 Funo CLng ................................................................................. 147 2.28.8 Funo CSng................................................................................. 147 2.28.9 Funo CStr .................................................................................. 148 2.28.10 Funo Int .................................................................................. 148 2.29 Funes para tratamento de Texto ....................................................... 149 2.29.1 Funo Asc.................................................................................... 149 2.29.2 Funo Chr.................................................................................... 149 2.29.3 Funo Len.................................................................................... 149 2.29.4 Funo LCase ............................................................................... 150 2.29.5 Funo UCase............................................................................... 150 2.29.6 Funo Left.................................................................................... 151 2.29.7 Funo Right ................................................................................. 151 2.29.8 Funo Mid.................................................................................... 152 2.29.9 Funo String ................................................................................ 152 2.30 Funes de Data/Hora e Matemticas .................................................. 153 2.30.1 Funo Date .................................................................................. 153 2.30.2 Funo Time.................................................................................. 153 2.30.3 Funo Day ................................................................................... 154 2.30.4 Funo Month................................................................................ 154 2.30.5 Funo Now .................................................................................. 155 2.30.6 Funo MonthName ...................................................................... 155 2.30.7 Funo Hour.................................................................................. 156 2.30.8 A funo DateDiff........................................................................... 156 2.30.9 A funo DateAdd.......................................................................... 159 2.30.10 Funo Year............................................................................... 160 2.30.11 Funo WeekDay....................................................................... 160 2.30.12 Funo WeekDayName ............................................................. 161 2.31 Funes para Clculos matemticos .................................................... 161 2.31.1 Funes para clculos matemticos.............................................. 162 2.31.2 Alguns exemplos de utilizao das funes matemticas. ............ 163 Estudo avanado da linguagem VBA.................................................................. 163 2.32 Novidades do Modelo de Objetos do Excel 2000 VBA: ........................ 163 2.32.1 ADO - Activex Data Objects .......................................................... 163 2.32.2 Arquivo de texto e consultas da Web ............................................ 164 2.32.3 Assinatura digital ........................................................................... 164 2.32.4 Edio em vrias lnguas............................................................... 164
Pgina 7 de 219

Microsoft Excel Estudo Avanado

2.32.5 Fontes de dados OLAP para relatrios de tabela dinmica e grfico dinmico:...................................................................................................... 164 2.32.6 Microsoft Office E-mail................................................................... 164 2.32.7 Microsoft Office Web Components ................................................ 165 2.32.8 Relatrios de grfico dinmico....................................................... 165 2.32.9 Salvar para Web e para edio com Office Web ........................... 165 2.32.10 Script de pgina da Web............................................................ 165 2.32.11 Visual Basic For Applications 6.0 ............................................... 165 2.33 Bibliotecas, Objetos, Propriedades, Mtodos e Referncias ................. 166 2.33.1 A Estrutura For...Each ................................................................... 167 2.33.2 Criando suas prprias funes e procedimentos........................... 170 2.33.3 Criando e utilizando Sub-rotinas.................................................... 171 2.33.4 Criando e utilizando Funes ........................................................ 174 2.34 Trabalhando com o objeto Application.................................................. 177 2.34.1 O objeto Application....................................................................... 177 2.35 Trabalhando com o Objeto Workbook .................................................. 180 2.35.1 A coleo Workbooks .................................................................... 181 2.36 Trabalhando com o Objeto Worksheet ................................................. 184 2.36.1 Propriedade ActiveSheet ............................................................... 186 2.36.2 Propriedade Visible........................................................................ 186 2.36.3 Propriedade UsedRange ............................................................... 187 2.37 Trabalhando com o Objeto Range ........................................................ 187 2.37.1 O objeto Range.............................................................................. 187 2.37.2 Propriedade Range........................................................................ 188 2.37.3 Propriedade Offset......................................................................... 189 2.38 O Objeto Application Propriedades e Mtodos Parte I.................... 191 2.38.1 Propriedade ThisWorkBook........................................................... 191 2.38.2 Propriedade ActiveCell: ................................................................. 192 2.38.3 Propriedade ActiveSheet ............................................................... 192 2.38.4 Propriedade Calculation ................................................................ 193 2.38.5 Propriedade DefaultFilePath.......................................................... 194 2.38.6 Propriedade DefaultSaveFormat: .................................................. 194 2.38.7 Propriedade RecentFiles ............................................................... 195 2.38.8 Mtodo InputBox............................................................................ 195 2.38.9 Mtodo FindFile ............................................................................. 198 2.38.10 Mtodo GetOpenFilename ......................................................... 198 2.38.11 Mtodo SendKeys...................................................................... 199 2.39 O Objeto Workbook Propriedades e Mtodos Parte I ..................... 201 2.39.1 Ativar uma pasta de trabalho......................................................... 201 2.39.2 Abrir uma pasta de trabalho .......................................................... 202 2.39.3 Salvar documentos como pginas da Web ................................... 203 2.39.4 Personalizar a pgina da Web....................................................... 203 2.39.5 Abrir um documento HTML em Microsoft Excel............................. 205 2.39.6 Propriedade Count......................................................................... 207 2.39.7 Propriedade Item (coleo Workbooks)......................................... 208 2.39.8 Propriedade Parent........................................................................ 208 2.40 Loop atravs de um intervalo de clulas............................................... 216 2.40.1 Selecionar e ativar clulas................................................... 217 2.40.2 Selecionar clulas na planilha ativa............................................... 218
Pgina 8 de 219

Microsoft Excel Estudo Avanado

2.40.3 2.40.4 2.40.5 2.40.6

Ativar uma clula dentro de uma seleo...................................... 218 Trabalhar com a clula ativa.......................................................... 218 Mover a clula ativa...................................................................... 219 Selecionar as clulas ao redor da clula ativa............................... 219

Pgina 9 de 219

Microsoft Excel Estudo Avanado

Captulo 1 -

Utilizando a ajuda do Excel

No Excel assim como na maioria dos softwares encontrados no mercado, temos uma farta documentao eletrnica que muitas vezes pouco explorada pelos usurios de computador. Esta documentao definida como Ajuda e pode ser acionada de vrias maneiras em qualquer momento de dvida.

1.1 Assistente
Para incentivar e facilitar o acesso a documentao eletrnica do pacote Office, a Microsoft criou um boot, um Assistente que lhe auxilia sempre que voc aciona a ajuda de um aplicativo Office. Entretanto, devemos observar que este estudo dirigido para usurios avanados, e o assistente do Office no se mostra eficiente quando se pretende fazer uso constante da documentao do software, portanto o interessante seria desativar o assistente para que o acesso a informao seja direta, sem intermediaes.

1.1.1 Desabilitando o assistente do Office


Para desabilitar o assistente do Office clique no menu Ajuda e selecione o comando Mostrar o Assistente do Office.

Mostrar o Assistente O assistente ficar visvel.

Pgina 10 de 219

Microsoft Excel Estudo Avanado

Assistente do Office

Clique com o boto direito do mouse sobre o assistente. No menu suspenso que surgir selecione o comando Opes. A caixa de dilogo Assistente do Office ser aberta.

Opes de assistente Desmarque a opo Usar o Assistente do Office e clique no boto OK.

Agora desabilitando o Assistente.

Pgina 11 de 219

Microsoft Excel Estudo Avanado

1.2 Solicitando a ajuda


Clique no menu Ajuda e selecione o comando Ajuda do Microsoft Excel

Ajuda do menu. A ajuda do Excel ser exibida.

janela de Ajuda do Excel

Pgina 12 de 219

Microsoft Excel Estudo Avanado

Dica Para acionar a ajuda do Excel atravs do teclado, basta pressionar a tecla F1.

1.3 Acessando a ajuda do Excel


Podemos utilizar a documentao do Excel de trs maneiras diferentes a partir da tela de Ajuda.

1.3.1 Contedo
Na guia Contedo obtm-se de forma organizada toda a documentao eletrnica existente para o software. O contedo organizado em tpicos e sub-tpicos, facilitando o trabalho do usurio a encontrar a informao desejada.

Acessando a documentao via contedo.

1.3.2 Assistente de resposta


Na guia Assistente de resposta o contedo exibido a partir de alguma pergunta ou palavra-chave digitada pelo usurio. Este recurso muito semelhante a uma busca.

Pgina 13 de 219

Microsoft Excel Estudo Avanado

Assistente de resposta

1.3.3 ndice
Atravs da guia ndice temos a possibilidade de pesquisar recursos do software em uma lista de palavras-chaves. Basta iniciar a digitao no campo Digita a palavra-chave ou selecionar a palavra na lista Ou escolha a palavra-chave para que o resultado aparece na lista seguinte (Escolha um tpico).

Ajuda por ndice.

Pgina 14 de 219

Microsoft Excel Estudo Avanado

Captulo 2 -

Manipulao de Frmulas

A grande vantagem do Excel sua facilidade para criar e modificar frmulas com bastante facilidade. Neste captulo vamos aprender a criar formulas, referenciar outras clulas e planilhas alm de identificar os possveis erros exibidos em clculos.

2.1 Frmulas
Frmulas so equaes que executam clculos sobre valores na planilha. Uma frmula inicia com um sinal de igual (=). Por exemplo, a frmula a seguir multiplica 2 por 3 e depois adiciona 5 ao resultado. =5+2*3 Uma frmula tambm pode conter quaisquer dos seguintes itens: funes, referncias, operadores e constantes.

2.1.1 Operadores aritmticos


Para efetuar operaes matemticas bsicas, como adio, subtrao ou multiplicao, combinar nmeros e produzir resultados numricos, utilize os operadores aritmticos.

Operador

Significado

Adio (3+3).

Subtrao (31) ou Negao (1).

Multiplicao (3*3).

Diviso (3/3).

Porcentagem (20%).

Exponenciao (3^2). Tabela 2.1 Operadores aritmticos.


Pgina 15 de 219

Microsoft Excel Estudo Avanado

2.1.2 Ordem das operaes em frmulas


As frmulas calculam valores segundo uma ordem especfica. Uma frmula no Excel sempre comea com um sinal de igual (=). O sinal de igual informa ao Excel que os caracteres a seguir constituem uma frmula. Depois do sinal de igual esto os elementos a serem calculados (os operandos), que so separados por operadores de clculo. O Excel calcula a frmula da esquerda para a direita, de acordo com uma ordem especfica para cada operador da frmula. Precedncia de operadores Se voc combinar vrios operadores em uma nica frmula, o Excel executar as operaes na ordem mostrada na tabela a seguir. Se uma frmula contiver operadores com a mesma precedncia por exemplo, se uma frmula contiver um operador de multiplicao e diviso o Excel avaliar os operadores da esquerda para a direita.

Operador

Significado

: (dois-pontos) (espao simples) , (vrgula) Operadores de referncia.

Negao ( -1).

Porcentagem

Exponenciao (3^2).

*e/

Multiplicao e diviso.

+e

Adio e subtrao.

&

Conecta duas seqncias de texto (concatenao).


Pgina 16 de 219

Microsoft Excel Estudo Avanado

= < > <= >= <>

Comparao. Tabela 2.1 Ordem de operaes.

Uso de parmetros Para alterar a ordem da avaliao, coloque entre parnteses a parte da frmula a ser calculada primeiro. Por exemplo, a frmula a seguir retorna 11 porque o Excel calcula a multiplicao antes da adio. A frmula multiplica 2 por 3 e, em seguida, soma 5 ao resultado. =5+2*3 Por outro lado, se voc usar parnteses para alterar a sintaxe, o Excel somar 5 e 2 e, em seguida, multiplicar o resultado por 3 para produzir 21. =(5+2)*3 No exemplo abaixo, os parnteses na primeira parte da frmula foram o Excel a calcular B4+25 primeiro e, em seguida, dividir o resultado pela soma dos valores nas clulas D5, E5 e F5. =(B4+25)/SOMA(D5:F5)

2.2 Referenciando outra clula em uma frmula


Uma referncia identifica uma clula ou um intervalo de clulas em uma planilha e informa ao Microsoft Excel onde procurar pelos valores ou dados a serem usados em uma frmula. Com referncias, voc pode usar dados contidos em partes diferentes de uma planilha em uma frmula ou usar o valor de uma clula em vrias frmulas. Voc tambm pode se referir a clulas de outras planilhas na mesma pasta de trabalho e a outras pastas de trabalho. Referncias s clulas de outras pastas de trabalho so chamadas vnculos.

2.2.1 Referenciando colunas e linhas


Por padro, o Excel usa o estilo de referncia coluna/linha ou A1, que se refere a colunas com letras (A at IV, para um total de 256 colunas) e se refere a linhas com nmeros (1 at 65536). Essas letras e nmeros so chamados de cabealhos de linha e coluna. Para referir-se a uma clula, insira a letra da coluna seguida do nmero da linha. Por exemplo, B2 se refere clula na interseo da coluna B com a linha 2. Vejam outros exemplos:
Pgina 17 de 219

Microsoft Excel Estudo Avanado

Para referenciar

Utilize

A clula na coluna A e linha 10.

A10

Pgina 18 de 219

Microsoft Excel Estudo Avanado

O intervalo de clulas na coluna A e linhas 10 a 20.

A10:A20

O intervalo de clulas na linha 15 e colunas B at E

B15:E15

Todas as clulas na linha 5.

5:5

Todas as clulas nas linhas 5 a 10.

5:10

Todas as clulas na coluna H.

H:H

Todas as clulas nas colunas H a J.

H:J

O intervalo de clulas nas colunas A a E e linhas 10 a 20. Tabela 2.1 Referncia de clulas.

A10:E20

Dica Durante a edio de uma frmula voc pode utilizar o mouse e selecionar o intervalo de clulas. Automaticamente intervalo selecionado ser transcrito para sua frmula.

2.2.2 Referncia a uma outra planilha dentro da mesma pasta de trabalho


No exemplo a seguir, a funo de planilha MDIA calcula o valor mdio do intervalo B1:B10 na planilha denominada Plan2 na mesma pasta de trabalho.

Pgina 19 de 219

Microsoft Excel Estudo Avanado

= Mdia( Plan2 ! B1:B10)

Intervalo de clulas

Separa a referncia da planilha do intervalo.

Identifica a planilha pelo nome

Observe que o nome da planilha e um ponto de exclamao (!) precedem a referncia de intervalo. O ponto de exclamao obrigatrio aps o nome da planilha.

Dica Durante a edio de uma frmula voc pode utilizar o mouse e selecionar o intervalo de clulas na outra planilha de sua pasta de trabalho. Automaticamente intervalo selecionado ser transcrito para sua frmula.

2.2.3 Referncia a outro arquivo do Excel


No exemplo a seguir, a funo de planilha MDIA calcula o valor mdio do intervalo B1:B10 na planilha denominada Plan2 no arquivo contas.xls gravado na pasta c:\arquivos.

=MDIA('C:\arquivos\[contas.xls]Plan2'!B1:B10)

Intervalo de clulas

Separa a referncia da planilha do intervalo.

Identifica a planilha e o arquivo de origem pelo nome.

Pgina 20 de 219

Microsoft Excel Estudo Avanado

Observe que os nomes do arquivo e da planilha esto entre aspas simples e tem ao final de seus nomes o ponto de exclamao (!). O ponto de exclamao obrigatrio aps o nome da planilha.

Dica

Para fazer referncia utilizando o mouse, abre o outro arquivo e durante a edio da frmula alterne para a outra pasta de trabalho e faa a seleo do intervalo com o mouse. Automaticamente a referncia a outro arquivo e planilha ser transcrita para sua frmula.

2.3 Referncias relativas, absolutas e mistas


Ao fazermos referncia a um intervalo de clulas podemos faz-la de trs maneiras distintas. Atravs de referncias relativas, absolutas ou mistas.

2.3.1 Referncia relativa


Uma referncia relativa em uma frmula, como A1(Coluna e linha), baseada na posio relativa da clula que contm a frmula e da clula qual a referncia se refere. Se a posio da clula que contm a frmula se alterar, a referncia ser alterada. Se voc copiar a frmula ao longo de linhas ou colunas, a referncia se ajustar automaticamente. Por padro, novas frmulas usam referncias relativas. Por exemplo, se voc copiar uma referncia relativa que est na clula B2 para a clula B3, a referncia ser automaticamente ajustada de =A1 para =A2.

referncias relativas

2.3.2 Referncia absoluta


Uma referncia absoluta de clula em uma frmula, como $A$1(Coluna e linha), sempre se refere a uma clula em um local especfico. Se a posio da clula que contm a frmula se alterar, a referncia absoluta permanecer a mesma. Se voc copiar a frmula ao longo de linhas ou colunas, a referncia absoluta no se
Pgina 21 de 219

Microsoft Excel Estudo Avanado

ajustar. Por padro, novas frmulas usam referncias relativas e voc precisa troc-las para referncias absolutas. Por exemplo, se voc copiar uma referncia absoluta na clula B2 para a clula B3, ela permanecer a mesma em ambas as clulas =$A$1.

refrncia absolua

2.3.3 Referncia mista


Uma referncia mista tem uma coluna absoluta e linha relativa, ou linha absoluta e coluna relativa. Uma referncia de coluna absoluta tem o formato $A1, $B1 e assim por diante. Uma referncia de linha absoluta tem o formato A$1, B$1 e assim por diante. Se a posio da clula que contm a frmula se alterar, a referncia relativa ser alterada e a referncia absoluta no se alterar. Se voc copiar a frmula ao longo de linhas ou colunas, a referncia relativa se ajustar automaticamente e a referncia absoluta no se ajustar. Por exemplo, se voc copiar uma referncia mista da clula A2 para B3, ela se ajustar de =A$1 para =B$1.

referncia mista

2.4 Criando uma frmula


Vamos aprender como se cria uma frmula do Excel, comearemos com formas simples e vamos evoluindo at frmulas mais complexas que fazem referncia a outras clulas ou utiliza funes. Para iniciar a digitao de um frmula no Excel, inicie a digitao do texto sempre com o sinal de igual ( = ), seguido pela estrutura da fruma desejada.

2.4.1 Criando uma frumla simples


Vamos criar uma fmula para calcular o expoencial de 5 elevado ao quadrado(2). Clique na clula na qual voc deseja inserir a frmula.
Pgina 22 de 219

Microsoft Excel Estudo Avanado

Cula selecionada Digite = (um sinal de igual). Insira a frmula e Pressione ENTER. Verifiq eu que a barra de frmula conter o valor que est sendo digitado na clula.

frumla sendo criada O resultado ser o quadarado de 5, porm da barra de fruma ser exibido a fruma que gerou o resultado.

Resultado da fruma

2.4.2 Criando frmula com referncia a outras clulas


A clula que contm a frmula conhecida como uma clula dependente, ou seja, seu valor depende dos valores de outras clulas. Por exemplo, a clula C4 ser uma clula dependente se contiver uma fruma dependente das clula C2 e C3. Vamo supor que a clula C2 contenha o valor de um determindado produto e a clula C3 contm a quantidade de produtos de um pedido. A funo da clula C4 seria calcular o valor total de produtos de acordo com a quantide, ou seja, Valor * Total.

Pgina 23 de 219

Microsoft Excel Estudo Avanado

Exemplo proposto Vamos criar esta frmula utilizando a referncia relativa. Clique na clula C4 e digite o sinal de igual ( = ). O excel estar neste momento criando a frmula.

Iniciando a fruma Digite a referncia relatativa clula C2 ou clique sobre a clula.

Referenciando C2 Insira o operador de multiplicao ( * ) e digite a referncia clula C3, ou clique sobre a mesma.

Refernciando C3 Pressione Enter. O clculo ser exibido na clula e a fruma na barra de frmula.

Resultado da fruma

Criando uma frmula utilizando funes


Pgina 24 de 219

Microsoft Excel Estudo Avanado

Em frmulas do Excel, existe a possibilidade de utlizao de funes do Excel ou funes criadas pelo prprio usurio. Funes so clculos internos que retornam um resultado, normalmente necessitam de parmetros de entrada. O estudo de funes ser mais detalhado nos prximos captulos. Vamos supor que tenhamos uma planilha para controle de notas de alunos, onde teremos trs notas e a mdia aritimtica destas notas. Para calcular a mdia dos resultados poderemos, por exemplo, utilizar a funo Mdia do Excel, utilizada para clculo de mdias. A funo Mdia exige como parmetro o intervalo de clulas e retorna a mdia aritimtica como resultado.

Planilha de demonstrao Vamos calcular a mdia de resultados na coluna F, primeiramente calcularemos a linha 3. Clique na clula F3 e pressione a tecla igual ( = ). Neste momento estaremos editando a frmula da clula. Insira a funo MDIA e fornea como parmetro o intervalo C3:E3, ou seja, =MDIA(C3:E3) .

Criando a frmula O resultado ser a mdia aritimtica da clula, na barra de frmulas ser exibido a frmula que gerou o clculo.

Pgina 25 de 219

Microsoft Excel Estudo Avanado

Resultado da frmula

Pgina 26 de 219

Microsoft Excel Estudo Avanado

Funes do Excel XP
Vamos verificar a sintaxe e exemplos das funes mais comuns do Excel XP

2.5 Funes de busca e referncia


Vamos analisar o funcionamento das principais funes de banco de dados disponibilizadas pelo Excel XP.

2.5.1 PROCV
Localiza um valor na primeira coluna esquerda de uma tabela e retorna um valor na mesma linha de uma coluna especificada na tabela. Use PROCV em vez de PROCH quando os valores da comparao estiverem posicionados em uma coluna esquerda ou direita dos dados que voc deseja procurar. O V em PROCV significa "Vertical". Sintaxe PROCV(valor_procurado;matriz_tabela;nm_ndice_coluna;procurar_interva lo) Valor_procurado o valor a ser localizado na primeira coluna da Matriz. Valor_procurado pode ser um valor, uma referncia ou uma seqncia de caracteres de texto. Matriz_tabela a tabela de informaes em que os dados so procurados. Use uma referncia para um intervalo ou nome de intervalo, tal como Banco de dados ou Lista. Observao Se procurar_intervalo for VERDADEIRO, os valores na primeira coluna de matriz_tabela devero ser colocados em ordem ascendente: ..., -2, -1, 0, 1, 2, ... , A-Z, FALSO, VERDADEIRO; caso contrrio, PROCV pode no retornar o valor correto. Se procurar_intervalo for FALSO, matriz_tabela no precisar ser ordenada.

Os valores na primeira coluna de matriz_tabela podem ser texto, nmeros ou valores lgicos. Textos em maisculas e minsculas so equivalentes.

Pgina 27 de 219

Microsoft Excel Estudo Avanado

Nm_ndice_coluna o nmero da coluna em matriz_tabela a partir do qual o valor correspondente deve ser retornado. Um nm_ndice_coluna de 1 retornar o valor na primeira coluna em matriz_tabela; um nm_ndice_coluna de 2 retornar o valor na segunda coluna em matriz_tabela, e assim por diante. Se nm_ndice_coluna for menor do que 1, PROCV retornar o valor de erro #VALOR!; se nm_ndice_coluna for maior do que o nmero de colunas em matriz_tabela, PROCV retornar o valor de erro #REF!. Procurar_intervalo um valor lgico que especifica se voc quer que PROCV encontre a correspondncia exata ou uma correspondncia aproximada. Se VERDADEIRO ou omitida, uma correspondncia aproximada retornada; em outras palavras, se uma correspondncia exata no for encontrada, o valor maior mais prximo que menor que o valor_procurado retornado. Se FALSO, PROCV encontrar uma correspondncia exata. Se nenhuma correspondncia for encontrada, o valor de erro #N/D retornado. Observaes Se PROCV no localizar valor_procurado e procurar_intervalo for VERDADEIRO, ela usar o maior valor que for menor do que ou igual a valor_procurado. Se valor_procurado for menor do que o menor valor na primeira coluna de matriz_tabela, PROCV fornecer o valor de erro #N/D. Se PROCV no localizar valor_procurado e procurar_intervalo for FALSO, PROCV fornecer o valor #N/D.

Utilizando a funo PROCV No exemplo abaixo utiliza-se a funo para localizar o telefone de acordo com o cdigo digitado na clula C12.

Utilizandoo ProcV para localizar o telefone


Pgina 28 de 219

Microsoft Excel Estudo Avanado

Resultado da frumula

2.5.2 PROCH
Localiza um valor especfico na linha superior de uma tabela ou matriz de valores e retorna um valor na mesma coluna de uma linha especificada na tabela ou matriz. Use PROCH quando seus valores de comparao estiverem localizados em uma linha ao longo da parte superior de uma tabela de dados e voc quiser observar um nmero especfico de linhas mais abaixo. Use PROCV quando os valores de comparao estiverem em uma coluna esquerda dos dados que voc deseja localizar. O H de PROCH significa "Horizontal." Sintaxe PROCH(valor_procurado;matriz_tabela;nm_ndice_lin;procurar_intervalo) Valor_procurado o valor a ser localizado na primeira linha da tabela. Valor_procurado pode ser um valor, uma referncia ou uma seqncia de caracteres de texto. Matriz_tabela uma tabela de informaes onde os dados devem ser procurados. Use uma referncia para um intervalo ou um nome de intervalo. Os valores na primeira linha de matriz_tabela podem ser texto, nmeros ou valores lgicos. Observaes Se procurar_intervalo for VERDADEIRO, os valores na primeira linha de matriz_tabela devero ser colocados em ordem ascendente: ...-2, -1, 0, 1, 2,... , A-Z, FALSO, VERDADEIRO, caso contrrio, PROCH pode no retornar o valor correto. Se procurar_intervalo for FALSO, matriz_tabela no precisar ser ordenada.
Pgina 29 de 219

Microsoft Excel Estudo Avanado

Textos em maisculas e minsculas so equivalentes. Voc pode colocar valores em ordem ascendente, da esquerda para a direita, selecionando os valores, escolhendo o comando Classificar no menu Dados. Clique em Opes, clique em Classificar da esquerda para a direita e, em seguida, em OK. Em Classificar por, clique na linha da lista e depois em Crescente. Nm_ndice_lin o nmero da linha em matriz_tabela de onde o valor correspondente deve ser retirado. Um nm_ndice_lin equivalente a 1 retorna o valor da primeira linha na matriz_tabela, um nm_ndice_lin equivalente a 2 retorna o valor da segunda linha na matriz_tabela, e assim por diante. Se nm_ndice_lin for menor do que 1, PROCH retornar o valor de erro #VALOR!; se nm_ndice_lin for maior do que o nmero de linhas na matriz_tabela, PROCH retornar o valor de erro #REF!. Procurar_intervalo um valor lgico que especifica se voc quer que PROCH localize uma correspondncia exata ou aproximada. Se VERDADEIRO ou omitido, uma correspondncia aproximada retornada. Em outras palavras, se uma correspondncia exata no for localizada, o valor maior mais prximo que seja menor que o valor_procurado retornado. Se FALSO, PROCH encontrar uma correspondncia exata. Se nenhuma correspondncia for localizada, o valor de erro #N/D ser retornado. Observaes Se PROCH no localizar valor_procurado, e procurar_intervalo for VERDADEIRO, ela usar o maior valor que menor do que o valor_procurado. Se o valor_procurado for menor do que o menor valor na primeira linha de matriz_tabela, PROCH retornar o valor de erro #N/D.

Utilizando a funo PROCH No exemplo abaixo utilizamos a funo PROCH para localizar na coluna Nome e retornar o valor contido na segunda linha (posio 2).

Pgina 30 de 219

Microsoft Excel Estudo Avanado

Utilizando a funo ProcH

Valor retornado

2.5.3 COL
Retorna o nmero de coluna da referncia especificada. Sintaxe COL(ref) Ref a clula ou intervalo de clulas cujo nmero da coluna voc deseja obter. Se ref for omitido, presume-se que seja a referncia da clula onde a funo COL aparece. Ref no pode se referir a reas mltiplas. Exemplo
Pgina 31 de 219

Microsoft Excel Estudo Avanado

Funo COL

2.5.4 COLS
Retorna o nmero de colunas em uma matriz ou referncia. Sintaxe COLS(matriz) Matriz uma matriz, uma frmula de matriz ou uma referncia a um intervalo de clulas cujo nmero de colunas voc deseja obter. Exemplo

Funo COLS

2.5.5 CORRESP
Retorna a posio relativa de um item em uma matriz que coincide com um valor especificado em uma ordem especfica. Use CORRESP em vez de uma das funes PROC quando voc precisar da posio de um item em um intervalo ao invs do item propriamente dito. Sintaxe CORRESP(valor_procurado;matriz_procurada;tipo_correspondncia) Valor_procurado tabela. o valor utilizado para localizar o valor desejado em uma

Valor_procurado o valor que voc deseja coincidir com matriz_procurada. Por exemplo, quando voc procura o nmero do telefone de algum em
Pgina 32 de 219

Microsoft Excel Estudo Avanado

uma lista telefnica, voc est usando o nome da pessoa como o valor da procura, mas o nmero do telefone o valor que voc deseja. Valor_procurado pode ser um valor (nmero, texto ou valor lgico) ou uma referncia de clula de um nmero, texto ou valor lgico.

Matriz_procurada um intervalo contguo de clulas que contm valores possveis de procura. Matriz_procurada precisa ser uma matriz ou uma referncia de matriz. Tipo_correspondncia o nmero -1, 0 ou 1. Tipo_correspondncia especifica como o Microsoft Excel corresponde a valor_procurado com os valores contidos em matriz_procurada. Se tipo_correspondncia for 1, CORRESP localizar o maior valor que for menor do que ou igual a valor_procurado. Matriz_procurada deve ser posicionada em ordem ascendente: ...-2, -1, 0, 1, 2,...A-Z, FALSO, VERDADEIRO. Se tipo_correspondncia for 0, CORRESP localizar o primeiro valor que for exatamente igual a valor_procurado. Matriz_procurada pode ser colocada em qualquer ordem. Se tipo_correspondncia for -1, CORRESP localizar o menor valor que seja maior ou igual a valor_procurado. Matriz_procurada deve ser posicionada em ordem decrescente: VERDADEIRO, FALSO, Z-A,...2, 1, 0, -1, -2,... e assim por diante. Se tipo_correspondncia for omitido, ser equivalente a 1.

Comentrios CORRESP retorna a posio do valor coincidente em matriz_procurada, e no o valor propriamente dito. Por exemplo: CORRESP("b";{"a"."b"."c"};0) retorna 2, a posio relativa de "b" na matriz {"a"."b"."c"}. CORRESP no faz distino entre letras maisculas e minsculas quando estiver fazendo a correspondncia entre valores de texto. Se CORRESP no conseguir localizar um valor coincidente, ele fornecer o valor de erro #N/D. Se tipo_correspondncia for 0 e valor_procurado for um texto, valor_procurado poder conter os caracteres curinga asterisco (*) e ponto de interrogao (?). Um asterisco corresponde a qualquer seqncia de caracteres; um ponto de interrogao corresponde a qualquer caractere individual. Exemplo
Pgina 33 de 219

Microsoft Excel Estudo Avanado

No exemplo abaixo se utiliza um valor de procura na clula C9 e retorna-se a posio correspondente a este valor.

CORRESP

Resultado com posio 2

2.5.6 DESLOC
Retorna uma referncia para um intervalo, que um nmero especificado de linhas e colunas de uma clula ou intervalo de clulas. A referncia retornada pode ser uma nica clula ou um intervalo de clulas. Voc pode especificar o nmero de linhas e de colunas a serem retornadas. Sintaxe DESLOC(ref;lins;cols;altura;largura) Ref a referncia em que se deseja basear o deslocamento. Ref deve se referir a uma clula ou intervalo de clulas adjacentes; caso contrrio, DESLOC retornar o valor de erro #VALOR!. Lins o nmero de linhas, acima ou abaixo, a que se deseja que a clula superior esquerda se refira. Usar 5 como o argumento de linhas, especifica que a clula superior esquerda na referncia est cinco linhas abaixo da referncia. Lins pode ser positivo (que significa abaixo da referncia inicial) ou negativo (acima da referncia inicial).
Pgina 34 de 219

Microsoft Excel Estudo Avanado

Cols o nmero de colunas, esquerda ou direita, a que se deseja que a clula superior esquerda do resultado se refira. Usar 5 como o argumento de colunas, especifica que a clula superior esquerda na referncia est cinco colunas direita da referncia. Cols pode ser positivo (que significa direita da referncia inicial) ou negativo ( esquerda da referncia inicial). Altura a altura, em nmero de linhas, que se deseja para a referncia fornecida. Altura deve ser um nmero positivo. Largura a largura, em nmero de colunas, que se deseja para a referncia fornecida. Largura deve ser um nmero positivo. Comentrios Se lins e cols deslocarem a referncia sobre a borda da planilha, DESLOC retornar o valor de erro #REF!. Se altura ou largura forem omitidos, sero equivalentes a altura ou largura de ref. Na verdade, DESLOC no desloca quaisquer clulas nem modifica a seleo; apenas fornece uma referncia. DESLOC pode ser usada com qualquer funo que pressuponha um argumento de referncia. Por exemplo, a frmula SOMA(DESLOC(C2;1;2;3;1)) calcula o valor total de um intervalo formado por 3 linhas e 1 coluna que est 1 linha abaixo e 2 colunas direita da clula C2.

Exemplo

- Funo Desloc

2.5.7 ENDEREO
Cria um endereo de clula como texto, dados nmeros especficos de linhas e colunas. Sintaxe ENDEREO(nm_linha;nm_col;nm_abs;a1;texto_planilha)
Pgina 35 de 219

Microsoft Excel Estudo Avanado

Nm_linha o nmero da linha a ser utilizado na referncia da clula. Nm_col o nmero da coluna a ser utilizado na referncia da clula. Nm_abs especifica o tipo de referncia a ser retornado.

Nm_abs 1 ou omitido 2 3 4

Descrio Absoluta. Linha absoluta, coluna relativa. Couna absoluta, linha relativa. Relativa

A1 um valor lgico que especifica o estilo de referncia A1 ou L1C1. Se A1 for VERDADEIRO ou omitido, ENDEREO retornar uma referncia em estilo A1, se for FALSO, ENDEREO retornar uma referncia em estilo L1C1. Texto_planilha o texto que especifica o nome da planilha a ser usada como referncia externa. Se texto_planilha for omitido, o nome da planilha no ser utilizado. Exemplo

funo Endereo

2.5.8 ESCOLHER
Use ESCOLHER para selecionar um valor entre 29 valores que se baseie no nmero de ndice. Por exemplo, se do valor1 at o valor7 forem os nmeros da semana, ESCOLHER retorna um dos dias quando um nmero entre 1 e 7 for usado como nm_ndice. Sintaxe ESCOLHER(nm_ndice;valor1;valor2,...)

Pgina 36 de 219

Microsoft Excel Estudo Avanado

Nm_ndice especifica o argumento de valor selecionado. Nm_ndice deve ser um nmero entre 1 e 29, ou uma frmula ou referncia a uma clula que contenha um nmero entre 1 e 29. Se nm_ndice for 1, ESCOLHER retornar valor1; se for 2, ESCOLHER retornar valor2; e assim por diante. Se nm_ndice for menor do que 1 ou maior do que o nmero do ltimo valor na lista, ESCOLHER retornar o valor de erro #VALOR!. Se nm_ndice for uma frao, ser truncada para o menor inteiro antes de ser usada.

Valor1,valor2,... so 1 a 29 argumentos de valor a partir dos quais ESCOLHER seleciona um valor ou uma ao a ser realizada com base no nm_ndice. Os argumentos podem ser nmeros, referncias de clula, nomes definidos, frmulas, funes ou texto. Comentrios Se nm_ndice for uma matriz, cada valor ser avaliado quando ESCOLHER for avaliada. Os argumentos de valor para ESCOLHER podem ser referncias de intervalo bem como valores nicos. Por exemplo, a frmula: =SOMA(ESCOLHER(2;A1:A10;B1:B10;C1:C10)) avalia para: =SOMA(B1:B10) que depois retorna um valor baseado nos valores do intervalo B1:B10. A funo ESCOLHER a primeira a ser avaliada, retornando a referncia B1:B10. A funo SOMA avaliada posteriormente usando B1:B10, o resultado da funo ESCOLHER, como seu argumento. Exemplo

Pgina 37 de 219

Microsoft Excel Estudo Avanado

Funo ESCOLHER

2.5.9 HIPERLINK
Cria um atalho ou salto que abre um documento armazenado em um servidor de rede, uma intranet ou na Internet. Quando voc clica na clula que contm a funo HYPERLINK, o Microsoft Excel abre o arquivo armazenado em local_vnculo. Sintaxe HYPERLINK(local_vnculo,nome_amigvel) Local_vnculo o caminho e nome de arquivo para o documento que ser aberto como texto. Local_vnculo pode se referir a uma posio em um documento como uma clula especfica ou um intervalo nomeado em uma planilha ou pasta de trabalho do Excel, ou a um marcador em um documento do Microsoft Word. O caminho pode ser para um arquivo armazenado em uma unidade de disco rgido, um caminho da conveno universal de nomenclatura (UNC) em um servidor (no Microsoft Excel para Windows) ou um caminho do localizador de recursos uniforme URL na Internet ou em uma intranet. Local_vnculo pode ser uma seqncia de caracteres de texto entre aspas ou uma clula que contm o vnculo como uma seqncia de caracteres de texto. Se o salto especificado em local_vnculo no existir ou no puder ser navegado, aparecer um erro quando voc clicar na clula.

Nome_amigvel o texto de salto ou valor numrico exibido na clula. Nome_amigvel exibido em azul e com sublinhado. Se nome_amigvel for omitido, a clula exibir o local_vnculo como um texto de salto. Nome_amigvel pode ser um valor, uma seqncia de caracteres de texto, um nome ou uma clula que contm o texto de salto ou valor.
Pgina 38 de 219

Microsoft Excel Estudo Avanado

Se nome_amigvel retornar um valor de erro (por exemplo, #VALOR!), a clula exibir o erro em vez do texto de salto.

Comentrios Para selecionar uma clula onde existe um hiperlink sem ir para o destino do hiperlink, clique na clula e mantenha o boto do mouse pressionado at o cursor se transformar em uma cruz, depois libere o boto do mouse. Exemplos Direciona o usurio para a URL do buscador Cad. =HYPERLINK(http://www.cade.com.br;CAD) Cria um hiperlink com a rea denominada Totais de outra pasta de trabalho (externa), Minhapasta.xls: =HYPERLINK("[C:\Meus documentos\MinhaPasta.xls]Totais")

2.5.10

INDIRETO

Retorna a referncia especificada por uma seqncia de caracteres de texto. As referncias so imediatamente avaliadas para exibir seu contedo. Use INDIRETO quando quiser mudar a referncia a uma clula em uma frmula sem mudar a prpria frmula. Sintaxe INDIRETO(texto_ref;a1) Texto_ref uma referncia a uma A1, uma referncia em estilo L1C1, uma referncia a uma clula como texto_ref no for uma referncia de erro #REF!. clula que contm uma referncia em estilo um nome definido como uma referncia ou uma seqncia de caracteres de texto. Se clula vlida, INDIRETO retorna o valor de

Se texto_ref referir-se a outra pasta de trabalho (uma referncia externa), ela deve ser aberta. Se a pasta de trabalho original no estiver aberta, INDIRETO retornar o valor de erro #REF!

A1 um valor lgico que especifica o tipo de referncia contido na clula texto_ref. Se a1 for VERDADEIRO ou omitido, texto_ref ser interpretado como uma referncia em estilo A1.
Pgina 39 de 219

Microsoft Excel Estudo Avanado

Se a1 for FALSO, texto_ref ser interpretado como uma referncia em estilo L1C1.

Exemplo

- Funo INDIRETO

2.5.11

NDICE

A funo NDICE apresenta duas formas de sintaxe: matriz e referncia. A forma de matriz sempre retorna um valor ou uma matriz de valores; a forma de referncia sempre retorna uma referncia. Use a forma de matriz se o primeiro argumento de NDICE for uma constante de matriz. Sintaxe da forma matricial NDICE(matriz,nm_linha,nm_coluna) Matriz um intervalo de clulas ou uma constante de matriz. Se a matriz contiver apenas uma linha ou coluna, o argumento nm_linha ou nm_coluna correspondente opcional. Se a matriz tiver mais de uma linha e mais de uma coluna e apenas nm_linha ou nm_coluna for usado, NDICE retornar uma matriz referente linha ou coluna inteira da matriz.

Nm_linha seleciona a linha na matriz a partir da qual um valor dever ser retornado. Se nm_linha for omitido, nm_coluna obrigatrio. Nm_coluna seleciona a coluna na matriz a partir da qual um valor dever ser retornado. Se nm_coluna for omitido, nm_linha obrigatrio.
Pgina 40 de 219

Microsoft Excel Estudo Avanado

Comentrios Se os argumentos nm_linha e nm_coluna forem usados, NDICE retornar o valor contido na clula que estiver no ponto de interseo entre nm_linha e nm_coluna. Se voc definir nm_linha ou nm_coluna como 0 (zero), NDICE retornar a matriz de valores referente coluna ou linha inteira, respectivamente. Para usar valores retornados como uma matriz, insira a funo NDICE como uma frmula de matriz em um intervalo horizontal de clulas para uma linha e em um intervalo vertical de clulas para uma coluna. Para inserir uma frmula de matriz, pressione CTRL+SHIFT+ENTER.

Nm_linha e nm_coluna devem fazer referncia a uma clula dentro de uma matriz, caso contrrio, NDICE retornar o valor de erro #REF!.

Exemplo

Funo ndice

2.5.12

LIN

Retorna o nmero da linha de uma referncia. Sintaxe LIN(ref) Ref a clula ou intervalo de clulas cujo nmero da linha voc deseja obter. Se ref for omitido, ser equivalente referncia da clula na qual a funo LIN aparecer. Se ref for um intervalo de clulas e LIN for inserida como uma matriz vertical, LIN retornar os nmeros de linha de referncia como uma matriz vertical.
Pgina 41 de 219

Microsoft Excel Estudo Avanado

Ref no pode se referir a reas mltiplas.

Exemplo

Funo LIN

2.5.13

LINS

Retorna o nmero de linhas em uma referncia ou matriz. Sintaxe LINS(matriz) Matriz uma matriz, uma frmula de matriz ou uma referncia a um intervalo de clulas cujo nmero de linhas voc deseja obter. Exemplo

Funo LINS

2.6 Funes Financeiras


Vamos ver as principais funes financeiras disponibilizadas pelo Excel XP.

2.6.1 DPD
Retorna a depreciao em linha reta de um ativo durante um perodo. Sintaxe DPD(custo;recuperao;vida_til)
Pgina 42 de 219

Microsoft Excel Estudo Avanado

Custo o custo inicial do ativo. Recuperao o valor no final da depreciao (s vezes chamado de valor residual do ativo). Vida_til o nmero de perodos durante os quais o ativo depreciado (s vezes chamado vida til do ativo). Exemplo

Funo DPD

2.6.2 PGTO
Calcula os juros pagos durante um perodo especfico de um investimento. Essa funo fornecida para que haja compatibilidade com o Lotus 1-2-3. Sintaxe PGTO(taxa;perodo;nper;vp) Taxa a taxa de juros do investimento. Perodo o perodo para o qual voc deseja encontrar os juros e deve estar entre 1 e nper. Nper o nmero total de perodos de pagamento do investimento. Vp o valor presente do investimento. Para um emprstimo, vp a quantia do emprstimo. Comentrios Certifique-se de que est consistente sobre as unidades usadas para especificar a taxa e nper. Se voc fizer pagamentos mensais para um emprstimo de quatro anos com uma taxa de juros de 12%, use 12%/12 para taxa e 4*12 para nper. Se fizer pagamentos anuais no mesmo emprstimo, use 12% para taxa e 4 para nper.
Pgina 43 de 219

Microsoft Excel Estudo Avanado

Para todos os argumentos, o saldo em dinheiro pago, como depsitos em poupanas ou saques, representado por nmeros negativos; o saldo em dinheiro recebido, como cheques de dividendos e outros depsitos, representado por nmeros positivos. Para obter informaes adicionais sobre funes financeiras, consulte a funo VP.

Exemplo

Funo PGTO

2.6.3 IPGTO
Retorna o pagamento de juros para um determinado perodo de investimento de acordo com pagamentos peridicos e constantes e com uma taxa de juros constante. Para obter uma descrio completa dos argumentos em IPGTO e para obter mais informaes sobre funes de anuidade, consulte VP. Sintaxe IPGTO(taxa;perodo;nper;vp;vf;tipo) Taxa a taxa de juros por perodo. Perodo o perodo cujos juros se deseja saber e deve estar no intervalo entre 1 e nper. Nper o nmero total de perodos de pagamento em uma anuidade. Vp o valor presente ou atual de uma srie de pagamentos futuros.
Pgina 44 de 219

Microsoft Excel Estudo Avanado

Vf o valor futuro, ou o saldo, que voc deseja obter depois do ltimo pagamento. Se vf for omitido, ser considerado 0 (o valor futuro de um emprstimo, por exemplo, 0). Tipo o nmero 0 ou 1 e indica as datas de vencimento dos pagamentos. Se tipo for omitido, ser considerado 0, onde 0 o fim do perodo e 1 o incio do perodo. Comentrios Certifique-se de que esteja sendo consistente quanto s unidades usadas para especificar taxa e nper. Se fizer pagamentos mensais de um emprstimo de quatro anos com taxa de juros de 12% ao ano, use 12%/12 para taxa e 4*12 para nper. Se voc fizer pagamentos anuais para o mesmo emprstimo, use 12% para taxa e 4 para nper. Todos os argumentos, saques, tais como depsitos em poupana, sero representados por nmeros negativos; depsitos recebidos, tais como cheques de dividendos, sero representados por nmeros positivos.

Exemplo

Funo IPGTO

2.6.4 VF
Retorna o valor futuro de um investimento de acordo com os pagamentos peridicos e constantes e com uma taxa de juros constante. Sintaxe
Pgina 45 de 219

Microsoft Excel Estudo Avanado

VF(taxa;nper;pgto;vp;tipo) Para obter uma descrio completa dos argumentos em VF e para obter mais informaes sobre as funes de anuidade, consulte VP. Taxa a taxa de juros por perodo. Nper o nmero total de perodos de pagamento em uma anuidade. Pgto o pagamento feito a cada perodo; no pode mudar durante a vigncia da anuidade. Geralmente, pgto contm o capital e os juros e nenhuma outra tarifa ou taxas. Se pgto for omitido, voc dever incluir o argumento vp. Vp o valor presente ou a soma total correspondente ao valor presente de uma srie de pagamentos futuros. Se vp for omitido, ser considerado 0 (zero) e a incluso do argumento pgto ser obrigatria. Tipo o nmero 0 ou 1 e indica as datas de vencimento dos pagamentos. Se tipo for omitido, ser considerado 0, Onde 0 o valor futuro e 1 o valor presente. Comentrios Certifique-se de que esteja sendo consistente quanto s unidades usadas para especificar taxa e nper. Se fizer pagamentos mensais de um emprstimo de quatro anos com taxa de juros de 12% ao ano, use 12%/12 para taxa e 4*12 para nper. Se voc fizer pagamentos anuais para o mesmo emprstimo, use 12% para taxa e 4 para nper. Todos os argumentos, saques, tais como depsitos em poupana, sero representados por nmeros negativos; depsitos recebidos, tais como cheques de dividendos, sero representados por nmeros positivos.

Exemplo

Funo VF
Pgina 46 de 219

Microsoft Excel Estudo Avanado

2.6.5 VP
Retorna o valor presente de um investimento. O valor presente o valor total correspondente ao valor atual de uma srie de pagamentos futuros. Por exemplo, quando voc pede dinheiro emprestado, o valor do emprstimo o valor presente para quem empresta. Sintaxe VP(taxa;nper;pgto;vf;tipo) Taxa a taxa de juros por perodo. Por exemplo, se voc obtiver um emprstimo para um carro com uma taxa de juros de 10% ao ano e fizer pagamentos mensais, a sua taxa de juros mensal ser 10%/12, ou 0,83%. Voc deve inserir 10%/12, ou 0,83%, ou 0,0083, na frmula como taxa. Nper o nmero total de perodos de pagamento de uma anuidade. Por exemplo, se voc obtiver um emprstimo de quatro anos e fizer pagamentos mensais, o emprstimo ter 4*12 (ou 48) perodos. Voc deve inserir 48 na frmula para nper. Pgto o pagamento feito a cada perodo e no pode mudar durante a vigncia da anuidade. Geralmente, pgto inclui o principal e os juros, e no h outras tarifas ou taxas. Por exemplo, os pagamentos mensais por um emprstimo para o carro de R$ 10.000 de quatro anos a 12% so R$ 263,33. Voc deve inserir -263,33 na frmula como pgto. Se pgto for omitido, voc dever incluir o argumento vf. Vf o valor futuro, ou um saldo de caixa, que voc deseja obter depois do ltimo pagamento. Se vf for omitido, ser considerado 0 (o valor futuro de determinado emprstimo, por exemplo, 0). Por exemplo, se quiser economizar R$ 50.000 para pagar um projeto especial em 18 anos, ento R$ 50.000 o valor futuro. Voc pode ento calcular a taxa de juros e determinar quanto dever economizar a cada ms. Se vf for omitido, voc dever incluir o argumento pgto. Tipo o nmero 0 ou 1 e indica as datas de vencimento. Onde 0 o valor futuro e 1 o valor presente. Exemplo

Pgina 47 de 219

Microsoft Excel Estudo Avanado

Funo VP

2.6.6 MTIR
Retorna a taxa interna de retorno modificada para uma srie de fluxos de caixa peridicos. MTIR considera o custo do investimento e os juros recebidos no reinvestimento do capital. Sintaxe MTIR(valores;taxa_financ;taxa_reinvest) Valores uma matriz ou referncia a clulas que contm nmeros. Estes nmeros representam uma srie de pagamentos (valores negativos) e receitas (valores positivos) que ocorrem em perodos regulares. Valores deve conter pelo menos um valor positivo e um negativo para calcular a taxa interna de retorno modificada. Caso contrrio, MTIR retornar o valor de erro #DIV/0!. Se uma matriz ou argumento de referncia contiver texto, valores lgicos ou clulas vazias, estes valores sero ignorados; no entanto, clulas com valor zero sero includas.

Taxa_financ a taxa de juros paga sobre o dinheiro usado nos fluxos de caixa. Taxa_reinvest a taxa de juros recebida nos fluxos de caixa ao reinvesti-los. Comentrios MTIR utiliza a ordem de valores para interpretar a ordem de fluxos de caixa. Certifique-se de inserir os valores de pagamento e renda na seqncia desejada e com os sinais corretos (valores positivos para quantias recebidas, valores negativos para quantias pagas). Se n for o nmero de fluxos de caixa, taxa f para taxa_financ e taxa r para taxa_reinvest, ento a frmula para MTIR ser:
Pgina 48 de 219

Microsoft Excel Estudo Avanado

Exemplo

Funo MITR

2.6.7 NOMINAL
Retorna a taxa de juros anual nominal, dados a taxa efetiva e o nmero de perodos compostos por ano. Se esta funo no estiver disponvel e retornar o erro #NOME?, instale e carregue o suplemento Ferramentas de anlise. Sintaxe NOMINAL(taxa_efet,npera) Taxa_efet a taxa de juros efetiva. Npera o nmero de perodos compostos por ano. Comentrios
Pgina 49 de 219

Microsoft Excel Estudo Avanado

Npera truncado para que aparea como um nmero inteiro. Se qualquer um dos argumentos no for numrico, NOMINAL retornar o valor de erro #VALOR!. Se taxa_efet 0 ou se npera < 1, NOMINAL retornar o valor de erro #NM!. NOMINAL est relacionada a EFFECT conforme indicado na seguinte equao:

Exemplo

Funo NOMINAL

2.6.8 NPER
Retorna o nmero de perodos para investimento de acordo com pagamentos constantes e peridicos e uma taxa de juros constante. Sintaxe NPER(taxa;pgto;vp;vf;tipo) Para obter uma descrio completa dos argumentos em NPER e sobre as funes de anuidade, consulte VP. Taxa a taxa de juros por perodo. Pgto o pagamento feito em cada perodo; no pode mudar durante a vigncia da anuidade. Geralmente, pgto contm o capital e os juros, mas nenhuma outra tarifa ou taxas. Vp o valor presente ou atual de uma srie de pagamentos futuros.
Pgina 50 de 219

Microsoft Excel Estudo Avanado

Vf o valor futuro, ou o saldo, que voc deseja obter depois do ltimo pagamento. Se vf for omitido, ser considerado 0 (o valor futuro de um emprstimo, por exemplo, 0). Tipo o nmero 0 ou 1 e indica as datas de vencimento, onde 0 significa o fim do perodo e 1 o incio do perodo. Exemplo

Funo NPER

2.6.9 PGTO
Retorna o pagamento peridico de uma anuidade de acordo com pagamentos constantes e com uma taxa de juros constante. Sintaxe PGTO(taxa;nper;vp;vf;tipo) Para obter uma descrio mais completa dos argumentos em PGTO, consulte a funo VP. Taxa a taxa de juros por perodo. Nper o nmero total de pagamentos pelo emprstimo. Vp o valor presenteo valor total presente de uma srie de pagamentos futuros.
Pgina 51 de 219

Microsoft Excel Estudo Avanado

Vf o valor futuro, ou o saldo de caixa, que voc deseja obter depois do ltimo pagamento. Se vf for omitido, ser considerado 0 (o valor futuro de determinado emprstimo, por exemplo, 0). Tipo o nmero 0 ou 1 e indica as datas de vencimento. Onde 0 significa o fim do perodo e 1 o incio do perodo. Exemplo

Funo PGTO

2.6.10

PPGTO

Retorna o pagamento de capital para determinado perodo de investimento de acordo com pagamentos constantes e peridicos e uma taxa de juros constante. Sintaxe PPGTO(taxa;perodo;nper;vp;vf;tipo) Para uma descrio mais completa dos argumentos em PPGTO, consulte VP. Taxa a taxa de juros por perodo. Perodo especifica o perodo e deve estar entre 1 e nper. Nper o nmero total de perodos de pagamento em uma anuidade. Vp o valor presente o valor total correspondente ao valor atual de uma srie de pagamentos futuros. Vf o valor futuro, ou o saldo de caixa, que voc deseja obter depois do ltimo pagamento. Se vf for omitido, ser considerado 0 (o valor futuro de determinado emprstimo, por exemplo, 0). Tipo o nmero 0 ou 1 e indica as datas de vencimento. Onde 0 representa o fim do perodo e 1 o incio do perodo.
Pgina 52 de 219

Microsoft Excel Estudo Avanado

Comentrio Certifique-se de que esteja sendo consistente quanto s unidades usadas para especificar taxa e nper. Se fizer pagamentos mensais de um emprstimo de quatro anos com taxa de juros de 12% ao ano, use 12%/12 para taxa e 4*12 para nper. Se voc fizer pagamentos anuais para o mesmo emprstimo, use 12% para taxa e 4 para nper. Exemplo

Funo PPGTO

2.6.11

TAXA

Retorna a taxa de juros por perodo de uma anuidade. TAXA calculado por iterao e pode ter zero ou mais solues. Se os resultados sucessivos de TAXA no convergirem para 0,0000001 depois de 20 iteraes, TAXA retornar o valor de erro #NM!. Sintaxe TAXA(nper;pgto;vp;vf;tipo;estimativa) Consulte VP para obter uma descrio completa dos argumentos nper, pgto, vp, vf e tipo. Nper o nmero total de perodos de pagamento em uma anuidade. Pgto o pagamento feito em cada perodo e no pode mudar durante a vigncia da anuidade. Geralmente, pgto inclui o principal e os juros e nenhuma outra taxa ou tributo. Se pgto for omitido, voc dever incluir o argumento vf. Vp o valor presente o valor total correspondente ao valor atual de uma srie de pagamentos futuros.
Pgina 53 de 219

Microsoft Excel Estudo Avanado

Vf o valor futuro, ou o saldo, que voc deseja obter depois do ltimo pagamento. Se vf for omitido, ser considerado 0 (o valor futuro de um emprstimo, por exemplo, 0). Tipo o nmero 0 ou 1 e indica as datas de vencimento, onde 0 o fim do perodo e 1 o incio do perodo. Estimativa a sua estimativa para a taxa. Se voc omitir estimativa, este argumento ser considerado 10%. Se TAXA no convergir, atribua valores diferentes para estimativa. Em geral, TAXA converge se estimativa estiver entre 0 e 1.

Comentrios Certifique-se de que esteja sendo consistente quanto s unidades usadas para especificar estimativa e nper. Se voc fizer pagamentos mensais por um emprstimo de quatro anos com juros de 12% ao ano, utilize 12%/12 para estimativa e 4*12 para nper. Se fizer pagamentos anuais para o mesmo emprstimo, utilize 12% para estimativa e 4 para nper. Exemplo

Funo TAXA

2.6.12

TIR

Retorna a taxa interna de retorno de uma seqncia de fluxos de caixa representada pelos nmeros em valores. Estes fluxos de caixa no precisam ser iguais como no caso de uma anuidade. Entretanto, os fluxos de caixa devem ser feitos em intervalos regulares, como mensalmente ou anualmente. A taxa interna de retorno a taxa de juros recebida para um investimento que consiste em pagamentos (valores negativos) e receitas (valores positivos) que ocorrem em perodos regulares.
Pgina 54 de 219

Microsoft Excel Estudo Avanado

Sintaxe TIR(valores;estimativa) Valores uma matriz ou uma referncia a clulas que contm nmeros cuja taxa interna de retorno se deseja calcular. Valores deve conter pelo menos um valor positivo e um negativo para calcular a taxa interna de retorno. TIR usa a ordem de valores para interpretar a ordem de fluxos de caixa. Certifique-se de inserir os valores de pagamentos e rendas na seqncia desejada. Se uma matriz ou argumento de referncia contiver texto, valores lgicos ou clulas em branco, estes valores sero ignorados.

Estimativa um nmero que se estima ser prximo do resultado de TIR. O Microsoft Excel usa uma tcnica iterativa para calcular TIR. Comeando por estimativa, TIR refaz o clculo at o resultado ter uma preciso de 0,00001 por cento. Se TIR no puder localizar um resultado que funcione depois de 20 tentativas, o valor de erro #NM! ser retornado. Na maioria dos casos, no necessrio fornecer estimativa para o clculo de TIR. Se estimativa for omitida, ser considerada 0,1 (10 por cento). Se TIR fornecer o valor de erro #NM!, ou se o resultado no for prximo do esperado, tente novamente com um valor diferente para estimativa.

Comentrios TIR est intimamente relacionada com VPL, a funo do valor presente lquido. A taxa de retorno calculada por TIR a taxa de juros correspondente a um valor presente lquido zero. A seguinte frmula demonstra como VPL e TIR esto relacionados: VPL(TIR(B1:B6);B1:B6) igual a 3,60E-08 (Com a preciso do clculo TIR, o valor 3,60E-08 , na verdade, 0.) Exemplo

Pgina 55 de 219

Microsoft Excel Estudo Avanado

TIR

2.6.13

VPL

Calcula o valor lquido atual de um investimento utilizando a taxa de desconto e uma srie de futuros pagamentos (valores negativos) e receita (valores positivos). Sintaxe VPL(taxa,valor1,valor2; ...) Taxa a taxa de desconto sobre o intervalo de um perodo. Valor1; valor2;... so argumentos de 1 a 29 que representam os pagamentos e a receita. Valor1; valor2;... devem ter o mesmo intervalo de tempo entre eles e ocorrer ao final de cada perodo. VPL utiliza a ordem de valor1; valor2;... para interpretar a ordem de fluxos de caixa. Certifique-se de fornecer os valores de pagamentos e receita na seqncia correta. Argumentos que so nmeros, clulas vazias, valores lgicas ou representaes em forma de texto de nmeros so contados; os argumentos que so valores de erro ou texto que no podem ser traduzidos em nmeros so ignorados.

Pgina 56 de 219

Microsoft Excel Estudo Avanado

Se um argumento for uma matriz ou referncia, apenas os nmeros da matriz ou referncia sero contados. Clulas vazias, valores lgicos, valores de texto ou de erro na matriz ou referncia so ignorados.

Comentrios O investimento de VPL comea um perodo antes da data do fluxo de caixa de valor1 e termina com o ltimo fluxo de caixa na lista. O clculo de VPL baseia-se em fluxos e caixa futuros. Se o seu primeiro fluxo de caixa ocorrer no incio do primeiro perodo, o primeiro valor dever ser includo ao resultado VPL, e no nos valores de argumentos. Para obter mais informaes, consulte os exemplos abaixo. Se n for o nmero de fluxos de caixa na lista de valores, a frmula para VPL ser:

VPL assemelha-se funo VP (valor presente). A principal diferena entre VP e VPL que a primeira permite que os fluxos de caixa comecem no final ou no incio do perodo. Diferentemente dos valores de fluxo de caixa da varivel VPL, os fluxos de caixa VP devem ser constantes durante o perodo de investimento. Para obter informaes sobre anuidades e funes financeiras, consulte VP. VPL tambm est relacionado funo TIR (taxa interna de retorno). TIR a taxa para qual VPL igual a zero: VPL(TIR(...); ...)=0.

Exemplo

Funo VPL

Pgina 57 de 219

Microsoft Excel Estudo Avanado

2.7 Funes de Data e hora


Vamos ver as principais funes para a manipulao de data e hora no Excel XP.

2.7.1 AGORA
Retorna o nmero de srie seqencial da data e hora atuais. Se o formato da clula era Geral antes de a funo ser inserida, o resultado ser formatado como uma data. Sintaxe AGORA( ) Comentrios O Microsoft Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900. Os nmeros direita da vrgula decimal no nmero de srie representam a hora; os nmeros esquerda representam a data. Por exemplo, o nmero de srie 0,5 representa a hora 12:00 meio-dia. A funo AGORA s muda quando a planilha calculada ou quando a macro que contm a funo executada, no sendo atualizada continuamente.

2.7.2 ANO
Retorna o ano correspondente a uma data. O ano retornado como um inteiro no intervalo de 1900-9999. Sintaxe ANO(nm_srie) Nm_srie a data do ano que voc deseja localizar. As datas devem ser inseridas com a funo DATA ou como resultado de outras frmulas ou funes. Por exemplo, use DATA(2008;5;23) para 23 de maio de 2008. Comentrios O Microsoft Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o
Pgina 58 de 219

Microsoft Excel Estudo Avanado

nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900. Os valores retornados pelas funes ANO, MS e DIA sero valores gregorianos, no importa qual seja o formato de exibio do valor de data fornecido. Por exemplo, se o formato de exibio da data fornecida for HIjri, os valores retornados para as funes ANO, MS e DIA sero valores associados data gregoriana equivalente. Exemplo

- funo ANO

DATA Retorna o nmero de srie seqencial que representa uma determinada data. Se o formato da clula era Geral antes de a funo ser inserida, o resultado ser formatado como uma data. Sintaxe DATA(ano,dia,ms) Ano O argumento de ano pode ter de um a quatro dgitos. O Microsoft Excel interpretar o argumento de ano de acordo com o sistema de data que voc estiver usando. Por padro, o Excel para Windows usa o sistema de data de 1900. Se o ano estiver entre 0 (zero) e 1899 (inclusive), o Excel adicionar o valor a 1900 para calcular o ano. Por exemplo, DATA(108,2,1) retorna 2 janeiro, 2008 (1900+108). Se o ano estiver entre 1900 e 9999 (inclusive), o Excel usar esse valor como o ano. Por exemplo, DATA(2008,2,1) retorna 2 janeiro, 2008. Se o ano for menor do que 0 ou igual a ou maior que 10000, o Excel retornar o valor de erro #NM!.
Pgina 59 de 219

Microsoft Excel Estudo Avanado

Se o ano estiver entre 4 e 1899 (inclusive), o Excel adicionar esse valor a 1900 para calcular o ano. Por exemplo, DATA(108,2,1) retorna 2 janeiro, 2008 (1900+108). Se o ano estiver entre 1904 e 9999 (inclusive), o Excel usar esse valor como o ano. Por exemplo, DATA(2008,2,1) retorna 2 janeiro, 2008. Se o ano for menor do que 4 ou igual a ou maior que 10000 ou se estiver entre 1900 e 1903 (inclusive), o Excel retornar o valor de erro #NM!.

Ms um nmero que representa o ms do ano. Se o valor de ms for maior do que 12, esse nmero ser adicionado ao primeiro ms do ano especificado. Por exemplo, DATA(2008,2,14) retorna o nmero de srie que representa 2 fevereiro, 2009. Dia um nmero que representa o dia do ms. Se o valor de dia for maior do que o nmero de dias do ms especificado, esse nmero ser adicionado ao primeiro dia do ms. Por exemplo, DATA(2008,35,1) retorna o nmero de srie que representa 4 fevereiro, 2008. Comentrios O Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900. A funo DATA mais til em frmulas em que o ano, o ms e o dia so frmulas, no constantes.

Funo DATA

2.7.3 DATA.VALOR
Retorna o nmero de srie da data representada por texto_data. Use DATA.VALOR para converter uma data representada pelo texto em um nmero de srie.
Pgina 60 de 219

Microsoft Excel Estudo Avanado

Sintaxe DATA.VALOR(texto_data) Texto_data texto que representa uma data no formato de data do Microsoft Excel. Por exemplo, "30/1/1998" ou "30-jan-1998" so seqncias de caracteres de texto entre aspas que representam datas. Ao usar o sistema de data padro no Excel para Windows, texto_data dever representar uma data de 1 de janeiro de 1900 a 31 de dezembro de 9999. Se a parte do ano de texto_data for omitida, DATA.VALOR utilizar o ano atual do relgio interno do computador. As informaes de hora texto_data so ignoradas. Comentrios O Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900. A maior parte das funes converte automaticamente valores de data em nmeros de srie. Exemplo

Funo DATA.VALOR

2.7.4 DIA
Retorna o dia de uma data representado por um nmero de srie. O dia dado como um inteiro que varia de 1 a 31. Sintaxe DIA(nm_srie)
Pgina 61 de 219

Microsoft Excel Estudo Avanado

Nm_srie a data do dia que voc est tentando encontrar. As datas devem ser inseridas com a funo DATA ou como resultado de outras frmulas ou funes. Por exemplo, use DATA(2008,5,23) para 23 de maio de 2008. Comentrios O Microsoft Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900. Os valores retornados pelas funes ANO, MS e DIA sero valores gregorianos, independentemente do formato de exibio do valor de data fornecido. Por exemplo, se o formato de exibio da data fornecida for Hijir, os valores retornados para as funes ANO, MS e DIA sero valores associados data gregoriana equivalente. Exemplo

Funo DIA

2.7.5 DIA.DA.SEMANA
Retorna o dia da semana correspondente a uma data. O dia dado como um inteiro, variando de 1 (domingo) a 7 (sbado), por padro. Sintaxe DIA.DA.SEMANA(nm_srie; retornar_tipo) Nm_srie um nmero seqencial que representa a data do dia que voc est tentando encontrar. As datas devem ser inseridas com a funo DATA ou como resultado de outras frmulas ou funes. Por exemplo, use DATA(2008;5;23) para 23 de maio de 2008. Retornar_tipo um nmero que determina o tipo do valor retornado, onde 1 determina o intervalo entre 1 e 7 (de Domingo a sbado), o valor 2 representa o intervalo 1 a 7 como de Segunda a Domingo e o valor 3 representa o mesmo intervalo, Segunda a domingo mas para valores de 0 a 6.
Pgina 62 de 219

Microsoft Excel Estudo Avanado

Comentrios O Microsoft Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900. Exemplo

Funo DIA.DA.SEMANA

2.7.6 DIA360
Retorna o nmero de dias entre duas datas com base em um ano de 360 dias (doze meses de 30 dias). Use esta funo para ajudar no clculo dos pagamentos, se o seu sistema de contbil estiver baseado em doze meses de 30 dias. Sintaxe DIAS360(data_inicial;data_final;mtodo) Data_inicial e data_final so as duas datas entre as quais voc deseja saber o nmero de dias. Se data_inicial ocorrer aps data_final, DIAS360 retornar um nmero negativo. As datas devem ser inseridas com a funo DATA ou como resultado de outras frmulas ou funes. Por exemplo, use DATA(2008,5,23) para 23 de maio de 2008. Mtodo um valor lgico que especifica que mtodo ser usado no clculo, o americano ou o europeu. Se mtodo for FALSO ou Omitido, utiliza-se o mtodo americano, ou seja, se a data inicial for o dia 31 de um ms, ela se tornar igual ao dia 30 do mesmo ms. Se a data final for o dia 31 de um ms e a data inicial for anterior ao trigsimo dia de um ms, a data final se tornar igual ao dia
Pgina 63 de 219

Microsoft Excel Estudo Avanado

primeiro do prximo ms. Caso contrrio, a data final se tornar igual ao trigsimo dia do mesmo ms. Se o mtodo for Verdadeiro, utiliza-se o mtodo europeu, ou seja, a data inicial e final que ocorrer no dia 31 de um ms se tornar igual ao trigsimo dia do mesmo ms.

Comentrios O Microsoft Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900. Exemplo

Funo DIA360

2.7.7 HOJE
Retorna o nmero de srie da data atual. O nmero de srie o cdigo de datahora usado pelo Microsoft Excel para clculos de data e hora. Se o formato da clula era Geral antes de a funo ser inserida, o resultado ser formatado como uma data. Sintaxe HOJE( ) Comentrios O Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900.

Pgina 64 de 219

Microsoft Excel Estudo Avanado

2.7.8 MS
Retorna o ms de uma data representado por um nmero de srie. O ms fornecido como um inteiro, variando de 1 (janeiro) a 12 (dezembro). Sintaxe MS(nm_srie) Nm_srie a data do ms que voc est tentando encontrar. As datas devem ser inseridas com a funo DATA ou como resultado de outras frmulas ou funes. Por exemplo, use DATA(2008,5,23) para 23 de maio de 2008. Comentrios O Microsoft Excel armazena datas como nmeros de srie seqenciais para que eles possam ser usados em clculos. Por padro, 1 de janeiro de 1900 o nmero de srie 1 e 1 de janeiro de 2008 o nmero de srie 39448 porque est 39.448 dias aps 1 de janeiro de 1900. Exemplo

Funo Hoje

2.7.9 VALOR TEMPO


Retorna o nmero decimal da hora representada por uma seqncia de caracteres de texto. O nmero decimal um valor que varia de 0 a 0,99999999 e que representa as horas entre 0:00:00 (12:00:00 AM) e 23:59:59 (11:59:59 PM). Sintaxe VALOR.TEMPO(texto_hora) Texto_hora uma seqncia de caracteres de texto que representa uma hora em qualquer um dos formatos de hora do Microsoft Excel, por exemplo, as seqncias de caracteres de texto entre aspas "6:45 PM" e "18:45" representam hora. Comentrios
Pgina 65 de 219

Microsoft Excel Estudo Avanado

As informaes de data em texto_hora so ignoradas. O Excel para Windows e o Excel para o Macintosh usam sistemas de data diferentes como seus padres. Os valores de tempo so uma parte do valor de data e so representados por um nmero decimal (por exemplo, 12:00 PM representado por 0,5 porque metade de um dia).

Exemplo

Funo VALOR.TEMPO

2.8 Funes Lgicas


Vamos verificar as funes que trabalham com valores de tipos boleanos (verdadeiro e falso, sim ou no),

2.8.1 E
Retornar VERDADEIRO se todos os argumentos forem verdadeiros; retornar FALSO se um ou mais argumentos forem falsos. Sintaxe E(lgico1;lgico2; ...) Lgico1; lgico2;... so de 1 a 30 condies que voc deseja testar e que podem ser VERDADEIRO ou FALSO. Comentrios Os argumentos devem ser avaliados para valores lgicos, como VERDADEIRO ou FALSO, ou devem ser matrizes ou referncias que contm valores lgicos. Se um argumento de uma matriz ou referncia contiver texto ou clulas vazias, esses valores sero ignorados.

Pgina 66 de 219

Microsoft Excel Estudo Avanado

Se o intervalo especificado no contiver valores lgicos, E retornar o valor de erro #VALOR!.

Exemplo

Funo E

2.8.2 FALSO
Retorna o valor lgico FALSO. Sintaxe FALSO( ) Comentrios Voc tambm pode digitar a palavra FALSO diretamente na planilha ou frmula, e o Microsoft Excel a interpretar como o valor lgico FALSO.

2.8.3 NO
Inverte o valor do argumento. Use NO quando quiser ter certeza de que um valor no igual a outro valor determinado. Sintaxe NO(lgico) Lgico um valor ou expresso que pode ser avaliado como VERDADEIRO ou FALSO.
Pgina 67 de 219

Microsoft Excel Estudo Avanado

Comentrios Se lgico for FALSO, NO retornar VERDADEIRO; se lgico for VERDADEIRO, NO retornar FALSO. Exemplo

Funo NO

2.8.4 OU
Retorna VERDADEIRO se qualquer argumento for VERDADEIRO; retorna FALSO se todos os argumentos forem FALSOS. Sintaxe OU(lgico1;lgico2;...) Lgico1;lgico2,... so de uma a 30 condies que voc deseja testar e que podem resultar em VERDADEIRO ou FALSO. Comentrios Os argumentos devem ser avaliados como valores lgicos, como VERDADEIRO ou FALSO, ou em matrizes ou referncias que contenham valores lgicos. Se um argumento de uma matriz ou referncia contiver texto ou clulas vazias, esses valores sero ignorados. Se o intervalo especificado no contiver valores lgicos, OU retornar o valor de erro #VALOR!. Voc pode usar uma frmula de matriz OU para verificar se um valor ocorre em uma matriz. Para inserir uma frmula de matriz, pressione CTRL+SHIFT+ENTER.

Exemplo

Pgina 68 de 219

Microsoft Excel Estudo Avanado

Funo OU

2.8.5 VERDADEIRO
Retorna o valor lgico VERDADEIRO. Sintaxe VERDADEIRO( ) Comentrios Voc pode inserir o valor VERDADEIRO diretamente nas clulas e frmulas sem usar esta funo. A funo VERDADEIRO fornecida primeiramente para compatibilidade com outros programas de planilha.

2.9 Funes Estatsticas


Veremos agora as funes muito utilizadas para clculos estatsticos em planilhas eletrnicas do Excel XP.

2.9.1 CONT.NM
Conta quantas clulas contm nmeros e tambm os nmeros na lista de argumentos. Use CONT.NM para obter o nmero de entradas em um campo de nmero que esto em um intervalo ou matriz de nmeros. Sintaxe CONT.NM(valor1;valor2;...) Valor1; valor2, ... so argumentos de 1 a 30 que contm ou se referem a uma variedade de diferentes tipos de dados, mas somente os nmeros so contados. Comentrios

Pgina 69 de 219

Microsoft Excel Estudo Avanado

Os argumentos que so nmeros, datas ou representaes de texto de nmero so calculados, os argumentos que so valores de erro ou texto que no podem ser traduzidos em nmeros so ignorados. Se um argumento for uma matriz ou referncia, somente os nmeros nesta matriz ou referncia so calculados. Clulas vazias, valores lgicos, texto ou valores de erro nesta matriz ou referncia so ignorados. Se voc precisa calcular valores lgicos, texto ou valores de erro, utilize a funo CONT.VALORES.

Exemplo

Funo CONT.NM

2.9.2 CONT.SE
Calcula o nmero de clulas no vazias em um intervalo que corresponde a determinados critrios. Sintaxe CONT.SE(intervalo;critrios) Intervalo o intervalo de clulas no qual se deseja contar clulas no vazias. Critrios o critrio na forma de um nmero, expresso ou texto que define quais clulas sero contadas. Por exemplo, os critrios podem ser expressos como 32, "32", ">32", "mas".
Pgina 70 de 219

Microsoft Excel Estudo Avanado

Comentrios O Microsoft Excel fornece funes adicionais que podem ser usadas para analisar seus dados com base em uma condio. Por exemplo, para calcular uma soma baseada em uma seqncia de caracteres de texto ou em um nmero contido em um intervalo, use a funo de planilha SOMASE. Para que a frmula retorne um de dois valores com base em uma condio, como uma bonificao de vendas baseada em um valor de vendas especificado, use a funo de planilha SE. Exemplo

Funo CONT.SE

2.9.3 CONT.VALORES
Calcula o nmero de clulas no vazias e os valores na lista de argumentos. Use CONT.VALORES para calcular o nmero de clulas com dados em um intervalo ou matriz. Sintaxe CONT.VALORES(valor1;valor2;...) Valor1; valor2;... so argumentos de 1 a 30 que representam os valores que voc deseja calcular. Neste caso, um valor qualquer tipo de informaes, incluindo texto vazio (""), mas no incluindo clulas em branco. Se um argumento for uma matriz ou referncia, as clulas vazias na matriz ou referncia so ignoradas. Se voc no precisa calcular valores lgicos, texto ou valores de erro, utilize a funo CONT.NM Exemplo
Pgina 71 de 219

Microsoft Excel Estudo Avanado

Funo CONT.VALORES

2.9.4 CONTAR.VAZIO
Conta o nmero de clulas vazias no intervalo especificado. Sintaxe CONTAR.VAZIO(intervalo) Intervalo o intervalo no qual se deseja contar as clulas em branco. Comentrios Clulas com frmulas que retornam "" (texto vazio) tambm so contadas. Clulas com valores nulos no so contadas. Exemplo

Pgina 72 de 219

Microsoft Excel Estudo Avanado

Funo CONT.VAZIO

2.9.5 CRESCIMENTO
Calcula o crescimento exponencial previsto usando dados existentes. CRESCIMENTO retorna os valores y para uma srie de novos valores x que voc especifica usando valores x e y existentes. Voc tambm pode usar a funo de planilha CRESCIMENTO para ajustar uma curva exponencial em valores x e y. Sintaxe CRESCIMENTO(val_conhecidos_y;val_conhecidos_x;novos_valores_x;cons tante) Val_conhecidos_y o conjunto de valores y que voc j conhece na relao y = b*m^x. Se a matriz val_conhecidos_y estiver em uma nica coluna, cada coluna de val_conhecidos_x ser interpretada como uma varivel separada. Se a matriz val_conhecidos_y for uma nica linha, cada linha de val_conhecidos_x ser interpretada como uma varivel separada. Se qualquer um dos nmeros em val_conhecidos_y for 0 ou negativo, CRESCIMENTO retornar o valor de erro #NM!.

Val_conhecidos_x um conjunto opcional de valores x que voc talvez conhea na relao y = b*m^x. A matriz val_conhecidos_x pode incluir um ou mais conjuntos de variveis. Se apenas uma varivel for usada, val_conhecidos_y e val_conhecidos_x podem ser intervalos de qualquer formato, desde que tenham dimenses iguais. Se mais de uma varivel for usada, val_conhecidos_y deve ser um vetor (ou seja, um intervalo com altura de uma linha ou largura de uma coluna).
Pgina 73 de 219

Microsoft Excel Estudo Avanado

Se val_conhecidos_x for omitido, pressupe-se que a matriz {1,2,3....} do mesmo tamanho que val_conhecidos_y. Novos_valores_x so novos valores x para os quais voc deseja que CRESCIMENTO retorne valores y correspondentes. Novos_valores_x deve incluir uma coluna (ou linha) para cada varivel independente, da mesma forma que val_conhecidos_x. Portanto, se val_conhecidos_y estiver em uma nica coluna, val_conhecidos_x e novos_valores_x devem ter o mesmo nmero de colunas. Se val_conhecidos_y estiver em uma nica linha, val_conhecidos_x e novos_valores_x devem ter o mesmo nmero de linhas. Se novos_valores_x for omitido, ser considerado como equivalente a val_conhecidos_x. Se val_conhecidos_x e novos_valores_x forem omitidos, sero considerados como equivalentes matriz {1,2,3,...} que do mesmo tamanho de val_conhecidos_y.

Constante um valor lgico que fora ou no a constante b a se igualar a 1. Se constante for VERDADEIRO ou omitida, b ser calculado normalmente. Se constante for FALSO, b ser definido como 1 e os valores m sero ajustados para que y = m^x.

Comentrios As frmulas que retornam matrizes devem ser inseridas como frmulas de matriz aps a seleo do nmero de clulas. Ao inserir uma constante de matriz para um argumento, como val_conhecidos_x, use vrgulas na mesma linha e pontos-e-vrgulas para separar linhas.

Exemplo

Pgina 74 de 219

Microsoft Excel Estudo Avanado

Funo CRESCIMENTO

2.9.6 FREQNCIA
Calcula a freqncia com que os valores ocorrem em um intervalo de valores e, em seguida, retorna uma matriz vertical de nmeros. Por exemplo, use FREQNCIA para contar o nmero de resultados de teste. Pelo fato de FREQNCIA retornar uma matriz, deve ser inserida como uma frmula matricial. Sintaxe FREQNCIA(matriz_dados;matriz_bin) Matriz_dados uma matriz ou uma referncia a um conjunto de valores cujas freqncias voc deseja contar. Se matriz_dados no contiver valores, FREQNCIA retornar uma matriz de zeros. Matriz_bin uma matriz ou referncia a intervalos nos quais voc deseja agrupar os valores contidos em matriz_dados. Se matriz_bin no contiver valores, FREQNCIA retornar o nmero de elementos em matriz_dados. Comentrios FREQNCIA inserida como uma frmula matricial depois de selecionado um intervalo de clulas adjacentes no qual voc deseja que a distribuio fornecida aparea. O nmero de elementos da matriz retornada um a mais do que o nmero de elementos de matriz_bin. O elemento adicional da matriz retornada apresenta a contagem dos valores que estiverem acima do intervalo mais
Pgina 75 de 219

Microsoft Excel Estudo Avanado

alto. Por exemplo, ao contar trs intervalos de valores inseridos em trs clulas, certifique-se de inserir a FREQNCIA em quatro clulas para os resultados. A clula adicional retornar o nmero de valores de matriz_dados que forem maiores do que o valor do terceiro intervalo. FREQNCIA ignora clulas em branco e texto. As frmulas que fornecem matrizes devem ser inseridas como frmulas matriciais.

Exemplo

. - Funo FREQNCIA

2.9.7 MAIOR
Retorna o maior valor k-simo de um conjunto de dados. Voc pode usar esta funo para selecionar um valor de acordo com a sua posio relativa. Por exemplo, voc pode usar MAIOR para obter o primeiro, o segundo e o terceiro resultados. Sintaxe MAIOR(matriz;k)
Pgina 76 de 219

Microsoft Excel Estudo Avanado

Matriz a matriz ou intervalo de dados cujo maior valor k-simo voc deseja determinar. K a posio (do maior) na matriz ou intervalo de clula de dados a ser fornecida. Comentrios Se a matriz estiver vazia, MAIOR retornar o valor de erro #NM!. Se k 0 ou se k for maior que o nmero de pontos de dados, MAIOR retornar o valor de erro #NM!. Se n for o nmero de pontos de dados em um intervalo, MAIOR(matriz;1) retornar o maior valor e MAIOR(matriz;n) retornar o menor valor. Exemplo

Funo MAIOR

2.9.8 MXIMO
Retorna o valor mximo de um conjunto de valores. Sintaxe MXIMO(nm1;nm2; ...) Nm1, nm2,... so de 1 a 30 nmeros para os quais voc deseja saber o valor mximo. Comentrios

Pgina 77 de 219

Microsoft Excel Estudo Avanado

Voc pode especificar os argumentos que so nmeros, clulas vazias, valores lgicos ou representaes em texto de nmeros. Os argumentos que so valores de erro ou texto que no podem ser traduzidos em nmeros causam erros. Se um argumento for uma matriz ou referncia, apenas os nmeros nesta matriz ou referncia sero usados. Clulas vazias, valores lgicos ou texto na matriz ou referncia sero ignorados. Se os valores lgicos e o texto tiverem que ser ignorados, use MXIMO. Se os argumentos no contiverem nmeros, MXIMO retornar 0.

Exemplo

Funo MXIMO

2.9.9 MXIMOA
Retorna o maior valor em uma lista de argumentos. Alm de nmeros, so comparados valores lgicos e de texto, como VERDADEIRO e FALSO. MXIMOA semelhante a MNIMOA. Para obter mais informaes, consulte os exemplos de MNIMOA. Sintaxe MXIMOA(valor1;valor2;...) Valor1; valor2;... encontrar. Comentrios so de 1 a 30 valores cujo valor mximo voc deseja

Pgina 78 de 219

Microsoft Excel Estudo Avanado

Voc pode especificar argumentos que sejam nmeros, clulas vazias, valores lgicos ou representaes em forma de texto de nmeros. Os argumentos que so valores de erro geram erros. Se o clculo no deve incluir valores lgicos e de texto, use, em substituio, a funo de planilha MXIMO. Se um argumento for uma matriz ou referncia, sero usados apenas valores nesta matriz ou referncia. As clulas vazias e valores de texto na matriz ou referncia sero ignorados. Os argumentos que contiverem VERDADEIRO sero avaliados como 1; os argumentos que contiverem texto ou FALSO sero avaliados como 0 (zero). Se os argumentos no contiverem valores, MXIMOA retornar 0 (zero).

Exemplo

Funo MXMOA

2.9.10

MED

Retorna a mediana dos nmeros indicados. A mediana o nmero no centro de um conjunto de nmeros; isto , metade dos nmeros possui valores que so maiores do que a mediana e a outra metade possui valores menores. Sintaxe MED(nm1;nm2;...) Nm1; nm2;... so de 1 a 30 nmeros dos quais voc deseja obter a mediana. Comentrios
Pgina 79 de 219

Microsoft Excel Estudo Avanado

Os argumentos devem ser nmeros ou nomes, matrizes ou referncias que contenham nmeros. O Microsoft Excel examina todos os nmeros em cada argumento de referncia ou matriz. Se uma matriz ou argumento de referncia contiver texto, valores lgicos ou clulas vazias, estes valores sero ignorados; no entanto, clulas com valor zero sero includas. Se houver uma quantidade par de nmeros no conjunto, MED calcular a mdia dos dois nmeros do meio. Consulte a segunda frmula no exemplo.

Exemplo

Funo MED

2.9.11
Sintaxe

MDIA

Retorna a mdia aritmtica dos argumentos.

MDIA(nm1;nm2; ...) Nm1; nm2;... so de 1 a 30 argumentos numricos para os quais voc deseja obter a mdia. Comentrios Os argumentos devem ser nmeros ou eles devem ser nomes, matrizes ou referncias que contenham nmeros.

Pgina 80 de 219

Microsoft Excel Estudo Avanado

Se uma matriz ou argumento de referncia contiver texto, valores lgicos ou clulas vazias, estes valores sero ignorados; no entanto, clulas com valor zero sero includas.

Exemplo

Funo Mdia

2.9.12

MEDIAA

Calcula a mdia (mdia aritmtica) dos valores na lista de argumentos. Alm de nmeros, so includos no clculo valores lgicos e de texto, como VERDADEIRO e FALSO. Sintaxe MDIAA(valor1;valor2;...) Valor1; valor2;... so de 1 a 30 clulas, intervalos de clulas ou valores para os quais voc deseja obter a mdia. Comentrios Os argumentos devem ser nmeros, nomes, matrizes ou referncias. Os argumentos de referncia ou matriciais que contiverem texto sero avaliados como 0 (zero). O texto vazio ("") ser avaliado como 0 (zero). Se o clculo no deve incluir valores de texto na mdia, use a funo MDIA. Os argumentos que contiverem VERDADEIRO sero avaliados como 1; os argumentos que contiverem FALSO sero avaliados como 0 (zero).
Pgina 81 de 219

Microsoft Excel Estudo Avanado

Exemplo

Funo MDIAA

2.9.13

MDIA.GEOMTRICA

Retorna a mdia geomtrica de uma matriz ou de um intervalo de dados positivos. Por exemplo, voc pode usar MDIA.GEOMTRICA para calcular o crescimento mdio considerando-se juros compostos com taxas variveis. Sintaxe MDIA.GEOMTRICA(nm1;nm2;...) Nm1, nm2,... so de 1 a 30 argumentos para os quais voc deseja calcular a mdia. Voc tambm pode usar uma nica matriz ou referncia a uma matriz em vez de argumentos separados por ponto-e-vrgulas. Comentrios Os argumentos devem ser nmeros, ou nomes, matrizes ou referncias que contenham nmeros. Se uma matriz ou argumento de referncia contiver texto, valores lgicos ou clulas vazias, estes valores sero ignorados; no entanto, clulas com valor zero sero includas. Se qualquer valor de dados 0, MDIA.GEOMTRICA retornar o valor de erro #NM!.
Pgina 82 de 219

Microsoft Excel Estudo Avanado

A equao para a mdia geomtrica :

Exemplo

Funo MDIAGEOMTRICA MENOR Retorna o menor valor k-simo do conjunto de dados. Use esta funo para retornar valores com uma posio especfica relativa em um conjunto de dados. Sintaxe MENOR(matriz;k) Matriz uma matriz ou intervalo de dados numricos cujo menor valor k-simo voc deseja determinar. K a posio (a partir do menor) na matriz ou intervalo de dados a ser fornecido. Comentrios Se matriz estiver vazia, MENOR retornar o valor de erro #NM!. Se k 0 ou k exceder o nmero de pontos de dados, MENOR retornar o valor de erro #NM!. Se n for o nmero de pontos de dados em matriz, MENOR(matriz;1) ser igual ao menor valor, e MENOR(matriz;n) ser igual ao maior valor.

Exemplo
Pgina 83 de 219

Microsoft Excel Estudo Avanado

Funo MENOR

2.9.14

MNIMO

Retorna o menor nmero na lista de argumentos. Sintaxe MNIMO(nm1;nm2;...) Nm1, nm2,... mnimo. Comentrios Voc pode especificar os argumentos que so nmeros, clulas vazias, valores lgicos ou representaes em texto de nmeros. Os argumentos que so valores de erro ou texto que no podem ser traduzidos em nmeros causam erros. Se um argumento for uma matriz ou referncia, apenas os nmeros daquela matriz ou referncia podero ser usados. Clulas vazias, valores lgicos ou valores de erro na matriz ou referncia sero ignorados. Caso o texto e os valores lgicos no devam ser ignorados, utilize MNIMOA. Se os argumentos no contiverem nmeros, MNIMO retornar 0.
Pgina 84 de 219

so de 1 a 30 nmeros dos quais voc deseja saber o valor

Microsoft Excel Estudo Avanado

Exemplo

Funo Mnimo MNIMOA comparados valores lgicos e de texto, como VERDADEIRO e FALSO. Sintaxe MNIMOA(valor1;valor2;...) Valor1; valor2;... so de 1 a 30 valores cujo menor valor voc deseja encontrar. Comentrios Voc pode especificar argumentos que sejam nmeros, clulas vazias, valores lgicos ou representaes em forma de texto de nmeros. Os argumentos que so valores de erro geram erros. Se o clculo no deve incluir valores lgicos ou de texto, use, em substituio, a funo de planilha MNIMO. Se um argumento for uma matriz ou referncia, sero usados apenas valores nesta matriz ou referncia. As clulas vazias e valores de texto na matriz ou referncia sero ignorados. Os argumentos que contiverem VERDADEIRO sero avaliados como 1; os argumentos que contiverem texto ou FALSO sero avaliados como 0 (zero). Se os argumentos no contiverem valores, MNIMOA retornar 0 (zero).

Exemplo
Pgina 85 de 219

Microsoft Excel Estudo Avanado

Funo MNIMOA MODO Retorna o valor que ocorre com mais freqncia em uma matriz ou intervalo de dados. Assim como MED, MODO uma medida de local. Sintaxe MODO(nm1;nm2;...) Nm1, nm2,... so argumentos de 1 a 30 para os quais voc deseja calcular o modo. Voc tambm pode usar uma nica matriz ou referncia a uma matriz em vez de argumentos separados por pontos-e-vrgulas. Comentrios Os argumentos devem ser nmeros ou nomes, matrizes ou referncias que contenham nmeros. Se uma matriz ou argumento de referncia contiver texto, valores lgicos ou clulas vazias, estes valores sero ignorados; no entanto, clulas com valor zero sero includas. Se o conjunto de dados no contiver pontos de dados duplicados, MODO retornar o valor de erro #N/D.

Em um conjunto de valores, o modo o valor com ocorrncia mais freqente, a mediana o valor do meio e a mdia o valor mdio. Nenhuma medida nica de tendncia central fornece um quadro completo dos dados. Suponha que os dados estejam agrupados em trs reas, metade em torno de um nico valor baixo e a outra metade em torno de dois valores altos. MDIA e MED podem retornar um valor no meio relativamente vazio, enquanto que MODO pode retornar o valor baixo dominante.
Pgina 86 de 219

Microsoft Excel Estudo Avanado

Exemplo

Funo MODO

2.9.15

QUARTIL

Retorna o quartil do conjunto de dados. Quartis so comumente usados em dados de vendas e de pesquisas para dividir a populao em grupos. Por exemplo, voc pode usar QUARTIL para descobrir 25% de maior renda de uma populao. Sintaxe QUARTIL(matriz;quarto) Matriz a matriz ou intervalo de clula de valores numricos cujo valor quartil voc deseja obter. Quarto indica o valor a ser retornado, onde 0 o valor mnimo, 1 representa 25%, 2 representa 50%, 3 representa 75% e 4 o valor mximo. Comentrio Se a matriz estiver vazia, QUARTIL retornar o valor de erro #NM!. Se quarto no for um nmero inteiro, ser truncado. Se quarto < 0 ou se quarto > 4, QUARTIL retornar o valor de erro #NM!. MNIMO, MED e MXIMO retornaro o mesmo valor que QUARTIL quando quarto for igual a 0, 2 e 4, respectivamente.

Exemplo
Pgina 87 de 219

Microsoft Excel Estudo Avanado

Funo QUARTIL

2.10 Funes de texto


O Excel XP dispe de vrias funes para o tratamento de texto em planilhas, desde converso a concatenao de strings.

2.10.1

CONCATENAR

Agrupa vrias seqncias de caracteres de texto em uma nica seqncia de caracteres de texto. Sintaxe CONCATENAR (texto1;texto2; ...) Texto1; texto2;... so 1 a 30 itens de texto a serem agrupados em um nico item de texto. Os itens de texto podem ser seqncia de caracteres de texto, nmeros ou referncias de clula nica. Comentrios O operador "&" pode ser usado no lugar de CONCATENAR para agrupar itens de texto. Exemplo

Pgina 88 de 219

Microsoft Excel Estudo Avanado

Funo CONCATENAR

2.10.2

DEF.NM.DEC

Arredonda o nmero para o nmero especificado de decimais, formata o nmero no formato decimal usando vrgula e pontos e retorna o resultado como texto. Sintaxe DEF.NM.DEC(nm;decimais;sem_sep_milhar) Nm o nmero que voc deseja arredondar e converter em texto. Decimais o nmero de dgitos direita da vrgula decimal. Sem_sep_milhar um valor lgico que, se VERDADEIRO, impede que DEF.NM.DEC inclua vrgulas no texto retornado. Comentrios Os nmeros no Microsoft Excel no podem ter mais de 15 dgitos significativos, mas os decimais podem chegar a 127. Se decimais for negativo, nm ser arredondado esquerda da vrgula decimal. Se voc omitir decimais, ele ser considerado 2. Se sem_sep_milhar for FALSO ou omitido, o texto retornado incluir vrgulas como padro. A principal diferena entre formatar uma clula que contm um nmero com o comando Clulas (menu Formatar) e formatar um nmero diretamente com a funo DEF.NM.DEC que DEF.NM.DEC converte o resultado em texto. Um nmero formatado com o comando Clulas continua sendo um nmero.

Exemplo
Pgina 89 de 219

Microsoft Excel Estudo Avanado

Funo DEF.NM.DEC

2.10.3

DIREITA

DIREITA retorna o ltimo caractere ou caracteres em uma seqncia de caracteres de texto com base no nmero de caracteres especificado por voc. Sintaxe DIREITA(texto;nm_caract) Texto a seqncia de caracteres de texto que contm os caracteres que voc deseja extrair. Nm_caract especifica o nmero de caracteres a ser extrado por DIREITA. Comentrios Nm_caract deve ser maior ou igual a zero. Se nm_caract for maior do que o comprimento do texto, DIREITA retornar todo o texto. Se nm_caract for omitido, ser considerado 1.

Exemplo

Pgina 90 de 219

Microsoft Excel Estudo Avanado

. Funo DIREITA

2.10.4

ESQUERDA

ESQUERDA retorna o primeiro caractere ou caracteres em uma seqncia de caracteres de texto baseado no nmero de caracteres especificado por voc. Sintaxe ESQUERDA(texto;nm_caract) Texto a seqncia de caracteres de texto que contm os caracteres que voc deseja extrair. Nm_caract especifica o nmero de caracteres que voc deseja que ESQUERDA extraia. Nm_caract deve ser maior ou igual a zero. Se nm_caract for maior do que o comprimento do texto, ESQUERDA retornar todo o texto. Se nm_caract for omitido, ser considerado 1.

Exemplo

Funo ESQUERDA

Pgina 91 de 219

Microsoft Excel Estudo Avanado

2.10.5

EXT.TEXTO

EXT.TEXTO retorna um nmero especfico de caracteres da seqncia de caracteres texto, comeando na posio especificada, com base no nmero de caracteres especificado. Sintaxe EXT.TEXTO(texto;nm_inicial;nm_caract) Texto a seqncia de caracteres de texto que contm os caracteres que voc deseja extrair. Nm_inicial a posio do primeiro caractere que voc deseja extrair como texto. O primeiro caractere em texto possui nm_inicial1, e assim por diante. Nm_caract especifica o nmero de caracteres que voc deseja que EXT.TEXTO retorne do texto. Comentrios Se nm_inicial for maior do que o comprimento de texto, EXT.TEXTO retornar "" (texto vazio). Se nm_inicial for menor do que o comprimento de texto, mas nm_inicial e nm_caract excederem o comprimento de texto, EXT.TEXTO retornar os caracteres at o final do texto. Se nm_inicial for menor do que 1, EXT.TEXTO retornar o valor de erro #VALOR!. Se nm_caract for negativo, EXT.TEXTO retornar o valor de erro #VALOR!.

Exemplo

Pgina 92 de 219

Microsoft Excel Estudo Avanado

Funo EXT.TEXTO

2.10.6

LOCALIZAR

LOCALIZAR retorna o nmero do caractere no qual um caractere especfico ou uma seqncia de caracteres de texto encontrado primeiro, comeando com nm_inicial. Use LOCALIZAR para determinar o local de um caractere ou uma seqncia de caracteres de texto em outra seqncia para que voc possa usar as funes EXT.TEXTO ou MUDAR para alterar o texto. Sintaxe LOCALIZAR(texto_procurado;no_texto;nm_inicial) Texto_procurado o texto que voc deseja localizar. possvel usar os caracteres curinga ponto de interrogao (?) e asterisco (*) em texto_procurado. Um ponto de interrogao coincide com qualquer caractere nico; um asterisco coincide com qualquer seqncia de caracteres. Se desejar localizar um ponto de interrogao ou asterisco real, digite um til (~) antes do caractere. No_texto o texto em que se deseja localizar o texto_procurado. Nm_inicial o nmero do caractere em no_texto em que se deseja iniciar a pesquisa. Comentrios LOCALIZAR e LOCALIZARB no fazem distino entre letras maisculas e minsculas quando localiza texto. Se texto_procurado no for localizado, o valor de erro #VALOR! ser retornado. Se nm_inicial for omitido, ser equivalente a 1.
Pgina 93 de 219

Microsoft Excel Estudo Avanado

Se nm_inicial no for maior do que 0 ou for maior do que o comprimento de no_texto, o valor de erro #VALOR! ser retornado.

Exemplo

Funo LOCALIZAR

Pgina 94 de 219

Microsoft Excel Estudo Avanado

Fundamentos bsicos de Macros e VBA


2.11 Introduo
Nesse e no prximo mdulo veremos assuntos relacionados a automao de tarefas no Excel. Existem situaes onde no conseguimos resolver o problema proposto, simplesmente utilizando os comandos e frmulas do Excel. Nessas situaes temos que fazer o uso de recursos como Macros e Programao. A linguagem de programao do Excel o VBA - Visual Basic for Applications. O VBA a linguagem de programao para todos os aplicativos do Microsoft Office: Word, Excel, Access e Power Point. Nas lies desse mdulo aprenderemos sobre Macros. Veremos o que uma Macro, para que serve, quando devemos usar Macros, como criar e alterar Macros. Em seguida aprenderemos os fundamentos bsicos da linguagem VBA. Nas lies desse mdulo veremos os conceitos tericos da linguagem VBA. Nas lies do prximo mdulo, veremos exemplos de aplicao do VBA para a soluo de problemas prticos, os quais no poderiam ser solucionados sem o uso de programao.

2.12 O que so Macros?


Nesse tpico apresentaremos uma viso geral sobre Macros. Nas prximas lies iremos detalhar os vrios aspectos relacionados Macros. Caso voc execute uma tarefa vrias vezes no Microsoft Excel, possvel automatiz-la com uma macro. Uma macro uma seqncia de comandos e funes armazenados em um mdulo do Visual Basic for Applications - VBA e pode ser executada sempre que voc precisar executar a tarefa. Quando voc grava uma macro, o Excel armazena informaes sobre cada etapa realizada medida que voc executa uma seqncia de comandos. Em seguida, voc executa a macro para repetir, ou "reproduzir", os comandos. Por exemplo, vamos supor que, seguidamente, voc precisa formatar uma clula com Negrito, cor de fonte Vermelha, Itlico, Fonte Verdana de Tamanho 13 com quebra automtica de linha. Ao invs de ter que executar todos os comandos de formatao em cada clula, voc pode criar uma Macro que aplica todos os comandos de formatao. Aps criada a Macro, cada vez que voc tiver que aplicar o conjunto de comandos de formatao, basta executar a Macro, o que normalmente feito atravs da associao de uma combinao de teclas com a Macro, como por exemplo Ctrl+L. No nosso exemplo, cada vez que voc quisesse formatar uma clula com os formatos descritos, bastaria clicar na clula e pressionar Ctrl+L. Bem mais fcil do que aplicar cada comando individualmente.
Pgina 95 de 219

Microsoft Excel Estudo Avanado

Voc pode Gravar uma macro para realizar uma tarefa em uma etapa: Antes de gravar uma macro, planeje as etapas e os comandos que voc deseja que a macro execute. Se cometer um erro durante a gravao da macro, as correes feitas tambm so gravadas. Ao gravar macros, o VBA armazena cada uma em um novo mdulo anexado a uma pasta de trabalho. Por exemplo, se voc insere com freqncia seqncias de caracteres de texto extensas nas clulas, voc pode gravar uma macro para formatar essas clulas de maneira que o texto retorne automaticamente. Selecione a clula em que deseja inserir o retorno automtico de texto e inicie a gravao. Clique em Clulas no menu Formatar, clique na guia Alinhamento, marque a caixa de seleo Retorno automtico de texto, clique em OK e, em seguida, clique em Parar gravao . Como gravar uma macro. Nos veremos exemplos detalhados de macros a seguir. Como tornar uma macro fcil de ser executada: Voc pode executar uma macro escolhendo-a de uma lista na caixa de dilogo Macro. Para que uma macro seja executada sempre que voc clicar em um boto especfico ou pressionar determinada combinao de teclas, voc pode atribuir a macro a um boto da barra de ferramentas, um atalho no teclado ou um objeto grfico em uma planilha. Veremos como fazer essas atribuies nas prximas lies.

2.12.1

Como Exibir e alterar macros

Depois de gravar uma macro, voc poder exibir o cdigo da macro com o Editor do VBA para corrigir erros ou alterar a funo da macro. O Editor do VBA um programa criado para facilitar a escrita e a edio de cdigo de macro para principiantes e fornece bastante Ajuda on-line. Voc no precisa aprender a programar ou a usar a linguagem do Visual Basic para fazer alteraes simples nas suas macros. Nas prximas lies veremos como exibir e editar macros. Na Figura a seguir temos um exemplo de cdigo associado com uma Macro. Esse um exemplo de cdigo VBA:

Pgina 96 de 219

Microsoft Excel Estudo Avanado

Janela de macros

2.12.2

Como Gerenciar suas macros Com o Editor do VBA

Voc pode editar macros, copiar macros de um mdulo para outro, copiar macros entre pastas de trabalho diferentes, renomear os mdulos que armazenam as macros ou renomear as macros. Por exemplo, se voc quisesse que a macro de retorno automtico de texto, do exemplo anterior, tambm deixasse o texto em negrito, voc poderia gravar outra macro para aplicar negrito a uma clula e copiar as instrues dessa macro para a macro de retorno automtico de texto. Segurana da macro: O Microsoft Excel XP fornece proteo contra vrus que podem ser transmitidos atravs das macros. Se voc compartilha macros com outros usurios, voc pode certific-las com uma assinatura digital de forma que os outros usurios possam verificar que as macros so de origem confivel. Sempre que voc abrir uma pasta de trabalho que contenha macros, poder verificar a origem das macros antes de ativ-las. Aprenda sobre como evitar vrus de macro.

2.13 Programao no Excel - A linguagem VBA


As Macros so uma excelente soluo quando queremos automatizar uma tarefa que realizada atravs de uma srie de cliques de mouse ou digitaes no teclado. Porm existem situaes mais complexas, que envolvem clculos ou uma lgica mais apurada, onde no possvel encontrar a soluo do problema, simplesmente usando os comandos ou frmulas prontas do Excel. Nessas situaes temos que fazer uso de programao. Um programa (ou mdulo como chamado no Excel) uma seqncia de comandos VBA, onde cada comando executa um passo especfico, necessrio resoluo do problema.
Pgina 97 de 219

Microsoft Excel Estudo Avanado

Informao Para um melhor aproveitamento e entendimento do VBA importante que se tenha uma noo bsica de Lgica de Programao.

Por exemplo, vamos supor que voc precisasse fazer a verificao do CPF que digitado em uma clula. O clculo do DV do CPF, o qual de domnio pblico, envolve uma srie de operaes aritmticas. Para implementar uma funo que faz a verificao do DV do CPF, voc ter que fazer uso de programao. Por isso que, conforme descrito anteriormente, veremos os comandos bsicos da linguagem VBA, para aplica-los em alguns exemplos prticos nas lies dos prximo mdulo.

2.14 O que so Macros?


Conforme descrito anteriormente, uma macro uma seqncia de comandos (cliques de mouse ou toques de teclado) que so gravados em um Mdulo VBA e podem ser executados, sempre que necessrio. A grande vantagem de gravarmos uma seqncia de comandos que poderemos utiliza-la sempre que necessrio. Para isso basta executar a macro na qual foi gravada a seqncia de comandos. As Macros so uma excelente opo para automatizar tarefas repetitivas. Com o uso de Macros temos um ganho de produtividade considervel, ao evitar que tenhamos que executar manualmente, os diversos passos de uma tarefa, passos estes que podem ser automatizados atravs do uso de uma macro.

2.14.1

Criando uma macro assistida

Podemos usar o gravador de Macros: Nesse caso o Excel grava cada uma das aes que faro parte da Macro e transforma essas aes nos comandos VBA equivalentes. Quando a macro for executada, os comandos VBA que sero efetivamente executados. Cada comando VBA corresponde a uma ao efetiva da macro. Criar a Macro usando VBA: A partir do momento em que voc domina a linguagem VBA, poder criar a macro digitando os comandos VBA necessrios. Isso feito usando o Editor de VBA, conforme veremos a seguir.

Pgina 98 de 219

Microsoft Excel Estudo Avanado

Melhor do que uma srie de definies ver uma Macro em ao. Vamos a um exemplo simples, onde criaremos uma Macro. Em seguida vamos executa-la . Na prxima lio analisaremos o cdigo VBA criado pelo gravador de macros. Criar uma macro usando o Gravador de Macros Vamos supor que nossa macro dever formatar a clula atual com Negrito, cor de fonte Vermelha, com fundo cinza. Gravar a macro com o nome de FormataVermCinza. Clique na clula A4. Agora vamos iniciar a gravao da Macro. Selecione o comando Ferramentas -> Macro -> Gravar nova macro. Ser exibida a janela Gravar Macro. No campo Nome da macro digite: FormataVermCinza. No campo Tecla de atalho digite L. Observe que o Excel troca para Ctrl+Shift+L. Isso acontece porque a combinao Ctrl+L j deve estar associada com algum comando do Excel. Com isso estamos associando a combinao Ctrl+Shift+L com a macro FormataVermCinza, ou seja, cada vez que quisermos executar essa macro basta pressionar Ctrl+Shift+L. O campo descrio simplesmente uma descrio da funcionalidade da macro. Digite o texto indicado na Figura 5.2:

Figura 5.2 Definio do nome e da tecla de atalho da Macro. Clique em OK. A gravao da Macro ser iniciada. Todos os comandos que voc executar, durante a gravao da Macro, faro parte da Macro.

Uma nova barra ( ) exibida na planilha do Excel. Essa barra utilizada para parar a gravao da Macro. Agora devemos escolher os comandos que
Pgina 99 de 219

Microsoft Excel Estudo Avanado

faro parte da

macro. Aps ter executado os comandos que faro parte da ) para encerrar a gravao da Macro.

macro, basta clicar no boto Clique no boto (

( )para aplicar Negrito. (

Na lista de Cores da fonte Na lista de Cores de fundo Clique no boto (

) selecione Vermelho. ) selecione Cinza.

)( para encerrar a gravao da Macro.

Agora a macro FormataVermCinza foi criada e podemos utiliza-la sempre que necessrio.

2.14.2

Executando a macro

Clique na Clula B7. Pressione Ctrl+Shift+L. A macro FormataVermCinza executada e as formataes definidas pela macro (Negrito, fonte Vermelha e fundo Cinza) so automaticamente aplicadas na Clula B7. Veja que com um simples comando de teclado, executo uma srie de comandos (nesse exemplo: trs comandos de formatao). Esse exemplo nos d uma pequena idia do poder e facilidade do uso das macros. Tambm possvel executar a macro usando o comando Ferramentas -> Macro > Macros. Clique na clula B5. Selecione o comando Ferramentas -> Macro -> Macros. Ser exibida a janela Macro, onde so listadas todas as macros existentes na pasta de trabalho atual (no arquivo carregado no Excel), conforme indicado na Figura 5.3:

Pgina 100 de 219

Microsoft Excel Estudo Avanado

Figura 5.3 A janela Macro. Clique na Macro FormataVermCinza para seleciona-la. Clique no boto Executar. A Macro ser executada e as respectivas formataes sero aplicadas clula B5. A sua planilha deve estar conforme indicado na Figura 5.4:

Figura 5.4 Formataes aplicadas com a macro FormataVermCinza.

2.15 Conhecendo do que feita uma Macro


No tpico anterior podemos ver uma macro em ao. Criamos uma macro chamada FormataVermCinza. Essa macro composta por trs comandos de formatao. Cada vez que a macro executada, os trs comandos de formatao so novamente executados e aplicados clula onde esta o cursor. At aqui tudo OK. Nenhuma novidade. A pergunta que pode surgir : Como que o Excel faz isso?
Pgina 101 de 219

Microsoft Excel Estudo Avanado

Ou de outra forma: Do que feita uma macro? Conforme veremos a seguir, uma macro gravada no Excel como uma ( seqncia de comandos VBA. Por exemplo, ao clicarmos no boto ( ), para a aplicao de negrito, o Excel gera um comando VBA que faz a formatao em negrito. Nessa lio aprenderemos a acessar o cdigo VBA gerado pelo Excel (embora ainda no sejamos capazes de entender esse cdigo).

2.15.1

Acessando os comandos VBA

Voc deve estar com a planilha C:\ExcelAvancado\Mdulo 5 Exerccio 01.xls aberta, se no estiver, abra-a. Selecione o comando Ferramentas -> Macro -> Macros. Ser exibida a janela Macro. Clique na macro FormataVermCinza para seleciona-la. Clique no boto Editar. O Editor do VBA ser carregado e sero exibidas as seguintes linhas de cdigo:
Sub FormataVermCinza() ' ' FormataVermCinza Macro ' Macro que faz a formatao em fonte Vermelha, Negrito e ' fundo Cinza. ' ' Atalho do teclado: Ctrl+Shift+L ' Selection.Font.Bold = True Selection.Font.ColorIndex = 3 With Selection.Interior .ColorIndex = 15 .Pattern = xlSolid End With End Sub

Esses so os comandos VBA (que por enquanto no entendemos o que significam) que formam a macro FormataVermCinza. Apenas para adiantar um pouco o assunto, a seguir descrevo o que faz cada um dos principais comandos dessa Macro:
Selection.Font.Bold = True

Pgina 102 de 219

Microsoft Excel Estudo Avanado

Esse comando aplica a formatao em Negrito para a clula onde est o cursor (ou no conjunto de clulas selecionadas), quando a macro executada.
Selection.Font.ColorIndex = 3

Esse comando aplica cor de fonte Vermelha para a clula onde est o cursor (ou no conjunto de clulas selecionadas), quando a macro executada.
With Selection.Interior .ColorIndex = 15 .Pattern = xlSolid End With

Esses comandos aplicam a cor de fundo cinza, na clula onde est o cursor (ou no conjunto de clulas selecionadas), quando a macro executada. Esses so comandos da linguagem VBA. Com o uso do VBA temos acesso a todos os comandos e funes do Microsoft Excel. Tudo o que voc faz usando o teclado e o mouse, tambm possvel de ser feito com o uso do VBA, porm de uma maneira automatizada. O uso de macros especialmente indicado naquelas situaes em que temos um conjunto de comandos que precisam ser executados, repetidamente, em diferentes situaes. Nesses casos muito mais prtico criar uma macro composta pelo conjunto de comandos e, cada vez que os comandos precisarem ser executados, executar a macro. Na Figura 5.5 temos uma viso do Editor do Visual Basic. Veremos mais detalhes sobre esse editor nas prximas lies, quando comearmos a trabalhar com o VBA.

Pgina 103 de 219

Microsoft Excel Estudo Avanado

Figura 5.5 O Editor de VBA Selecione o comando Arquivo -> Fechar e Voltar para o Microsoft Excel. Voc estar de volta planilha.

2.16 Operaes com Macros


Agora, aprenderemos a renomear, excluir e fazer outras alteraes em macros. Tambm aprenderemos a alterar outras opes associadas com a Macro, tal como o comando de teclado para executar a macro. Existem algumas operaes que podem ser feitas com uma macro, aps a sua criao. A mais bvia (e o motivo pelo qual uma macro criada) para executar a macro. Alm da execuo possvel executar outras operaes com uma macro, conforme descrito a seguir:

2.16.1

Renomeando uma macro

Selecione o comando Ferramentas -> Macro -> Macros. Ser exibida a janela Macro. Clique na macro a ser renomeada para seleciona-la. Clique no boto Editar.
Pgina 104 de 219

Microsoft Excel Estudo Avanado

Ser aberto o editor do VBA. O nome da macro vem logo aps o comando Sub da primeira linha, conforme destacado na Figura 5.6:

Figura 5.6 Renomeando uma Macro. Para renomear a macro basta alterar o nome aps o comando Sub e depois clicar no boto ( ) para salvar as alteraes. Em seguida s fechar o Editor de VBA.

2.16.2

Excluindo uma macro

Abra o arquivo onde est a macro a ser excluda. Selecione o comando Ferramentas -> Macro -> Macros. Ser exibida a janela Macro. Clique na macro a ser excluda para selecion-la. Clique no boto Excluir. O Excel emite um aviso solicitando que voc confirme a excluso, conforme indicado na Figura 5.7:

Pgina 105 de 219

Microsoft Excel Estudo Avanado

Figura 5.7 Confirmando a excluso da macro. Clique em Sim para confirmar a excluso ou em No para cancelar a excluso da macro.

2.16.3 Alterando a tecla de atalho e o comentrio associado com uma macro


1. Abra o arquivo onde est a macro a ser alterada. 2. Selecione o comando Ferramentas -> Macro -> Macros. 3. Ser exibida a janela Macro. 4. Clique na macro a ser alterada para seleciona-la. 5. Clique no boto Opes... 6. Ser exibida a janela Opes de Macro, onde voc pode alterar a tecla de atalho e o comentrio associado com a macro, conforme indicado na Figura 5.8:

Figura 5.8 Confirmando a excluso da macro. Faa as alteraes desejadas e clique em OK.

2.17 Associando botes a macros


Vamos criar mais uma macro de exemplo. Alm da criao da macro aprenderemos a criar um novo boto, na Barra de Ferramentas e a associar esse
Pgina 106 de 219

Microsoft Excel Estudo Avanado

boto com a macro. Dessa forma toda vez que precisarmos executar a macro, bastar clicar no boto associado com a macro. Exemplo 2: Criar uma macro usando o Gravador de Macros. A macro dever formatar As clulas selecionadas com formato Contbil, com duas casas decimais, cor de fonte Vermelha e Itlico. Gravar a macro com o nome de FormataContbil . Criar um boto de comando na Barra de Ferramentas padro e associar esse boto com a macro FormataContbil. Abra o Excel. Abra a Planilha C:\ExcelAvancado\Mdulo 5 Exerccio 02.xls. Clique na clula F2. Agora vamos iniciar a gravao da Macro. Selecione o comando Ferramentas -> Macro -> Gravar nova macro . Ser exibida a janela Gravar Macro. No campo Nome da macro digite: FormataContbil. Na lista Armazenar macro em, selecione a opo Esta pasta de trabalho . O campo descrio simplesmente uma descrio da funcionalidade da macro. Digite o texto indicado na Figura 5.9:

Figura 5.9 Definio do nome e da descrio da macro FormataContbil. 10. Clique em OK. A gravao da Macro ser iniciada. Todos os comandos que voc executar, durante a gravao da Macro, faro parte da Macro.

Uma nova barra ( ) exibida na planilha do Excel. Essa barra utilizada para parar a gravao da Macro. Agora devemos escolher os comandos que faro parte da macro. Aps ter executado os comandos que faro parte da macro, basta clicar no boto ( ) para encerrar a gravao da Macro.
Pgina 107 de 219

Microsoft Excel Estudo Avanado

Clique no boto ( ) para aplicar Itlico. Na lista de Cores da fonte ( ) selecione Vermelho.

Selecione o comando Formatar -> Clulas. Clique na opo Contbil e selecione duas casas decimais, conforme indicado na Figura 5.10:

Pgina 108 de 219

Microsoft Excel Estudo Avanado

Figura 5.10 Formatao Contbil com duas casas decimais. Clique em OK. Clique no boto ( ) para encerrar a gravao da Macro.

Agora a macro FormataContbil foi criada e podemos utiliz-la sempre que necessrio. Agora vamos aprender como associar um boto com a macro FormataContbil.

2.17.1

Assiciando um boto a uma macro

Clique com o boto direito do mouse em uma das barras de ferramentas do Excel. Por exemplo, clique com o boto direito do mouse na rea cinza, ao( lado do boto ( ). No menu que exibido clique na opo Personalizar. Ser exibida a janela Personalizar. Clique na guia Comandos. Na lista de Categorias que exibida d um clique na opo Macros conforme indicado na Figura 5.11:

Pgina 109 de 219

Microsoft Excel Estudo Avanado

Figura 5.11 A opo Macros da guia Comandos. Clique no boto ( ) e arraste-o para a barra de ferramentas padro, ao lado ( boto ( esquerdo do ), conforme indicado na Figura 5.12:

Figura 5.12 Arrastando o boto que ser associado com a Macro. A janela Personalizar ser fechada e o boto ramentas padro. D um clique no boto ). ) ser adicionado barra de

Ser exibida a janela Atribuir macros. Nessa janela voc pode selecionar a macro que ser associada com o boto, isto , a macro que ser executada quando voc clicar no boto. Clique na macro FormataContbil para seleciona-la, conforme indicado na Figura 5.13. Clique em OK. Pronto, agora o boto (
( )

est associado com a macro FormataContbil.

Pgina 110 de 219

Microsoft Excel Estudo Avanado

Figura 5.13 Associando a macro FormataContbil com o boto. Vamos testar se o boto est funcionando. Clique na clula F10. Clique no boto ).

Observe que a macro executada e as respectivas formataes so aplicadas clula F10. Isso comprova que o boto Salve e Feche a planilha. ) est associado macro FormataContbil.

Introduo a linguagem VBA


Nos tpicos niciais desse mdulo aprendemos a criar macros simples, as quais reproduzem uma srie de comandos de mouse e teclado. Para que possamos criar macros mais sofisticadas e resolver problemas mais complexos com o Excel, precisamos utilizar programao. Conforme descrito anteriormente, a linguagem de programao do Excel (e de todos os aplicativos do Office) o VBA: Visual Basic for Application. Uma linguagem de programao, basicamente, um conjunto de comandos, rotinas e funes que executam tarefas especficas. Considere o exemplo genrico a seguir, onde so utilizados comandos para acessar uma tabela do access a partir de uma planilha do Excel:
Comentrios iniciais do Programa. Acessa dados da tabela pedidos do banco de dados C:\Meus documentos\vendas.mdb Acessar o banco de dados Pgina 111 de 219

Microsoft Excel Estudo Avanado Acessar a tabela Pedidos Aplicar um filtro para Pas=Brasil Exibir os dados obtidos na planilha atual formatar a primeira linha como negrito formatar a primeira linha como fonte azul Encerrar a macro

2.18 Por que aprender VBA?


A utilizao de Macros em conjunto com os recurso do VBA nos oferece um grande nmero de opes na busca por solues para os problemas mais complexos. Porm existem situaes em que, por mais que saibamos utilizar todos os recursos, comandos e funes do Excel, essa utilizao no capaz de solucionar o problema proposto. Nestas situaes temos que utilizar programao. A linguagem de programao utilizada pelo Microsoft Excel o VBA - Visual Basic for Applications. Conforme veremos a partir de agora esta uma linguagem, ao mesmo tempo, extremamente simples e poderosa. Com o VBA temos acesso completo a todos os elementos de todos os objetos de uma planilha do Excel. Tambm temos acesso a elementos externos, tais como bancos de dados do Access. Com cdigo VBA podemos criar uma rotina para validao do dgito verificador de uma clula de CPF, CNPJ ou de um campo NmeroDoProcesso; podemos criar cdigo que percorre todas as linhas de uma planilha, alterando os valores de uma ou mais colunas, com base em uma ou mais condies, podemos automatizar rotinas para importao e exportao de dados e assim por diante.

2.19 Programao com o Microsoft Excel


O VBA nos oferece possibilidades de controle e personalizao para criar aplicativos que vo alm das aes de macro. O VBA uma linguagem de programao interna do Microsoft Excel (na prtica a linguagem de programao para todos os aplicativos do Office: Access, Word, Excel e PowerPoint). Usamos o VBA pelo mesmo motivo que utilizamos macros - para automatizar tarefas e rotinas repetitivas, envolvendo os diversos elementos do banco de dados (tabelas, consultas, formulrios, relatrios, folhas de dados, macros e mdulos). No entanto, o VBA oferece maior poder e controle mais detalhado do que as aes de macro. Na prtica as aes de macro duplicam as operaes que podemos realizar manualmente,usando menus e teclas de atalho. O VBA vai alm da simples automao de seqncias de aes. Ele oferece um conjunto de ferramentas que lhe permite criar aplicaes personalizadas com base nos elementos do Excel e nos objetos de planilha do Excel. Por exemplo, podemos criar uma rotina em VBA em uma planilha do Excel. Esta rotina pode acessar dados em segunda planilha que est na rede, por exemplo. A mesma rotina alm de acessar os dados pode
Pgina 112 de 219

Microsoft Excel Estudo Avanado

fazer clculos, consolidaes, gerar os resultados no formato de uma planilha do Excel e salvar a planilha na rede. Este apenas um pequeno exemplo do que pode ser feito como o VBA.

2.19.1

Vantagens em utilizarmos o VBA

J utilizamos macros e aprendemos a automatizar algumas tarefas como a aplicao de formatos personalizados. O VBA apresenta, em relao as macros, as seguintes vantagens: Acessando dados de uma ou mais planilhas: Com aes de macros estamos limitados a operar com os registro ou com o conjunto de registros atualmente sendo exibido na pasta de trabalho atual O VBA permite trabalhar com qualquer conjunto de dados, quer seja da pasta de trabalho atual, quer seja de outra pasta de trabalho na rede ou com outros formatos de dados, como por exemplo de arquivos .txt ou bancos de dados do Microsoft Access. Manipulao de objetos : O VBA oferece mtodos de criao e modificao dos objetos de uma planilha no Excel. Chamamos de objeto qualquer elemento do Microsoft Excel, por exemplo: uma planilha, uma faixa de clulas, um grfico, etc. Criao de funes definidas pelo usurio : Este um dos maiores benefcios do VBA. Podemos criar funes que executam clculos repetitivos. Por exemplo, vrios planilhas podem conter um campo CPF ou CNPJ. Poderamos criar, em cada planilha, o cdigo necessrio para a validao do DV do CPF ou CNPJ. Porm este procedimento no o mais indicado, pois alm da duplicao do cdigo necessrio a validao, teramos dificuldades para fazer atualizaes neste cdigo, pois cada alterao necessria ter que ser feita em vrios locais. O ideal criarmos uma funo para validao do DV (uma funo deve ser criada dentro de um mdulo. Em cada planilha, onde for necessria, chamamos a funo, passando o valor do CPF como parmetro. A funo calcula o DV e retorna o resultado para a planilha. Desta maneira precisamos criar uma nica funo. Quando forem necessrias alteraes, basta alterar a funo (em um nico local, ou seja, no mdulo onde a funo foi criada) e todos os formulrios passaro a utilizar a verso atualizada da funo. Definio de condies e controle de fluxo: O VBA oferece uma variedade de comandos e estruturas para a realizao de testes condicionais e para a repetio de um conjunto de comandos. Aprenderemos a utilizar todas as estruturas de controle de fluxo e testes condicionais, mais adiante. Realizao de clculos complexos e soluo de problemas que envolvem uma lgica complexa: Com macros impossvel a realizao de clculos mais complexos, simplesmente atravs da automao de comandos de teclado e mouse. Tambm no possvel a resoluo de problemas que envolvem uma lgica complexa, como por exemplo clculo do imposto de renda, recolhimentos de tributos, etc.
Pgina 113 de 219

Microsoft Excel Estudo Avanado

2.20 O Ambiente de Programao - Editor VBA


O Microsoft Excel fornece um ambiente de programao bastante poderoso, com uma srie de recursos que facilitam a criao de cdigo VBA. Neste tpico vamos aprender a utilizar os aspectos bsicos do Ambiente de Programao do VBA. Se no tivssemos disponvel um Ambiente de Programao, teramos que lembrar da sintaxe de todos os comandos, dos mtodos e propriedades dos objetos. Convenhamos que isso praticamente impossvel, pois com o VBA temos acesso a milhares de objetos ( isso mesmo: milhares de objetos, comandos e funes. Por enquanto estou utilizando bastante o termo objeto, sem t-lo ainda explicado. Mais adiante detalharei o conceito de classes, mdulos e objetos). Cada objeto pode ter dezenas de propriedades, mtodos e colees. O ambiente de Desenvolvimento fornece uma srie de facilidades para a criao de cdigo VBA. Por exemplo, ao digitar o nome de um objeto e um ponto ser aberta, automaticamente, uma lista com todos os mtodos e propriedades deste objeto. Ao invs de lembrar do nome dos mtodos/propriedades, basta selecion-los em uma lista. Se selecionarmos um mtodo, ao digitarmos o parnteses de abertura, ser exibida uma lista com os argumentos esperados pelo mtodo, bem como o tipo (texto, nmero, data, etc) de cada argumento. Se digitarmos um comando incorretamente, o Ambiente de Desenvolvimento emite uma mensagem e coloca em destaque o comando que foi digitado incorretamente. Estas so apenas algumas das facilidades fornecidas pelo Ambiente de Desenvolvimento do VBA. Para conhecermos melhor o referido ambiente, vamos a um exemplo prtico. Vamos abrir uma planilha, que contm uma macro chamada AplicaNegrito e editar essa macro. Lembre que para editar uma macro, temos que acessar o cdigo VBA associado macro. Isso feito no Editor do VBA.

2.20.1

Acessando o Editor VBA

Vamos acessar o editor do VBA para alterar uma macro. Abra o Excel. Abra a Planilha com a macro. Como existem macros j criadas, o Excel pede uma confirmao, perguntando se voc deseja ativar as macros existentes, conforme indicado na Figura 5.14. Essa confirmao solicitada devido ao perigo representado pelos vrus de Macro, que podem afetar os aplicativos do Microsoft Office. Clique no boto Ativar Macros. A planilha ser aberta.
Pgina 114 de 219

Microsoft Excel Estudo Avanado

Nessa planilha existe uma macro chamada AtivaNegrito. Vamos editar essa macro. O nosso objetivo conhecer alguns detalhes sobre o Editor do VBA.

Figura 5.14 Confirmao para ativao de macros, na abertura da planilha. Selecione o comando Ferramentas -> Macro -> Macros... Ser exibida a janela Macro. Clique na macro para selecion-la. Clique no boto Editar. Ser aberto o editor do VBA e o cdigo associado macro. Na Figura 5.15 temos a descrio de algumas partes da janela do editor VBA.

Pgina 115 de 219

Microsoft Excel Estudo Avanado

Figura 5.15 O Editor VBA. No lado esquerdo da tela temos duas janelas: Project VBA Project: Nessa janela so exibidos os vrios elementos que fazem parte da Pasta de trabalho atual. Aqui so exibidas as planilhas e mdulos da pasta de trabalho (arquivo .xls) carregado no Excel. Ao criarmos uma macro podemos cri-la em uma determinada planilha. Os mdulos so utilizados para criar funes e procedimentos que podem ser chamados em todas as planilhas da pasta de trabalho atual. Aprenderemos mais sobre funes e procedimentos nas prximas lies. Janela na parte de baixo: A janela abaixo da janela Project, exibe as propriedades do elemento selecionado na janela Project. Por exemplo, ao selecionar Plan1, na janela Project, na janela de baixo sero exibidas as propriedades de Plan1, conforme indicado na Figura 5.16:

Figura 5.16 Propriedades da Planilha.

2.21 VBA Declarao de Variveis

Pgina 116 de 219

Microsoft Excel Estudo Avanado

Agora vamos iniciar o estudo de uma srie de comandos e conceitos bsicos da linguagem VBA. Esses comandos sero utilizados nas lies do Mdulo 6, onde apresentaremos alguns exemplos prticos do uso do VBA para soluo de problemas com o Excel. Iniciaremos o nosso estudo de VBA pela definio do conceito de variveis a aprendendo a declarar variveis no VBA.

2.21.1

Declarao de variveis e tipos de dados

Uma varivel um espao na memria do computador, reservado para armazenar um ou mais valores. Fazemos referncia a este espao utilizando nomes. Como o valor armazenado pode variar, a medida que o cdigo VBA executado, estas estruturas so chamadas de variveis. No VBA, no obrigatrio a declarao de variveis. Porm recomendvel que declaremos todas as variveis, de tal forma que o cdigo fique mais claro e de fcil compreenso. Para declararmos uma varivel, utilizamos o comando Dim, conforme exemplificado abaixo:
Dim x Dim nome Dim teste

Neste caso estamos apenas declarando o nome da varivel, sem declarar de que tipo (texto,inteiro, data, etc) a varivel. Uma varivel declarada sem tipo considerada do tipo Variant, o que na prtica significa que a varivel pode conter qualquer tipo de valor. Pode parecer uma prtica interessante a no declarao do tipo da varivel, porm isso altamente desaconselhvel. Se no declararmos o tipo, conforme descrito anteriormente, a varivel poder conter qualquer valor. Neste caso o que impede de um campo numrico conter valores de texto ou viceversa. A sintaxe para o comando Dim
Dim nome_da_varivel As tipo_da_varivel

Tambm podemos declarar mais do que uma varivel, com um nico comando Dim. Para isto, basta separar as variveis, com vrgula, conforme exemplificado abaixo:
Dim x,y,z As String Dim nome as Double Dim teste1, teste2 As Integer

Observe que definimos o tipo de cada varivel. O Tipo define quais dados podem ser armazenados em uma varivel. Por exemplo, variveis que armazenam valores numricos, no devem aceitar caracteres de texto. Variveis que armazenam datas, no devem aceitar datas invlidas, como por exemplo
Pgina 117 de 219

Microsoft Excel Estudo Avanado

30/02/2001. Toda varivel no VBA, do tipo Variant, isto significa que a varivel pode ser de qualquer tipo. O que define o tipo da varivel o valor que est armazenado no momento. Existem funes que converso de tipo, conforme veremos mais adiante. Tambm podemos utilizar variveis que no foram, explicitamente, declaradas com o comando Dim. Com isso, a varivel criada na memria, no momento da sua utilizao. Para fazer com que toda varivel tenha que ser, explicitamente, declarada, antes de ser utilizada, devemos utilizar o seguinte comando na seo de declarao do mdulo:
Option Explicit

Ao colocarmos este comando na seo de declarao do mdulo, estamos definindo que toda varivel deve ser declarada, antes de ser utilizada em uma expresso. Se tentarmos utilizar uma varivel no declarada, ser gerado um erro de compilao e a execuo dos comandos suspensa. Na Listagem 1, temos um exemplo simples de utilizao de variveis no declaradas explicitamente.

2.21.2
b=2 c=a+b

Utilizao de variveis no declaradas.

Dim a As Integer Dim b As Integer a=5

Msgbox "A varivel C vale: " & c

Ao tentarmos executar este cdigo, tendo sido definida a opo "Option Explicit", obteremos a mensagem de erro indicada na prxima figura. Este erro acontece porque tentamos utilizar uma varivel c, varivel esta que no foi declarada.

Erro O tipo Variant formado de pequenas unidades, chamadas subtipos. Cada subtipo, identifica de que maneira os dados so armazenados em uma varivel do tipo Variant Por exemplo, variveis do subtipo Integer so armazenadas de uma maneira diferente de variveis do subtipo Long. Na Tabela a seguir temos uma descrio dos principais subtipos. Subtipos do tipo Variant disponveis no VBA

Pgina 118 de 219

Microsoft Excel Estudo Avanado

Empty

O Valor zero para variveis numricas ou uma String de tamanho zero ( ), para variveis de texto. A varivel no contm dados vlidos.

Null Contm variveis que somente podem valores:Verdadeiro ou Falso (True ou False). assumir dois

Boolean

Pgina 119 de 219

Microsoft Excel Estudo Avanado

Byte

Valor inteiro, na faixa de 0 at 255. Valor inteiro, na faixa de -32768 at 32767.

Integer Valores na faixa de 923.337.203.685.447,5808 at 922.337.203.685.447,5807 Long Valor inteiro, na faixa de 2.147.483.648 at 2.147.483.647. um nmero que representa a data entre 01 de Janeiro do ano 100, at 31 de Dezembro de 9999 (Olha o bug do ano 10000 chegando). Texto de tamanho varivel, pode conter, aproximadamente, 2 bilhes de caracteres. Pode conter um objeto qualquer, como um Controle Activex, ou um Objeto COM+ Pode conter um nmero de erro.

Currency

Date(Time)

String

Object Error

Antes de fazermos alguns exemplos prticos, vamos aprender um pouco mais sobre o uso de variveis no VBA. Vamos falar sobre operadores aritmticos e de comparao. Mas isso j assunto para a prxima lio .

2.22 VBA - Clculos, Operadores Aritmticos e Exemplos


Fazendo clculos e comparaes com o VBA Operadores Aritmticos. Para realizarmos clculos e comparaes entre variveis, podemos utilizar operadores. Neste item trataremos sobre operadores aritmticos e operadores de comparao.

2.22.1

Fazendo clculos com os Operadores aritmticos:

Podemos realizar clculos no VBA, utilizamos operadores aritmticos. Na Tabela a seguir, temos uma descrio dos operadores que podemos utilizar: Operadores Aritmticos do VBA:

Pgina 120 de 219

Microsoft Excel Estudo Avanado

Operador +

Significado

Adio (3+3).

Subtrao (31) ou Negao (1).

Multiplicao (3*3).

Diviso (3/3).

Porcentagem (20%).

Exponenciao (3^2). Tabela 2.1 Operadores aritmticos.

Listagem Exemplo de uso de operadores aritmticos:


Exemplo de utilizao de variveis e operadores aritmticos Curso: Excel Avanado em 120 Lies. Autor: Jlio Battisti Site: www.juliobattisti.com.br Declarao das variveis.

Dim x, y, z As Integer x = 10 y = 25 z = x*y Nesse exemplo a varivel z conter o valor 250

Vamos fazer um pequeno teste com os comandos para declarao de variveis.

2.23 Estrutura If...Then e os Operadores de Comparao


Comparando valores com os Operadores de comparao. Em determinadas situaes, existe a necessidade de efetuarmos comparaes entre os valores de duas ou mais variveis ou expresses. Com base no resultado da comparao Verdadeiro ou Falso -, a execuo do cdigo VBA pode seguir caminhos diferentes. Normalmente utilizamos comparaes, nas estruturas de controle do cdigo, tambm conhecidas como laos de controle.
Pgina 121 de 219

Microsoft Excel Estudo Avanado

Para que possamos estudar os operadores de comparao, vamos apresentar uma das estruturas de controle mais simples que existem no VBA, a estrutura If Then Else. Abaixo temos um exemplo do funcionamento da estrutura If Then Else:

2.23.1
If x>y Then

If Then Else

Comandos a serem executados quando x for maior do que y Comando 1 Comando 2 Comando n Else Comandos a serem executados quando x for menor ou igual a y Comando 1 Comando 2 Comando n End If

Conforme podemos ver, a estrutura If Then Else, bastante simples. Fazemos um teste no incio da estrutura. Se o valor do teste for verdadeiro, executamos os comandos na seqncia, caso contrrio, executamos os comandos aps o Else. Note que utilizamos o operador de comparao maior do que: > , no caso x>y , estamos testando se x maior do que y. Logo em seguida apresentaremos detalhes sobre os operadores de comparao disponveis no VBA. Podemos utilizar laos If Then Else mais complexos, como os do exemplo:
If x>y Then Comandos a serem executados quando x for maior do que y Comando 1 Comando 2 ... Comando n ElseIf x=y Then Comandos a serem executados quando x for igual a y Comando 1 Pgina 122 de 219

Microsoft Excel Estudo Avanado Comando 2 ... Comando n Else Comandos a serem executados quando x for menor do que y Comando 1 Comando 2 ... Comando n End If

Podemos utilizar tantos ElseIf, quantos forem necessrios. Cada ElseIf utilizado para fazer um teste adicional. Na Tabela a seguir temos uma descrio dos operadores de comparao.

2.23.2

Operadores de comparao do VBA

Operador >

Descrio

Maior

>=

Igual

<>

Diferente

<

Menor

<=

Menor ou igual

>=

Maior ou igual Tabela 2.1 Comparados condicionais.


Pgina 123 de 219

Microsoft Excel Estudo Avanado

O uso de Operadores de comparao, amplia o leque de possibilidades para nossos programas em VBA. Devemos ter alguns cuidados quando comparamos variveis que possuem valores de tipos diferentes, como por exemplo, nmero e texto. A Tabela a seguir descreve o que acontece, quando comparamos variveis com valores de tipos diferentes.

2.24 Escopo de Variveis e Variveis do tipo Array


2.24.1 O Escopo das variveis, no VBA.

O escopo de uma varivel, define em que partes do cdigo a varivel pode ser utilizada. Em VBA, podemos ter os seguintes escopos para as variveis: Escopo de Mdulo: Uma varivel declarada dentro do Mdulo (um mdulo pode conter um ou mais procedimentos ou funes, cada procedimento funo comea com um Sub ou Function e termina com um End Sub ou End Function, respectivamente. Veremos mais sobre funes e procedimentos, nas prximas lies), mas fora de qualquer Procedimento. Com isso a varivel pode ser utilizada dentro de todo o bloco de cdigo do Mdulo, inclusive dentro dos Procedimentos, caso exista algum. Um mdulo de uma planilha pode conter uma ou mais macros, sendo que cada macro um procedimento, isto , inicia com um Sub e termina com um End Sub. Tudo o que estiver entre Sub e End Sub, faz parte da respectiva macro. Uma varivel declarada ao nvel de Mdulo, existe enquanto o Mdulo estiver sendo executado.So as variveis declaradas na seo de Declaraes do Mdulo. Uma varivel declarada ao nvel de Mdulo, poder ser utilizada em todos os procedimentos/funes do mdulo, isto , em todas as macros que fazem parte do respectivo mdulo.

2.24.2

Escopo de procedimento / funo / macro

A varivel somente pode ser utilizada, dentro do procedimento onde esta declarada. Aqui o conceito de procedimento praticamente se confunde com o de macro, ou seja, cada macro criada como um procedimento separado, dentro do mdulo de cdigo da planilha. Se tentarmos utilizar a varivel fora do procedimento onde a ela foi declarada, no teremos acesso ao valor da varivel. Uma varivel declarada ao nvel de procedimento, existe enquanto o procedimento estiver sendo executado. Nota Um procedimento um bloco de cdigo que pode ser chamado em qualquer ponto do Mdulo. Ao chamarmos um procedimento, a execuo deslocada para dentro do procedimento. Aps concludo o procedimento, a execuo segue com a linha seguinte
Pgina 124 de 219

Microsoft Excel Estudo Avanado

que chamou o procedimento. Veremos maiores detalhes sobre procedimentos e funes nas prximas lies

Vamos considerar alguns trechos de cdigo para entendermos melhor este conceito de escopo de uma varivel. Considere o seguinte trecho de cdigo, dentro de um mdulo VBA de uma planilha do Excel:
Seo geral do mdulo. Variveis declaradas nessa seo tem o escopo de mdulo, isto , podem ser utilizadas em qualquer procedimento dentro do mdulo. Dim x, y,aux1 As Integer Call proc1 ' Agora vamos tentar utilizar os valores de a e b ' Fora do procedimento proc1. ' Observe que a varivel aux1 no calculada ' corretamente, uma vez que os valores de a e b ' no esto disponveis, fora do procedimento proc1 Aux1 = a + b MsgBox "aux1= " & Aux1 'Agora vamos criar um procedimento 'E declarar duas variveis dentro deste procedimento. 'Estas variveis somente sero visveis, 'Dentro deste procedimento. Sub proc1() Dim a, b x=10 y=20 a=5 b=7 MsgBox "x= " & x & " y= " & y & " a= " & a & " b= " & End Sub

O comando Call faz o chamado ao procedimento proc1. Este procedimento deve ser definido no mesmo mdulo, caso contrrio um erro ser gerado. Ao encontrar esse comando o Excel desloca a execuo para o procedimento proc1, executa os comandos deste procedimento e aps encerrar continua a execuo a partir do comando seguinte ao comando Call. Ao executar esse cdigo ser exibida a janela indicada na Figura a seguir:

Pgina 125 de 219

Microsoft Excel Estudo Avanado

resultado na caixa de dilogo.

O comando Call Proc1 executado. O excel executa os comandos dentro de Proc1. As variveis x e y foram declarados com escopo de mdulo, por isso podem ser utilizadas corretamente dentro do procedimento Proc1, embora no tenham sido declaradas dentro desse procedimento. As variveis x e y tem escopo de mdulo, ou seja, podem ser utilizadas em qualquer procedimento, dentro do mdulo. Os valores definidos para x e y, dentro do procedimento Proc1, permanecero disponveis, mesmo se usarmos x e y em outros procedimentos desse mdulo. Como a e b esto declaradas dentro de Proc1, o seu escopo est ativo, isso , o Excel tem acesso aos valores de a e b. Porm observe que x e y apresentam valores nulos. Isso ocorre porque a e b foram declarados. Por isso os valores de a e b tambm so exibidos corretamente. Agora vamos fazer uma tentativa de usar as variveis a e b fora do procedimento Proc1. Como elas foram declaradas dentro de Proc1, somente so visveis, isto , mantm o seu valor quando Proc1 estiver sendo executada. Fora de Proc1, as variveis a e b tero valores nulos, conforme comprovaremos logo a seguir: D um clique no boto OK. Ser exibida a janela indicada na figura a seguir:

Como possvel se aux1= a + b e a=5 e b=7, logo aux1 deveria ser igual a 12. O que est acontecendo?? Observe que o valor da varivel aux1 (foi calculado incorretamente), pois a varivel aux1 depende dos valores de "a" e "b". Como as variveis a e b foram declaradas dentro do procedimento Proc1, elas no podem ser acessadas de fora do procedimento proc1, ou seja, aps a execuo do procedimento ter sido encerrada. D um clique no boto OK e mantenha a planilha aberta. Com esse exemplo, foi possvel verificar, na prtica, o conceito de escopo (algumas vezes chamado de visibilidade) das variveis. Na prxima lio, trataremos das Estruturas e laos de controle, que so elementos muito importantes na criao de programas VBA.
Pgina 126 de 219

Microsoft Excel Estudo Avanado

2.24.3

A estrutura Select...Case

Quando precisamos realizar uma srie de testes, mais eficiente utilizarmos uma nica estrutura Select...Case , do que utilizarmos uma srie de testes utilizando a estrutura If...Then...ElseIf . O funcionamento da estrutura Select...Case, bastante intuitivo.

Considere o exemplo a seguir: Dim x x=10


Select Case x Case 2 MsgBox X vale 2 ! Case 4 MsgBox X vale 4 ! Case 6 MsgBox X vale 6 ! Case 8 MsgBox X vale 8 ! Case 10 MsgBox X vale 10 ! Case Else MsgBox X no um nmero par, menor do que 12 End Select

A estrutura Select Case x , vai testar o valor de x. Em cada um dos Case, o valor de x est sendo testado. Quando for encontrado um valor coincidente com o de x, os comandos abaixo deste Case sero executados. No nosso exemplo, o comando MsgBox X vale 10 ! , abaixo de Case 10, ser executado. O comando abaixo do Case Else somente ser executado, se todos os testes anteriores falharem. O uso da estrutura Select...Case, torna o cdigo mais eficiente e de mais fcil leitura. Na prxima lio veremos mais algumas estruturas de controle, disponveis no VBA.

Pgina 127 de 219

Microsoft Excel Estudo Avanado

2.25 Estruturas For...Next, Do...While e Do...Until


2.25.1 Estruturas de repetio.

Em determinadas situaes, precisamos repetir um ou mais comandos, um nmero especfico de vezes, ou at que uma determinada condio torne-se verdadeira ou falsa. Por exemplo, pode ser que haja a necessidade de percorrer todos os registros de uma determinada tabela, at que o ltimo registro seja alcanado. Para isso, utilizamos as chamadas estruturas de repetio, ou Laos. A partir de agora, aprenderemos as estruturas de repetio disponveis.

2.25.2

A estrutura For...Next.

Utilizamos o lao For...Next, para repetir um segmento de cdigo, um nmero determinado de vezes. Utilizamos esta estrutura, quando j sabemos o nmero de vezes que uma determinada seo de cdigo deve ser repetida. Neste tipo de estrutura, normalmente, utilizamos uma varivel como contador. Este contador varia de um valor inicial at um valor final. O Formato geral desta estrutura o seguinte:
For contador = inicio to fim incremento Comando1 Comando2 Comandon Next

No incio a varivel contador tem o valor definido. Em cada passagem do lao, a varivel contador incrementada pelo valor definido em incremento. Caso no seja definido o incremento, ser utilizado o padro 1. Considere o exemplo a seguir:
Dim x x=10 Soma=0 Faz a soma For i=1 to x Soma = Soma +i Next MsgBox Valor da Soma = & Soma dos 10 primeiros nmeros maiores do que zero

Pgina 128 de 219

Microsoft Excel Estudo Avanado

Neste exemplo, a varivel i inicia com o valor 1. Em cada passo, o valor de i acrescentado varivel Soma. Como o incremento no foi definido, ser utilizado o padro que 1. Com isso, ao final do lao For...Next, a varivel Soma, ter armazenado o valor da soma dos 10 primeiros nmeros inteiros. Poderamos utilizar um valor de incremento diferente de 1, para, por exemplo, obter a soma somente dos nmeros mpares menores do que 10:
Dim x x=10 Soma=0

' Faz a soma dos 10 primeiros nmeros mpares


For i=1 to x Step 2 Soma = Soma +i Next MsgBox Valor da Soma = & Soma

Com este cdigo, obtemos o resultado indicado na Figura a seguir:

resultado

2.25.3

A estrutura Do...Loop

Esta estrutura pode ser utilizada para repetir um trecho de cdigo, enquanto uma determinada condio for verdadeira, ou at que uma determinada condio torne- se verdadeira . Podemos utilizar dois operadores condicionais diferentes: While ou Until . Os operadores While ou Until, podem ser utilizados de duas maneiras diferentes: No incio do lao, ou no final do lao. Com isso temos quatro situaes distintas, vamos analisar cada uma delas, a partir de agora.

2.25.4

A estrutura Do While Condio...Loop

Neste caso, estamos utilizando o operador condicional While, no incio do lao. O formato geral, neste caso o seguinte:
Do While condio/teste Comando1 Comando2 Pgina 129 de 219

Microsoft Excel Estudo Avanado ... Comandon Loop

Nesta estrutura, enquanto a condio for verdadeira, o cdigo dentro do lao executado . Quando a condio tornar-se falsa, o primeiro comando aps o final do lao, ser executado. Neste caso, se a condio for falsa j na primeira vez, o lao no ser executado nenhuma vez. O Cdigo dentro do lao deve ser capaz de alterar a condio para que essa se torne Falsa, pois caso contrrio a condio ser sempre verdadeira, e os comandos dentro do lao ficaro em execuo, infinitamente, ou at o programa travar. A criao de laos infinitos, devido a erros de programao, uma causa comum de erros e travamentos. Considere o exemplo a seguir:
Dim x x=10 Contador=1 Soma=0 ' Faz a soma dos 10 primeiros nmeros maiores do que zero Soma = Soma + Contador Contador = Contador + 1

Do While Contador <= x Loop

MsgBox Valor da Soma = & Soma

Observe que dentro do lao, vamos Incrementando o valor da varivel Contador, uma unidade para cada passagem do lao. Com isso, quando o valor de Contador, atingir 11, o teste do incio do lao torna-se falso, e o lao encerrado.

2.25.5

A estrutura Do... Loop While Condio

Neste caso, deslocamos o teste de condio para o final do lao. Com o teste no final do lao, o cdigo dentro do lao, ser executado, pelo menos uma vez, pois o teste somente feito no final, e continuar sendo executado, enquanto a condio for verdadeira. O formato geral, neste caso o seguinte:
Do Comando1 Comando2 ... Comandon Loop While condio/teste

Nesta estrutura, enquanto a condio for verdadeira, o cdigo dentro do lao executado. Quando a condio tornar-se falsa, o primeiro comando aps o final
Pgina 130 de 219

Microsoft Excel Estudo Avanado

do lao, ser executado. Neste caso, se a condio for falsa j na primeira vez, o lao ser executado uma nica vez. O Cdigo dentro do lao deve ser capaz de alterar a condio para Falso, quando for necessrio, pois caso contrrio a condio ser sempre verdadeira, e os comandos dentro do lao ficaro em execuo, infinitamente, ou at o programa travar. A criao de laos infinitos, devido a erros de programao, uma causa comum de erros e travamentos. Considere o exemplo a seguir:
Dim x x=10 Contador=1 Soma=0 Faz a soma dos 10 primeiros nmeros maiores do que zero Do Soma = Soma + Contador Contador = Contador + 1 Loop While Contador <= x MsgBox Valor da Soma = & Soma

Vamos modificar um pouco o nosso exemplo. Considere o exemplo mostrado a seguir:


Dim x x=10 Contador=11 Soma=0 O lao ser executado uma nica vez, pois a condio Contador < x falsa. Do Soma = Soma + Contador Contador = Contador + 1 Loop While Contador <= x MsgBox Valor da Soma = & Soma

Qual o valor ser exibido para a varivel Soma ?


Pgina 131 de 219

Microsoft Excel Estudo Avanado

Muito simples. A condio Contador < x falsa, pois x=10 e Contador=12 (Lembre que o Contador foi incrementado de uma unidade dentro do lao, antes do teste ser realizado). Neste caso, o lao ser executado uma nica vez, pois o teste de condio est no final do lao. Quando o lao executado, atribudo o valor 11 para a varivel Soma. Com isso, o valor exibido para a varivel Soma, ser 11.

2.25.6

A estrutura Do Until Condio...Loop.

Neste caso, estamos utilizando o operador condicional Until, no incio do lao. O formato geral, neste caso o seguinte:
Do Until condio Comando1 Comando2 ... Comandon Loop

Nesta estrutura, enquanto a condio for falsa, o cdigo dentro do lao executado. Quando a condio tornar-se verdadeira, o primeiro comando aps o final do lao, ser executado. Neste caso, se a condio for verdadeira, j na primeira vez, o lao no ser executado nenhuma vez. O Cdigo dentro do lao deve ser capaz de tornar a condio Verdadeira, quando for necessrio, pois caso contrrio a condio ser sempre Falsa, e os comandos dentro do lao ficaro em execuo, infinitamente, ou at o programa travar. A criao de laos infinitos, devido a erros de programao, uma causa comum de erros e travamentos. Considere o exemplo a seguir:
Dim x x=10 Contador=1 Soma=0 Faz a soma dos 10 primeiros nmeros maiores do que zero

Do Until Contador > x Soma = Soma + Contador Contador = Contador + 1 Loop MsgBox Valor da Soma = & Soma Pgina 132 de 219

Microsoft Excel Estudo Avanado

Observe que dentro do lao, vamos Incrementando o valor da varivel Contador, uma unidade para cada passagem do lao. Com isso, quando o valor de Contador, atingir 11, o teste do incio do lao torna-se Verdadeiro, e o lao encerrado.

2.25.7

A estrutura Do... Loop Until Condio.

Neste caso, deslocamos o teste de condio para o final do lao. Com o teste no final do lao, o cdigo dentro do lao, ser executado, pelo menos uma vez, pois o teste somente feito no final, e continuar sendo executado, enquanto a condio for Falsa. O formato geral, neste caso o seguinte:
Do Comando1 Comando2 ... Comandon Loop Until condio

Nesta estrutura, enquanto a condio for Falsa, o cdigo dentro do lao executado. Quando a condio tornar-se Verdadeira, o primeiro comando aps o final do lao, ser executado. Neste caso, se a condio for Verdadeira, j na primeira vez, o lao ser executado uma nica vez. O Cdigo dentro do lao deve ser capaz de tornar a condio Verdadeira, quando for necessrio, pois caso contrrio a condio ser sempre Falsa, e os comandos dentro do lao ficaro em execuo, infinitamente, ou at o programa travar. A criao de laos infinitos, devido a erros de programao, uma causa comum de erros e travamentos. Considere o exemplo a seguir:
Dim x x=10 Contador=1 Soma=0 Faz a soma Do Soma = Soma + Contador Contador = Contador + 1 Pgina 133 de 219 dos 10 primeiros nmeros maiores do que zero

Microsoft Excel Estudo Avanado Loop Until Contador > x MsgBox Valor da Soma = & Soma

Vamos modificar um pouco o nosso exemplo. Considere o exemplo a seguir:


Dim x x=10 Contador=11 Soma=0 O lao ser executado uma nica vez, pois a condio Contador >= x verdadeira. Do Soma = Soma + Contador Contador = Contador + 1 Loop Until Contador >= x MsgBox Valor da Soma = & Soma

Qual o valor ser exibido para a varivel Soma? Muito simples. A condio Contador>= x falsa, pois x=10 e Contador=12 (Lembre que o Contador foi incrementado de uma unidade, na linha 11, na primeira passagem do lao). Neste caso, o lao ser executado uma nica vez, pois o teste de condio est no final do lao. Quando o lao executado, atribudo o valor 11 para a varivel Soma. Com isso, o valor exibido para a varivel Soma, ser 11.

Funes do VBA Funes de Tipo Parte 1


A partir de agora veremos uma srie de aspectos que vo alm do bsico do VBA. Iniciaremos falando um pouco mais sobre tipos de dados e funes para converso de tipos. Este tpico de grande importncia, principalmente quando criamos cdigo que efetua clculos, tais como uma folha e pagamentos ou clculos de impostos. Depois passaremos a analisar uma srie de funes internas do VBA. So funes que fazem parte do Microsoft Excel, como por exemplo a funo Date(), que retorna a data do sistema. Nas lies do prximo mdulo, aprenderemos a criar nossas prprias funes e Sub-rotinas. Aprenderemos as diferenas entre uma Sub-rotina e uma funo, e quando utilizar uma ao invs da outra.

Pgina 134 de 219

Microsoft Excel Estudo Avanado

2.26 Tipos de dados e funes para converso de tipos


Neste item, aprenderemos a determinar qual o tipo de dado que est armazenado em uma varivel, bem como a converter valores de um tipo para outro, utilizando as funes para converso de tipos.

2.26.1 varivel.

Determinando o Tipo de Dados contido em uma

Existem diversas funes, que permitem que seja determinado o tipo de valor contido em uma varivel. Existem diversas aplicaes para este tipo de funo. Por exemplo, ao digitar dados em um formulrio do Excel (no curso sobre Programao VBA e Criao de Aplicativos com o Excel, aprenderemos a criar formulrios), podemos utilizar uma funo para determinar se os valores digitados pelo usurio, no apresentam problemas. Por exemplo, o usurio pode ter digitado, por engano, texto em um campo que deve conter valores numricos.

2.26.2

A funo IsArray.

Um Array um tipo especial de varivel, a qual pode armazenar diversos valores em uma nica varivel. De uma forma simples, um Array um conjunto ou como aprendi nos bons e velhos tempos da faculdade de Engenharia Eltrica na UFSM: Um vetor. Por exemplo, poderamos ter uma varivel Array na qual so armazenados todos os cdigos de tributo, vlidos para o recolhimento de impostos. Cada valor armazenado no Array um elemento do conjunto. Um outro exemplo: Poderamos criar um Array para armazenar os nomes dos meses do ano. Com isso teramos um Array de 12 elementos. Cada elemento de um Array, acessado atravs do nome da varivel Array e de um ndice. O ndice inicia em zero e no em um . Por isso se tivermos um Array de 10 elementos, teremos o elemento 0, o elemento 1, o elemento 2, e assim por diante, at o elemento 9. O fato do ndice comear com 0, influencia na hora que formos declarar um Array. Para declarar um Array chamado produtos, com 20 elementos, utilizaramos o seguinte comando:
Dim produtos(19)

O 19 significa que temos 20 elementos (sempre um a mais do que o nmero que aparece na declarao), isto , do elemento 0, indicado por produtos(0), at o elemento 20, indicado por produtos(19). No exemplo a seguir, temos um exemplo simples de utilizao de Array:
'Declara um Array de 7 posies 'Como a primeira posio a posio zero, Pgina 135 de 219

Microsoft Excel Estudo Avanado 'Indicamos o tamanho como 6, o que significa 'da posio 0 at a posio 6 = 7 elementos. Dim Dias(6) 'Atribumos valores para os dias da semana Dias(0)= Dias(1)= Dias(2)= Dias(3)= Dias(4)= Dias(5)= Dias(6)= "Segunda-feira" "Tera-feira" "Quarta-feira" "Quinta-feira" "Sexta-feira" "Sbado" "Domingo"

'Agora utilizamos um lao For...Next 'Para criar uma String, com o contedo

'Do Array Dias. For i=0 to 6 mensagem = mensagem & "Dia: " & i+1 & " " & Dias(i)& chr(13) Next 'Utilizamos uma MsgBox, para exibir a mensagem 'com o contedo do Array Dias. MsgBox mensagem

Esse trecho de cdigo, ao ser executado, produziria a seguinte sada:

caixa com o resultado Utilizamos a funo IsArray, para determinar se uma varivel do tipo Variant (lembre que todas as variveis do VBA, so do tipo Variant), est armazenando um Array. Utilizamos a seguinte sintaxe:
IsArray(NomeDaVarivel)

A funo IsArray retorna verdadeiro se a varivel for um Array, e falso caso contrrio.
Pgina 136 de 219

Microsoft Excel Estudo Avanado

Vamos alterar um pouco o exemplo anterior, adicionando o seguinte comando, ao final da listagem.: MsgBox IsArray(Dias) o resultado seria o indicado na Figura a seguir:

resultado

2.26.3

A funo VarType.

Podemos utilizar a funo VarType, para determinar o subtipo de uma varivel. Como todas as variveis so do tipo Variant, o subtipo pode ser utilizado para determinar o tipo de dado armazenado na varivel. Passamos para a funo, o nome de uma varivel ou expresso. A funo retorna um nmero inteiro que indica o subtipo da varivel. A sintaxe da funo a seguinte:
VarType(NomeDaVarivel)

ou
VarType(expresso)

Na Tabela a seguir temos os cdigos de retorno da funo VarType.

Valor 0

Descrio

Vazio (no inicializado)

Nulo (dados no vlidos)

Inteiro

Inteiro longo Nmero de preciso simples


Pgina 137 de 219

Microsoft Excel Estudo Avanado

Nmero de preciso dupla

Monetrio

Data

Objeto de automao

10

Erro

11

Boleano

12

Variant (somente utilizado com Arrays de variantes)

13

Um objeto para acesso a dados.

17

Byte

8192

Array Tabela 2.1 Retorno da funo Vartype

No exemplo a seguir, temos um exemplo de utilizao da funo VarType.


Dim x,y,z Dim a, b Dim c(20) Dim mensagem As String y=23.456 y=123456789 a="Este um valor de texto !" tilizamos a funo Date( ), para capturar a data do sistema. b=Date() Pgina 138 de 219 x=12

Microsoft Excel Estudo Avanado mensagem = "Tipo da varivel x: " & Vartype(x) & Chr(13) mensagem = mensagem & "Tipo da varivel y: " & Vartype(y) & Chr(13) mensagem = mensagem & "Tipo da varivel z: " & Vartype(z) & Chr(13) mensagem = mensagem & "Tipo da varivel a: " & Vartype(a) & Chr(13) mensagem = mensagem & "Tipo da varivel b: " & Vartype(b) & Chr(13) mensagem = mensagem & "Tipo da varivel c: " & Vartype(c) & Chr(13) MsgBox mensagem

Ao executar este exemplo, obteremos o resultado indicado na Figura a seguir:

Resultado Observe, principalmente, no tipo da varivel z, o qual retornou 0. Isto significa que a varivel z est vazia, ou seja, no foi inicializado. Este resultado est coerente com a Tabela anterior. Tambm podemos salientar o retorno para a varivel b, o qual retornou 7, indicando que o valor armazenado nesta varivel do tipo Data, o que tambm est coerente com a Tabela anterior, uma vez que usamos a funo Date() , para armazenar a data do sistema, na varivel b. Finalmente observe o valor de retorno para a varivel c, o qual retornou 8192, indicando que a varivel c um Array. Este resultado est coerente com a Tabela anterior, e com a declarao: Dim c(20), a qual declarou a varivel c como sendo um Array. Muitas so as aplicaes prticas para a funo VarType, dentre as quais podemos destacar a validao dos dados digitados em um formulrio.

2.27 Funes do VBA Funes de Tipo Parte 2


2.27.1 A funo IsDate.

A funo IsDate recebe uma varivel ou expresso como argumento, e determina se a varivel ou expresso uma data vlida, ou pode ser convertida para uma data vlida. Caso o argumento passado seja uma data vlida, a funo retorna Verdadeiro, caso contrrio,retorna Falso. Podemos utilizar esta funo, por exemplo, para verificar se o usurio digitou uma data vlida, em um campo de um formulrio.
Pgina 139 de 219

Microsoft Excel Estudo Avanado

A sintaxe da funo IsDate a seguinte:


IsDate(NomeDaVarivel)

ou
IsDate(expresso)

A seguir temos um exemplo de utilizao da funo IsDate.


If IsDate(x) Then MsgBox "Voc digitou uma data vlida !" Else MsgBox "Data invlida, digite novamente !" End If

2.27.2

A funo IsEmpty.

A funo IsEmpty recebe uma varivel ou expresso como argumento, e determina se, em algum momento, foi atribudo algum valor para a varivel ou expresso. Caso tenha sido atribudo algum valor, a funo retorna Verdadeiro, caso contrrio, retorna Falso. Podemos utilizar esta funo, por exemplo, para verificar se um campo de digitao obrigatria, como por exemplo o nome, no foi deixado em branco. A sintaxe da funo IsEmpty a seguinte:
IsEmpty(NomeDaVarivel)

ou
IsEmpty(expresso)

A seguir temos um exemplo de utilizao da funo IsEmpty. Vamos declarar uma varivel x, que nunca Ser utilizada no nosso Script Dim a, b, c Dim x a=10 b=23 c=a+b If IsEmpty(x) Then
Pgina 140 de 219

Microsoft Excel Estudo Avanado

MsgBox "A varivel x, no foi utilizada !" End If A varivel x foi declarada porm no foi inicializada, com isso est vazia, logo a funo IsEmpty(x) ir retornar Verdadeiro.

2.27.3

A funo IsNull

A funo IsNull recebe uma varivel ou expresso como argumento, e determina se, em algum momento, foi atribudo o valor Null para a varivel ou expresso. Caso tenha sido atribudo o valor Null, a funo retorna Verdadeiro, caso contrrio, retorna Falso. Para atribuirmos Null para uma varivel, utilizamos a seguinte sintaxe:
NomeDaVarivel = Null

Uma varivel com valor Null, no a mesma coisa que uma varivel com valor zero, ou uma varivel de texto com tamanho zero. Quando atribudo o valor Null para a varivel, esta continua existindo na memria, porm sem nenhum valor definido. A sintaxe da funo IsNull a seguinte:
IsNull(NomeDaVarivel)

ou
IsNull(expresso)

A seguir temos um exemplo de utilizao da funo IsNull.


' Vamos declarar uma varivel x, e atribuir ' Null, para a varivel. Dim x x = Null If IsNull(x) Then MsgBox "A varivel x Nula !" End If

Este exemplo produz o seguinte resultado:

Pgina 141 de 219

Microsoft Excel Estudo Avanado

Resultado.

2.27.4

A funo IsNumeric.

A funo IsNumeric recebe uma varivel ou expresso como argumento, e determina se o valor atribudo varivel ou expresso numrico, ou pode ser convertido para numrico. Caso o valor seja numrico, ou possa ser convertido, a funo retorna Verdadeiro, caso contrrio, retorna Falso. A sintaxe da funo IsNumeric a seguinte:
IsNumeric(NomeDaVarivel)

ou IsNumeric(expresso) A seguir temos um exemplo de utilizao da funo IsNumeric.


Dim x,y,z x=123 'Atribuo um valor que no pode ser convertido 'para numrico y = "Riachuelo - 80" z = Date() mensagem = "Valor de x: " & x &" numrico ? " & IsNumeric(x)& Chr(13) mensagem = mensagem & "Valor de y: " & y &" numrico ? " & IsNumeric(y)& Chr(13) mensagem = mensagem & "Valor de z: " & z &" numrico ? " & IsNumeric(z) MsgBox mensagem

Cabe salientar a utilizao da funo Date(), para capturar a data do sistema, e atribuir esta data varivel z. Observe que esta data no foi considerada um valor numrico para a funo IsNumeric.

VBA Funes para converso de Tipos Parte 1


Pgina 142 de 219

Microsoft Excel Estudo Avanado

2.28 Por que converter tipos?


Vamos aprenderemos a utilizar as principais funes para converso de tipos. Existem situaes em que um determinado tipo de dado, deve ser convertido para outro. Por exemplo, se tivermos um nmero, armazenado na forma de texto, precisamos convert-lo para inteiro ou double, para que possamos realizar clculos. Na seqncia, apresento as principais funes de converso, bem como um pequeno fragmento de cdigo, exemplificando a utilizao de cada uma delas.

2.28.1

Funo Cbool

A funo Cbool converte uma varivel ou resultado de um expresso, para o subtipo Boolean. Qualquer nmero, com exceo do zero, automaticamente convertido para Verdadeiro. O valor zero sempre convertido para Falso. O argumento desta funo, no pode ser Texto, caso contrrio ser gerado um erro em tempo de execuo. Observe este linha de cdigo:
MsgBox cbool(10>25) & chr(13) & cbool(3)

Esta linha gera a mensagem indicada na Figura a seguir:

Resultado A expresso 10>25 avaliada, como a expresso falsa, a funo Cbool retorna Falso. J no segundo uso da funo Cbool, foi passado o parmetro 3 para a funo. Qualquer valor diferente de zero (com exceo de texto), a funo interpreta como Verdadeiro, o que comprovado pela Figura anterior.

2.28.2

Funo CByte

A funo CByte converte uma varivel ou resultado de um expresso, para o subtipo Byte. O valor a ser convertido, deve estar na faixa aceitvel para o tipo byte, que vai de 0 255. Caso o nmero esteja fora desta faixa, ser gerada uma mensagem de erro, em tempo de execuo. O argumento desta funo, no pode
Pgina 143 de 219

Microsoft Excel Estudo Avanado

ser Texto, caso contrrio ser gerada uma mensagem de erro, em tempo de execuo. Observe este linha de cdigo:
MsgBox CByte(10+34) & chr(13) & CByte(35)

Esta linha gera a mensagem indicada na Figura a seguir:

Resultado. A expresso 10+34 calculada, e o resultado (44), convertido para o tipo byte. A linha de cdigo abaixo, ir gerar uma mensagem de erro, em tempo de execuo, pois o valor a ser convertido para byte, est fora da faixa de 0 255.
MsgBox CByte(100+200)

Essa linha de cdigo ir gerar a seguinte mensagem de erro:

Erro gerado.

2.28.3

Funo CCur

A funo CCur converte uma varivel ou resultado de um expresso, para o subtipo Currency (semelhante ao formato Moeda, porm sem o smbolo do real: R$). O argumento desta funo, no pode ser Texto, caso contrrio ser gerado um erro. Observe este linha de cdigo:
MsgBox CCur(250.335677+324.3333) & chr(13) & CCur(1250.326582)

Pgina 144 de 219

Microsoft Excel Estudo Avanado

Esta linha gera a mensagem indicada na Figura a seguir:

Resultado. A expresso 250.335677+324.3333 calculada, e o resultado convertido para o tipo Currency. Se passarmos um argumento de texto para a funo CCur, ser gerado um erro de execuo, conforme indicado na Figura a seguir:

Erro

2.28.4

Funo CDate

A funo CDate converte uma varivel ou resultado de um expresso, para o subtipo Date. O argumento desta funo deve estar em um formato que seja aceitvel para datas, caso contrrio ser gerada uma mensagem de erro, em tempo de execuo. Observe este linha de cdigo:
MsgBox CDate(31/10/1980) & chr(13) & CDate(23-01-2007)

Esta linha gera a mensagem indicada na Figura a seguir:

Pgina 145 de 219

Microsoft Excel Estudo Avanado

Resultado. A linha de cdigo abaixo, ir gerar uma mensagem de erro, em tempo de execuo, conforme indicado na prxima figura:
MsgBox CDate(31/02/1980)

Erro.

2.28.5

Funo CDbl

A funo CDbl converte uma varivel ou resultado de um expresso, para o subtipo Double. O tipo Doubl utilizado para nmeros grandes com casas decimais. O argumento desta funo no pode ser do tipo texto, caso contrrio ser gerada uma mensagem de erro, em tempo de execuo. Observe este linha de cdigo: MsgBox CDbl("4.940651247E-17") Esta linha gera a mensagem indicada na Figura a seguir:

Resultado.

Pgina 146 de 219

Microsoft Excel Estudo Avanado

2.28.6

Funo CInt

A funo CInt converte uma varivel ou resultado de um expresso, para o subtipo Integer. O argumento desta funo no pode ser do tipo texto, caso contrrio ser gerada uma mensagem de erro, em tempo de execuo. Observe este linha de cdigo:
MsgBox CInt(32.36) & Chr(13) & CInt(20.35+40.45)

Esta linha gera a mensagem indicada na Figura a seguir:

Resultado.

2.28.7

Funo CLng

A funo CLng converte uma varivel ou resultado de um expresso, para o subtipo Long. O argumento desta funo no pode ser do tipo texto, caso contrrio ser gerada uma mensagem de erro, em tempo de execuo. O argumento tambm no pode estar fora da faixa admitida pelo subtipo Long, caso contrrio ser gerada uma mensagem de erro, em tempo de execuo. Observe este linha de cdigo:
MsgBox CLng("3462315")

Esta linha gera a mensagem indicada na Figura a seguir:

Resultado

2.28.8

Funo CSng

A funo CSng converte uma varivel ou resultado de um expresso, para o subtipo Single.
Pgina 147 de 219

Microsoft Excel Estudo Avanado

O argumento desta funo no pode ser do tipo texto, caso contrrio ser gerada uma mensagem de erro, em tempo de execuo. O argumento tambm no pode estar fora da faixa admitida pelo subtipo Single, caso contrrio ser gerada uma mensagem de erro, em tempo de execuo. Observe este linha de cdigo:
MsgBox CSng("3.1418256927")

Esta linha gera a mensagem indicada na Figura a seguir:

Resultado

2.28.9

Funo CStr

A funo CStr converte uma varivel ou resultado de um expresso, para o subtipo String. Observe este linha de cdigo:
MsgBox CStr("12345" & " hectares de terra")

Esta linha gera a mensagem indicada na Figura a seguir:

Resultado.

2.28.10

Funo Int

A funo Int retorna somente a parte inteira de um determinado nmero. A linha de cdigo a seguir:
MsgBox Int(-7.35) & Chr(13) & Int(10.35)

Esta linha gera a mensagem indicada na Figura a Seguir:

Pgina 148 de 219

Microsoft Excel Estudo Avanado

Resultado. Com isso, terminamos a nossa apresentao sobre as principais funes para a converso de tipos de dados. Na prxima lio, analisaremos mais algumas funes do VBA, para operaes com dados do tipo String e do tipo Data/Hora.

2.29 Funes para tratamento de Texto


Nessa lio veremos as principais funes para tratamento de String.

2.29.1

Funo Asc

A funo Asc, retorna o valor numrico do cdigo ASCII, para a primeira letra de uma String. Considere o exemplo:
Asc(Ainda chovia)

Este exemplo de uso da funo retorna o valor 65, o qual o cdigo ASCII, para a letra A maiscula. Caso fosse a letra "a" minscula, o cdigo retornado seria 97 e assim por diante.

2.29.2

Funo Chr

A funo Chr(nmero), recebe um nmero como parmetro, e retorna o caractere ASCII, associado ao nmero passado como parmetro. Considere o exemplo:
Chr(65)

Este exemplo de uso da funo retorna o caractere "A" maisculo. At agora, utilizamos a funo Chr em diversos exemplos. Utilizamos o Chr(13), para simular um ENTER, o que faz uma quebra de linha, nas mensagens montadas com o MsgBox.

2.29.3

Funo Len

Pgina 149 de 219

Microsoft Excel Estudo Avanado

Esta funo determina o tamanho da String que foi passada como parmetro para a funo. Considere o exemplo:
MsgBox Len(Este um exemplo de uso da funo Len !)

Este exemplo de uso da funo, retorna 41, conforme indicado na Figura a seguir:

Fgiura x.x Resultado. importante observar que os espaos em branco tambm contam para o tamanho da string.

2.29.4

Funo LCase

Esta funo converte para minsculas, a String que foi passada como parmetro para a funo. Considere o exemplo:
MsgBox Lcase(ESTE UM EXEMPLO DE USO DA FUNO LCASE!)

Este exemplo de uso da funo, converte o parmetro passado, para letras minsculas, conforme indicado na Figura a seguir:

Resultado.

2.29.5

Funo UCase

Esta funo converte para MAISCULAS, a String que foi passada como parmetro para a funo. Considere o exemplo: MsgBox Lcase(este um exemplo do uso da funo ucase !) Este exemplo de uso da funo, converte o parmetro passado, para letras maisculas, conforme indicado na Figura a seguir:

Pgina 150 de 219

Microsoft Excel Estudo Avanado

2.29.6

Funo Left

Esta funo retorna um nmero especificado de caracteres, a partir do incio (Left Esquerda) de uma String. importante salientar que espaos em branco tambm devem ser considerados. O formato geral da funo o seguinte:
Left(String, n)

onde n o nmero de caracteres a retornar. Considere o exemplo:


MsgBox Left(Gabriel Otvio,7)

Este exemplo de uso da funo, retorna as cinco primeiras letras da String passada, neste caso, retornar Gabriel. Vamos alterar um pouco o nosso exemplo:
MsgBox Left(Gabriel Otvio,9)

Ir retornar: Gabriel O Observe que o espao em branco tambm considerado.

2.29.7

Funo Right

Esta funo retorna um nmero especificado de caracteres, a partir do final (Right Direita) de uma String. importante salientar que espaos em branco tambm devem ser considerados. O formato geral da funo o seguinte: Right(String, n) Onde n o nmero de caracteres a retornar. Considere o exemplo:
MsgBox Right(Gabriel Otvio,6)

Este exemplo de uso da funo, retorna as seis ultimas letras da String passada, neste caso, retornar Otvio. Vamos alterar um pouco o nosso exemplo:
MsgBox Right(Jlio Cesar Fabris Battisti,8)

Ir retornar: L Otvio Observe que o espao em branco tambm considerado.


Pgina 151 de 219

Microsoft Excel Estudo Avanado

2.29.8

Funo Mid

Esta funo retorna um nmero especificado de caracteres, a partir de uma posio especificada, dentro da String. importante salientar que espaos em branco tambm devem ser considerados. O formato geral da funo o seguinte: Mid(String, posicao_inicio, n) Onde: posicao_inicio a posio a partir da qual devem ser retornados caracteres n o nmero de caracteres a retornar. Considere alguns exemplos:
Mid(Gabriel Otvio,8,6)

Este exemplo de uso da funo, retorna, a partir da posio 7, 5 caracteres, neste caso, retornar Otvio.
Mid(SANTA MARIA,3,7)

ir retornar NTA MAR. Observe que o espao em branco tambm considerado. Um detalhe interessante, que podemos utilizar o valor retornado por uma funo, como parmetro para outra funo. Considere o seguinte exemplo:
LCase(Mid(SANTA MARIA,3,7))

Este exemplo retorna nta mar. A funo Mid retira os caracteres NTA MAR, os quais so passados como parmetros para a funo LCase, a qual converte os caracteres para minsculos.

2.29.9

Funo String

Esta funo retorna um determinado caractere, um nmero especificado de vezes. O formato geral da funo o seguinte:
String(n, Caracter)

Onde n o nmero de vezes que Caractere deve ser repitido. Considere o exemplo:
MsgBox String(35,*) Pgina 152 de 219

Microsoft Excel Estudo Avanado

A Figura a seguir mostra o resultado deste comando:

Fgirua X.X - Resultado.

2.30 Funes de Data/Hora e Matemticas


Funes para tratamento de Data e Hora Veremos as principais funes para tratamento de Data e Hora.

2.30.1

Funo Date

Retorna a data corrente do sistema. No precisamos passar parmetros para esta funo. Considere o exemplo abaixo:
MsgBox Data do Sistema: & Date()

O resultado deste comando, est indicado na Figura a seguir:

Resultado.

2.30.2

Funo Time

Retorna a hora corrente do sistema. No precisamos passar parmetros para esta funo. Considere o exemplo abaixo:
MsgBox Hora do Sistema: & Time( )

O resultado deste comando, est indicado na Figura a seguir:

Pgina 153 de 219

Microsoft Excel Estudo Avanado

Resultado.

2.30.3

Funo Day

Recebe como parmetro uma data, e retorna um nmero entre 1 e 31, indicando o dia do ms. O formato geral o seguinte:
Day(data)

Considere o exemplo abaixo:


MsgBox Dia do ms: & Day(Date( ))

O resultado deste comando, est indicado na Figura a seguir: A funo Date() captura a data do sistema e passa como parmetro para a funo Day, a qual por sua vez, retorna apenas o dia do ms.

Resultado.

2.30.4

Funo Month

Recebe como parmetro uma data, e retorna um nmero entre 1 e 12, indicando o ms do ano. O formato geral o seguinte:
Month(data)

Considere o exemplo abaixo:


MsgBox Ms do ano: & Month(Date( ))

O resultado deste comando, est indicado na Figura a seguir:

Pgina 154 de 219

Microsoft Excel Estudo Avanado

Resultado. A funo Date() captura a data do sistema e passa como parmetro para a funo Month, a qual por sua vez, retorna apenas o ms do ano

2.30.5

Funo Now

Retorna a hora e a data corrente do sistema. No precisamos passar parmetros para esta funo. Considere o exemplo abaixo:
MsgBox Data e Hora do Sistema: & Now( )

O resultado deste comando, est indicado na Figura a seguir:

Resultado

2.30.6

Funo MonthName

Recebe como parmetro um nmero, indicativo do ms do ano (1 Janeiro, 2 Fevereiro, e assim por diante), e um segundo parmetro que pode ser Verdadeiro ou Falso. Se o segundo parmetro for verdadeiro, o nome do ms ser exibido abreviadamente. O formato geral o seguinte:
MonthName(nmero_do_ms, abreviar)

Considere o exemplo abaixo:


MsgBox "Ms do ano: " & MonthName(Month(Date))

O resultado deste comando, est indicado na Figura a seguir:

Resultado.
Pgina 155 de 219

Microsoft Excel Estudo Avanado


A funo Date() captura a data do sistema e passa como parmetro para a funo Month. A funo Month retorna o nmero do ms retornado pela data. Este nmero passado como primeiro parmetro para a funo MonthName.

2.30.7

Funo Hour

Recebe como parmetro uma hora, e retorna um nmero entre 0 e 23, indicando o hora do dia. O formato geral o seguinte:
Hour(horrio)

Considere o exemplo abaixo:


MsgBox Hora do dia: & Hour(Time( ))

O resultado deste comando, est indicado na Figura a seguir:

Resultado. A funo Time() captura a hora do sistema e passa como parmetro para a funo Hour(), a qual por sua vez, retorna apenas o hora do dia.

2.30.8

A funo DateDiff

Esta funo pode ser utilizada para determinar o nmero de intervalos (em dias, trimestres, semestres, anos, etc), entre duas datas. A sintaxe desta funo o seguinte:
DateDiff(intervalo, data1, data2)

O parmetro intervalo uma String que diz que tipo de intervalo vamos calcular. Por exemplo, este parmetro que define se queremos calcular o nmero de dias, ou o nmero de meses entre duas datas. Na Tabela a seguir, temos os valores possveis para o parmetro intervalo.

2.30.8.1

Valores para o parmetro intervalo

Valor Descrio Anos q Trimestres m Meses

Pgina 156 de 219

Microsoft Excel Estudo Avanado

Valor

Descrio

yyyy

Anos

Trimestres

Meses

Dias do ano (o mesmo que dias)

Dias

Semanas

Pgina 157 de 219

Microsoft Excel Estudo Avanado

Semanas do ano

ww

Semans do ano (o mesmo que semanas)

Horas

Minutos

Segundos Tabela 2.1 Comparados condicionais.

A ttulo de exemplo, vamos calcular o nmero de meses, desde o descobrimento do Brasil, at 31 de Dezembro de 1999. Para isso, utilizaramos o seguinte comando
MsgBox Meses desde o descobrimento: & DateDiff(m,22/04/1500,31/12/1999)

O resultado deste comando, pode ser conferido na Figura a seguir:

Resultado. Vamos modificar um pouco o nosso exemplo, e calcular o nmero de horas desde o descobrimento. Para isto, podemos utilizar o seguinte comando:
MsgBox Meses desde o descobrimento: & DateDiff(h,22/04/1500,31/12/1999)

O resultado deste comando, pode ser conferido na Figura a seguir:

Resultado.
Pgina 158 de 219

Microsoft Excel Estudo Avanado

2.30.9

A funo DateAdd

Esta funo pode ser utilizada para determinar uma data futura, com base em uma data fornecida, o tipo de perodo a ser acrescentado (dias, meses, anos, etc), e o nmero de perodos a serem acrescentados. A sintaxe desta funo o seguinte:
DateAdd(intervalo, nmero_de_intervalos, data)

O parmetro intervalo uma String que diz que tipo de intervalo vamos acrescentar. Por exemplo, este parmetro que define se queremos acrescentar um nmero especificado de dias, meses, anos, etc. Na Tabela a seguir, temos os valores possveis para o parmetro intervalo. A ttulo de exemplo, vamos calcular a data em que tivemos um perodo de 1000 meses, aps o descobrimento do Brasil. Para isso, utilizaramos o seguinte comando:
MsgBox Mil meses aps o descobrimento foi em : & DateAdd(m,1000,22/04/1500)

O resultado deste comando, pode ser conferido na Figura a seguir:

Resultado. Vamos modificar um pouco o nosso exemplo, e calcular em que data teremos passado um milho de dias aps o descobrimento.
MsgBox Um milho de dias aps o descobrimento em : & DateAdd(d,1000000,22/04/1500)

O resultado deste comando, pode ser conferido na Figura a seguir:

Resultado.

Pgina 159 de 219

Microsoft Excel Estudo Avanado

2.30.10

Funo Year

Recebe como parmetro uma data, e retorna um nmero indicativo do ano. O formato geral o seguinte:
Year(data)

Considere o exemplo abaixo:


MsgBox Ano atual: & Year(Date( ))

O resultado deste comando, est indicado na Figura a seguir:

Resultado. A funo Date() captura a data do sistema e passa como parmetro para a funo Year, a qual por sua vez, retorna apenas o ano.

2.30.11

Funo WeekDay

Recebe como parmetros uma data, e um parmetro opcional, que indica qual o primeiro dia da semana. Se este parmetro for omitido, o primeiro dia da semana ser considerado Domingo. O valor para o primeiro dia da semana numrico: 1 Domingo, 2 Segunda- feira, e assim por diante.
WeekDay(data, prim_dia_semana.)

Considere o exemplo abaixo:


MsgBox Dia da semana: & WeekDay(31/12/1999)

O resultado deste comando, est indicado na Figura a seguir:

Resultado. O valor 6, indica que foi uma Sexta-feira, o que confere com o calendrio. Poderamos determinar que o primeiro dia da semana a Segunda-feira (2 para o ltimo parmetro). Com isso o nosso exemplo, ficaria assim:
Pgina 160 de 219

Microsoft Excel Estudo Avanado

MsgBox Dia da semana: & WeekDay(31/12/1999,2)

O resultado deste comando, est indicado na Figura a seguir:

Resultado. O valor 5, indica que foi uma Sexta-feira, pois agora a Segunda-feira passou a ser o dia 1, a Tera-feira o dia 2, e assim por diante. Novamente confere com o calendrio.

2.30.12

Funo WeekDayName

Recebe como parmetro um nmero, indicativo do dia da semana, e um segundo parmetro que pode ser Verdadeiro ou Falso. Se o segundo parmetro for verdadeiro, o nome do dia da semana ser exibido abreviadamente. O formato geral o seguinte:
WeekDayName(nmero_do_dia, abreviar)

Considere o exemplo abaixo:


MsgBox Dia da semana: & WeekDayName(6,False)

O resultado deste comando, est indicado na Figura a seguir:

2.31 Funes para Clculos matemticos


Veremos as principais funes para efetuar clculos matemticos. Na Tabela a seguir, temos a descrio das principais funes matemticas, disponveis no VBA.

Pgina 161 de 219

Microsoft Excel Estudo Avanado

2.31.1
Abs(n)

Funes para clculos matemticos.

Retorna o valor absoluto (sem sinal), do nmero n. Atn(n) Retorna o valor do arco, cuja tangente o nmero n. O nmero n deve ser fornecido em radianos. Cos(n) Retorna o coseno do nmero n. O nmero n deve ser fornecido em radianos. Exp(n) Retorna o nmero e (logaritmo neperiano e=2,7183), elevado no nmero n. Log(n) Retorna o logaritmo natural de um nmero n. Rnd(n) Retorna um nmero aleatrio entre 0 e 1. Sgn(n) Retorna um nmero inteiro, indicando o sinal do nmero n. Retorna de1 para nmeros negativos e 1 para nmeros positivos. Sin(n) Retorna o seno do nmero n. O nmero n deve ser fornecido em radianos Sqr(n) Retorna a Raiz quadrada do nmero n. Tan(n) Retorna a tangente do nmero n. O nmero n deve ser fornecido em radianos.

Dica Para converter graus para radianos, multiplique o valor em graus por pi (3.14), e divida o resultado por 180.

Pgina 162 de 219

Microsoft Excel Estudo Avanado

2.31.2 Alguns matemticas.

exemplos

de

utilizao

das

funes

Abs(-2350) Retorna 2350 Atn(2) Retorna 1,1071487177 Cos(0) Retorna 1 Exp(1) Retorna 2,71828182845905 Log(1000) Retorna 6,90775527898214 Rnd*10 Gera um nmero aleatrio entre 0 e 10 Sgn(-235) Retorna 1, pois o nmero negativo Sin(0) Retorna 0 Sqr(400) Retorna 20 Tan(0) Retorna 0

Estudo avanado da linguagem VBA


Nas lies desse mdulo vamos estender um pouco mais o nosso estudo sobre a linguagem VBA. Nas lies do mdulo anterior, tratamos sobre os fundamentos bsicos do VBA.

2.32 Novidades do Modelo de Objetos do Excel 2000 VBA:


O modelo do objeto do Microsoft Excel 2000 Visual Basic for Applications inclui muitas alteraes que foram feitas para suportar recursos novos e aprimorados no Excel. Para proporcionar compatibilidade com verses anteriores, os componentes substitudos foram deixados ocultos ao invs de serem removidos. Isso significa que eles no aparecem no Pesquisador de objeto por padro, mas o cdigo antigo que usa os componentes ocultos ainda funcionar corretamente sem modificao. Ao gravar cdigo novo, entretanto, voc deve usar apenas novos objetos, propriedades e mtodos. As principais alteraes de recurso feitas no Visual Basic for Applications no Microsoft Excel XP esto listadas a seguir:

2.32.1

ADO - Activex Data Objects

Pgina 163 de 219

Microsoft Excel Estudo Avanado

um novo conjunto de objetos para acesso a fontes de dados externas, tais como o Microsoft Access ou o SQL Server 2000. Voc pode, at mesmo, criar uma planilha do Excel que acessa dados diretamente do Mainframe. Fornece uma interface de acesso direto a banco de dados. O ADO agora o mtodo de acesso de dados preferido no Excel. Nas verses anteriores utilizava-se um outro conjunto de objetos, conhecido como DAO Data Access Objects.

2.32.2

Arquivo de texto e consultas da Web

Fornece novas melhorias de importao de arquivo texto e consulta de pgina da Web.

2.32.3

Assinatura digital

Fornece uma forma de determinar se o projeto do Visual Basic for Applications da pasta de trabalho foi assinada digitalmente. muito utilizado quando trabalhamos com planilhas e/ou aplicaes criadas com o Excel, onde o quesito segurana e identificao um fator fundamental.

2.32.4

Edio em vrias lnguas

Fornece interface do usurio de vrias lnguas aprimorada e recursos de edio e tratamento de texto fontico melhorado para suporte a idioma do leste asitico. Exibe rtulos de unidade: Fornece rtulos de unidade para tornar os rtulos de marcas de escala em eixos de grfico fceis de serem lidos. Representa um rtulo de unidade em um eixo no grfico especificado. Os rtulos de unidade so teis para a criao de grficos com valores altos por exemplo, milhes ou bilhes. Voc pode tornar o grfico mais legvel usando um nico rtulo de unidade em vez de nmeros grandes em cada marca de escala.

2.32.5 Fontes de dados OLAP para relatrios de tabela dinmica e grfico dinmico:
Fornece um meio para exibir e analisar dados de fontes de dados OLAP (Processamento Analtico On-line). Para maiores detalhes sobre os recursos de Tabela Dinmica e Grfico Dinmico, consulte o Mdulo 3.

2.32.6

Microsoft Office E-mail

Fornece capacidades integradas de correio eletrnico. Por exemplo, voc pode criar um cdigo VBA que, de dentro de uma planilha do Excel, envie dados via email, para um ou mais endereos eletrnicos.
Pgina 164 de 219

Microsoft Excel Estudo Avanado

2.32.7

Microsoft Office Web Components

Fornece uma forma de salvar planilhas, grficos e relatrios de tabela dinmica como pginas interativas da Web. Para saber como usar esses componentes em formulrios do usurio e em caixas de dilogo, consulte Usar o Microsoft Office Web Components em formulrios, na Ajuda do Microsoft Excel.

2.32.8

Relatrios de grfico dinmico

Fornece uma interface para relatrios de grfico dinmico, que so baseados em dados de relatrios de tabela dinmica.

2.32.9

Salvar para Web e para edio com Office Web

Fornece recursos para criar pginas da Web, salvar e editar recursos. Alm disso, fornece uma interface para salvar Microsoft Office Web Components.

2.32.10

Script de pgina da Web

Fornece recursos de script de pgina da Web para solues de cliente com base em HTML. Suplementos do Modelo de objeto de componente (COM): Fornece uma interface de usurio consistente na qual os desenvolvedores podem criar suplementos em qualquer linguagem de programao que tenha suporte para COM (Microsoft Visual C++, Visual J++ e Visual Basic, por exemplo). Por exemplo, voc pode querer criar um componente onde sejam desenvolvidas funes para validao de CPF, nmero de Carto de Crdito e assim por diante. Em seguida voc pode utilizar esse componente em qualquer planilha do Excel.

2.32.11

Visual Basic For Applications 6.0

Fornece os recursos de idioma mais recentes, assim como formulrios do usurio sem modo e suporte para controles ActiveX adicionais. Muitas dessas novidades envolvem conceitos avanados de programao, os quais sero abordados em curso especfico: Desenvolvimento de Aplicaes usando o Excel e VBA. Nas demais lies desse mdulo aprenderemos a utilizar os principais objetos que fazem parte do modelo de objetos do Excel. Com esses objetos teremos acesso a
Pgina 165 de 219

Microsoft Excel Estudo Avanado

todo e qualquer elemento de uma planilha do Excel, desde os valores em uma ou mais clulas, at comandos de menu.

2.33 Bibliotecas, Referncias

Objetos,

Propriedades,

Mtodos

Nos tpicos anteriores tratamos dos aspectos bsicos do VBA. Com os aplicativos do Office (Word, Excel, Access e Power Point), temos acesso a um vasto conjunto de Bibliotecas; cada biblioteca com dezenas/centenas de objetos, cada objeto com inmeros mtodos, propriedades e colees. Com a utilizao dos objetos disponibilizados pelo Office, podemos criar solues bastante sofisticadas. Nesta lio vamos entender exatamente o que so e como se relacionam, os seguintes itens:Bibliotecas, Objetos, Propriedades, Mtodos, Colees. Para incio de conversa, considere a figura a seguir:

Pgina 166 de 219

Microsoft Excel Estudo Avanado

Os diversos objetos disponveis esto agrupados em Bibliotecas. Uma Biblioteca um conjunto de objetos que so utilizados para uma determinada funo/atividade. Por exemplo, todos os objetos para acesso a dados so agrupados em uma biblioteca chamada DAO - Data Access Objects. Existe uma outra biblioteca para acesso a dados, conhecida como ADO - Activex Data bjects. Existe uma biblioteca com os diversos objetos do Excel e assim por diante. Existem dezenas de bibliotecas disponveis. Isso demonstra bem o poder da utilizao do VBA em conjunto com os Objetos/Bibliotecas disponveis. Em cada Biblioteca esto disponveis dezenas/centenas de objetos. Cada objeto utilizado para um conjunto de aes especfico. Por exemplo: O objeto RecordSet utilizado para acessar dados de uma tabela. Uma vez criado um objeto RecordSet, podemos realizar uma srie de operaes sobre os diversos registros da tabela. Cada objeto possui um conjunto de mtodos, propriedades e colees. Um mtodo realiza uma operao especfica, como por exemplo o mtodo Open, do objeto RecordSet. Este mtodo utilizado para estabelecer a conexo entre um objeto RecordSet e um determinado conjunto de Registros. No cdigo VBA, utilizamos a seguinte sintaxe:
NomeDoObjeto.NomeDoMtodo(par1, par2, ..., parn)

Por exemplo, para utilizar o mtodo Open, de um objeto RecordSet chamado rs, utilizaramos a seguinte sintaxe:
rs.Open("Pedidos")

Uma propriedade descreve uma caracterstica do objeto. Por exemplo, temos uma propriedade chamada RecordCount que informa quantos registros existem no objeto RecordSet. Por exemplo, para atribuir a varivel quantos, o nmero de registros de um objeto RecordSet chamado rs, utilizaramos o seguinte comando:
quantos = rs.RecordCount

Uma coleo um conjunto de elementos do mesmo tipo. Por exemplo, todo banco de dados do Microsoft Access, possui uma coleo chamada Forms. Atravs desta coleo podemos ter acesso a todos os Formulrios do banco de dados. Toda planilha do Excel tem uma coleo chamada Worksheets. Atravs dessa coleo temos acesso a todas as planilhas de um arquivo do Excel. Podemos percorrer todos os elementos de uma coleo, utilizando a estrutura de Controle For...Each, que ser tratada no prximo tpico.

2.33.1

A Estrutura For...Each
Pgina 167 de 219

Microsoft Excel Estudo Avanado

A estrutura For...Each utilizada para "percorrer" todos os elementos de uma coleo. Por exemplo, se quisermos percorrer todos os elementos da coleo Forms de um banco de dados, exibindo o nome de cada formulrio, devemos utilizar a estrutura For/Each, para percorrer todos os elementos da coleo Forms, exibindo o nome de cada um dos elementos. Nota: Nos exemplos de cdigo das prximas lies, veremos o funcionamento da estrutura For...Each em detalhes. Uma viso geral da Biblioteca de Objetos do Excel: Na figura a seguir temos uma viso geral da Biblioteca de Objetos do Microsoft Excel.

Nota

Quando trabalhamos com o VBA, temos que utilizar os nomes dos comandos, objetos, funes, mtodos e propriedades em ingls. No existe traduo. Por exemplo, se ao invs de Left, usarmos Esquerda para o nome da funo, ser gerado um erro, informando que no existe a funo Esquerda.
Pgina 168 de 219

Microsoft Excel Estudo Avanado

Nas demais lies desse mdulo, estudaremos alguns dos principais objetos, da Biblioteca de Objetos do Excel. Observe que uma biblioteca de objetos forma uma espcie de hierarquia de objetos. Por exemplo, um objeto Worksheet somente existe dentro do contexto de um objeto Application. J o prprio objeto Worksheet pode possuir outros objetos, cada objeto com os seus mtodos e propriedades, conforme indicado na Figura a seguir:

Pgina 169 de 219

Microsoft Excel Estudo Avanado

Veja que um nico objeto da hierarquia de objetos Worksheet, composto de dezenas de outros objetos, mtodos, propriedades e colees. esse grande nmero de objetos que possibilita o acesso a todo e qualquer elemento de uma planilha do Excel, atravs da programao VBA.

2.33.2

Criando suas prprias funes e procedimentos

Nas lies do Mdulo 5, aprendemos a utilizar as funes prontas, que j fazem parte do Excel. Porm podemos criar nossas prprias funes. Neste item, aprenderemos a criar nossas prprias funes e Sub-rotinas . O princpio por trs da criao de funes e sub- rotinas, o de reaproveitamento de cdigo e facilidade de manuteno do programa. Imagine que estejamos criando uma planilha para clculos financeiros, por exemplo, depreciao contbil. Vamos supor que em diversos locais, seja necessria a realizao do clculo de depreciao. Poderamos colocar o cdigo/frmulas que faz o clculo, em cada um dos locais, onde o clculo seja necessrio. Porm esta no a melhor maneira de criarmos nossos programas. Imagine, por exemplo, quando fosse necessrio alterar a maneira de realizar os clculos. Teramos que repassar todos
Pgina 170 de 219

Microsoft Excel Estudo Avanado

os locais onde o clculo feito, procurando os pontos onde o cdigo est , e fazer as alteraes. Para resolver estes problemas, poderamos criar uma funo ou sub-rotina que faz os clculos de depreciao. A funo/sub-rotina seria criada dentro de um mdulo de cdigo do VBA, na prpria planilha. Depois, em cada local onde precisamos fazer os clculos, s chamar a funo (ou sub-rotina), para fazer os clculos. Quando fosse necessria a alterao da metodologia de clculo, era s alterar a funo (ou sub-rotina) e pronto, os novos clculos passaro a ser feitos com base na nova metodologia. Isto poupa esforo , reduz o nmero de linhas de cdigo , e facilita a manuteno , alm de reduzir a possibilidade de erros . Agora chegada a hora de aprendermos a criar funes e sub- rotinas. Estes procedimentos/funes so criados em mdulos de cdigo VBA associados a planilha. Quando uma destas funes/procedimentos for necessria, basta chamar a respectiva funo/procedimento que o Microsoft Excel se encarrega de localizar a funo/procedimento, passar os parmetros necessrios (se for o caso) e receber os resultados retornados, caso seja uma funo. Nota Vamos falar um pouco mais sobre o termo Procedimento. Um procedimento um grupo de instrues que pode ser chamado pelo nome atribudo ao procedimento. Neste contexto, funes e sub-rotinas, so tipos diferentes de procedimentos.

2.33.3

Criando e utilizando Sub-rotinas

Uma sub-rotina um grupo de comandos que podem ser executados, simplesmente atravs da chamada do nome da Sub-rotina. Podemos passar um ou mais argumentos para uma Sub-rotina. Quando uma sub-rotina chamada, a execuo desloca-se para dentro da Sub- rotina, depois de executados todos os comandos dentro da Sub-rotina, a execuo do cdigo continua, com o comando seguinte ao que chamou a Sub-rotina. A sintaxe para a criao de uma Sub-rotina a seguinte:
Sub Nome_da_Sub-rotina(argumento1, argumento2, ..., argumenton) Comando1 Comando2 ... Comandon End Sub Pgina 171 de 219

Microsoft Excel Estudo Avanado

Uma Sub-rotina pode, ou no, conter argumentos. Caso sejam necessrios argumentos, estes sero passados quando a Sub-rotina for chamada, e devem ser passados, na mesma ordem em que foram definidos. Dica Quando voc criar Sub-rotinas, procure utilizar nomes que descrevam a funo da Sub-rotina. Com isso voc torna o entendimento do cdigo mais fcil para quem for utiliz- lo.

Comando1 Comando2 ... Comandon End Sub

Considere o seguinte exemplo de declarao de uma Sub-rotina:


Sub Calcula_imposto(salario, desconto, extras)

Neste caso, declaramos uma rotina chamada Calcula_imposto, a qual espera receber 3 parmetros: salario, desconto e extras. Os parmetros devem ser fornecidos nesta ordem, para que a Sub-rotina funcione corretamente. Uma vez criada a Sub-rotina, podemos cham-la, simplesmente digitando o nome da Sub- rotina, ou utilizando a palavra Call , mais o nome da Sub-rotina. Nos exemplos abaixo, temos dois mtodos de chamada da Sub-rotina Calcula_imposto:
Calcula_imposto(1500,23,125)

ou
Call Calcula_imposto(1500,23,125)

Observe que os parmetros so passados dentro do parnteses. Tambm poderamos declarar uma Sub-rotina, sem parmetros. Neste caso posso simplesmente no utilizar os parnteses aps o nome da Sub-rotina, ou utilizar um par de parnteses, sem nada dentro, conforme indicado abaixo:
Sub Nome_da_Sub-rotina Comando1 Pgina 172 de 219

Microsoft Excel Estudo Avanado Comando2 ... Comandon End Sub

Ou
Sub Nome_da_Sub-rotina( ) Comando1 Comando2 ... Comandon End Sub

Por exemplo, poderamos criar uma Sub-rotina que exibe uma Caixa de mensagem com a Data do sistema e a hora, no Formato indicado na Figura a seguir:

Poderamos criar todos os comandos necessrios, para exibir a hora e a data neste formato, cada vez que a exibio fosse necessria. Porm mais prtico criar uma Sub-rotina que faz este trabalho. Cada vez que precisarmos exibir a data e a hora neste formato, s chamarmos a Sub-rotina. Na Listagem a seguir temos o cdigo da Sub-rotina exibe_data_hora (), a qual faz a exibio da data e da hora, no formato proposto pela Figura anterior. Listagem A Sub-rotina exibe_data_hora Listagem A Sub-rotina exibe_data_hora

Sub exibe_data_hora es_atual=Month(Date()) Pgina 173 de 219

Microsoft Excel Estudo Avanado es_nome=MonthName(mes_atual,False) mensagem = "Ano atual: " & Year(Date()) & Chr(13) mensagem = mensagem & "Ms atual: " & mes_nome & Chr(13) mensagem = mensagem & "Hoje dia: " & Day(Date())& Chr(13) mensagem = mensagem & Chr(13) & "***************" & Chr(13)& Chr(13) hora_atual = Hour(Time()) minuto_atual = Minute(Time()) secundo_atual = Second(Time()) mensagem = mensagem & "Hora atual: " & hora_atual & chr(13) mensagem = mensagem & "Minuto atual: " & minuto_atual & chr(13) mensagem = mensagem & "Secundo atual: " & secundo_atual MsgBox mensagem End Sub

Agora, cada vez que for necessrio exibir a data e a hora nos formatos do exemplo, basta chamar a Sub-rotina exibe_data_hora, utilizando um dos seguintes comandos:
Call exibe_data_hora

ou
exibe_data_hora

2.33.4

Criando e utilizando Funes

Uma Funo um grupo de comandos que podem ser executados, simplesmente atravs da chamada do nome da Funo. Podemos passar um ou mais argumentos para uma Funo. Quando uma Funo chamada, a execuo desloca-se para dentro da Funo, depois de executados todos os comandos dentro da Funo, a execuo do cdigo continua, com o comando seguinte ao que chamou a Funo. A diferena da Funo para a Sub-rotina, que a Funo sempre retorna um ou mais valores para o comando que a chamou. A sintaxe para declarao de uma Funo a seguinte:
Function Nome_da_Funo(argumento1, argumento2, ..., argumenton) As Tipo Comando1 Comando2 Pgina 174 de 219

Microsoft Excel Estudo Avanado

... Comandon End Function

Uma Funo pode, ou no, conter argumentos. Caso sejam necessrios argumentos, estes sero passados quando a Funo for chamada, e devem ser passados, na mesma ordem em que foram definidos.

Comando1 Comando2 ... Comandon End Function

Dica : Quando voc criar Funo, procure utilizar nomes que descrevam os objetivos da Funo. Com isso voc torna o entendimento do cdigo mais fcil para quem for utiliz-lo.

Considere o seguinte exemplo de declarao de uma Funo:


Funo Converte_para_dolar(valor_em_real, cotacao_dolar)

Neste caso, declaramos uma Funo chamada Converte_para_dolar, a qual espera receber 2 parmetros: um valor em real e a cotao do dlar. Uma vez criada a Funo, devemos cham-la, em um comando de atribuio, isto , o valor retornado pela funo, deve ser atribudo a uma varivel, ou exibido atravs de um comando como MsgBox. No exemplo abaixo, estamos atribuindo o valor de retorno da funo, varivel valor_dolar.
valor_dolar = Converte_para_dolar (1500,1.81)

Tambm poderamos exibir o valor retornado pela funo, utilizando o comando MsgBox, conforme indicado a seguir:
MsgBox Valor em dlar: & Converte_para_dolar (1500,1.81)

Observe que os parmetros so passados dentro dos parnteses, e na mesma ordem definida quando da criao da funo. Tambm poderamos declarar uma Funo, sem parmetros. Neste caso posso simplesmente no utilizar os parnteses aps o nome da Funo, ou utilizar um par de parnteses, sem nada dentro, conforme indicado abaixo:
Function Nome_da_Funo Pgina 175 de 219

Microsoft Excel Estudo Avanado Comando1 Comando2 ... Comandon End Function ou Function Nome_da_Funo( ) Comando1 Comando2 ... Comandon End Function

Por exemplo, vamos criar uma funo que converte um valor de um ngulo de Graus para Radianos. Depois utilizaremos a funo dentro de um lao For...Next, para exibir o valor em radianos, para os ngulos de 0 20 graus. No exemplo a seguir temos o cdigo onde foi criada a funo CRad, que converte um valorem graus para radianos. Depois utilizamos um lao for para exibir, atravs de uma Caixa de mensagem os valores em radianos, para os ngulos de 0 20 graus. Criao da funo CRad.
Function CRad(valor_graus) CRad = (valor_graus*3.14)/180 End Function

Agora utilizamos a funo dentro do lao For/Next.


For i=0 to 20

Mensagem = Mensagem & ngulo: & i & Valor em Radianos: Mensagem = Mensagem & FormatNumber(CRaid(i),5) & Chr(13) Next Msgbox Mensagem

Observe que dentro da funo, atribumos a varivel CRad um determinado valor. isso que caracteriza uma funo. Dentro do cdigo da funo, devemos
Pgina 176 de 219

Microsoft Excel Estudo Avanado

atribuir a uma varivel que tenha o mesmo nome da funo, um determinado valor. Este valor que ser o valor de retorno da funo. Cabe salientar o uso da funo FormatNumber, dentro do lao For. A funo FormatNumber utilizada para formatar a maneira como um nmero exibido. Neste caso, utilizamos a funo FormatNumber, para limitar o nmero de casas decimais, a 5 casas depois da vrgula. Em cada "passada" do lao For...Next, chamamos a funo CRad(i), para fazer a converso de Graus para radianos. O Valor retornado pela funo CRad, passado para a funo FormatNumber, para ser formatado com apenas 5 casas decimais.

2.34 Trabalhando com o objeto Application


Conforme visto na lio anterior, o principal objeto da biblioteca de objetos do Excel o objeto Application. Uma pasta de trabalho (arquivo .xls) e as diversas planilhas dessa pasta existem dentro do contexto de um objeto Application. O objeto Application tem, ao todo, 218 propriedades e mtodos. Quando estamos trabalhando dentro de uma planilha do Excel, no preciso a criao explcita de um objeto Application. Por exemplo, se dentro do cdigo, quisermos fazer referncia a uma determinada clula, no precisamos criar um objeto Application, depois um Workbook, depois um Worksheet para, finalmente, poder acessar as clulas de uma planilha (objeto Worksheet). Ao invs disso, podemos fazer referncia direta a clula desejada. Com isso o Excel supe que estamos trabalhando com a instncia atual do Excel, dentro da pasta de trabalho atual (arquivo .xls), dentro de uma das suas planilhas, o que bastante razovel. Apenas teramos que criar toda essa hierarquia de objetos, se quisssemos fazer referncia a uma clula de uma planilha de uma pasta de trabalho externa. Nessa lio aprenderemos a utilizar o objeto Application. Nas prximas lies estudaremos os objetos Workbook e Worksheet, para fazer referncia a clulas das planilhas, da pasta de trabalho atual.

2.34.1

O objeto Application

Representa todo o aplicativo Microsoft Excel. O objeto Application contm: Definies e opes para o aplicativo como um todo (muitas das opes da caixa de dilogo Opes (menu Ferramentas), por exemplo, so configuradas atravs das propriedades do objeto Application). Mtodos que retornem objetos do nvel mais alto, como ActiveCell, ActiveSheet e assim por diante.
Pgina 177 de 219

Microsoft Excel Estudo Avanado

Usar o objeto Application Usamos o objeto Application quando temos que configurar alguma opo do Excel, como as opes disponveis no menu Ferramentas -> Opes, ou quando temos que acessar dados de uma planilha externa. Nesse ltimo caso criamos um objeto Application. Em seguida, criamos um objeto Workbook associado com o arquivo .xls do qual queremos acessar dados. Em seguida usamos a coleo Worksheets e o objeto Range para acessar os dados do referido arquivo. Com isso possvel, a partir de uma planilha do Excel, fazer clculos que envolvem dados de diversos arquivos .xls diferentes. Vamos considerar alguns exemplos de cdigo que usa o objeto Application. Criar um objeto Application e usar o mtodo Open para abrir uma planilha: No exemplo de cdigo a seguir, temos o uso do objeto Application para abrir um arquivo do Excel que est gravado no disco rgido:
Set xl = CreateObject("Excel.Sheet") xl.Application.Workbooks.Open "C:\ExcelAvanado\ExApp.xls"

Nesse exemplo usamos a funo CreateObject para Excel.Sheet, que na prtica uma planilha do Excel:
Set xl = CreateObject("Excel.Sheet")

criar um objeto do tipo

Em seguida usamos o mtodo Open, da coleo Workbook do objeto Application, para acessar a planilha C:\ExcelAvanado\ExApp.xls. Exibindo uma caixa para que o usurio selecione a planilha a ser aberta: Nesse exemplo vamos apresentar um trecho de cdigo, o qual exibe uma janela para que o usurio selecione o arquivo a ser aberto. Uma vez feita a seleo, a planilha aberta, usando o mtodo Open, usado no exemplo anterior.
Set xl = CreateObject("Excel.Sheet") ArqParaAbrir = Application.GetOpenFilename("Planilhas do Excel(*.xls), *.xls") If ArqParaAbrir <> False Then MsgBox "A seguinte planilha ser carregada: " & ArqParaAbrir xl.Application.Workbooks.Open ArqParaAbrir End If

Vamos comentar, em detalhes, o exemplo anterior. Usamos a funo CreateObject para criar um objeto do tipo planilha do Excel, objeto esse que associado com a varivel xl:
Pgina 178 de 219

Microsoft Excel Estudo Avanado

Set xl = CreateObject("Excel.Sheet")

Agora utilizamos o mtodo GetOpenFilename, do objeto Application. Esse mtodo exibe a caixa de dilogo Abrir (a mesma caixa que exibida quando voc seleciona o comando Arquivo -> Abrir). O nome do arquivo selecionado nessa janela, ser atribudo varivel ArqParaAbrir. Ser atribudo o caminho completo, por exemplo C:\ExcelAvanado\Teste.xls.
ArqParaAbrir = Application.GetOpenFilename("Planilhas do Excel (*.xls), *.xls")

Quando essa linha for executada, ser exibida a janela a seguir:

Observe que so exibidos apenas os arquivos .xls da pasta de trabalho atual. No exemplo da figura so exibidos os arquivos da pasta C:\ExcelAvanado, porque recm abri um arquivo dessa pasta. Normalmente so exibidos, por padro, os arquivos da pasta Meus documentos. Somente so exibidos os arquivos .xls, porque definimos esse parmetro na chamada do mtodo GetOpenFilename("Planilhas do Excel (*.xls), *.xls"). Voc seleciona um arquivo e clica no boto Abrir. Em seguida o cdigo testa se realmente algum arquivo foi selecionado:

If ArqParaAbrir <> False Then

Caso algum arquivo tenha sido selecionado, o nome do arquivo ser exibido:

MsgBox "A seguinte planilha ser carregada: " & ArqParaAbrir Pgina 179 de 219

Microsoft Excel Estudo Avanado

conforme indicado na figura a seguir:

E o arquivo selecionado ser aberto no Excel. Existem dezenas de mtodos e propriedades do objeto Application. Voc encontra exemplos de cada mtodo e propriedade na Ajuda do Excel. No curso de Programao VBA e Criao de Aplicativos como Excel, estudaremos mais o objeto Application.

2.35 Trabalhando com o Objeto Workbook


No tpico anterior fizemos uma pequena introduo ao objeto Application. Vimos que esse objeto utilizado para fazer referncia a uma pasta de trabalho do Excel (arquivo .xls). Uma vez tendo feito referncia pasta de trabalho, podemos acessar os elementos dessa pasta de trabalho, tais como as vrias planilhas e, dentro de cada planilha, os valores contidos nas clulas da respectiva planilha. Para termos acesso a uma planilha especfica, utilizamos os objetos Workbook e Worksheet. Nessa lio veremos alguns exemplos de uso do objeto Workbook. Tambm falaremos sobre a coleo Workbook. Na prxima lio trataremos do objeto WorkSheet e da respectiva coleo Worksheets. O objeto Workbook e a coleo Workbooks O objeto Workbook representa uma pasta de trabalho do Microsoft Excel. O objeto Workbook um membro da coleo Workbooks. A coleo Workbooks contm todos os objetos Workbook atualmente abertos no Microsoft Excel. Vamos apresentar alguns exemplos simples de uso do objeto Workbook, nos quais ilustramos o uso das seguintes propriedades do objeto Workbook: Propriedade Workbooks Propriedade ActiveWorkbook Propriedade ThisWorkbook Propriedade Workbooks

Use Workbooks(ndice), onde ndice o nmero de ndice ou o nome da pasta de trabalho, para retornar um nico objeto Workbook. O exemplo seguinte ativa a pasta de trabalho um.
Pgina 180 de 219

Microsoft Excel Estudo Avanado Workbooks(1).Activate

O nmero de ndice denota a ordem na qual as pastas de trabalho foram abertas ou criadas. Workbooks(1) a primeira pasta de trabalho criada e Workbooks(Workbooks.Count) a ltima criada, onde a propriedade Count retorna o nmero de pastas de trabalho (arquivos .xls) abertas. A ativao de uma pasta de trabalho no altera seu nmero de ndice. Todas as pastas de trabalho so includas na contagem do ndice, mesmo que elas estejam ocultas. A propriedade Name retorna o nome da pasta de trabalho. Voc no pode definir o nome usando essa propriedade; se voc precisa alterar o nome, use o mtodo SaveAs para salvar a pasta de trabalho com um nome diferente. O seguinte exemplo ativa a planilha Plan1 na pasta de trabalho chamada "Teste.xls" (a pasta de trabalho precisa j estar aberta no Microsoft Excel).
Workbooks("Teste.xls").Worksheets("Plan1").Activate

Para quem no est acostumado com o VBA, pode parecer um pouco estranha essa sintaxe. Uma dica fazer a leitura de trs para frente, ou seja, da direita para a esquerda. No nosso exemplo, comeando da direita para a esquerda, teramos a seguinte leitura, do comando anterior: Ativar (Activate) a planilha cujo nome Plan1 (Worksheets(Plan1), sendo que esta planilha est na pasta de trabalho Teste.xls (Workbooks(Teste.xls). Propriedade ActiveWorkbook: 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.
ActiveWorkbook.Author = "Jos da Silva"

Propriedade ThisWorkbook: A propriedade ThisWorkbook retorna a pasta de trabalho onde h cdigo do Visual Basic sendo executado. Na maioria dos casos, esta a prpria pasta de trabalho ativa. Entretanto, se o cdigo do Visual Basic for parte de um suplemento, a propriedade ThisWorkbook no retornar a pasta de trabalho ativa. Nesse caso, a pasta de trabalho ativa a pasta de trabalho que est chamando o suplemento, enquanto que a propriedade ThisWorkbook retorna a pasta de trabalho do suplemento.

2.35.1

A coleo Workbooks

Uma coleo de todos os objetos Workbook que esto no momento abertos no aplicativo Microsoft Excel. Use a propriedade Workbooks, do objeto Application, para retornar a coleo Workbooks. O exemplo seguinte fecha todas as pastas de trabalho abertas.
Pgina 181 de 219

Microsoft Excel Estudo Avanado

Workbooks.Close

Use o mtodo Add para criar uma nova pasta de trabalho vazia e adicion-la coleo. O exemplo seguinte adiciona uma nova pasta de trabalho vazia ao Microsoft Excel.
Workbooks.Add

Use o mtodo Open para abrir um arquivo. Isto cria uma nova pasta de trabalho para o arquivo aberto. O exemplo seguinte abre o arquivo Array.xls como uma pasta de trabalho somente leitura.
Workbooks.Open fileName:="array.xls", readOnly:=True

Vamos ver mais alguns exemplos de cdigo com o objeto Workbook e com a coleo Workbooks. A propriedade Count: Essa propriedade informa o nmero de pastas de trabalho (arquivos .xls) abertas no momento. No exemplo de cdigo a seguir, usamos essa propriedade para exibir uma mensagem que informa quantas pastas esto abertas no momento.
Dim wrkb As Workbooks Set wrkb = Application.Workbooks MsgBox "Pastas atualmente abertas: " & wrkb.Count

Esse exemplo cria um objeto do tipo Workbooks. Em seguida utilizo a propriedade Workbooks, do objeto Application, para associar a varivel wrkb com a coleo Workbooks da pasta de trabalho onde o cdigo esta sendo executado. Na ltimo linha utilizo a propriedade Count para exibir uma mensagem informando o nmero de elementos da coleo Workbooks. Na figura a seguir temos um exemplo da mensagem que gerada, quando esse cdigo executado:

Exibindo o nome de todas as pastas de trabaho abertas o Excel: No exemplo de cdigo a seguir, usamos a coleo Workbooks e a estrutura For...Each, para exibir o nome de todas as pastas de trabalho, atualmente abertas no Excel:
Dim pastas As Workbooks Pgina 182 de 219

Microsoft Excel Estudo Avanado Dim pasta As Workbook Set pastas = Application.Workbooks For Each pasta In pastas MsgBox "Nome da planilha: " & pasta.Name Next

Inicialmente criamos duas variveis, uma do tipo Workbooks (varivel pastas) e outra do tipo Workbook (varivel pasta). Em seguida usamos uma estrutura do tipo For...Each para percorrer todos os elementos da coleo Workbooks. A cada passagem da estrutura For...Each, exibimos o nome da respectiva pasta. Isso feito usando a propriedade Name, do objeto Workbook. A seguir temos uma seqncia de telas que exemplifica a execuo desse cdigo:

Nesse exemplo tnhamos quatro pastas de trabalho abertas. O excel foi percorrendo a coleo de pastas abertas (coleo Workbooks) e exibindo o nome da cada elemento da coleo (cada Workbook). xistem dezenas de mtodos e propriedades do objeto Workbook e da coleo Workbooks. Voc encontra exemplos de cada mtodo e propriedade na Ajuda do
Pgina 183 de 219

Microsoft Excel Estudo Avanado

Excel. No curso de Programao VBA e Criao de Aplicativos como Excel, estudaremos mais o objeto Workbook e a coleo Workbooks.

2.36 Trabalhando com o Objeto Worksheet


O prximo passo aprendermos a utilizar os objetos que fazem referncia a uma planilha especfica dentro do conjunto de planilhas de uma pasta de trabalho. O objeto Workbook representa uma pasta de trabalho (arquivo .xls). Dentro de uma pasta de trabalho, podemos ter uma ou mais planilhas, as quais so acessadas usando-se o objeto Worksheet e a coleo Worksheets. Esses so os assuntos dessa lio, ou seja: o objeto Worksheet e a coleo Worksheets. O objeto Worksheet e a coleo Worksheets O objeto Worksheet representa uma planilha O objeto Worksheet um membro da coleo Worksheets. A coleo Worksheets contm todos os objetos Worksheet em uma pasta de trabalho. Veremos alguns exemplos que utilizam as seguintes propriedades do objeto Worksheet: Propriedade Worksheets Propriedade ActiveSheet Propriedade Worksheets Usamos Worksheets(ndice), onde ndice nmero de ndice ou nome da planilha, para retornar um nico objeto Worksheet. O exemplo seguinte oculta a planilha um na pasta de trabalho ativa. Nesse exemplo, utilizo a propriedade Visible, do objeto Worksheet.

Worksheets(1).Visible = False

O nmero de ndice da planilha denota a posio de uma planilha na barra de guias da pasta de trabalho. Worksheets(1) a primeira planilha (mais esquerda) na pasta de trabalho e Worksheets(Worksheets.Count) a ltima. Todas as planilhas so includas na contagem do ndice, mesmo quando esto ocultas. A propriedade Count retorna o nmero de planilhas existentes na pasta de trabalho atual. O nome da planilha mostrado na guia da planilha. Use a propriedade Name para definir ou retornar o nome da planilha. Por exemplo, para definir o nome da primeira planilha como sendo Dbitos, use o seguinte cdigo:
Dim pastas As Workbooks Pgina 184 de 219

Microsoft Excel Estudo Avanado Dim pasta As Worksheet Set pastas = Application.Workbooks Set pasta = Application.Worksheets(1) MsgBox "Nome atual da planilha: " & pasta.Name pasta.Name = "Dbitos" MsgBox "Novo nome da planilha: " & pasta.Name

Vamos supor que voc execute esse cdigo quando o nome da primeira planilha Plan1. Nessa caso, voc obter a seguinte seqncia de mensagens:

Iniciamos o exemplo declarando um objeto do Tipo Workbook e um do tipo Worksheet:


Dim pastas As Workbooks Dim pasta As Worksheet

Em seguida associamos a varivel pasta com a pasta de trabalho atual: Set pastas = Application.Workbooks Depois associamos a varivel pasta com a primeira planilha, da pasta de trabalho atual. Nesse momento, usamos a coleo Worksheets, do objeto Application, conforme indicado a seguir:
Set pasta = Application.Worksheets(1)

O prximo passo exibir o nome atual da primeria planilha, o que no nosso exemplo feito com o comando a seguir:
MsgBox "Nome atual da planilha: " & pasta.Name

Agora usamos a propriedade Name para renomear a primeira planilha, conforme indicado a seguir:
pasta.Name = "Dbitos" Pgina 185 de 219

Microsoft Excel Estudo Avanado

Por ltimo exibimos o novo nome da planilha:


MsgBox "Novo nome da planilha: " & pasta.Name

O objeto Worksheet tambm um membro da coleo Sheets. A coleo Sheets contm todas as planilhas da pasta de trabalho (tanto folhas de grfico quanto planilhas de trabalho).

2.36.1

Propriedade ActiveSheet

Quando uma planilha a planilha ativa, voc pode usar a propriedade ActiveSheet para referir-se a ela. O exemplo seguinte usa o mtodo Activate para ativar a planilha Plan1, define a orientao da pgina como modo paisagem e, em seguida, imprime a planilha.
Worksheets("Plan1").Activate ActiveSheet.PageSetup.Orientation = xlLandscape ActiveSheet.PrintOut

2.36.2

Propriedade Visible

True se o objeto est visvel ou False caso contrrio. Essa propriedade pode ser utilizada para verificar o valor atual ou para defini-lo . Para um grfico ou planilha, essa propriedade pode ser definida como xlVeryHidden. Isso oculta o objeto para que a nica maneira de voc torn-lo novamente visvel seja definindo essa propriedade como True (o usurio no pode tornar o objeto visvel). A propriedade Visible para um item de tabela dinmica True quando o item est atualmente visvel na tabela. Se voc definir a propriedade Visible de um nome como False, o nome no aparecer na caixa de dilogo Definir nome. Considere o exemplo a seguir: Este exemplo oculta a planilha Plan1.
Worksheets("Plan1").Visible = False

Este exemplo torna Plan1 visvel.


Worksheets("Plan1").Visible = True

O exemplo de cdigo a seguir torna visvel todas as planilhas da trabalho ativa.


For Each sh In Sheets sh.Visible = True Next sh

pasta de

Pgina 186 de 219

Microsoft Excel Estudo Avanado

2.36.3

Propriedade UsedRange

Essa propriedade retorna um objeto Range representando o intervalo usado na planilha especificada. Somente leitura. Considere o exemplo a seguir: Este exemplo seleciona o intervalo de clulas usado (onde existem dados), na planilha Plan1.
Worksheets("Plan1").Activate ActiveSheet.UsedRange.Select

Existem dezenas de mtodos e propriedades do objeto Worksheet e da coleo Worksheets. Voc encontra exemplos de cada mtodo e propriedade na Ajuda do Excel. No curso de Programao VBA e Criao de Aplicativos como Excel, estudaremos mais o objeto Worksheet e a coleo Worksheets.

2.37 Trabalhando com o Objeto Range


Agora vamos descer um pouco mais na hierarquia de objetos do Excel. J passamos pelo objeto Application (que faz referncia ao prprio Excel); em seguida pelo objeto Workbook (o qual faz referncia a uma pasta de trabalho, isto , a um arquivo .xls); e, na ltima lio, estudamos o objeto Worksheet, o qual faz referncia a uma planilha, dentro de uma pasta de trabalho. O prximo passo aprendermos a utilizar os objetos que fazem referncia a uma clula ou faixa de clulas, dentro de uma planilha.O objeto Workbook representa uma pasta de trabalho (arquivo .xls). Dentro de uma pasta de trabalho, podemos ter uma ou mais planilhas, as quais so acessadas usando-se o objeto Worksheet e a coleo Worksheets. Dentro de uma planilha, usamos o objeto Range para acessar uma clula ou faixa de clulas da planilha. Esse o assunto dessa lio, ou seja: o objeto Range.

2.37.1

O objeto Range

O objeto Range representa uma clula, uma linha, uma coluna, uma seleo de clulas contendo um ou mais blocos contguos de clulas ou um intervalo 3D. Estudaremos as seguintes propriedades do objeto Range: Propriedade Range Propriedade Cells Range e Cells
Pgina 187 de 219

Microsoft Excel Estudo Avanado

Propriedade Offset Mtodo Union

2.37.2

Propriedade Range

Use Range(argumento), onde argumento nomeia o intervalo, para retornar um objeto Range representando uma nica clula ou um intervalo de clulas. O exemplo seguinte atribui o valor da clula A1 para a clula A5.
Worksheets("Plan1").Range("A5").Value = Worksheets("Plan1").Range("A1").Value

O exemplo seguinte preenche o intervalo A1:H8 com nmeros randmicos (aleatrios), definindo a frmula para cada clula do intervalo. Quando usada sem um qualificador de objeto (um objeto esquerda do ponto), a propriedade Range retorna um intervalo da planilha ativa. Se a planilha ativa no for uma planilha de trabalho, o mtodo falhar. Use o mtodo Activate para ativar uma planilha antes de usar a propriedade Range sem um qualificador de objeto explcito.
Worksheets("Plan1").Activate " Range("A1:H8").Formula = "=rand()

O exemplo seguinte limpa o contedo do intervalo chamado "Criteria".

Pgina 188 de 219

Microsoft Excel Estudo Avanado Worksheets(1).Range("criteria").ClearContents

Se voc usar um argumento dex texto para o endereo do intervalo, voc ter que especificar o endereo em notao de estilo A1 (voc no poder usar a notao de estilo L1C1, onde L1 significa Linha 1 e C1 significa Coluna 1). Propriedade Cells: Use Cells(linha, coluna) onde linha o ndice da linha e coluna o ndice da coluna, para retornar uma nica clula. O exemplo seguinte define o valor da clula A1 como 24.
Worksheets(1).Cells(1, 1).Value = 24

O exemplo seguinte define a frmula para a clula A2.


ActiveSheet.Cells(2,1).Formula = "=sum(B1:B5)"

Embora voc tambm possa usar Range("A1") para retornar a clula A1, pode haver ocasies em que a propriedade Cells seja mais conveniente porque voc pode usar uma varivel para a linha ou coluna. O exemplo seguinte cria cabealhos de coluna e linha na planilha Plan1. Observe que aps a planilha ser ativada, a propriedade Cells pode ser usada sem uma declarao explcita de planilha (ela retorna uma clula da planilha ativa).
Worksheets("Plan1").Activate For theYear = 1 To 5 Cells(1, theYear + 1).Value = 1990 + theYear Next theYear For theQuarter = 1 To 4 Cells(theQuarter + 1, 1).Value = "Q" & theQuarter Next theQuarter

Apesar de voc poder usar funes de cadeia de caracteres do VBA para alterar as referncias de estilo A1, muito mais fcil (e uma prtica de programao muito melhor) usar a notao Cells(1, 1). Use expresso.Cells(linha, coluna), onde expresso uma expresso que retorne 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 a frmula para a clula C5.
Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=rand()"

2.37.3

Propriedade Offset

Use 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
Pgina 189 de 219

Microsoft Excel Estudo Avanado

intervalo. O exemplo seguinte seleciona a clula trs linhas abaixo e uma coluna esquerda da clula do canto superior esquerdo da seleo atual. Voc no pode selecionar uma clula que no esteja na planilha ativa, portanto, voc precisa ativar primeiro a planilha.
Worksheets("Plan1").Activate
t Selection.Offset(3, 1).Range("A1").Selec

Mtodo Union: Use Union(intervalo1, intervalo2, ...) para retornar intervalos de vrias reas isto , intervalos compostos de dois ou mais blocos contguos de clulas. O exemplo seguinte cria um objeto definido como a unio de intervalos A1:B2 e C3:D4 e, em seguida, seleciona o intervalo definido.
Dim r1 As Range, r2 As Range, myMultiAreaRange As Range Worksheets("Plan1").Activate Set r1 = Range("A1:B2") Set r2 = Range("C3:D4") Set myMultiAreaRange = Union(r1, r2) myMultiAreaRange.Select

Vamos apresentar mais alguns exemplos do uso da propriedade Cells, a qual a propriedade mais utilizada do objeto Range. Este exemplo define o tamanho da fonte para a clula C5 de planilha Plan1 como 14 pontos.
Worksheets("Plan1").Cells(5, 3).Font.Size = 14

Este exemplo limpa a frmula na clula um da planilha Plan1:


Worksheets("Plan1").Cells(1).ClearContents

Este exemplo percorre as clulas A1:J4 da planilha Plan1. Se uma clula contiver um valor menor que 0,001, o exemplo substituir esse valor por 0 (zero).
For rwIndex = 1 to 4 For colIndex = 1 to 10 If Worksheets("Plan1").Cells(rwIndex, colIndex).Value < .001 Then Worksheets("Plan1").Cells(rwIndex, colIndex) .Value = 0 End If Next colIndex Next rwIndex

Este exemplo define o estilo da fonte para as clulas A1:C5 da planilha Plan1 como itlico.
Worksheets("Plan1").Activate Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True

Pgina 190 de 219

Microsoft Excel Estudo Avanado

Este exemplo varre uma coluna de dados chamada "myRange". Se uma clula tiver o mesmo valor que a clula imediatamente acima, o exemplo exibir o endereo da clula que contm os dados duplicados.
Set r = Range("myRange") For n = 1 To r.Rows.Count If r.Cells(n, 1) = r.Cells(n + 1, 1) Then MsgBox "Dados duplicados em: " & r.Cells(n + 1, 1).Address End If Next n

Existem dezenas de mtodos e propriedades do objeto Range. Voc encontra exemplos de cada mtodo e propriedade na Ajuda do Excel. No curso de Programao VBA e Criao de Aplicativos como Excel, estudaremos mais o objeto Range.

2.38 O Objeto Application Propriedades e Mtodos Parte I


Vamos iniciar o estudo das principais propriedades do objeto Application. Esse estudo seguir na Prxima lio.

2.38.1

Propriedade ThisWorkBook

Essa propriedade retorna um objeto Workbook representando a pasta de trabalho na qual o cdigo da macro atual est sendo executado. do tipo Somente leitura, ou seja, essa propriedade somente pode ser usada para fazer referncia ao Workbook atualmente carregado e no para definir o Workbook ativo. Use essa propriedade para referir-se pasta de trabalho que contm o cdigo de sua macro. Por exemplo, use cdigo tal como o seguinte para ativar uma folha de caixa de dilogo armazenada em sua pasta de trabalho do suplemento.
ThisWorkbook.DialogSheets(1).Show

Essa propriedade s pode ser usada de dentro do Microsoft Excel. Voc no pode us-la para acessar uma pasta de trabalho a partir de um outro aplicativo, como por exemplo o Microsoft Access. O exemplo a seguir fecha a pasta de trabalho que contm o cdigo de exemplo. Alteraes na pasta de trabalho, caso existam, no so salvas.
ThisWorkbook.Close SaveChanges:=False Pgina 191 de 219

Microsoft Excel Estudo Avanado

A propriedade ThisWorkbook retorna uma referncia a um objeto Workbook, o qual faz referncia a pasta de trabalho atual. Podemos utilizar todas as propriedades do objeto Workbook (que estudaremos em detalhes a partir da lio 14) para obter informaes sobre a pasta de trabalho atual. No exemplo a seguir, usamos a propriedade FullName para obter o caminho completo (por exemplo C:\ExcelAvancado\Teste.xls) da pasta de trabalho atual:
MsgBox Voc est trabalhando no seguinte arquivo: & ThisWorkbook.FullName

2.38.2

Propriedade ActiveCell:

Essa propriedade retorna um objeto Range representando a clula ativa da janela ativa (a janela visvel) ou da janela especificada. Se a janela no estiver exibindo uma planilha, essa propriedade falhar. do tipo Somente leitura, ou seja, somente pode ser usada para retornar a clula ativa e no para ativar uma determinada clula. Quando voc no especifica um qualificador de objeto, essa propriedade retorna a clula ativa da janela ativa. Tenha cuidado de distinguir entre clula ativa e seleo. A clula ativa uma nica clula dentro da seleo atual. A seleo pode conter mais de uma clula, mas somente uma a clula ativa. Todas as expresses seguintes retornam a clula ativa, sendo todas equivalentes. ActiveCell Application.ActiveCell ActiveWindow.ActiveCell Application.ActiveWindow.ActiveCell Exemplos da propriedade ActiveCell: Este exemplo usa uma caixa de mensagem para exibir o valor da clula ativa. Como a propriedade ActiveCell falha se a planilha ativa no for uma planilha de trabalho, o exemplo ativa a planilha Plan1 antes de usar a propriedade ActiveCell.
Worksheets("Plan1").Activate MsgBox ActiveCell.Value

Este exemplo altera a formatao da fonte da clula ativa.


Worksheets("Plan1").Activate ActiveCell.Font.Bold = True ActiveCell.Font.Italic = True

2.38.3

Propriedade ActiveSheet

Pgina 192 de 219

Microsoft Excel Estudo Avanado

Essa propriedade retorna um objeto representando a planilha ativa (a planilha visvel) da pasta de trabalho ativa ou na janela ou pasta de trabalho especificada. Retorna Nothing se no houver planilha ativa. Somente leitura. Se voc no especificar um qualificador de objeto, essa propriedade retornar a planilha ativa da pasta de trabalho ativa. Se uma pasta de trabalho aparece em mais de uma janela, a propriedade ActiveSheet poder ser diferente em janelas diferentes. Exemplo da propriedade ActiveSheet: Este exemplo exibe o nome da planilha ativa.
MsgBox "O nome da planilha ativa : " & ActiveSheet.Name

2.38.4

Propriedade Calculation

Essa propriedade Retorna ou define o modo de clculo. Pode ser uma das seguintes constantes xlCalculation xlCalculationAutomatic xlCalculationManual xlCalculationSemiautomatic.

Exemplo da propriedade Calculation: Este exemplo faz o Microsoft Excel calcular pastas de trabalho antes de elas serem salvas em disco.
Application.Calculation = xlCalculateManual Application.CalculateBeforeSave = True

Este exemplo define o campo de dados no relatrio de tabela dinmica em Plan1 para calcular a diferena a partir do campo base, define o campo base com o campo chamado "ORDER_DATE" e define o item base com o item chamado "5/16/89".
Worksheets("Plan1").Range("A3").PivotField.Calculation = xlDifferenceFrom Worksheets("Plan1").Range("A3").PivotField.BaseField = "ORDER_DATE" Worksheets("Plan1").Range("A3").PivotField .BaseItem = "5/16/89"

Na prxima lio veremos mais algumas propriedades do objeto Application e iniciaremos o estudo dos principais mtodos desse objeto.

Pgina 193 de 219

Microsoft Excel Estudo Avanado

2.38.5

Propriedade DefaultFilePath

Essa propriedade retorna ou define o caminho padro que o Microsoft Excel usa ao abrir arquivos. String de leitura e gravao. Por padro a pasta Meus documentos, ou seja, quando voc seleciona o comando Arquivo -> Salvar ou Arquivo -> Abrir, por padro, acessada a pasta Meus documentos. Exemplo da propriedade DefaultFilePath: Este exemplo exibe o atual caminho de arquivo padro. MsgBox "O caminho padro : " & Application.DefaultFilePath

2.38.6

Propriedade DefaultSaveFormat:

Essa propriedade retorna ou define o formato padro para salvar arquivos. Para obter uma lista de constantes vlidas, consulte a propriedade FileFormat. Do tipo Long de leitura e gravao. Na tabela a seguir temos uma lista de constantes vlidas para essa propriedade:

Dependendo do idioma da sua verso do Excel, algumas dessas constantes podem no estar disponveis. Exemplo da propriedade DefaultSaveFormat: Este exemplo define o formato padro para salvar arquivos.
Pgina 194 de 219

Microsoft Excel Estudo Avanado

Application.DefaultSaveFormat = xlExcel4Workbook

2.38.7

Propriedade RecentFiles

Essa propriedade retorna uma coleo RecentFiles representando a lista de arquivos usados recentemente. Exemplo da propriedade RecentFiles: Este exemplo define como 6 o nmero mximo de arquivos da lista de arquivos usados recentemente.
Application.RecentFiles.Maximum = 6

Principais Mtodos do mtodo Application: Vamos iniciar o estudo dos principais mtodos do objeto Application. Esse estudo seguir na Prxima lio.

2.38.8

Mtodo InputBox

Esse mtodo exibe uma caixa de dilogo para entrada pelo usurio e retorna as informaes inseridas na caixa de dilogo. Sintaxe: Expresso.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type) expresso : obrigatria e deve ser uma expresso que retorne um objeto Application. Prompt: String obrigatria. A mensagem a ser exibida na caixa de dilogo. Pode ser uma seqncia, um nmero, uma data ou um valor Boolean (o Microsoft Excel converte o valor automaticamente para uma String antes dele ser exibido). Title: Variant opcional. O ttulo da caixa de entrada. Se esse argumento for omitido, o ttulo padro ser "Entrada". Default: Variant opcional. Especifica um valor que aparecer na caixa de texto quando a caixa de dilogo for inicialmente exibida. Se esse argumento for omitido, a caixa de texto ser deixada vazia. Esse valor pode ser um objeto Range. Left: Variant opcional. Especifica uma posio x para a relao ao canto superior esquerdo da tela, em pontos. caixa de dilogo em

Top: Variant opcional. Especifica uma posio y para a caixa de dilogo em relao ao canto superior esquerdo da tela, em pontos.

Pgina 195 de 219

Microsoft Excel Estudo Avanado

HelpFile: Variant opcional. O nome do arquivo de Ajuda para essa caixa de entrada. Se os argumentos HelpFile e HelpContextID estiverem presentes, um boto Ajuda aparecer na caixa de dilogo. HelpContextId: Variant opcional. O nmero de identificao do contexto do tpico da Ajuda em HelpFile. Type: Variant opcional. Especifica o tipo de dados retornado. Se esse argumento for omitido, a caixa de dilogo retornar texto. Pode ser um dos valores abaixo ou a soma deles.

Pgina 196 de 219

Microsoft Excel Estudo Avanado

Valor 0 1 2 4 8 16 64

Significado Uma frmula Um nmero Texto (uma seqncia) Um valor lgico (True ou False) Uma referncia a clulas, como um objeto Range Um valor de erro, como #N/D Uma matriz de valores

Voc pode usar a soma dos valores permitidos para Type. Por exemplo, para uma caixa de entrada que possa aceitar tanto texto como nmeros, defina Type como 1 + 2. Use InputBox para exibir uma caixa de dilogo simples para que voc possa inserir informaes a serem usadas em uma macro. A caixa de dilogo tem um boto OK e um boto Cancelar. Quando voc escolhe o boto OK, InputBox retorna o valor inserido na caixa de dilogo. Quando voc clica no boto Cancelar, InputBox retorna False. Quando Type 0, InputBox retorna a frmula na forma de texto por exemplo, "=2*PI()/360". Se houver quaisquer referncias na frmula, elas sero retornadas como referncias de estilo A1. (Use ConvertFormula para fazer a converso entre estilos de referncias). Quando Type 8, InputBox retorna um objeto Range. Voc precisa usar a instruo Set para atribuir o resultado a um objeto Range, como mostrado no exemplo seguinte.
Set myRange = Application.InputBox(prompt := "Sample", type := 8)

Se voc no usar a instruo Set, a varivel ser intervalo em vez do prprio objeto Range.

definida com o valor no

Se voc usar o mtodo InputBox para pedir uma frmula ao usurio, voc ter que usar a propriedade FormulaLocal para atribuir a frmula a um objeto Range. A frmula de entrada dever estar no idioma do usurio. Exemplo do mtodo InputBox: Este exemplo pede um nmero ao usurio.
myNum = Application.InputBox("Digite um nmero:")

Este exemplo pede ao usurio que selecione uma clula em Plan1. Este exemplo usa o argumento Type para assegurar que o valor retornado seja uma referncia de clula vlida (um objeto Range).
Worksheets("Plan1").Activate Pgina 197 de 219

Microsoft Excel Estudo Avanado

Set myCell = Application.InputBox(prompt:="Select a cell", Type:=8)

2.38.9

Mtodo FindFile

Esse mtodo exibe a caixa de dilogo Abrir. Sintaxe:


expresso.FindFile

expresso: Obrigatria. Uma expresso que retorne um objeto Application. Comentrios: Este mtodo exibe 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. Este exemplo exibe a caixa de dilogo Abrir. Application.FindFile

2.38.10

Mtodo GetOpenFilename

Esse mtodo exibe a caixa de dilogo Abrir padro e obtm um nome de arquivo do usurio sem realmente abrir nenhum arquivo. Sintaxe:
expresso.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

expresso: Obrigatria. Uma expresso que retorna um objeto Application. FileFilter: Variant opcional. Uma seqncia que especifica critrios de filtragem do arquivo. Esta seqncia consiste em pares de seqncias de filtro de arquivo seguidas pela especificao de arquivo curinga do MS-DOS, com cada parte e cada par separados por vrgulas. Cada par separado listado na caixa de listagem suspensa Arquivos do tipo. Por exemplo, a seguinte seqncia especifica dois filtros de arquivotexto e suplemento:
"Arquivos de texto (*.txt),*.txt,Arquivos de suplemento (*.xla),*.xla"

Para usar vrias expresses curingas do MS-DOS para um nico tipo de filtro, separe as expresses curinga com pontos-e-vrgulas; por exemplo, "Arquivos do Visual Basic (*.bas; *.txt),*.bas;*.txt". Se omitido, o padro desse argumento ser "Todos os arquivos (*.*),*.*".
Pgina 198 de 219

Microsoft Excel Estudo Avanado

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. Se esse argumento for omitido ou for superior ao nmero de filtros presentes, o primeiro filtro de arquivo ser usado. Title: Variant opcional. Especifica o ttulo da caixa de dilogo. Se esse argumento for omitido, o ttulo ser "Abrir". ButtonText: Variant opcional. Somente para computadores Macintosh. MultiSelect: Variant opcional. True para permitir que vrios nomes de arquivo sejam selecionados. False para permitir que somente um nome de arquivo seja selecionado. O valor padro False Esse mtodo retorna o nome de arquivo selecionado ou o nome fornecido pelo usurio. O nome retornado pode incluir uma especificao de caminho. Se MultiSelect for True, o valor de retorno ser uma matriz dos nomes de arquivo selecionados (mesmo que somente um nome de arquivo seja selecionado). Retorna False se o usurio cancelar a caixa de dilogo. Esse mtodo pode alterar a unidade ou pasta atual. Exemplo do mtodo GetOpenFilename: 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.
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt") If fileToOpen <> False Then MsgBox "Arquivo selecionado: " & fileToOpen End If

2.38.11

Mtodo SendKeys

Esse mtodo envia pressionamentos de teclas para o aplicativo ativo. Sintaxe


expresso .SendKeys( Keys , Wait )

expresso:

Opcional. Uma expresso que retorne um objeto Application .

Keys: Variant obrigatria. A tecla ou combinao de teclas que voc deseja enviar para o aplicativo, na forma de texto.

Pgina 199 de 219

Microsoft Excel Estudo Avanado

Wait: Variant opcional. True para que o Microsoft Excel espere que as teclas sejam processadas antes de devolver o controle macro. False (ou omitido) para continuar a executar a macro sem esperar que as teclas sejam processadas. Este mtodo coloca os pressionamentos de teclas em uma memria intermediria de teclas. Em alguns casos, voc precisa chamar esse mtodo antes de chamar o mtodo que ir usar os pressionamentos de teclas. Por exemplo, para enviar uma senha para uma caixa de dilogo voc precisa chamar o mtodo SendKeys antes de exibir a caixa de dilogo. O argumento Keys pode especificar qualquer tecla nica ou qualquer tecla combinada com ALT, CTRL ou SHIFT (ou qualquer combinao dessas teclas). Cada tecla representada por um ou mais caracteres, tais como "a" para o caractere a, ou "{ENTER}" para a tecla ENTER. Para especificar caracteres que no so exibidos quando voc pressiona a tecla correspondente (por exemplo, ENTER ou TAB), use os cdigos listados na tabela seguinte. Cada cdigo da tabela representa uma tecla no teclado.
Tecla BACKSPACE BREAK CAPS LOCK CLEAR DELETE ou DEL SETA PARA BAIXO END ENTER (teclado numrico) ENTER ESC HELP HOME INS SETA PARA ESQUERDA Cdigo {BACKSPACE} ou {BS} {BREAK} {CAPSLOCK} {CLEAR} {DELETE} ou {DEL} {DOW N} {END} {ENTER} ~ (til) {ESCAPE} ou {ESC} {HELP} {HOME} {INSERT} {LEFT}

Pgina 200 de 219

Microsoft Excel Estudo Avanado


NUM LOCK PAGE DOW N PAGE UP RETURN SETA PARA DIREITA SCROLL LOCK TAB SETA PARA CIMA F1 a F15 {NUMLOCK} {PGDN} {PGUP} {RETURN} {RIGHT} {SCROLLLOCK} {TAB} {UP} {F1} a {F15}

Voc tambm pode especificar teclas combinadas com SHIFT e/ou CTRL e/ou ALT. Para especificar uma tecla combinada com uma outra tecla ou teclas, use a tabela seguinte.
TELCA SHIFT CTRL ALT Smbolo cdigo da tecla com: + (sinal de mais) ^ (circunflexo) % (sinal de porcentagem)

Exemplo do mtodo SendKeys: Este exemplo usa o mtodo SendKeys para encerrar o Microsoft Excel.
Application.SendKeys("%ar") %a -> Alt+A -> Abre o menu arquivo. R -> Seleciona o comando Sair.

Com isso encerramos o estudo dos principais mtodos e propriedades do objeto Application.

2.39 O Objeto Workbook Propriedades e Mtodos Parte I


Nessa lio veremos alguns exemplos de usos prticos do objeto Workbook. Nas Lies 15 e 16 sero apresentados detalhes sobre alguns dos principais mtodos e propriedades do objeto Workbook.

2.39.1

Ativar uma pasta de trabalho

A Ativao de uma pasta de trabalho pelo uso do mtodo Activate coloca a pasta de trabalho na janela ativa. O comando a seguir ativa a pasta de trabalho aberta chamada "Contabilidade.xls". Workbooks("Contabilidade.xls").Activate Criar uma nova pasta de trabalho: Para criar uma nova pasta de trabalho no VBA, voc usa o mtodo Add. O exemplo a seguir criar uma nova pasta de trabalho. O Microsoft Excel d
Pgina 201 de 219

Microsoft Excel Estudo Avanado

automaticamente pasta de trabalho o nome PastaN, onde N o prximo nmero disponvel. A nova pasta de trabalho se torna a pasta de trabalho ativa.
Workbooks.Add

Uma maneira melhor de criar uma nova pasta de trabalho atribu-la a uma varivel de objeto. No exemplo seguinte, o objeto Workbook retornado pelo mtodo Add atribudo a uma varivel de objeto, newBook. Em seguida, vrias propriedades de newBook so definidas. Voc pode facilmente controlar a nova pasta de trabalho usando a varivel de objeto newBook.
Set newBook = Workbooks.Add Agora a varivel newBook do tipo Workbook Podemos utilizar todas as propriedades e mtodos do objeto Workbook para configurar a pasta de trabalho newBook newBook.Title = "1995 Sales" newBook.Subject = "Sales" newBook.SaveAs filename:="95Sales.xls"

2.39.2

Abrir uma pasta de trabalho

Quando voc abre uma pasta de trabalho usando o mtodo Open, ela se torna um membro da coleo Workbooks. O procedimento seguinte abre uma pasta de trabalho chamada MyBook.xls localizada na pasta chamada "MyFolder" na unidade C. Workbooks.Open("C:\MyFolder\MyBook.xls") Referir-se a planilhas pelo nmero de ndice: Um nmero de ndice um nmero seqencial atribudo a uma planilha, com base na posio de sua guia de planilha (contando da esquerda para a direita) entre planilhas do mesmo tipo. O exemplo seguinte usa a propriedade Worksheets para ativar a planilha um da pasta de trabalho ativa.
Worksheets(1).Activate

Se voc desejar trabalhar com todos os tipos de planilha (planilhas, grficos, mdulos e folhas de caixa de dilogo), use a propriedade Sheets. O procedimento seguinte ativa a planilha quatro na pasta de trabalho.
Sheets(4).Activate

Pgina 202 de 219

Microsoft Excel Estudo Avanado

Observao A ordem dos ndices pode ser alterada se voc mover, adicionar ou excluir planilhas. Referir-se a planilhas por nome: Voc pode identificar planilhas pelo nome usando as propriedades Worksheets e Charts. As instrues seguintes ativam vrias planilhas na pasta de trabalho ativa.
Worksheets("Sheet1").Activate Charts("Chart1").Activate DialogSheets("Dialog1").Activate

Voc pode usar a propriedade Sheets para retornar uma planilha, grfico, mdulo ou folha de caixa de dilogo; a coleo Sheets contm todos estes. O exemplo seguinte ativa a planilha chamada "Ghart1" na pasta de trabalho ativa.
Sheets("Chart1").Activate

Observao: Os grficos incorporados em uma planilha so membros da coleo ChartObjects, enquanto que grficos existentes em suas prprias folhas pertencem coleo Charts.

2.39.3

Salvar documentos como pginas da Web

No Microsoft Excel, voc pode salvar uma pasta de trabalho, planilha, grfico, intervalo, consulta de tabela, relatrio de grfico dinmico, rea de impresso ou intervalo AutoFilter como uma pgina da Web. Voc tambm pode editar arquivos HTML diretamente no Excel. Salvar um documento como uma pgina da Web o processo de criar e salvar um arquivo HTML e quaisquer arquivos de suporte. Para fazer isso, use o mtodo SaveAs, como mostrado no exemplo seguinte, que salva a pasta de trabalho ativa como C:\Reports\myfile.htm.
ActiveWorkbook.SaveAs Filename:="C:\Reports\myfile.htm", FileFormat:=xlHTML

2.39.4

Personalizar a pgina da Web

Esse comando deve ser digitado todo em uma nica linha. Caso voc tenha que fazer quebra de linha, deve ser utilizado o caractere de sublinhado no final da linha. Voc pode personalizar a aparncia, contedo, suporte de navegador, suporte de edio, formatos grficos, resoluo de tela, organizao de arquivo e codificao do documento HTML definindo propriedades do objeto DefaultWebOptions e do
Pgina 203 de 219

Microsoft Excel Estudo Avanado

objeto WebOptions. O objeto DefaultWebOptions contm propriedades que afetam todo o aplicativo. Essas configuraes so sobrescritas por quaisquer configuraes de propriedade de pasta de trabalho que tenham os mesmos nomes (contidas no objeto WebOptions).

Pgina 204 de 219

Microsoft Excel Estudo Avanado

Aps definir os atributos, voc pode usar o mtodo Publish para salvar a pasta de trabalho, planilha, grfico, intervalo, tabela de consulta, relatrio de grfico dinmico, rea de impresso ou intervalo AutoFilter de uma pgina da Web. O exemplo seguinte define vrias propriedades de aplicativo e define a propriedade AllowPNG da pasta de trabalho ativa, sobrescrevendo a configurao padro do aplicativo. Finalmente, o exemplo salva o intervalo como "C:\Reports\1998_Q1.htm."
Application.DefaultWebOptions.RelyonVML = True Application.DefaultWebOptions.AllowPNG = True Application.DefaultWebOptions.PixelsPerInch = 96 ActiveWorkbook.WebOptions.AllowPNG = False PublishObjects(1).FileName = "C:\Reports\1998_Q1.htm" PublishObjects(1).Publish

Voc tambm pode salvar os arquivos diretamente em um servidor Web. O exemplo seguinte salva um intervalo de clulas em um servidor Web, dando pgina da Web o endereo de URL http://example.homepage.com/annualreport.htm.
ActiveWorkbook.WebOptions WebOptions.RelyonVML = True WebOptions.PixelsPerInch = 96 ActiveWorkbook..PublishObjects(1) PublishObjects(1).FileName = "http://example.homepage.com/annualreport.htm" PublishObjects(1).Publish

2.39.5

Abrir um documento HTML em Microsoft Excel

Para editar um documento HTML no Excel, abra primeiro o documento usando o mtodoOpen. O exemplo seguinte abre o arquivo "C:\Reports\1997_Q4.htm" para edio.
Workbooks.Open Filename:="C:\Reports\1997_Q4.htm"

Depois de abrir o arquivo, voc pode personalizar a aparncia, contedo, suporte de navegador, suporte de edio, formatos grficos, resoluo de tela, organizao de arquivo e codificao do documento HTML definindo as propriedades dos objetos DefaultWebOptions e WebOptions.
Pgina 205 de 219

Microsoft Excel Estudo Avanado

Propriedade Application:

Pgina 206 de 219

Microsoft Excel Estudo Avanado

Quando usada sem um qualificador de objeto, essa propriedade retorna um objeto Application representando o aplicativo Microsoft Excel. Quando usada com um qualificador de objeto, essa propriedade retorna um objeto Application representando o criador do objeto especificado (voc pode usar essa propriedade com um objeto de Automao OLE para retornar o aplicativo desse objeto). Somente leitura. Exemplo da propriedade Application: Este exemplo exibe uma mensagem sobre o aplicativo que criou a varivel myObject.
Set myObject = ActiveWorkbook If myObject.Application.Value = "Microsoft Excel" Then MsgBox " um objeto do Microsoft Excel!!!" Else MsgBox "No um objeto do Microsoft Excel!!!" End If

2.39.6

Propriedade Count

Retorna o nmero de objetos da coleo. Long somente leitura. Comentrios: Para fontes de dados OLAP, somente os campos visveis em um relatrio de tabela dinmica so contados. Exemplo da propriedade Count: Este exemplo exibe o nmero de colunas na faixa selecionada na planilhaSheet1. O cdigo tambm testa se a seleo de rea mltipla; se for o caso, o cdigo far um loop pelas reas da seleo de mltiplas reas. Worksheets("Sheet1").Activate areaCount = Selection.Areas.Count If areaCount <= 1 Then MsgBox "A seleo contm " & Selection.Columns.Count & " colunas." Else For i = 1 To areaCount MsgBox "Area " & i & " da selo contm Selection.Areas(i).Columns.Count & " colunas." Next i " & _

Pgina 207 de 219

Microsoft Excel Estudo Avanado

End If Este exemplo faz do ltimo caractere da clula A1 um caractere sobrescrito.


n = Worksheets("Sheet1").Range("A1").Characters. Count Worksheets("Sheet1").Range("A1").Characters(n, 1).Font.Superscript = True

2.39.7

Propriedade Item (coleo Workbooks)

Retorna um nico objeto Workbook de uma coleo Workbooks. Sintaxe: expresso.Item(Index) expresso: Obrigatria. Uma expresso que retorne um objeto Workbooks. Index : Variant obrigatria. O nome ou nmero de ndice da pasta de trabalho. Exemplo da propriedade Item (coleo Workbooks): Este exemplo define a varivel pt com a pasta de trabalho de myaddin.xla.
Set wb = Workbooks.Item("myaddin.xla")

2.39.8

Propriedade Parent

Retorna o objeto pai do objeto especificado. Somente leitura. Exemplo da propriedade Parent: Este exemplo exibe o nome do grfico que contm myAxis.
Set myAxis = Charts(1).Axes(xlValue) MsgBox myAxis.Parent.Name
Mtodo Add (coleo Workbooks): Cria uma nova pasta de trabalho. A nova pasta de trabalho se torna a pasta de trabalho ativa. Retorna um objeto W orkbook. Sintaxe: expresso.Add(Template) expresso: Obrigatria. Uma expresso que retorne um objeto W orkbooks. Template: Variant opcional. Determina como a nova pasta de trabalho criada. Se esse argumento for uma cadeia de caracteres especificando o nome de um arquivo do Microsoft Excel existente, a nova pasta de trabalho ser criada com o arquivo especificado como um modelo. Se esse argumento for uma constante, a nova pasta de trabalho conter uma nica

Pgina 208 de 219

Microsoft Excel Estudo Avanado


planilha do tipo especificado. Pode ser uma das seguintes constantes XlW BATemplate: xlW BATChart, xlW BATExcel4IntlMacroSheet, xlW BATExcel4MacroSheet ou xlW BATW orksheet. Se esse argumento for omitido, o Microsoft Excel criar uma nova pasta de trabalho com algumas planilhas em branco (o nmero de planilh as definido pela propriedade SheetsInNewW orkbook). Comentrios: Quando o argumento Template especifica um arquivo, o nome do arquivo pode incluir um caminho. Exemplo do mtodo Add (coleo W orkbooks): Este exemplo cria uma nova pasta de trabalho. W orkbooks.Add Mtodo Close: Fecha o objeto. A coleo W orkbooks usa a Sintaxe 1. Os objetos W indow e W orkbook usam a Sintaxe 2. Sintaxe 1:

expresso.Close Sintaxe 2: expresso.Close(SaveChanges, FileName, RouteW orkbook) expresso: Obrigatria. Uma expresso que retorne um objeto da lista Relativo a. SaveChanges: Variant opcional. Se no houver alteraes na pasta de trabalho, esse argumento ser ignorado. Se houver alteraes na pasta de trabalho e ela aparecer em outras janelas abertas, esse argumento ser ignorado. Se houver alteraes na pasta de trabalho, mas ela no aparecer em qualquer outra janela aberta, esse argumento especificar se as alteraes devem ser salvas, como mostrado na tabela seguinte. Valores True: Salva as alteraes na pasta de trabalho. Se ainda no houver um nome de arquivo associado pasta de trabalho, FileName ser usado. Se FileName for omitido, o usurio ser solicitado a fornecer um nome de arquivo. False: No salva as alteraes nesse arquivo. Omitido: Exibe uma caixa de dilogo perguntando ao usurio se as alteraes devem ser salvas. FileName: Variant opcional. As alteraes so salvas sob este nome de arquivo. RouteWorkbook: Variant opcional. Se a pasta de trabalho no precisar ser encaminhada para o prximo destinatrio (se no tiver lista de circulao ou se j tiver sido encaminhada), este argumento ser ignorado. Caso contrrio, o Microsoft Excel encaminhar a pasta de trabalho como mostrado na tabela seguinte. Valores: True: Envia a pasta de trabalho para o prximo destinatrio.

Pgina 209 de 219

Microsoft Excel Estudo Avanado


False: No envia a pasta de trabalho. Omitido: Exibe uma caixa de dilogo perguntando ao usurio se a pasta de trabalho deve ser enviada. Comentrios: O fechamento de uma pasta de trabalho a partir do VBA no causa a execuo de macros Auto_Fechar da pasta de trabalho. Use o mtodo RunAutoMacros para executar as macros de fechamento automtico. Mtodo Open: Abre uma pasta de trabalho. Sintaxe: expresso.Open(FileName, UpdateLinks, ReadOnly, Format, Password, W riteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMRU) expresso: Obrigatria. Uma expresso que retorne um objeto W orkbooks ou RecentFile. FileName: String obrigatria. O nome de arquivo da pasta de trabalho a ser aberta. UpdateLinks: Variant opcional. Especifica o modo pelo qual so atualizados os vnculos do arquivo. Se este argumento for omitido, o usurio ser solicitado a especificar como os vnculos sero atualizados. Caso contrrio, este argumento ser um dos valores listados na tabela seguinte. Valor 0 1 2 3 Significado No atualiza nenhuma referncia Atualiza as referncias externas, mas no as remotas Atualiza as referncias remotas, mas no as externas Atualiza tanto as referncias externas quanto as remotas

Se o Microsoft Excel estiver abrindo um arquivo em formato W KS, W K1 ou W K3 e o argumento UpdateLinks for 2, o Microsoft Excel ir gerar grficos a partir dos grficos anexados ao arquivo. Se o argumento for 0, nenhum grfico ser criado. ReadOnly: Variant opcional. True para abrir a pasta de trabalho em modo somente leitura. Format: Variant opcional. Se o Microsoft Excel estiver abrindo um arquivo de texto, este argumento especificar o caractere delimitador, conforme mostrado na tabela seguinte. Se este argumento for omitido, o delimitador atual ser usado. Valor 1 2 3 4 5 6 Delimitador Tabulaes Vrgulas Espaos Ponto-e-vrgulas Nada Caractere personalizado (consulte o argumento Delimiter)

Password: Variant opcional. Uma seqncia de caracteres que contenha a senha obrigatria para se abrir uma pasta de trabalho protegida. Se esse argumento for omitido e a pasta de trabalho exigir uma senha, o usurio ser solicitado a fornec-la.

Pgina 210 de 219

Microsoft Excel Estudo Avanado


WriteResPassword: Variant opcional. Uma seqncia de caracteres que contenha a senha necessria para gravar em uma pasta de trabalho de gravao reservada. Se este argumento for omitido e a pasta de trabalho requerer uma senha, o usurio ser solicitado a fornec-la. IgnoreReadOnlyRecommended: Variant opcional. True para que o Microsoft Excel no exiba a mensagem de recomendao somente leitura (se a pasta de trabalho foi salva com a opo Recomendvel somente leitura). Origin: Variant opcional. Se o arquivo for um arquivo de texto, este argumento indicar qual a sua origem (para que as pginas de cdigo e o retorno de carro/alimentao de linha (CR/LF) possam ser mapeados corretamente). Pode ser uma das seguintes constantes XlPlatform: xlW indows ou xlMSDOS. Se este argumento for omitido, o sistema operacional atual ser usado. Delimiter: Variant opcional. Se o arquivo for um arquivo de texto e o argumento Format for 6, este argumento ser uma seqncia de caracteres que especificar o caractere a ser usado como delimitador. Por exemplo, use Chr(9) para tabulaes, use "," para vrgulas, use ";" para ponto-e-vrgulas ou use um caractere personalizado. Somente o primeiro caractere da seqncia usado. Editable: Variant opcional. Se o arquivo for um suplemento do Microsoft Excel 4.0, este argumento ser True para abrir o suplemento como uma janela visvel. Se este argumento for False ou omitido, o suplemento ser aberto como oculto e no poder deixar de ser oculto. Esta opo no se aplica a suplementos criados no Microsoft Excel 5.0 ou posterior. Se o arquivo for um modelo do Excel, True abrir o modelo especificado para edio. False abrir uma nova pasta de trabalho baseada no modelo especificado. O valor padro False. Notify: Variant opcional. Se o arquivo no puder ser aberto em modo de leitura e gravao, este argumento ser True para adicionar o arquivo lista de notificao de arquivos. O Microsoft Excel abrir o arquivo como somente leitura, pesquisar a lista de notificao de arquivos e, em seguida, notificar o usurio quando o arquivo tornar-se disponvel. Se este argumento for False ou omitido, nenhuma notificao ser solicitada, e qualquer tentativa de abrir um arquivo no disponvel ir falhar. Converter: Variant opcional. O ndice do primeiro conversor de arquivo a experimentar ao abrir o arquivo. O conversor de arquivo especificado experimentado primeiro; se esse conversor no reconhecer o arquivo, todos os outros conversores sero usados. O ndice de conversor compreende os nmeros de linha dos conversores, retornados pela propriedade FileConverters. AddToMru: Variant opcional. True para adicionar esta pasta de trabalho lista de arquivos usados recentemente. O valor padro False. Comentrios: Se a pasta de trabalho sendo aberta tiver quaisquer macros Auto_Open, estas no sero executadas quando voc abrir o arquivo a partir do Visual Basic. Se voc desejar executar a macro Auto_Open, voc dever usar o mtodo RunAutoMacros. Exemplo do mtodo Open: Este exemplo abre a pasta de trabalho Analysis.xls e, em seguida, executa sua macro Auto_Open.

Workbooks.Open

"ANALYSIS.XLS"

ActiveWorkbook.RunAutoMacros xlAutoOpen

Pgina 211 de 219

Microsoft Excel Estudo Avanado

Worksheet e Range Propriedades e Mtodos Parte I


Nessa lio e nas prximas duas, veremos alguns exemplos de usos prticos do objeto W orksheet e de Range. Tambm sero apresentados detalhes sobre alguns dos principais mtodos e propriedades desses objetos. Como fazer referncia a clulas e intervalos: Uma tarefa comum ao usar o VBA especificar uma clula ou intervalo de clulas e, em seguida, fazer algo com elas, como inserir uma frmula ou alterar o formato. Geralmente, voc pode fazer isso em uma instruo que identifique o intervalo e tambm altere uma propriedade ou aplique um mtodo. Um objeto Range no VBA pode ser uma nica clula ou um intervalo de clulas. Os tpicos seguintes mostram as maneiras mais comuns de identificar e trabalhar com objetos Range. Referir-se a clulas e intervalos usando a notao A1: Voc pode referir-se a uma clula ou intervalo de clulas no estilo de referncia A1 usando o mtodo Range. O exemplo seguinte altera o formato das clulas A1:D5 para negrito. W orkbooks("Book1").Sheets("Sheet1").Range("A1:D5").Font.Bold = True A tabela seguinte ilustra algumas referncias em estilo A1 usando o mtodo Range. Referncia Range("A1") Range("A1:B5") Range("C5:D9,G9:H16") Range("A:A") Range("1:1") Range("A:C") Range("1:5") Range("1:1,3:3,8:8") Range("A:A,C:C,F:F") Significado Clula A1 Clulas de A1 at B5 Uma seleo de vrias reas Coluna A Linha 1 Colunas de A at C Linhas 1 at 5 Linhas 1, 3 e 8 Colunas A, C e F

Referir-se a clulas usando nmeros de ndice: Voc pode usar a propriedade Cells para referir-se a uma nica clula usando nmeros de ndice de linha e coluna. Essa propriedade retorna um objeto Range representando uma nica clula. No exemplo seguinte, Cells(6,1) retorna a clula A6 da planilha Sheet1. Em seguida, a propriedade Value definida como 10.

Worksheets("Sheet1").Cells(6, 1).Value = 10
A propriedade Cells funciona bem para loop atravs de um intervalo de clulas porque voc pode substituir os nmeros de ndice por variveis, conforme mostrado no exemplo seguinte.

Dim counter As Integer For counter = 1 To 20 Worksheets("Sheet1").Cells(counter, 3).Value = counter

Pgina 212 de 219

Microsoft Excel Estudo Avanado


Next counter
Observao: Se voc desejar alterar as propriedades ou aplicar um mtodo a todo um intervalo de clulas de uma s vez, use a propriedade Range. Para obter mais informaes, consulte Referir-se a clulas usando notao A1. Referir-se a linhas e colunas: Use a propriedade Rows ou a propriedade Columns para trabalhar com linhas ou colunas inteiras. Essas propriedades retornam um objeto Range representando um intervalo de clulas. No exemplo seguinte, Rows(1) retorna a linha um na planilha Sheet1. Em seguida, a propriedade Bold do objeto Font do intervalo definida como True. W orksheets("Sheet1").Rows(1).Font.Bold = True A tabela seguinte ilustra algumas referncias de linha e coluna usando as propriedades Rows e Columns. Referncia Rows(1) Rows Columns(1) Columns("A") Columns Significado Linha um Todas as linhas da planilha Coluna um Coluna um Todas as colunas da planilha

Para trabalhar com vrias linhas ou colunas ao mesmo tempo, crie uma varivel de objeto e use o mtodo Union, combinando vrias chamadas propriedade Rows ou Columns. O exemplo seguinte altera para negrito o formato das linhas um, trs e cinco na planilha um da pasta de trabalho ativa.

Worksheets("Sheet1").Activate Dim myUnion As Range Set myUnion = Union(Rows(1), Rows(3), Rows(5)) myUnion.Font.Bold = True
Referir-se a intervalos nomeados: Os intervalos so mais fceis de identificar por nome do que por notao A1. Para nomear um intervalo selecionado, clique na caixa de nome na extremidade esquerda da barra de frmulas, digite um nome e, em seguida, pressione ENTER. Referir-se a um intervalo nomeado: O exemplo seguinte refere-se ao intervalo chamado "MyRange" na pasta de trabalho chamada "MyBook.xls".

Range("MyBook.xls!MyRange").Font.Italic = True
O exemplo seguinte se refere ao intervalo especfico de planilha chamado "Sheet1!Sales" na pasta de trabalho chamada "Report.xls".

Range("[Report.xls]Sheet1!Sales").BorderAround weight:=xlthin

Pgina 213 de 219

Microsoft Excel Estudo Avanado


Para selecionar um intervalo nomeado, use o mtodo GoTo, o qual ativa a pasta de trabalho e a planilha e, em seguida, seleciona o intervalo.

Application.Goto

Reference:="MyBook.xls!MyRange"

Selection.ClearContents
O exemplo seguinte mostra como o mesmo procedimento seria escrito para a pasta de trabalho ativa.

Application.Goto

Reference:="MyRange"

Selection.ClearContents
Realizar loop em clulas de um intervalo nomeado O exemplo seguinte faz um loop atravs de cada clula de um intervalo nomeado usando um loop For Each...Next. Se o valor de qualquer clula do intervalo exceder o valor de limit, a cor da clula ser alterada para amarelo.

Const limit As Integer = 25 For Each c In Range("MyRange") If c.Value > limit Then

c.Interior.ColorIndex = 27 End If Next c


Na prxima lio continuaremos a ver exemplos de referncia a clulas e faixa de clulas.

Worksheet e Range Propriedades e Mtodos Parte II


Referir-se a clulas relativas a outras clulas: Uma maneira comum de trabalhar com uma clula em relao a uma outra clula usar a propriedade Offset. No exemplo seguinte, o contedo da clula que se encontra uma linha abaixo e a trs colunas da clula ativa na planilha ativa formatado com sublinhado duplo.

ActiveCell.Offset(1, 3).Font.Underline = xlDouble


Observao: Voc pode gravar macros que usem a propriedade Offset em vez d e referncias absolutas. No menu Ferramentas, aponte para Gravar macro e, em seguida, clique em Usar referncias relativas. Para fazer um loop atravs de um intervalo de clulas, use uma varivel com a propriedade Cells em um loop. O exemplo seguinte preenche as 20 primeiras clulas da terceira coluna com valores entre 5 e 100, incrementados por 5. A varivel counter usada como ndice de linha para a propriedade Cells.

Dim counter As Integer

Pgina 214 de 219

Microsoft Excel Estudo Avanado


For counter = 1 To 20 Worksheets("Sheet1").Cells(counter, 3).Value = counter * 5 Next counter
Referir-se a clulas usando um objeto Range: Quando voc define uma varivel de objeto para um objeto Range, voc pode facilmente manipular o intervalo usando o nome da varivel. O exemplo seguinte cria a varivel de objeto myRange e, em seguida, atribui a varivel ao intervalo A1:D5 de Sheet1 na pasta de trabalho ativa. Instrues subseqentes modificam propriedades do intervalo substituindo o objeto de intervalo pelo nome da varivel.

Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:D5") myRange.Formula = "=RAND()" myRange.Font.Bold = True
Referir-se a todas as clulas da planilha: Quando voc aplica a propried ade Cells a uma planilha sem especificar um nmero de ndice, o mtodo retorna um objeto Range representando todas as clulas da planilha. O exemplo seguinte limpa o contedo de todas as clulas de Sheet1 na planilha ativa.

Worksheets("Sheet1").Cells.ClearContents
Referir-se a vrios intervalos: Usando o mtodo apropriado, voc pode facilmente referir-se a vrios intervalos. Use os mtodos Range e Union para referir-se a qualquer grupo de intervalos; use a propriedade Areas para referir-se ao grupo de intervalos selecionado em uma planilha. Usar a propriedade Range: Voc pode referir-se a vrios intervalos com a propriedade Range colocando vrgulas entre duas ou mais referncias. O exemplo seguinte limpa o contedo dos trs intervalos de Sheet1.

Worksheets("Sheet1").Range("C5:D9,G9:H16,B14:D18").ClearContents
Os intervalos nomeados tornam o uso da propriedade Range mais fcil ao trabalhar com vrios intervalos. O exemplo seguinte funciona quando todos os trs intervalos nomeados se encontram na mesma planilha.

Range("MyRange, YourRange, HisRange").ClearContents


Usar o mtodo Union: Voc pode combinar vrios intervalos em um objeto Range usando o mtodo Union. O exemplo seguinte cria um objeto Range chamado myMultipleRange, define-o com os intervalos A1:B2 e C3:D4 e, em seguida, formata com negrito os intervalos combinados.

Pgina 215 de 219

Microsoft Excel Estudo Avanado


Dim r1, r2, myMultipleRange As Range Set r1 = Sheets("Sheet1").Range("A1:B2") Set r2 = Sheets("Sheet1").Range("C3:D4") Set myMultipleRange = Union(r1, r2)

myMultipleRange.Font.Bold = True
Usar a propriedade reas: Voc pode usar a propriedade Areas para referir-se ao intervalo selecionado ou coleo de intervalos em uma seleo de vrias reas. O exemplo seguinte conta as reas da seleo. Se houver mais de uma rea, uma mensagem de aviso ser exibida.

If Selection.Areas.Count > 1 Then MsgBox "A operao no permitida em uma selao mltipla." End If

2.40 Loop atravs de um intervalo de clulas


Ao usar o VBA, voc freqentemente precisa executar o mesmo bloco de instrues em cada clula de um intervalo de clulas. Para fazer isso, voc combina uma instruo de loop com um ou mais mtodos para identificar cada clula, uma de cada vez, e executa a operao. Uma maneira de fazer loop atravs de um intervalo usar o loop For...Next (descrito no Mdulo 5) com a propriedade Cells. Usando a propriedade Cells, voc pode substituir o contador do loop (ou outras variveis ou expresses) pelos nmeros de ndice das clulas. No exemplo seguinte, a varivel counter substituda pelo ndice de linha. O seguinte exemplo faz um loop atravs de um intervalo C1:C20, definindo como 0 (zero) qualquer nmero cujo valor absoluto seja menor que 0,01.
For counter = 1 To 20 Set curCell = Worksheets("Sheet1").Cells(counter, 3) If Abs(curCell.Value) < 0.01 Then curCell.Value = 0 Next counter

Uma outra maneira mais fcil de se fazer um loop atravs de um intervalo usar um loop For Each...Next (descrito no Mdulo 5) com a coleo de clulas retornada pelo mtodo Range. O VBA define automaticamente uma varivel de objeto para a prxima clula cada vez que o loop executado. O seguinte exemplo faz um loop atravs do intervalo A1:D10, definindo como 0 (zero) qualquer nmero cujo valor absoluto seja menor que 0,01.
For Each c In Worksheets("Sheet1").Range("A1:D10").Cells Pgina 216 de 219

Microsoft Excel Estudo avanado


If Abs(c.Value) < 0.01 Then c.Value = 0 Next

Se voc no souber os limites do intervalo pelo qual deseja fazer o loop, voc pode usar a propriedade CurrentRegion para retornar o intervalo que envolve a clula ativa. Por exemplo, o exemplo seguinte, quando executado de uma planilha, faz um loop atravs do intervalo que envolve a clula ativa, definindo como 0 (zero) qualquer nmero cujo valor absoluto seja menor que 0,01.
For Each c In ActiveCell.CurrentRegion.Cells If Abs(c.Value) < 0.01 Then c.Value = 0 Next

2.40.1

Selecionar e ativar clulas

Quando voc trabalha com o Microsoft Excel, voc geralmente seleciona uma clula ou clulas e, em seguida, efetua uma ao, como formatar as clulas ou inserir valores nelas. No VBA, normalmente no necessrio selecionar clulas antes de modific-las. Por exemplo, se voc desejar inserir uma frmula na clula D6 usando o Visual Basic, voc no ter que selecionar o intervalo D6. Voc precisa apenas retornar o objeto Range e, em seguida, definir a propriedade Formula com a frmula desejada, conforme mostrado no exemplo seguinte.
Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)"

Usar o mtodo Select e a propriedade Selection: O mtodo Select ativa planilhas e objetos em planilhas; a propriedade Selection retorna um objeto representando a seleo atual na planilha ativa da pasta de trabalho ativa. Antes de voc poder usar com xito a propriedade Selection, voc precisa ativar uma pasta de trabalho, ativar ou selecionar uma planilha e, em seguida, selecionar um intervalo (ou outro objeto) usando o mtodo Select. O gravador de macro costuma criar macros que usam o mtodo Select e a propriedade Selection. O exemplo seguinte foi criado pelo uso do gravador de macro, e ilustra como Select e Selection funcionam juntas.
Sheets("Sheet1").Select Range("A1").Select ActiveCell.FormulaR1C1 = "Name"

Pgina 217

Microsoft Excel Estudo avanado


Range("B1").Select ActiveCell.FormulaR1C1 = "Address" Range("A1:B1").Select Selection.Font.Bold = True

O exemplo seguinte realiza a mesma tarefa sem ativar nem selecionar a planilha ou as clulas.
Worksheets("Sheet1").Range("A1") = "Name" Worksheets("Sheet1").Range("B1") = "Address" Worksheets("Sheet1").Range("A1:B1").Font.Bold = True

2.40.2

Selecionar clulas na planilha ativa

Se voc usa o mtodo Select para selecionar clulas, esteja ciente de que Select s funciona na planilha ativa. Se voc executar o seu procedimento Sub a partir do mdulo, o mtodo Select falhar a menos que o seu procedimento ative a planilha antes de usar o mtodo Select em um intervalo de clulas. Por exemplo, o exemplo seguinte copia uma linha de Sheet1 para Sheet2 na pasta de trabalho ativa.
Worksheets("Sheet1").Rows(1).Copy Worksheets("Sheet2").Select Worksheets("Sheet2").Rows(1).Select Worksheets("Sheet2").Paste

2.40.3

Ativar uma clula dentro de uma seleo

Voc pode usar o mtodo Activate para ativar uma clula dentro de uma seleo. S pode haver uma clula ativa, mesmo quando um intervalo de clulas selecionado. O exemplo seguinte seleciona um intervalo e, em seguida, ativa uma clula dentro do intervalo sem alterar a seleo. Worksheets("Sheet1").Activate Range("A1:D4").Select Range("B2").Activate

2.40.4

Trabalhar com a clula ativa

A propriedade ActiveCell retorna um objeto Range representando a clula que est ativa. Voc pode aplicar qualquer das propriedades ou mtodos de um objeto Range clula ativa, como no exemplo seguinte.
Worksheets("Sheet1").Activate

Pgina 218

Microsoft Excel Estudo avanado


ActiveCell.Value = 35

Observao: Voc s pode trabalhar com a clula ativa quando a planilha na qual ela se encontra a planilha ativa.

2.40.5

Mover a clula ativa

Voc pode usar o mtodo Activate para designar qual clula a clula ativa. Por exemplo, o exemplo seguinte torna B5 a clula ativa e, em seguida, a formata com negrito.
Worksheets("Sheet1").Activate Worksheets("Sheet1").Range("B5").Activate ActiveCell.Font.Bold = True

Observao: Para selecionar um intervalo de clulas, use o mtodo Select. Para tornar uma nica clula a clula ativa, use o mtodo Activate. Voc pode usar a propriedade Offset para mover a clula ativa. O exemplo seguinte insere texto na clula ativa do intervalo selecionado e, em seguida, move a clula ativa uma clula para a direita sem alterar a seleo.
Worksheets("Sheet1").Activate Range("A1:D10").Select ActiveCell.Value = "Monthly Totals" ActiveCell.Offset(0, 1).Activate

2.40.6

Selecionar as clulas ao redor da clula ativa

A propriedade CurrentRegion retorna um intervalo de clulas delimitado por linhas e colunas em branco. No exemplo seguinte, a seleo expandida para incluir as clulas adjacentes clula ativa, que contenham dados. Em seguida, esse intervalo formatado com o formato Currency.
Worksheets("Sheet1").Activate ActiveCell.CurrentRegion.Select Selection.Style = "Currency"

Pgina 219

You might also like