Função CreateObject no VBA
Objetos são conceitos muito importantes na codificação VBA e na compreensão de que o modelo de trabalho de um objeto é bastante complexo. Quando referimos os objetos na codificação VBA, fazemos isso de duas maneiras, ou seja, “Early Binding” e “Late Binding”. “Early Binding” é o processo de definir a referência do objeto da biblioteca de referências do VBA e quando enviamos o arquivo para outra pessoa, eles também precisam definir a referência para esses respectivos objetos. No entanto, “Late Binding” não exige que o usuário defina quaisquer referências de objeto porque na codificação de late binding nós definimos a referência para o respectivo objeto usando a função VBA “CreateObject”.
O que é CreateObject no Excel VBA?
“Criar objeto”, como o próprio nome diz, criará o objeto mencionado a partir do Excel VBA. Portanto, a função Create Object retorna a referência a um objeto iniciado por um componente Active X.
Abaixo está a sintaxe da função CreateObject no VBA
- Classe: O nome do objeto que estamos tentando iniciar e definir a referência para a variável.
- [Nome do servidor]: Este é um parâmetro opcional, se ignorado, usará apenas a máquina local.
Exemplo de função Criar objeto no Excel VBA
Abaixo estão os exemplos de VBA CreateObject.
Você pode baixar este modelo VBA CreateObject Excel aqui - modelo VBA CreateObject ExcelExemplo 1
Agora veremos como iniciar o aplicativo PowerPoint a partir do Excel usando a função CreateObject no VBA. Abra o arquivo excel e vá para a janela do Editor do Visual Basic pressionando a tecla ALT + F11 .
Código:
Sub CreateObject_Example1 () End Sub
Declare a variável como PowerPoint.Application.
Como você pode ver acima, quando começamos a digitar a palavra “PowerPoint”, não vemos nenhuma lista do Intellisense mostrando as pesquisas relacionadas, isso porque “PowerPoint” é um objeto externo. Mas nada para se preocupar declarar a variável como “Objeto”.
Código:
Sub CreateObject_Example1 () Dim PPT As Object End Sub
Visto que declaramos a variável como “Objeto”, precisamos definir a referência ao objeto usando a palavra-chave “Definir”. Ao inserir a palavra-chave “Set”, mencione a variável e coloque um sinal de igual.
Código:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = End Sub
Agora abra a função CreateObject.
Como estamos nos referindo ao objeto externo de “PowerPoint” para o parâmetro “Class” da função Criar Objeto, mencione o nome do objeto externo entre aspas duplas como “PowerPoint.Application”.
Código:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") End Sub
Agora, a função Criar objeto iniciará o aplicativo PowerPoint. Uma vez que o objeto é iniciado, precisamos torná-lo visível usando o nome da variável.
Um dos problemas com o método Create Object ou método de ligação tardia é que não conseguimos ver a lista do intellisense no momento, você precisa estar absolutamente certo sobre o código que está escrevendo.
Para a variável “PPT” use a propriedade “Visible” e defina o estado como “True”.
Código:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub
Para adicionar um slide ao PPT, defina o código VBA da linha abaixo.
Código:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True PPT.Presentations.Add End Sub
Agora execute o código manualmente ou através da tecla F5 e veja o aplicativo “PowerPoint” abrir.
Uma vez que o aplicativo PowerPoint é habilitado usando a variável “PPT”, podemos começar a acessar o aplicativo PowerPoint.
Exemplo # 2
Agora veremos como iniciar um aplicativo Excel usando a função CreateObject no VBA. Mais uma vez, declare a variável como “Objeto”.
Código:
Sub CreateObject_Example2 () Dim ExcelSheet As Object End Sub
No momento em que declaramos a variável como objeto, ela causa vinculação tardia e precisamos usar a palavra-chave “Set” para definir a referência para o objeto necessário.
Como fazemos referência à planilha do Excel no aplicativo Excel, digite “Excel.Sheet” entre aspas duplas.
Código:
Sub CreateObject_Example2 () Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") End Sub
Uma vez que a referência para a planilha do Excel é definida, precisamos torná-la visível para usá-la. Isso é semelhante a como tornamos o aplicativo PowerPoint visível.
Código:
Sub CreateObject_Example2 () Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub
Agora ele ativará a planilha do Excel.
Da mesma forma, para iniciar uma pasta de trabalho do Excel a partir de outros produtos da Microsoft, podemos usar o código abaixo.
Código:
Sub CreateObject_Example3() Dim ExlWb As Object Set ExlWb = CreateObject("Excel.Application") ExlWb.Application.Visible = True End Sub
Things to Remember About CreateObject in VBA
- In VBA, the CreateObject function is used to reference objects.
- Create Object function causes a late-binding process.
- Using create object function we don’t get to access the intellisense list of VBA.