Função CreateObject no VBA
Objetos são conceitos muito importantes na codificação VBA e entender 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 exigem 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, definimos a referência para o respectivo objeto usando a função VBA “CreateObject”.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba_.png.webp)
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 Criar Objeto retorna a referência a um objeto iniciado por um componente Active X.
Abaixo está a sintaxe da função CreateObject no VBA
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__2.png.webp)
- 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 for ignorado, ele usará apenas a máquina local.
Exemplo de função Criar objeto no Excel VBA
Abaixo estão os exemplos de VBA CreateObject.
Exemplo 1
Agora veremos como iniciar o aplicativo PowerPoint a partir do Excel usando a função CreateObject no VBA. Abra o arquivo do Excel e vá para a janela do Editor do Visual Basic pressionando a tecla ALT + F11 .
Código:
Sub CreateObject_Example1 () End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__3.png.webp)
Declare a variável como PowerPoint.Application.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__4.png.webp)
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 ocorre porque “PowerPoint” é um objeto externo. Mas nada para se preocupar, declare a variável como "Objeto".
Código:
Sub CreateObject_Example1 () Dim PPT As Object End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__5.png.webp)
Visto que declaramos a variável como “Objeto”, precisamos definir a referência para o 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
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__6.png.webp)
Agora abra a função CreateObject.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__7.png.webp)
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
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__8.png.webp)
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.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__9.png.webp)
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 ter certeza absoluta sobre o código que está escrevendo.
Para a variável “PPT”, use a propriedade “Visível” e defina o status como “Verdadeiro”.
Código:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__10.png.webp)
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 se abre o aplicativo “PowerPoint”.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__11.png.webp)
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
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__12.png.webp)
The moment we declare the variable as an object, it causes late binding, and we need to use the “Set” keyword to set the reference for the required object.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__13.png.webp)
Since we are referencing to excel worksheet from the application excel, enter “Excel. Sheet” in double-quotes.
Code:
Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__14.png.webp)
Once the reference for the excel sheet is set, we need to make it visible to use it. This is similar to how we made the PowerPoint application visible.
Code:
Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__15.png.webp)
Now it will activate the excel worksheet.
Similarly, to initiate an excel workbook from other Microsoft products, we can use the below code.
Code:
Sub CreateObject_Example3 () Dim ExlWb As Object Set ExlWb = CreateObject ("Excel.Application") ExlWb.Application.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__16.png.webp)
Coisas para lembrar sobre CreateObject no VBA
- No VBA, a função CreateObject é usada para fazer referência a objetos.
- A função Criar Objeto causa um processo de ligação tardia.
- Usando a função de criação de objeto, não conseguimos acessar a lista IntelliSense de VBA.