VBA – Objetos
In this Article
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:
É essencial entender como os objetos funcionam para dominar o VBA. Você pode aprender mais com nosso Tutorial interativo do VBA.