CreateObject no VBA - Como usar a função CreateObject no VBA?

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”.

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

  • 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

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 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

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

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 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

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”.

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

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.

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

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

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

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.

Artigos interessantes...