VBA – Objetos

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 10, 2023

Os objetos do Excel VBA referem-se a “entidades” únicas compostas de código e dados. O próprio aplicativo do Excel é um objeto, assim como as pastas de trabalho, as planilhas, os intervalos de células e as formas. Cada objeto tem propriedades e métodos associados. Os objetos também podem conter outros objetos e o objeto coleções é usado para se referir a um grupo dos mesmos objetos do Excel.

Neste tutorial, veremos alguns objetos do Excel comumente usados.

Objeto Application (Aplicativo)

O objeto Application refere-se a todo o aplicativo do Excel. O objeto Application contém o objeto workbook (pasta de trabalho).

O código a seguir usa a propriedade WindowState do objeto Application para definir a janela do Excel com o tamanho máximo disponível:

Sub MaximizandoJanelaExcel()

Application.WindowState = xlMaximized

End Sub

Objeto Workbooks

O objeto Workbooks refere-se à coleção de todas as pastas de trabalho do Excel abertas no momento.

O código a seguir usa o método Workbooks.Add para criar uma nova pasta de trabalho e adicioná-la à coleção:

Sub AdicionandoNovaPasta_a_Colecao()

Workbooks.Add

End Sub

Você pode acessar uma pasta de trabalho individual na coleção Workbooks por meio de seu número de índice ou nome. Assim, você poderia se referir a uma pasta de trabalho chamada ExcelWb usando Workbooks(“ExcelWB”).

Objeto Workbook

O objeto Workbook faz parte da coleção Workbooks. O objeto workbook contém a coleção worksheets (planilhas) e a coleção sheets (planilhas, planilhas de gráficos e planilhas de macros). O objeto ActiveWorkbook refere-se à pasta de trabalho que está ativa.

O código a seguir usa o método ActiveWorkbook.Save para salvar a pasta de trabalho ativa atual:

Sub SalvandoPastaAtiva()

ActiveWorkbook.Save

End Sub

Objeto Sheets

O objeto sheets refere-se à coleção de todas as planilhas, planilhas de gráficos e planilhas de macros em uma pasta de trabalho. O código a seguir usa o método Sheets.Add para adicionar uma nova planilha chamada PlanilhaExtra, após a última planilha da pasta de trabalho:

Sub AdicionandoNovaPlanilha()

ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Worksheets(Worksheets.Count), Count:=1, _
Type:=xlWorksheet).Name = "PlanilhaExtra"

End Sub

Observe que a sintaxe do método Sheets.Add é:
Sheets.Add(Before, After, Count, Type) onde:

-Before é opcional e especifica que a nova planilha deve ser adicionada antes de uma planilha existente.

-After é opcional e especifica que a nova planilha deve ser adicionada depois de uma planilha existente.

-Count é opcional e especifica o número de planilhas a serem adicionadas.

-Type é opcional e especifica o tipo de planilha. xlWorksheet adicionaria uma nova planilha, xlChart adicionaria uma nova planilha de gráficos e xlExcel4MacroSheet ou xlExcel4IntlMacroSheet adicionaria uma nova planilha de macros. Se estiver em branco, será usado o padrão xlWorksheet.

Você pode acessar uma planilha individual na coleção Sheets por meio de seu número de índice ou nome. Assim, você pode fazer referência a uma planilha chamada PlanilhaUm usando Sheets(“PlanilhaUm”).

Objeto Worksheets

O objeto Worksheets refere-se à coleção de todas as planilhas em uma pasta de trabalho. O código a seguir usa o método Worksheets.Add para adicionar uma nova planilha:

Sub AdicionarUmaPlanilha()

Worksheets.Add

End Sub

Você pode acessar uma planilha individual na coleção Worksheets por meio de seu número de índice ou nome. Assim, você pode fazer referência a uma planilha chamada PlanilhaDois usando Worksheets(“PlanilhaDois”).

Objeto Worksheet

O objeto worksheet faz parte da coleção Worksheets. O objeto de planilha contém o objeto de intervalo e outros objetos. O objeto ActiveSheet refere-se à planilha que está ativa.

O código a seguir altera a orientação da página da planilha ativa para paisagem:

Sub MudarOrientacaoParaPaisagem()

ActiveSheet.PageSetup.Orientation = xlLandscape

End Sub

Observe que o objeto Sheet contém o objeto PageSetup e sua propriedade orientation está definida como xlLandscape.

Objeto Range

O objeto Range pode se referir a uma única célula ou a um conjunto de células em uma planilha. O código a seguir mostra como usar o método Range.Select para selecionar as células A1:B1:

Sub SelecionarUmIntervalo()

Range("A1:B1").Select

End Sub

Objeto Shapes

O objeto Shapes refere-se à coleção de todas as formas em uma planilha. O código a seguir selecionaria todas as formas na ActiveSheet:

Sub SelecionarTodasAsFormas()

ActiveSheet.Shapes.SelectAll

End Sub

Objeto Shape

O objeto Shape faz parte da coleção Shapes. O código a seguir criaria uma forma de retângulo arredondado e, em seguida, definine a propriedade name do objeto shape:

Sub UsandoObjetoShape()

With Worksheets(1).Shapes.AddShape(msoShapeRoundedRectangle, _
200, 100, 80, 80)
.Name = "Um Retangulo Arredondado"

End With

End Sub

Modelo de Objeto VBA do Excel

O modelo de objeto VBA do Excel descreve a hierarquia de todos os objetos que você pode usar no Excel. Por exemplo, você pode usar o objeto Workbooks para fazer referência a todos os outros objetos, indireta ou diretamente. O código a seguir mostra como selecionar a célula A1, usando a estrutura hierárquica:

Sub UsandoEstruturaHierarquica()

Workbooks("Pasta1").Worksheets("Planilha1").Range("A1").Select

End Sub

Declaração e Atribuição de uma Variável de Objeto

Você pode declarar e atribuir um objeto a uma variável usando as palavras-chave Dim e Set.

Por exemplo:

Dim ws as worksheet
Set ws = ActiveWorkbook.ActiveSheet

O código a seguir mostra como declarar e atribuir um objeto Range a uma variável:

Sub AtribuirIntervaloAVariavel()

Dim rngUm As Object
Set rngUm = Range("A1:C1")

rngUm.Font.Bold = True
With rngUm
.Font.Bold = True
.Font.Name = "Calibri"
.Font.Size = 9
.Font.Color = RGB(35, 78, 125)
.Interior.Color = RGB(205, 224, 180)
.Borders(xlEdgeBottom).LineStyle = xlContinuous
End With

End Sub

O resultado é o seguinte:

resultado intervalo formatado

É essencial entender como os objetos funcionam para dominar o VBA. Você pode aprender mais com nosso Tutorial interativo do VBA.

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