Cap. 4 Secção 5 Modelo de Objectos do Excel 1 O que são? Objectos São representações de elementos do Excel. Algo que pode ser controlado pelo V.Basic, tal como um botão, folha, livro, etc. Um objecto tem: Propriedades - Características do objecto, ou seja atributos que lhe controlam a aparência ou comportamento; Métodos - Acções que os objectos podem efectuar. 2 1
Objectos Exemplos de objectos do MS Excel: Objecto Application (Aplicação) Workbook (Livro) Chart (Gráfico) UserForms (Folha de diálogo) Module (Módulo) Worksheet (Folha de Cálculo) Range (Intervalo) Representa A totalidade da aplicação Excel Um livro do Excel Um gráfico de um livro Uma caixa de diálogo de um livro Um módulo VB de um livro Uma folha de cálculo de um livro Um conjunto de células de uma folha de cálculo 3 Colecção É um objecto que contem objectos geralmente do mesmo tipo. Metacolecção Colecção que pode conter objectos de mais de um tipo Obs. Trabalhar com uma colecção é como trabalhar com uma matriz, pois que é possível identificar um item nela existente através do seu número. Também se pode trabalhar com toda a colecção. Exemplos de Colecção: Colecção Workbooks (Livros) Sheets (Folhas) Worksheets (FolhasCálculo) Charts (Gráficos) Modules (Módulos) UseForms (FolhasCaixaDiálogo) Obs. Nem todos os plurais são colecção. Descrição Contém todos os livros abertos Contém todas as folhas de um livro, ou seja, objectos do tipo: Worksheet, Chart, Module e UserForm Contém todos os objectos do tipo Folha de cálculo de um livro Contém todos os objectos do tipo gráfico de um livro Contém todos os objectos do tipo módulo de um livro Contém todos os objectos do tipo folha de caixa de diálogo de um livro 4 2
Colecção Exemplos: Workbooks( livro1.xls ).Close Workbooks(1).Close Workbooks.Close 5 Hierarquias e Contentores Os objectos organizam-se numa hierarquia. Aplication (Aplicação) Workbook (Livro) Worksheet(FolhaCálculo) Range (Intervalo) Chart (Gráfico) Alguns objectos contêm outros para devolver o objecto é necessário perfurar a hierarquia de objectos do Excel um objecto pode ter mais de um contentor 6 3
Hierarquias e Contentores Vantagem de ter objectos que actuam como contentores: Pode usar-se o contentor para especificar qual o objecto que se deseja manipular. Exemplo: Quando trabalho com 2 folhas de cálculo, ambas possuem um determinado conjunto de células e posso indicar ao conjunto a que me refiro. 7 Método Representação de uma acção que um objecto pode executar. Analogia com o mundo real: O objecto carro pode arrancar, acelerar e travar. Exemplo: Método Save (Guardar) 8 4
Propriedade Atributo de um objecto que define uma das características do objecto ou um aspecto do seu comportamento. Analogia com o mundo real: O objecto carro possui uma cor e marca. Exemplo: Propriedade Name (Nome) - Devolve o nome de um objecto As propriedades podem ser: só de leitura de leitura / escrita 9 Métodos e Propriedades Métodos VS Propriedades São acções São valores que se quer saber ou alterar Podem afectar valores das propriedades não têm parâmetros Um objecto tem um conjunto de propriedades e métodos; Uma propriedade e um método aplicam-se a mais do que um tipo de objecto; As características dos métodos e das propriedade podem variar consoante o tipo de objecto ao qual se aplicam. 10 5
Propriedades Especiais Propriedade ActiveCell (CélulaActiva) ActiveSheet (FolhaActiva) ActiveWindow (JanelaActiva) ActiveWorkbook (LivroActivo) Selection (Selecção) Devolve A célula activa A folha activa (chart ou worksheet) A janela activa O livro activo O conjunto de células seleccionadas 11 Propriedades Especiais Propriedade Application (Aplicação) Sheets (Folhas) Worksheets (Folhas de cálculo) Range (Intervalo) Cells (Células) Devolve O objecto application Objecto(s) do tipo folha Objecto(s) do tipo folha de cálculo Um intervalo (conjunto de um ou mais células) Um intervalo 12 6
Utilização de objectos, propriedades e métodos Atribuição ou leitura de valor a propriedade: objecto.propriedade = expressão ou variável = objecto.propriedade 13 Utilização de objectos, propriedades e métodos Aplicação de método a objecto: Objecto.método 14 7
Referenciação abreviada de objectos Nem sempre é necessário referenciar todo o caminho hierárquico para aceder um objecto. A qualificação depende do contexto da utilização da propriedade ou do método. Exemplo: L= Livro.XLS F= folha1 Referenciação completa Application.Workbooks(L).Worksheets(F).Range( A1 ).value=1 15 Referenciação abreviada de objectos Elementos que podem ser omitidos: Application Os métodos e propriedades que devolvem os objectos mais comuns podem ser usados sem este qualificador Workbooks É possível ter diversos livros abertos, contudo, somente um está activo => ActiveWorkbook é assumido por defeito Value É a propriedade por defeito Referenciação abreviada Application.Workbooks(L).Worksheets(F).Range( A1 ).value=1 Worksheets(F).Range( A1 )=1 16 8
Mecanismos de simplificação de referências a objectos Omissão de qualificadores e propriedade por defeito Ex. Worksheets(F).Range( A1 ) =1 Quando Worksheets é omitido é utilizada por defeito a folha activa (ActiveSheet) => Worksheets pode ser omitido quando a execução é desencadeada a partir da folha de cálculo a utilizar; A omissão do qualificador Worksheets é desaconselhada, devido ao requisito de localização da invocação na folha e, fundamentalmente, pelo facto de ser necessário manipular múltiplas folhas. 17 Instrução With... End With With Worksheets(F) Range( A1 ) =1 Range( A2 ).formula = =Sum (A1:B1) End With 18 9
Uso de variáveis objecto Dim f1 as Worksheet, f2 as Worksheet Set f1= Worksheets( folha1 ) Set f2= Worksheets( folha2 ) f2.range( A1 ) =f2.range( A1 ) f2.range( A2 ).formula = f1.range( A2 ).formula 19 Propriedade Worksheets (Folhasdecálculo) Aplica-se aos objectos: Application, Workbook Sintaxe 1 Objecto.Worksheets(Índice) (Devolve uma folha de cálculo individual) Sintaxe 2 Objecto.Worksheets (Devolve uma colecção de folhas de cálculo) Observações: Objecto: Opcional para aplicação, necessário para livro. Trata-se do objecto ao qual este método se aplica. Índice: Necessário para a sintaxe 1. Corresponde ao nome ou número da folha de cálculo a ser devolvida. Utilizar este método sem o qualificador, é equivalente a: ActiveWorkBook.Worksheets; 20 10
Propriedade Range (Intervalo) Aplica-se a objectos Application, Worksheet e Range Devolve um objecto intervalo (uma célula, uma linha, uma coluna, ou um conjunto de células seleccionadas contendo um ou mais blocos de células contíguas.) Sintaxe 1 Objecto.Range(cell1) Sintaxe 2 Objecto.Range(cell1, cell2) Obs.: Quando usado sem qualificador de objecto equivale a ActiveSheet.Range. Se folha activa não for uma folha de cálculo, o método falha! Objecto: opcional para aplicação e necessário para intervalo e folha de cálculo cell1: nome do intervalo com uma referência do estilo A1 cell1, cell2: células do canto superior esquerdo e inferior direito do intervalo 21 Exemplos da utilização da propriedade Range: With Worksheets( folha1 ).Range( A1 ) =1 Atribuição de valor a intervalo de células A2: B3, usando sintaxe 1.Range( A2:B3 )=2 Atribuição de valor a intervalo de células A2: B3, usando sintaxe 2.Range( A2, B3 )=2 Atribuição de valor a intervalo de células com nome nome_intervalo_de_células.range( nome_intervalo_de_células )=2 Atribuição de fórmula a intervalo de células. OBS: a célula C2 fica com =Sum(A2:B2).Range( C1:C10 ).Formula= =Sum (A1:B1) Cópia de fórmulas do intervalo de células C1:C10, da folha1 para folha cópia Worksheets( cópia ).Range( C1:C10 ).Formula=.Range( C1:C10 ).Formula End Withcc 22 11
Propriedade Cells (Células) Devolve um objecto Intervalo Tipo de Objecto Application Range WorkSheet Acção =ActiveSheet.Cells e devolve colecção de células da folha de cálculo (se folha activa for FC, senão falha!) Devolve colecção de células do intervalo Devolve uma colecção de células da folha de cálculo 23 Propriedade Cells (Células) Sintaxe 1: Objecto.Cells(id_l, id_c) Objecto: opcional para aplicação e necessário para intervalo e folha de cálculo. Objecto que contém as células. Se for especificado o objecto aplicação ou omitido o qualificador de objecto, o método é aplicado à folha activa, no livro activo. id_l: nº da linha começando em 1 (para aplicação e folha de cálculo) ou a 1ª linha do intervalo id_c: nº ou cadeia de caracteres indicando o nº da coluna 1 = A. 24 12
Exemplos da Utilização da Propriedade Cells: With Worksheets( folha1 ). Atribuição de valor a célula A1.Cells(1,1) =1 Atribuição de valor a célula B1.Cells(1, B ).=2 Atribuição de fórmula a célula C1.Cells(1,3).Formula= =Sum (A1:B1) End With 25 Exemplo de Utilização da Propriedade Cells: With Worksheets( folha1 ). Cópia do intervalo de células preenchidas e contíguas na coluna C, da folha1 para folha cópia lin = 1 Do while.cells(lin,3) < > Worksheets( cópia ).Cells(lin,3) =.Cells(lin,3) lin=lin+1 Loop End With A propriedade Cells é mais conveniente quando se pretende utilizar variáveis ou expressões para referir os números de linhas e colunas 26 13