MARCOS DE BARROS
OUTUBRO DE 2002
- RISK MANAGEMENT
NDICE
I NTRODUO AO VBA ____________________________________________________ 5 Constantes___________________________________________________________ 5 Variveis ____________________________________________________________ 5 Tipos de variveis e constantes _______________________________________ 6 O Comando Option Explicit ____________________________________________ 7 Comentrios _________________________________________________________ 7 Operadores __________________________________________________________ 7 Arrays ______________________________________________________________ 10 Estrutura de dados __________________________________________________ 12 F LUXOS DE CONTROLE __________________________________________________ 12 Expresses condicionais _____________________________________________ 13 Loops _______________________________________________________________ 16 F UNES E P ROCEDIMENTOS _____________________________________________ Diferenas __________________________________________________________ Quando usar? _______________________________________________________ Passagem de Parmetros ____________________________________________ Passagem de parmetros: Referncia X Valor _________________________ Parmetros Opcionais _______________________________________________ Variveis locais X Variveis globais __________________________________ 19 20 20 20 21 22 23
F UNES MATEMTICAS _________________________________________________ 24 F UNES DIVERSAS _____________________________________________________ 25 F UNES DE CONVERSO ________________________________________________ 26 STRINGS _______________________________________________________________ 27 MACROS _______________________________________________________________ Como criar__________________________________________________________ Gerao de Macros pelo Excel ________________________________________ Como executar uma Macro na abertura do arquivo ____________________ Associando objetos a Macros _________________________________________ Como executar passo a passo ________________________________________ Pontos de parada em uma Macro _____________________________________ Visualizao de valores de variveis em tempo de execuo ___________ OS P RINCIPAIS OBJETOS DO EXCEL _______________________________________ Application __________________________________________________________ Workbook ____________________________________________________________ Worksheet __________________________________________________________ 2 29 29 31 32 32 33 34 35 35 36 37 37
- RISK MANAGEMENT
Range ______________________________________________________________ Cells ________________________________________________________________ Collection ___________________________________________________________ Chart _______________________________________________________________ P ROPRIEDADES E MTODOS ______________________________________________ Definies ___________________________________________________________ Principais propriedades dos principais objetos ________________________ Principais mtodos dos principais objetos _____________________________
38 39 39 40 41 41 42 43
- RISK MANAGEMENT
NDICE DE F IGURAS
Figura 1 - Exemplo de Criao de uma M acro no Editor do Excel......................................... 30 Figura 2 - O editor de Visual Basic .......................................................................................... 31 Figura 3 - Como associar uma Macro a um objeto Desenho................................................... 33 Figura 4 - Exemplo de execuo de um programa com ponto de parada ................................. 34 Figura 5 - Diagrama de Objetos do Microsoft Excel................................................................ 36 Figura 6 - Diagrama de Objetos do Microsoft Excel a partir do Objeto Worksheet ................ 38 Figura 7 - Diagrama de Objetos do Microsoft Excel a partir do Objeto Chart......................... 41
- RISK MANAGEMENT
I NTRODUO AO VBA
VBA (Visual Basic for Application) uma linguagem de programao utilizada utilizada para desenvolver programas executados nos principais softwares do pacote Office (Access, Excel, Word, Power Point) da Microsoft. Uma linguagem de programao permite montarmos programas que auxiliam tarefas do dia a dia de seus usurios.
Constantes
Uma constante representa um valor fixo, ou seja, que no mudado ao longo da execuo do programa. Para declarar uma constante no VBA, usamos o comando Const. O valor e o tipo de dados so atribudos em uma mesma linha de comando. Exemplo: Const Valor_Pi As Double = 3,14
Variveis
Qualquer quantidade que muda de valor no decorrer de um programa chamada de varivel. Para cada varivel, damos uma representao simblica, ou nome, para que ela possa ser identificada no programa. O local e a forma de criao define o escopo da varivel, ou seja, onde esta pode ser visualizada dentro do programa.
- RISK MANAGEMENT
A declarao de uma varivel em VBA feita usando o comando Dim em qualquer local do procedimento, porm comum os programadores declararem todas as variveis logo no incio do procedimento. Exemplo: Dim juros As Double Dim nome, sobrenome As String
utilizado para fazer referncia a um objeto do Excel permite armazenar conjuntos de Textos em geral caracteres permite armazenar qualquer tipo de dado permite armazenar valores de tipos definidos pelo usurio
Obs: Usa-se o caracter # para atribuir data (ex: dteInicio = #07/01/2002 11:00#)
- RISK MANAGEMENT
Comentrios
Comentrios devem ser feitos para ajudar o entendimento do cdigo, auxiliando manutenes e modificaes futuras. Podemos realizar comentrios no VBA utilizando o caracter . Exemplos: Sub calculaMedia() Comentrio: Declarao de Variveis Dim dblMedia as Double
Operadores
O VBA utiliza alguns operadores, que permitem a realizao de comparaes, atribuies, etc. Podemos dividir os operadores nas seguintes categorias: 7 - RISK MANAGEMENT
Aritmticos Utilizados em clculos e expresses matemticas. Operador Soma Subtrao Multiplicao Diviso Expoente Diviso Inteira Mod Resto Atribuio Apenas um operador faz parte desta categoria. Este operador utilizado para atribuir valores a variveis. Operador Atribuio Comparao Utilizado na maioria das vezes em expresses de fluxo de controle (ver seo Fluxo de Controle), para comparar valores ou variveis. Retornam TRUE ou FALSE. Representao = Sintaxe [Varivel] = [Valor] Representao + * / ^ \ Mod Sintaxe [Nmero 1] + [Nmero 2] [Nmero 1] - [Nmero 2] [Nmero 1] * [Nmero 2] [Nmero] / [Divisor] [Nmero] ^ [Expoente] [Nmero] \ [Divisor] [Nmero] \ [Divisor]
Operador Menor que Menor ou igual que Maior que Maior ou igual que Igual Diferente Igual (objetos)
Sintaxe [Varivel] < [Valor] [Varivel] <= [Valor] [Varivel] > [Valor] [Varivel] >= [Valor] [Varivel] = [Valor] [Varivel] <> [Valor] [Object 1] Is [Object 2]
- RISK MANAGEMENT
Concatenao Utilizados para concatenar duas variveis do tipo String. Operador Concatenao Concatenao Representao & + Sintaxe [Varivel 1] & [Varivel 2] [Varivel 1] + [Varivel 2]
recomendvel o uso do operador & para evitar ambigidade. Lgicos Utilizados em expresses lgicas. Retornam TRUE ou FALSE Operador AND OR NOT XOR Representao AND OR NOT XOR Sintaxe [Varivel 1] AND [Varivel 2] [Varivel 1] OR [Varivel 2] NOT [Varivel 1] [Varivel 1] XOR [Varivel 2]
Abaixo seguem o resultados das expresses, utilizando cada operador. Podemos chamar as tabelas abaixo de Tabela Verdade. Tabela Verdade para o operador AND Expresso 1 TRUE TRUE FALSE FALSE Expresso 2 TRUE FALSE TRUE FALSE Expresso 1 AND Expresso 2 TRUE FALSE FALSE FALSE
Tabela Verdade para o operador OR Expresso 1 TRUE TRUE FALSE FALSE Expresso 2 TRUE FALSE TRUE FALSE Expresso 1 OR Expresso 2 TRUE TRUE TRUE FALSE
- RISK MANAGEMENT
Expresso 1 TRUE FALSE Tabela Verdade para o operador XOR Expresso 1 TRUE TRUE FALSE FALSE Expresso 2 TRUE FALSE TRUE FALSE
Arrays
Varivel que contm uma lista de valores do mesmo tipo. O limite da lista pode ser informado na declarao da varivel. O primeiro valor do Array corresponde a posio 0 (zero). Exemplo: Dim arrEmpresas(10) as String arrEmpresas(0) = Mellon Brascan arrEmpresas(1) = Foco Informtica
Arrays Multidimensionais
O Array pode ser multi-dimensional. A sintaxe de um Array de duas dimenses seria: Dim [Nome da Varivel](i, j) as [Tipo de Dado] Exemplo: 10 - RISK MANAGEMENT
Dim mtzValores(2, 2), i, j As Integer For i = 1 To 2 For j = 1 To 2 mtzValores(i, j) = i * j Next Next Um Array tambm pode ser dimensionado, de acordo com a necessidade. A declarao deve ser feita sem a informao do limite do Array. necessrio dimensionar o Array, antes de atribuir valores. Para isso, usase o comando ReDim. Exemplo: Dim arrEmpresas() as String Redim arrEmpresas(1) arrEmpresas(0) = Mellon Brascan arrEmpresas(1) = Shell Brasil Caso o Array dinmico j tenha sido dimensionado, usamos a mesma sintaxe para redimension-lo. Para manter os valores j atribudos deve-se usar o comando Preserve. No entanto, s ser possvel aumentar a sua dimenso. Exemplo: Dim arrEmpresas() as String Redim arrEmpresas(1) arrEmpresas(0) = Mellon Brascan arrEmpresas(1) = Alfredo D istribuidores Redim arrEmpresas(3) 11
- RISK MANAGEMENT
Estrutura de dados
Em alguns casos, os tipos de dados existentes na linguagem no so satisfatrios. possvel criar tipos definidos pelo programador. Exemplo: necessrio ter sempre no programa, o nome e o CNPJ da empresa. Cria-se, ento, um tipo Empresa. Type Empresa RazaoSocial as String CNPJ as String End Type Podemos definir uma varivel do tipo Empresa. Dim empresaAtual as Empresa possvel definir um array do tipo Empresa Dim empresas(10) as Empresa Podemos atribuir valores da seguinte forma: empresaAtual.CNPJ = 1111111111 empresas(1).RazaoSocial = Mellon Brascan empresas(1).CNPJ = 222222222
F LUXOS DE CONTROLE
Veremos nesta seo as instrues de controle que afetam o fluxo de execuo de um programa e so amplamente utilizadas. Um programa 12 - RISK MANAGEMENT
executado de diversas formas, de acordo com parmetros de entrada e estados de variveis. O fluxo de execuo de um programa controlado, basicamente, atravs de decises (utilizao de expresses condicionais) e repetio de instrues (loops). Sendo assim, podemos dividir as instrues de fluxo de controle em duas categorias: as expresses condicionais e os loops.
executado. Exemplo: If (intNumero >= 0) Then strMensagem = A varivel positiva Else strMensagem = A varivel negativa MsgBox(strMensagem) 13 - RISK MANAGEMENT
Existem casos em que temos mais do que apenas duas possibilidades. Sendo assim, podemos usar a instruo ElseIf. Exemplo: If ([Condio 1]) Then [Comandos 1] ElseIf ([Condio 2]) Then [Comandos 2] Else [Comandos 3] Os blocos de comandos [Comandos 1] ou [Comandos 2] sero executados, caso as condies
[Condio 1]
[Condio
2]
forem
verdadeiras,
respectivamente. Caso contrrio, [Comandos 3] ser executado. Exemplo: If (intNumero > 0) Then strMensagem = A varivel positiva ElseIf (intNumero < 0) Then strMensagem = A varivel negativa Else strMensagem = A varivel tem o valor zero. MsgBox(strMensagem)
Case
Utilizado em expresses condicionais, onde h mais de duas possibilidades. Sintaxe:
14
- RISK MANAGEMENT
Select Case [expresso] [Case possibilidade-1 [comandos-1]] . . . [Case possibilidade-n [comandos-n]] [Case Else [comandos else]] End Select Muito semelhante ao If...Then...ElseIf...Else... Indicado para expresses com vrias possibilidades. Exemplo 1: Select Case intNumero Case Is > 0 strMensagem = A varivel positiva Case Is < 0 strMensagem = A varivel negativa Case Else strMensagem = A varivel tem o valor zero. End Select MsgBox(strMensagem) Exemplo 2: Select Case strTipoEmpresa Case Financeira MsgBox(Empresa do ramo financeiro) Case Industrial MsgBox(Empresa do ramo industrial) Case Servios 15 - RISK MANAGEMENT
Loops
Um loop permite a execuo de um conjunto de comandos repetidamente. Alguns loops so executados at uma condio se tornar falsa, outros at a condio ser verdadeira. Existem ainda loops que permitem a execuo de um bloco de comandos um nmero fixo de vezes. While Executa um bloco de comandos enquanto uma condio for verdadeira. Sintaxe: While [condio] [comandos] Wend Exemplo:
flag = true ... While (flag) If (adicional > 0) Then Total = total + adicional Else flag = false End If adicional = adicional valor_desconto Wend
16
- RISK MANAGEMENT
For Executa um bloco de comandos um nmero determinado de vezes. Sintaxe: For i = [incio] To [fim] [Passo] [comandos] [Exit For] [comandos] Next Exemplo: Dim arrInteiros(50) As Integer Dim i As Integer Inicializa o array com valor 0 For i = 1 to Ubound(arrInteiros) arrInteiros(i) = 0 Next Obs: Se o limite superior for definido a partir de uma varivel e o valor desta varivel for mudado ao longo do loop, a quantidade de iteraes no ser alterada. Exemplo: O loop abaixo executado apenas 5 vezes. intMaximo = 5 For intContador = 1 To intMaximo MsgBox(Valor do Contador: & intContador) if (intContador = 3) Then intMaximo = intMaximo + 10 End If Next 17 - RISK MANAGEMENT
Do Loop Executa um bloco de comandos enquanto uma condio for verdadeira, ou at uma condio se tornar verdadeira. Sintaxe: Do [condio] '(While | Until) [comandos] [Exit Do] [comandos] Loop Ou: Do [comandos] [Exit Do] [comandos] Loop [condio] '(While | Until) Exemplo 1: intContador = 0 Do while intContador < 5 MsgBox(Valor do Contador: & intContador) intContador = intContador + 1 Loop Exemplo 2: intContador = 0 Do Until intContador = 5 MsgBox(Valor do Contador: & intContador) 18 - RISK MANAGEMENT
F UNES E P ROCEDIMENTOS
Muitas funcionalidades em um programa so executadas mais de uma vez. Com isso, surge a necessidade de se criar pedaos de cdigos que executam tarefas especficas. Isto facilita o entendimento do programa, alm de diminuir a quantidade de linhas de cdigo, facilitando a manuteno e novas implementaes. Podemos dividir o programa em partes menores denominadas Funes e Procedimentos. Podemos identificar uma funo em VBA como sendo o cdigo que ser executado entre os comandos Function e End Function, enquanto procedimentos so identificados pelos comandos Sub e End Sub. Sintaxe: Sub procedimento() [Corpo do Procedimento] End Sub Podemos chamar o procedimento usando o comando Call. Ex: Call procedimento() possvel chamar o procedimento sem o comando Call. Neste caso no usamos o parnteses. Ex: procedimento 19 - RISK MANAGEMENT
Diferenas
A diferena bsica entre uma funo e um procedimento muito simples. A funo retorna um valor de algum tipo, enquanto o procedimento no retorna valor. Os tipos de valores para o retorno de uma funo so os mesmos definidos para uma varivel, ou seja, uma funo pode retornar um tipo Integer, String ou at mesmo um Objeto. Sintaxe: Function funcao() As Integer [Corpo da Funo] End Function
Quando usar?
fundamental realizar a diviso do programa em tarefas menores, de modo a deixar o cdigo limpo e organizado. Sendo assim, usamos funes e procedimentos para definirmos tais tarefas. Caso haja necessidade de retorno de valor, usamos funes. Caso contrrio, usamos procedimentos.
Passagem de Parmetros
Funes e procedimentos podem receber parmetros de entrada, o que no obrigatrio, mas ocorre na maioria das vezes. Assim como o retorno de uma funo, parmetros devem ter um tipo definido. Sintaxe: Function funcao(parametro As Integer) As String [Corpo da Funo] End Function 20 - RISK MANAGEMENT
21
- RISK MANAGEMENT
Por Referncia Uma forma de passar o endereo de um argumento a um procedimento em vez de passar o valor. Isso permite que o procedimento acesse a varivel real. Como resultado, o valor real da varivel pode ser alterado pelo procedimento ao qual passado. A menos que especificado o contrrio, os argumentos so passados por referncia. Usamos o comando ByRef pare definir que um parmetro ser passado por valor. Exemplo: Sub principal() Dim meuNumero As Integer meuNumero = 2 somaUm meuNumero MsgBox ("Valor da variavel meuNumero: " & meuNumero) End Sub Sub somaUm(ByRef valor As Integer) valor = valor + 1 End Sub Valor da varivel meuNumero: 3
Parmetros Opcionais
Para definir um parmetro opcional em um procedimento ou funo, usamos o comando Optional.
22
- RISK MANAGEMENT
Exemplo: Sub principal(ByVal param1 As Integer, Optional param2 As Strting) O exemplo abaixo mostra uma chamada vlida para o procedimento. Call principal(2)
- RISK MANAGEMENT
F UNES MATEMTICAS
As funes matemticas so muito utilizadas em programas estatsticos e financeiros. A tabela abaixo lista as funes bsicas. O captulo referente a propriedades e mtodos do Excel abordar funes matemticas mais complexas. Funo Abs Atn Cos Exp Fix Int Log Rnd Sgn Descrio Retorna o valor absoluto do nmero Retorna o valor do arco tangente do nmero Retorna o valor do cosseno do nmero Retorna o valor de e elevado a uma determinada potncia Retorna a parte inteira do nmero. Exemplo: Fix(-7,4) = -8 Retorna a parte inteira do nmero. Exemplo: Int(-7,4) = -7 Retorna o logaritmo natural do nmero Retorna um nmero aleatrio Retorna o sinal do nmero. -1, se o nmero for menor que 0 0, se o nmero for igual a 0 1, se o nmero for maior que 0 Sin Sqr Tan Retorna o valor do seno do nmero. Retorna o valor da raiz quadrada do nmero. Retorna o valor da tangente do nmero.
24
- RISK MANAGEMENT
F UNES DIVERSAS
Algumas funes so muito utilizadas nos programas, especialmente aquelas que apresentam algum tipo de caixa de dilogo e permitem a interao, em tempo de execuo, com o usurio.
MsgBox
Exibe uma mensagem em uma caixa de dilogo, e aguarda que o usurio clique em um boto. Um Integer retornado indicando qual boto o usurio clicou.
Exemplo:
intRetorno = MsgBox("Deseja continuar?", _ vbYesNo + vbQuestion, "Pergunta") If (intRetorno = vbYes) Then MsgBox ("Aguarde, o programa ir continuar.") Else MsgBox ("Fim da Execuo.") End If
Exibe um aviso em uma caixa de dilogo, aguarda at que o usurio insira algum texto ou clique em um boto e retorna uma String com o contedo da caixa de texto.
Exemplo:
strRetorno = InputBox("Digite o seu nome", _ "Entrada de Dados") strMsg = "O nome digitado foi " & strRetorno MsgBox (strMsg)
F UNES DE CONVERSO
Como vimos anteriormente, uma varivel pode ser de vrios tipos. Em alguns casos quereremos converter uma varivel String para uma varivel inteira, por exemplo. As funes de converso so muito utilizadas e convertem uma varivel de um tipo para outro. Caso a funo no consiga converter, um erro gerado. A tabela abaixo mostra as funes de converso mais usadas e suas respectivas sintaxes. Descrio Converte uma expresso para um tipo Double Converte uma expresso para um tipo Integer Converte uma expresso para um tipo String 26 Sintaxe cDbl(exp) cInt(exp) cStr(exp) - RISK MANAGEMENT
Converte uma expresso para um tipo Date Exemplo: Dim valorNumerico As Double valorNumerico = cDbl(4,56)
cDate(exp)
STRINGS
Variveis do tipo String so muito usadas em programas e muitas vezes tm que ser manipuladas, para que possamos chegar ao resultado desejado. Existem muitas funes no VBA que permitem esta manipulao. As principais funes de manipulao so: Instr A varivel String pode ser considerada um Array de Caracteres. Cada caracter da String uma posio no Array. Podemos localizar um ou mais caracteres utilizando a funo InStr(). Sintaxe: [posicao]=InStr([posicaoInicial],[varPesquisada],[caracterPesquisa],[tipoPesqu isa]) onde: posicaoInicial: Posio de incio da pesquisa. varPesquisada: String a ser pesquisada. 27 - RISK MANAGEMENT
caracterPesquisa: Caracter (ou String) a ser encontrado. tipoPesquisa: Tipo de pesquisa (para comparao de texto, usa-se vbTextCompare). Exemplo: strSeparador = strTelEmpresa = 55555555 Mellon Brascan intPosicao = InStr(1, strTelEmpresa, strSeparador, vbTextCompare) MsgBox(Polsio do Separador: & intPosicao) Mid A funo Mid retorna uma parte da String delimitada pelos parmetros de entrada [posicaoInicial], [tamanhoExtracao]. Sintaxe: [extracao] = Mid([variavel], [posicaoInicial], [tamanhoExtracao]) Onde: [variavel] = String. [posicaoInicial] = posio do primeiro caracter que deve ser extrado de [variavel]. [tamanhoExtracao] = quantidade de caracteres que devem ser extrados. Exemplo: strTelEmpresa = 55555555 Mellon Brascan strTelReal = Mid(strTelEmpresa, 1, 8) Msgbox(Telefone real da empresa: & strTelReal)
28
- RISK MANAGEMENT
Trim Podemos eliminar os caracteres no incio e final de uma varivel String, utilizando a funo trim(). Sintaxe: [varSemEspaco] = Trim([varComEspaco]) Exemplo: strTelEmpresa = 55555555 Mellon Brascan strTelReal = Trim(Mid(strTelEmpresa, 1, 9)) Msgbox(Telefone real da empresa: & strTelReal)
MACROS
Macros so seqncias de comandos e funes definidos usando a linguagem de programao VBA, que automatizam tarefas realizadas no aplicativo Microsoft Excel.
Como criar
Para criar uma Macro, deve-se acessar o menu Ferramentas > Macro > Macros.
29
- RISK MANAGEMENT
Clicando na opo de menu Macros, uma nova janela ser aberta. O usurio poder nomear a Macro e apertar o boto Criar, que abrir o editor de cdigo Visual Basic e permitir a edio da Macro criada.
30
- RISK MANAGEMENT
31
- RISK MANAGEMENT
acessar o menu Ferramentas > Macro > Parar Gravao. A Macro gerada realizar exatamente todos os comandos feitos pelo usurio.
32
- RISK MANAGEMENT
34
- RISK MANAGEMENT
35
- RISK MANAGEMENT
Application
O objeto Application representa todo o aplicativo Microsoft Excel e contm a maioria das opes de configuraes e definies do aplicativo como um todo. Muitas propriedades e mtodos deste objeto podem ser referenciados sem o qualificador de objeto Application. Exemplo: 36 - RISK MANAGEMENT
Wor kbook
O objeto Workbook representa uma pasta de trabalho do Microsoft Excel, ou seja, um arquivo Excel. possvel acessar um objeto Workbook atravs da coleo Workbooks (objeto Application), que contm todas as pastas de trabalho abertas. As propriedades ActiveWorkbook e ThisWorkbook tambm apontam para um objeto do tipo Workbook. ActiveWorkbook aponta para a pasta de trabalho que est ativa, enquanto a propriedade ThisWorkbook aponta para a pasta de trabalho onde o cdigo do Visual Basic est sendo executado. Exemplo: Mostra o nome da pasta de trabalho ativa MsgBox(ActiveWorkbook.Name)
Worksheet
O objeto Worksheet representa uma planilha do Microsoft Excel. Da mesma forma que ocorre com o objeto Workbook, existe uma coleo de objetos Worksheet, acessada a partir do objeto Workbook, denominada Worksheets. A propriedade ActiveSheet aponta para a pasta de trabalho que est ativa. 37 - RISK MANAGEMENT
Range
O objeto range representa uma clula ou um intervalo de clulas. Este intervalo pode ser contguo ou no, pode representar uma ou mais linhas, uma ou mais colunas.
38
- RISK MANAGEMENT
Muitas das funcionalidades da linguagem VBA so executadas a partir do objeto Range, por isso ele um dos mais importantes e usados. Exemplo: Worksheets("Dados").Range("C1").Value = ndices das Empresas Set rangeInicial = Worksheets("Dados").Range( _ Worksheets("Dados").Cells(1,1), Worksheets("Dados").Cells(1,10))
Cells
O objeto Cells permite o acesso a uma clula (assim como o objeto Range). Para isso, necessrio informar a linha e a coluna da clula desejada. Exemplo: Worksheets("Dados").Cells(1, 3).Value = ndices das Empresas
Collection
O objeto Collection um conjunto ordenado de itens, no necessariamente do mesmo tipo, que se pode fazer referncia atravs de uma chave (identificador) ou posio. Exemplo: Sub subOrdenacaoExcel() Dim rngMyRange As Range Uso do objeto Collection para retornar o objeto Worksheet identificado por Ordenacao Set rngMyRange = Worksheets("Ordenacao").Range("A1:A15") 39 - RISK MANAGEMENT
Chart
O objeto Chart representa um grfico em uma determinada pasta de trabalho. Um grfico pode estar incorporado em um ChartObject ou uma folha de grfico separada. O objeto Charts representa a coleo de todos os objetos do tipo Chart ativos no Microsoft Excel. Exemplo: Charts("chart1").Activate
40
- RISK MANAGEMENT
P ROPRIEDADES E MTODOS
Definies
As propriedades dos objetos so responsveis por armazenar determinados atributos. Elas so as caracactersticas de um Objeto. Mtodos so servios disponibilizados pelos objetos e so responsveis por realizar tarefas como, por exemplo, a mudana de uma determinada propriedade.
41
- RISK MANAGEMENT
ActiveWorkbook: Retorna o objeto Workbook (pasta de trabalho) que est ativo. Retorna Nothing se no houver janelas abertas.
ActiveSheet: Retorna o objeto referente a planilha ativa. Se nenhuma planilha estiver ativa, a propriedade retorna Nothing.
ActiveCell: Retorna a clula ativa da planilha ativa. Se nenhuma clula estiver ativa, a propriedade retorna Nothing.
Selection: A propriedade Selection retorna o objeto selecionado (geralmente um objeto do tipo Range) da janela ativa.
Worksheet
Cells: Retorna todas as clulas da planilha representada pelo objeto Worksheet. possvel referenciar a uma nica clula, especificando o ndice da linha e da coluna da clula. Exemplo: whsDados.Cells(1,1).Value
Chart
representando o ttulo do
Visible: Indica se o objeto est visvel. Exemplo: chaGrafico.Visible = true 42 - RISK MANAGEMENT
Collection
Range
Sort: Ordena as clulas definidas pelo objeto Range. Exemplo: rngMyRange.Sort Key1:=Range("A1"), _ Order1:=xlAscending, Header:=xlNoRemove(VBA)
T RATAMENTO DE ERROS
Os erros em tempo de execuo dos programas devem ser tratados com muito cuidado, de modo a oferecer o mximo de informao, seja para o usurio ou para o programador.
43
- RISK MANAGEMENT
O comando On Error H algumas formas de utilizar o comando On Error, dentre as quais, destacam-se:
O comando indica, que caso ocorra um erro, o procedimento ou funo ir continuar a execuo da linha ou rtulo referenciado por [Destino].
Exemplo:
Sub calculaPreco() Dim num1, num2 as Integer Dim resultado as Double On Error GoTo Erro num1 = 12 num2 = 0 resultado = num1 / num2 Ocorrer um erro MsgBox(Fim do procedimento.) Comando no ser executado Exit Sub Erro: MsgBox(Ocorreu um Erro no procedimento.) End Sub
O comando indica, que caso ocorra um erro, o procedimento ir executar a instruo logo aps quela que ocorreu o erro.
Exemplo:
Sub calculaPreco() Dim num1, num2 as Integer Dim resultado as Double On Error Resume Next num1 = 12 num2 = 0 resultado = num1 / num2 Ocorrer um erro MsgBox(Fim do procedimento.) Comando ser executado End Sub
On Error GoTo 0
Exemplo:
Dim num1, num2 as Integer Dim resultado as Double On Error GoTo 0 num1 = 12 num2 = 0 resultado = num1 / num2 Ocorrer um erro MsgBox(Fim do procedimento.) Comando no ser executado End Sub
46
- RISK MANAGEMENT