VBA – Definir Variáveis de Objeto – Pastas de Trabalho, Planilhas e Muito Mais
In this Article
Este tutorial ensinará a você como definir variáveis de objeto usando a instrução Set no VBA.
Definição de Variáveis de Objeto
Os objetos são a base do Microsoft Office – sem eles, não podemos fazer nada. No Excel, os objetos incluem a pasta de trabalho, a planilha ou os objetos de intervalo. No Microsoft Word, os exemplos são o objeto Documento ou Tabela. Cada objeto tem uma variedade de propriedades e métodos que podem ser programados para controlar o comportamento desse objeto.
Como Declarar a Variável de Objeto
Antes de podermos fazer referência ao objeto no código e, portanto, controlar o objeto, precisamos declarar o objeto. Podemos fazer isso usando a declaração Dim.
Dim wkb as Workbook
Dim wks as Worksheet
Dim Rng as Range
Dim wdDoc as Document
Dim wdTbl as Table
Dim shp as Shape
Essa declaração Dim pode ocorrer dentro de um procedimento:
ou fora de um procedimento em nível de módulo:
Se a variável for declarada no nível do módulo (fora do procedimento), ela poderá ser usada em todo o módulo.
Se a variável de objeto for declarada com a instrução Public, a variável poderá ser usada em todo o projeto VBA:
Atribuir Valor
Depois de declarar o objeto, você precisa atribuir um valor a ele. Isso deve ser feito usando a instrução Set e só pode ser feito em um procedimento.
Sub AtribuirObjetos()
Set wkb = ActiveWorkbook
Set wks = Planilha1
Set rng = Range("A1:G4")
End Sub
Observação: Isso é diferente de atribuir valores a variáveis que não são objetos. Você DEVE usar a instrução Set para atribuir o objeto à variável. Caso contrário, você receberá um erro:
Depois de atribuir um valor ao objeto, você poderá escrever código para controlar o comportamento ou manipular o objeto.
Exemplos de Objetos no Excel
Objeto de Pasta de Trabalho
Depois de declarar uma variável de pasta de trabalho, você pode atribuir uma pasta de trabalho a esse objeto e usar as propriedades e os métodos disponíveis para manipular esse objeto. No exemplo abaixo, vamos salvar uma pasta de trabalho.
Sub ObjetoPastaDeTrabalho()
'declarar o objeto pasta de trabalho
Dim wkb as Workbook
'atribuir uma pasta de trabalho não salva ao objeto
Set wkb = Workbooks("Pasta1")
'salvar a pasta de trabalho
wkb.SaveAs "C:\dados\PastaTeste.xlsx"
'fechar a pasta de trabalho
wkb.close
'lembre-se de liberar o objeto
Set wkb = Nothing
End Sub
Objeto da Planilha
Da mesma forma, você pode manipular uma planilha ou planilhas depois de declarar a planilha como uma variável. No exemplo abaixo, renomeamos Planilha1 e Planilha2.
Sub ObjetoPlanilha()
Dim wks1 As Worksheet
Dim wks2 As Worksheet
'inicializar os objetos
Set wks1 = Planilha1
Set wks2 = Planilha2
'renomear as planilhas
wks1.Name = "Clientes"
wks2.Name = "Produtos"
'definir os objetos como nada
Set wks1 = Nothing
Set wks2 = Nothing
End Sub
Objeto de Intervalo
O objeto Range é um dos objetos mais úteis para manipular no Excel. No exemplo abaixo, colocamos o intervalo A1 a E1 em negrito e o formatamos com uma borda inferior.
Sub ObjetoIntervalo()
Dim rng1 As Range
'inicializar o intervalo
Set rng1 = Range("A1:E1")
'colocar o intervalo em negrito e definir a borda inferior
rng1.Font.Bold = True
With rng1.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Objeto Forma
Você também pode usar variáveis de objeto para trabalhar com formas.
Sub AdicionarForma()
Dim shp As Shape
'criar a forma
Set shp = ActiveSheet.Shapes.AddShape(msoShapeSmileyFace, 68.25, 225.75, 136.5, 96#)
With shp
'Alterar a cor e o estilo internos
.Fill.ForeColor.RGB = RGB(255, 255, 0)
.Fill.Solid
'Ajustar o sorriso!
.Adjustments.Item(1) = 0.07181
End With
End Sub