Upload
emerson-alencar
View
246
Download
0
Embed Size (px)
DESCRIPTION
Aula VBA 3
Programando em VBA Aula 03
Professor: Emerson Alencar
Conceitos de Programação
Continuação
Uma matriz é um grupo de variáveis que tem um nome comum;
Declaração de Matriz Unidimensional (Vetor) Dim MinhaMatriz(1 to 100) As Integer
Declaração de Matriz Multidimensional (Matriz) Dim MinhaMatriz(1 to 10, 1 to 10) As Integer
Declaração de Matriz Dinâmica Dim MinhaMatriz() As Integer
Observação: Antes de usar essa Matriz, deve usar a declaração ReDIm para dizer ao VBA quantos elementos a matriz tem.
Exemplo: ReDim MinhaMatriz(NumElementos)
Trabalhando com Matrizes
Trabalhando com Objetos Range
O Objeto Range representa um intervalo contido em uma folha de cálculo.
Exe.: Range (“A1:C5”)
Exe.: Range (“Lista”) – Caso o intervalo tenha nome
Revisando
1. Worksheets (“Plan1”).Range(“A1:C5”)
2. Workbooks(“Orçamento.xlsx”).Worksheet (“Plan1”).Range(“A1:C5”)
3. Range(“3:3”) – Referência a uma linha inteira
4. Range(“D:D”) – Referência a uma coluna Inteira
Exemplos:
Você também pode faze referênciação de um intervalo através da propriedade Cells.
A propriedade Cells contém dois argumentos: linha e coluna. Veja a expressão que se refere a célula C2:
WorkSheets (“Plan1”.cells(2,3))
Propriedade Cells
Referindo a um intervalo Multicélula
Range (Cells (1,1) , Cells(10,10))
Colocam um determinado valor em um intervalo
Range("A1:j10").Value = 99
Range(Cells(1, 1), Cells(10, 10)).Value = "cti"
Exemplos:
A propriedade Offset fornece outros meios úteis para a referencia de intervalos. A offset contém dois argumentos o número de linhas e Colunas a Compensar:
Range(“A1”).offset (1, 2)
Outros exemplos:
Range("A1").Offset(1, 2) = Range("A1").Value
ActiveCell.Offset(1, 2) = ActiveCell.Value
Propriedade Offset
Caso você precise fazer a referência de um intervalo de várias colunas ou linhas, pode usar a seguinte expressão:
Collumns (“A:C”)
Rows (“1:5”)
Referências a Colunas e Linhas Inteiras
Representa um valor contido em uma célula.
É uma propriedade de leitura e escrita;
Obs: Lerá apenas de um objeto range e não de um intervalo
A propriedade Value
MsgBox Worksheets (“Plan1”).Range(“A1”).Value
Retorna o valor da célula
Worksheets("plan1").Range(“A1:A10") = 10
Introduz valor 10 no intervalo
MsgBox Worksheets("Plan1").Range("A1").Text
Retorna o valor da célula com a formatação
MsgBox Range(“A1:A10”).Count
Retorna o número de células
Exemplos – Propriedades Range
MsgBox Sheets(“Plan1”).Range(“F3”).Column Retorna o número da coluna da célula
MsgBox Sheets(“Plan1”).Range(“F3”).Row Retorna o número da linha da célula
MsgBox Range (Cells(,1),cells(5,5)).address Retorna o Endereço da célula
Exemplos – Propriedades Range
A propriedade hasFormula Retorna Verdadeiro se o intervalo contém fórmula e falso se não contiver nenhuna fórmula.
Dim FormulaTeste As Boolean
FormulaTeste = Range(“A1:A5”).HasFormula
MsgBox FormulaTeste
Range Propriedade HasFormula
Caso algumas céluas contenham fórmulas e outras não, temos que tratar o erro:
Dim FormulaTeste FormulaTeste = Range("A1:E1").HasFormula If TypeName(FormulaTeste) = "Null" Then MsgBox "Mista!" Else MsgBox FormulaTeste End If
Range Propriedade HasFormula – Tratando Erro
Essa propriedade muda o aspecto da fonte de um intervalo.
Exemplo:
Range("A1").Font.Bold = True
Range("A1").Font.Color = vbBlue
Range Propriedade Font
Essa propriedade trabalha da mesma forma da propriedade Font.
Range (“A1”).Interior.color = 8421504
Range("A1").Interior.Color = 8421504
Range("A1").Interior.Color = RGB(0, 0, 0)
Range("A1").Interior.Color = RGB(255, 0, 0)
Range("A1").Interior.Color = vbYellow
Range Propriedade Interior
Essa Propriedade representa a fórmula de uma célula;
Range("A2").Formula = "=soma(A10:A15)"
Range Propriedade Fórmula
Com essa propriedade você pode mudar o formato de uma célula
Columns("A:A").NumberFormat = "0.0%"
Range Propriedade NumberFormat
Este método seleciona um intervalo de células.
Range("A1:C12").Select
Range Método Select
Realiza operações de copiar e colar. O método copy é aplicável ao Range, mas o Paste é ao Worksheet. Vejamos um código gerado pelo gravador de Macro.
Range("A1:A10").Select
Selection.Copy
Range("C1").Select
ActiveSheet.Paste
Código correto:
Range("A1:C12").Copy Range("C1")
Range Método Copy e Paste
Apaga o Conteúdo do intervalo.
Columns("C:C").Clear
Tenhamos atenção com dois métodos
ClearContents (Apaga o conteúdo mas não a formatação)
ClearFormats (Apaga a formatação mas não o conteúdo)
Range Método Clear
Quando você apaga um intervalo, o Excel move as células restantes para preencher o intervalo.
Columns("C:C").Delete
Rows(“6:6”).Delete
Range (“C6:c10”).Delete XlToleft
Range Método Delete