CreateObject de VBA

Función CreateObject en VBA

Los objetos son conceptos muy importantes en la codificación de VBA y la comprensión de que el modelo de trabajo de un objeto es bastante complejo. Cuando hacemos referencia a los objetos en la codificación VBA, lo hacemos de dos formas, es decir, "Enlace anticipado" y "Enlace tardío". El "enlace anticipado" es el proceso de establecer la referencia del objeto desde la biblioteca de referencias del VBA y cuando enviamos el archivo a otra persona, también es necesario establecer la referencia a esos objetos respectivos. Sin embargo, "Late Binding" no requiere que el usuario establezca ninguna referencia de objeto porque en la codificación de enlace tardío establecemos la referencia al objeto respectivo utilizando la función VBA "CreateObject".

¿Qué es CreateObject en Excel VBA?

"Crear objeto", como dice el propio nombre, creará el objeto mencionado desde Excel VBA. Entonces, la función Create Object devuelve la referencia a un objeto iniciado por un componente Active X.

A continuación se muestra la sintaxis de la función CreateObject en VBA

  • Clase: El nombre del objeto que estamos intentando iniciar y establecer la referencia a la variable.
  • [Nombre del servidor]: este es un parámetro opcional, si se ignora, utilizará solo la máquina local.

Ejemplo de función Crear objeto en Excel VBA

A continuación se muestran los ejemplos de VBA CreateObject.

Puede descargar esta plantilla de Excel CreateObject de VBA aquí - Plantilla de Excel CreateObject de VBA

Ejemplo 1

Ahora veremos cómo iniciar la aplicación de PowerPoint desde Excel usando la función CreateObject en VBA. Abra el archivo de Excel y vaya a la ventana del editor de Visual Basic presionando la tecla ALT + F11 .

Código:

 Sub CreateObject_Example1 () End Sub 

Declare la variable como PowerPoint.Application.

Como puede ver arriba, cuando comenzamos a escribir la palabra "PowerPoint", no vemos ninguna lista intellisense que muestre las búsquedas relacionadas, esto se debe a que "PowerPoint" es un objeto externo. Pero nada de qué preocuparse declarar la variable como "Objeto".

Código:

 Sub CreateObject_Example1 () Dim PPT As Object End Sub 

Dado que hemos declarado la variable como "Objeto", necesitamos establecer la referencia al objeto utilizando la palabra clave "Establecer". Al ingresar la palabra clave "Establecer", mencione la variable y coloque un signo igual.

Código:

 Sub CreateObject_Example1 () Dim PPT As Object Set PPT = End Sub 

Ahora abra la función CreateObject.

Dado que estamos haciendo referencia al objeto externo de "PowerPoint" para el parámetro "Clase" de la función Crear objeto, mencione el nombre del objeto externo entre comillas dobles como "PowerPoint.Application".

Código:

 Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") End Sub 

Ahora la función Crear objeto iniciará la aplicación de PowerPoint. Una vez que se inicia el objeto, necesitamos hacerlo visible usando el nombre de la variable.

Uno de los problemas con el método Create Object o el método de enlace tardío es que no podemos ver la lista intellisense en ese momento, debe estar absolutamente seguro del código que está escribiendo.

Para la variable "PPT", utilice la propiedad "Visible" y establezca el estado como "Verdadero".

Código:

 Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub 

Para agregar una diapositiva a PPT, defina el código VBA de la siguiente línea.

Código:

 Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True PPT.Presentations.Add End Sub 

Ahora ejecute el código manualmente o mediante la tecla F5 y verá que se abre la aplicación "PowerPoint".

Una vez habilitada la aplicación de PowerPoint mediante la variable “PPT” podemos empezar a acceder a la aplicación de PowerPoint.

Ejemplo # 2

Ahora veremos cómo iniciar una aplicación de Excel usando la función CreateObject en VBA. Una vez más declare la variable como "Objeto".

Código:

 Sub CreateObject_Example2 () Dim ExcelSheet como objeto End Sub 

En el momento en que declaramos la variable como objeto, se produce una vinculación tardía y necesitamos usar la palabra clave "Set" para establecer la referencia para el objeto requerido.

Ya que estamos haciendo referencia a la hoja de cálculo de Excel desde la aplicación Excel, ingrese "Excel.Sheet" entre comillas dobles.

Código:

 Sub CreateObject_Example2 () Dim ExcelSheet como conjunto de objetos ExcelSheet = CreateObject ("Excel.Sheet") End Sub 

Una vez que se establece la referencia para la hoja de Excel, debemos hacerla visible para usarla. Esto es similar a cómo hicimos visible la aplicación PowerPoint.

Código:

 Sub CreateObject_Example2 () Dim ExcelSheet como conjunto de objetos ExcelSheet = CreateObject ("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub 

Ahora activará la hoja de trabajo de Excel.

De manera similar, para iniciar un libro de Excel desde otros productos de Microsoft, podemos usar el siguiente código.

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.