VBA – Definir Variáveis de Objeto – Pastas de Trabalho, Planilhas e Muito Mais

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on September 1, 2023

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:

declarar objeto procedimento

ou fora de um procedimento em nível de módulo:

declarar objeto modulo

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:

declarar objeto publico

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:

atribuir sem set

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
vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA