Nessa
lição e nas próximas duas, veremos alguns exemplos de usos
práticos do objeto Worksheet e de Range. Também serão
apresentados detalhes sobre alguns dos principais métodos e
propriedades desses objetos.
Como
fazer referência a células e intervalos:
Uma
tarefa comum ao usar o VBA é especificar uma célula ou
intervalo de células e, em seguida, fazer algo com elas, como
inserir uma fórmula ou alterar o formato. Geralmente, você
pode fazer isso em uma instrução que identifique o intervalo
e também altere uma propriedade ou aplique um método.
Um
objeto Range no VBA pode ser uma única célula ou um
intervalo de células. Os tópicos seguintes mostram as
maneiras mais comuns de identificar e trabalhar com objetos
Range.
Referir-se
a células e intervalos usando a notação A1:
Você
pode referir-se a uma célula ou intervalo de células no
estilo de referência A1 usando o método Range. O exemplo
seguinte altera o formato das células A1:D5 para negrito.
Workbooks("Book1").Sheets("Sheet1").Range("A1:D5").Font.Bold
= True
A
tabela seguinte ilustra algumas referências em estilo A1
usando o método Range.
Referência
Significado
Range("A1")
Célula A1
Range("A1:B5")
Células de A1 até B5
Range("C5:D9,G9:H16")
Uma seleção de várias áreas
Range("A:A")
Coluna A
Range("1:1")
Linha 1
Range("A:C")
Colunas de A até C
Range("1:5")
Linhas 1 até 5
Range("1:1,3:3,8:8")
Linhas 1, 3 e 8
Range("A:A,C:C,F:F")
Colunas A, C e F
Referir-se
a células usando números de índice:
Você
pode usar a propriedade Cells para referir-se a uma única célula
usando números de índice de linha e coluna. Essa propriedade
retorna um objeto Range representando uma única célula. No
exemplo seguinte, Cells(6,1) retorna a célula A6 da planilha
Sheet1. Em seguida, a propriedade Value é definida como 10.
Worksheets("Sheet1").Cells(6,
1).Value = 10
A
propriedade Cells funciona bem para loop através de um
intervalo de células porque você pode substituir os números
de índice por variáveis, conforme mostrado no exemplo
seguinte.
Dim
counter As Integer
For
counter = 1 To 20
Worksheets("Sheet1").Cells(counter,
3).Value = counter
Next
counter
Observação:
Se você desejar alterar as propriedades ou aplicar um
método a todo um intervalo de células de uma só vez, use a
propriedade Range. Para obter mais informações, consulte
Referir-se a células usando notação A1.
Referir-se
a linhas e colunas:
Use
a propriedade Rows ou a propriedade Columns para trabalhar com
linhas ou colunas inteiras. Essas propriedades retornam um
objeto Range representando um intervalo de células. No
exemplo seguinte, Rows(1) retorna a linha um na planilha
Sheet1. Em seguida, a propriedade Bold do objeto Font do
intervalo é definida como True.
Worksheets("Sheet1").Rows(1).Font.Bold
= True
A
tabela seguinte ilustra algumas referências de linha e coluna
usando as propriedades Rows e Columns.
Referência
Significado
Rows(1)
Linha um
Rows
Todas as linhas da planilha
Columns(1)
Coluna um
Columns("A")
Coluna um
Columns
Todas as colunas da planilha
Para
trabalhar com várias linhas ou colunas ao mesmo tempo, crie
uma variável de objeto e use o método Union, combinando várias
chamadas à propriedade Rows ou Columns. O exemplo seguinte
altera para negrito o formato das linhas um, três e cinco na
planilha um da pasta de trabalho ativa.
Worksheets("Sheet1").Activate
Dim myUnion As
Range
Set myUnion =
Union(Rows(1), Rows(3), Rows(5))
myUnion.Font.Bold
= True
Referir-se
a intervalos nomeados:
Os
intervalos são mais fáceis de identificar por nome do que
por notação A1. Para nomear um intervalo selecionado, clique
na caixa de nome na extremidade esquerda da barra de fórmulas,
digite um nome e, em seguida, pressione ENTER.
Referir-se
a um intervalo nomeado:
O
exemplo seguinte refere-se ao intervalo chamado "MyRange"
na pasta de trabalho chamada "MyBook.xls".
Range("MyBook.xls!MyRange").Font.Italic
= True
O
exemplo seguinte se refere ao intervalo específico de
planilha chamado "Sheet1!Sales" na pasta de trabalho
chamada "Report.xls".
Range("[Report.xls]Sheet1!Sales").BorderAround
weight:=xlthin
Para
selecionar um intervalo nomeado, use o método GoTo, o qual
ativa a pasta de trabalho e a planilha e, em seguida,
seleciona o intervalo.
Application.Goto
Reference:="MyBook.xls!MyRange"
Selection.ClearContents
O
exemplo seguinte mostra como o mesmo procedimento seria
escrito para a pasta de trabalho ativa.
Application.Goto
Reference:="MyRange"
Selection.ClearContents
Realizar
loop em células de um intervalo nomeado
O
exemplo seguinte faz um loop através de cada célula de um
intervalo nomeado usando um loop For Each...Next. Se o valor
de qualquer célula do intervalo exceder o valor de limit, a
cor da célula será alterada para amarelo.
Const
limit As Integer = 25
For
Each c In Range("MyRange")
If c.Value
> limit Then
c.Interior.ColorIndex
= 27
End If
Next c
Na
próxima lição continuaremos a ver
exemplos de referência a células e faixa de células.
Todos
os direitos reservados: ® Júlio Battisti, 2002