23
Programando em VBA Aula 03 Professor: Emerson Alencar

Aula VBA 3

Embed Size (px)

DESCRIPTION

Aula VBA 3

Citation preview

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