Vba Excel
Vba Excel
Macros
Menu <Ferramentas> seguido da opção <Macro>
Gravar macros: botões <Terminar gravação> e <Referência relativa>
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
Editor do
Visual Basic
Projecto
Propriedades
Código: a opção
(General) contém
as declarações e
os procedimentos;
cada objecto
contém a lista de
eventos a ele
associado
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
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 argumentos
ActiveCell.Clear
ActiveCell.AddComment “comentário”
Eventos
Os eventos são algo que acontece aos objectos
Ocorrem em resultado de acções do utilizador, do sistema ou do próprio código
Os procedimentos correspondentes aos eventos têm todos a seguinte forma:
Private Sub Objecto_Evento(argumentos)
É necessário não confundir métodos com eventos. Por exemplo, o método
Activate quando executado sobre um objecto implica a execução do evento
Activate do mesmo objecto:
Worksheets(1).Activate
Private Sub Worksheet_Activate()
Uma variável do tipo Object também fica com o valor Nothing se o objecto a
ela associado for fechado/terminado/eliminado
Métodos
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 e/ou ao seu conteúdo
worksheet.Calculate: recalcula todas as fórmulas presentes na folha. Útil
para fórmulas que utilizam funções voláteis como AGORA() e HOJE()
Exemplos
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
For Each cel In Target
cel.Interior.ColorIndex = 3
Next
End Sub
Exemplo
For ano = 1 To 100
Range(“A” & ano).Value = 1999 + ano
Next ano
Exemplo
Function LastRow(rng As range)
With rng
LastRow =.Rows.Count + .Row – 1
‘LastRow =.Rows(.Rows.Count).Row
End With
End Function
Exemplos
Range(“A9”).Formula = “=SUM(A1:A8)”
Range(“A9”).FormulaLocal = “=SOMA(A1:A8)”
‘aspas nas fórmulas devem ser duplicadas
Range(“A1”).Formula = “=COUNTIF(B1:B9, ““>0””)”
Range(“A1”).FormulaLocal = “=CONTAR.SE(B1:B9; ““>0””)”
‘o exemplo que se segue leva a que B9 Å =SUM(B1:B8)
Range(“A9:B9”).Formula = “=SUM(A1:A8)”
‘o exemplo que se segue leva a que A9 Å =SUM($A$1:$A$8)
Range(“A9”).FormulaR1C1 = “=SUM(R1C1:R8C1)”
Range(“A9”).FormulaR1C1Local = “=SOMA(L1C1:L8C1)”
‘o exemplo que se segue leva a que A9 Å =SUM(A1:A8)
Range(“A9”).FormulaR1C1 = “=SUM(R[-8]C:R[-1]C)”
‘o exemplo que se segue leva a que A9 Å =SUM(A$1:$A8)
Range(“A9”).FormulaR1C1 = “=SUM(R1C:R[-1]C1)”
Exemplos
Range(“C5:D10”).Select
Selection.Offset(-4, -2).Select ‘A1:B6
Selection.Offset(3, 1).Range(“B2”).Select ‘C5