Objetos vba: explicação fácil e ilustrada
Visual Basic for Applications é uma linguagem orientada a objetos e para aproveitá-la ao máximo, você precisa entender os objetos do Excel. A pasta de trabalho que você usa no Excel é composta de diferentes objetos.
E há várias propriedades anexadas a um objeto que você pode acessar e vários métodos que você pode usar em/com um objeto. Vamos entender isso com um exemplo.
Pense em um grande supermercado, que possui diferentes seções para produtos, e essas seções também possuem prateleiras e, dentro dessas prateleiras, produtos.
Então se você quiser comprar roupas você tem que ir até a seção de roupas e na seção de roupas você pode ter subseções para homens e mulheres.
E quando você escolhe um tecido, esse tecido teria uma cor, tamanho e tecido específicos (que são as propriedades desse tecido).
Da mesma forma, no VBA, existem objetos estruturados em uma hierarquia.
Modelo de objeto VBA (hierarquia)
No aplicativo Excel, quando você abre uma pasta de trabalho, nessa pasta você tem uma planilha (ou várias planilhas) e nessa planilha você tem células e um intervalo de células.
A hierarquia do Excel começa com o próprio Aplicativo Excel e abaixo está a estrutura que define esta hierarquia:
Digamos que se você quiser fazer referência a uma pasta de trabalho, o código que você escreveu deve ficar assim:
No código acima, você está se referindo à pasta de trabalho “Livro1”.
O que você escreveu é que está se referindo primeiro ao aplicativo Excel e usou “Pastas de trabalho”, que faz parte do objeto Aplicativo.
Agora digamos que você queira ir mais longe e queira fazer referência a uma planilha na pasta de trabalho “Livro1” e o código correspondente seria:
Você sabe o que isso significa, não é? Mas deixe-me dizer a você. No código acima, após consultar a pasta de trabalho “Livro1”, você se referiu à planilha “Planilha1”, que é outra parte da pasta de trabalho.
Vamos um pouco mais longe. Vamos nos referir a uma célula específica da planilha “Planilha1” e o código correspondente seria:
Antes que você pergunte, deixe-me dizer uma coisa. No código acima, você se referiu à célula A1 que está localizada na planilha “Planilha1” da pasta de trabalho “Livro1”.
Quando você se refere a um objeto Range dessa forma, ele é chamado de referência totalmente qualificada.
Nota: O uso do objeto Aplicativo é opcional. Razão? Quando você faz algo em VBA, você já está no aplicativo Excel.
Simplifique a referência a um objeto
No código acima você usou uma referência totalmente qualificada. Isso significa que você informa ao VBA a qual pasta de trabalho, planilha e célula se referir. Mas e se você já estiver na apostila do Livro 1?
Nesse caso, você pode simplesmente consultar a planilha na qual deseja referenciar uma célula, assim como o código abaixo:
Além disso, se a planilha “Planilha1” estiver habilitada, você pode simplesmente consultar a célula ou intervalo de células, assim como o código abaixo:
Saiba mais sobre objetos VBA: Objeto de pasta de trabalho VBA | Objeto de planilha VBA | Objeto de intervalo VBA