Vba no excel
VRA e Excel I Macros Menu seguido da opção Gravar macros: botões e Gravar macros é uma forma simples e rápida de visualizar os objectos, as propriedades ou os métodos envolvidos em certas operações sobre as quais queremos escrever código Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 27 liza to view next*ge V3A e Excel II Formulários Menu seguido das o Permite inserir contr de cálculo para perso Ligar células a contro Menu seguido da op e do separador Atribuir macros a controlos 1 orlo Menu específico sobre o controlo seguido da opção Aos controlos de formulários apenas é possível atribuir macros que são xecutadas quando ocorre o evento de índole mais geral sobre o controlo (habitualmente o clique do rato) Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 28 VRA e Excel III Editor do Visual Basic Projecto Propriedades equivalente função UPPER do Excel Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 31 Objectos I Conceito Qualquer coisa que numa aplicação se pode manipular de algum modo Formas de manipular um objecto Alterar o seu conjunto de propriedades Activar métodos espec(ficos do objecto para executar determinadas tarefas Associar procedimentos aos eventos que podem ocorrer sobre o objecto Classes e instâncias
Classe de objectos: conjunto de objectos com as mesmas propriedades, com os mesmos métodos e que respondem aos mesmos eventos Instância: todo o objecto particular de uma classe Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 32 Objectos II As propriedades são os atributos que definem as características dos objectos ActiveCell. Formula — Certas propriedades são elas mesmas objectos ActiveceIl. pont. ItaIiC = True Existem propriedades que são só de leitura col = ActiveCeIl. CoIumn Métodos Os métodos são acções que descrevem o que os objectos podem fazer São executados sobre os objectos e podem conter ou não rgumentos ActiveCelLClear ActiveCell. AddComment “comentário” Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 33 Objectos III 10 objecto implica a execução do evento Activate do mesmo objecto: Worksheets(l ).
Activate private Sub Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 34 Objectos IV Hierarquia de objectos Application: objecto de topo da hierarquia de objectos Caminhos hierárquicos Caminhos únicos podem ser abreviados Workbooks(” Livrol ActiveCell Colecção de objectos (Collection) Tipo de objecto que resulta da colecção de outros objectos, não necessariamente do mesmo tipo Por exemplo, os objectos Workbooks e Worksheets são objectos do tipo Collection que contêm respectivamente todos os objectos do tipo Workbook e Worksheet da aplicação Ricardo Rocha DCC-FCI_JP Visual Basic for Applications: 35 Objectos V Variáveis como objectos Tipo de dados Object A instrução Set A constante Nothing O operador Is Exemplo Dim bool as Boolean Dim rngl As Object, rng2 As Object ‘As Range Set rngl = Cells(l,l) Set rng2 = bool = rngl Is rng2 ‘bool = False Set rngl Nothing ‘para libertar memória bool = rnel Is Nothing ‘bo With ActiveCell -Formula = ‘ActiveCelI. Formula = With .
Font . ltalic = True ‘ActiveCell. Font. ltalic = True . Bold = True ‘ActiveCell. Font. Bold — – True End With Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 37 Objectos Workbook I Referenciação [Application. ]: caminho hierárquico implícito Workbooks(“l_ivrol”): referência directa ao nome do livro Workbooks(l): referência ao primeiro livro a ser aberto ActiveWorkbook: referência ao livro que tem o foco ThisWorkbook: referência ao livro onde está o código a ser executado Workbooks Collection Workbooks. Open(FileName): método que abre um livro existente Workbooks. Close: método que fecha todos os livros abertos Workbooks.
Count: propriedade que indica o número de livros abertos ChDir ‘ n,My documentsExcel” Workbooks. Open “Livrol” Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 38 Objectos Workbook II workbook. Name: nome do livro (só de leitura) workbookd: indica se existem alterações por guardar (pode colocada a True para evitar o menu de guardar alterações) workbook. Activate: torna o livro activo workbook. : guarda as últimas alterações workbook. Close(Changes : fecha o livro workbook. Protect(Passwo Windows): protege o livro mostradas ou fechadas) workbook. Unprotect(Password): desprotege o livro ThlsWorkbook. protect “sap”, True, False ThisWorkbook.
Close Changes:=True Ricardo Rocha DCC-FCLJP Visual Basic for Applications: # 39 Objectos Workbook III Eventos Private Sub Workbook_open(): ocorre quando o livro é aberto por acçao do método Open, ou por intermédio do utilizador Private Sub Workbook_Activate(): ocorre quando o livro passa a ser o livro activo por acção do método Activate, ou por intermédio do utilizador quando abre o livro ou o selecciona Private Sub Workbook_Newsheet(gyVal Sh As Object): ocorre quando é inserida uma nova folha (Sh referencia a nova folha) Exemplos Private Sub Workbook_open() Application. Visible False End sub Private Sub Workbook_Activate() 1 “). Activate Private Sub Workbook_NewSheet(gyVal Sh As Object) Sh. Move After:=Worksheets(Worksheets. Count) End Sub Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 40 Objectos Worksheet I [ActiveWorkbook. : caminho hierárquico implícito referência directa ao nome da folha Worksheets(l): referência à primeira folha no separador de folhas Activesheet: referência à f o foco PAGF 10 Count indica o número de folhas a adicionar (por defeito uma) Worksheets. Count: propriedade que indica o número de folhas existentes Worksheets. Add Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 41 Objectos Worksheet II worksheet. Name: nome da folha worksheet. VisibIe: visibilidade da folha xlSheetVisible: visível xlSheetHidden: oculta (corresponde a ocultar a folha utillzando os menus) xlSheetVeryHidden: invislVel (só utilizando código é possível reverter o estado) worksheet. Activate: torna a folha activa worksheet.
Delete: elimina a folha worksheet. Copy(Before, After): copia a folha worksheet. Move(Before, After): move a folha worksheet. protect(passwd, DrawingObjs, Contents): protege a folha no que diz respeito aos seus objectos gráficos elou ao seu conteúdo worksheet. Calculate: recalcula todas as fórmulas presentes na olha. Útil para fórmulas que utilizam funções voláteis como AGORA() e HOJE() Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 42 Private Sub Worksheet_Change(ByVal Target As Excel. Range): ocorre quando uma ou várias células são modificadas Private Sub Worksheet_Chan e B al Target As Excel. Range) For Each cel In Target [ActiveSheet. : caminho hierárquico implícito Cells(l, 2): referência à célula na 1a linha e na 2a coluna (célula 31) Range(“B2:C3”): referência directa ao intervalo B2:C3 Range(“A1, B2:C3”): referência directa à célula Al mais o intervalo B2:C3 referência directa à célula ou intervalo com o ome “Lucro” “C3”): referência ao intervalo B2:c3 (82 é o canto superior esquerdo e C3 é o canto inferior direito) Range(“B2:C3”). CeIIs(1, 2): referência à célula na 1a linha e na 2a coluna dentro do intervalo B2:C3 (célula C2) For ano=l -ro 100 & ano). Value = 1999 + ano Next ano Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 44 Objectos Range II range.
Row: número da primeira linha do range range. Column: número da primeira coluna do range range. Rows(): collection de todas as linhas do range range. Rows(lndex): linha de ordem Index do range range. Columns(): collection de todas as colunas do range ange. Columns(lndex): coluna de ordem Index do range Function LastRow(rng As range) With rng LastRow =. Rows. Count + . Row – 1 ‘LastRow End Function Ricardo Rocha DCC-FCIJP Visual Basic for Applications: # 45 Objectos Range III range. Value: valores das c In aux_array If aux > MaxValue Then MaxValue = aux Next aux Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 46 Objectos Range IV range.
Formula Formulal_ocal FormulaRIC1 FormulaRl Cl cocal: fórmulas das células do range Range(“A9″). Formula = ” -SUM(AI :A8)” ‘aspas nas fórmulas devem ser duplicadas -COUNTIF(BI :B9, “”>0’0” “). FormulaLocal = ” o exemplo que se segue leva a que BO ‘o exemplo que se segue leva a que A9 -SUM($A$I :$A$8) Cl = Cl :R8Cl)” Range(“A9″). FormulaR1 Cl Local = ” -SOMA(LICI: 8C1)” ‘o exemplo que se segue leva a que A9 Range(“A9″). FormulaRIC1 – ” Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 47 Objectos Range V range. Offset(RowOffset, Columnoffset): desloca o range RowOffset linhas para cima/baixo e ColumnOffset colunas para a direita/ esquerda range. Address(RowAbsolute, ColumnAbsolute): endereço do range range.
Count: número de células do range range. Select: selecciona (Selection referencia o conjunto seleccionado) ange. Calculate: recalcula fórmulas range. Copy(Destination): copia o conteúdo range. ClearComments: remove comentários range. ClearContents: remove conteúdos range. ClearFormats: remove formatações range. Clear: remove comentários, conteúdos e formatações range. FillDown: copia o conteúdo da 1a linha para as restantes células (idêntico a seleccionar a 1a linha e arrastar com o rato) range. FlllUp: copia o conteúdo da última linha para as restantes range. FillLeft: copia o conteúdo da última coluna para as restantes células range.
FillRight: copia o conteúdo da 1 a coluna para as restantes copia para E5:F9 Ricardo Rocha DCC-FCI_JP Visual Basic for Applications: 49 Objectos Control I Propriedades comuns Name: nome que identifica o controlo Caption: texto presente no controlo Left/ op: posição relativa ao canto superior esquerdo do formulário/relatório Height / Width: altura e comprimento do controlo BackColor / ForeColor: cor do fundo e cor do texto do controlo Backstyle: estilo do fundo do controlo (transparente/opaco) SpecialEffect: aparência do controlo . com relevo, com profundidade, Font: tipo de letra do controlo ControlTipText: texto de ajuda ara uando se deixa o rato sobre o controlo
Enabled: se False previne o controlo de receber o foco e responder a eventos Locked: se True previne o utilizador de editar o valor presente no controlo Ricardo Rocha DCC-FCLJP Visual Basic for Applications: # 50 Objectos Control II UserForm Show: apresenta o formulário Hide: esconde o formulário mas não o remove da memória Unload: remove o formulário da memória Text box Text: texto presente na caixa de texto PasswordChar: caracter especial de edição para introdução de passwords EnterKey3ehavior: se rue permite a edição em várias linhas Command button Default: botão seleccionado por defeito quando se abre o formulário Cancel: botão seleccionado por defeito no caso do formulário ser cancelado Option / check / toggle buttons Value: True se seleccionado; False se não seleccionado; Null se não activo OptionValue: valor do botão no caso de estar inserido num grupo de opções Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 51 Objectos Control III Combo / list boxes RowSource: origem dos dados do controlo ColumnCount: número de colunas a apresentar ColumnWidths: tamanho de cada coluna BoundColumn: coluna dependente associada à propriedade Value TextColumn: coluna dependente associada à propriedade Text Value: valor da coluna de 11)