Función CreateObject

Crea y devuelve una referencia a un objeto ActiveX.

Sintaxis

CreateObject(class, [ servername ])

La sintaxis de la función CreateObject tiene las siguientes partes:

Parte Descripción
class Obligatorio; Variant (String). El nombre de la aplicación y la clase del objeto a crear.
servername Opcional; Variant (String). El nombre del servidor de red donde se creará el objeto. Si servername es una cadena vacía (""), se usa el equipo local.

El argumentode clase usa la sintaxis appname. objecttype y tiene estas partes:

Parte Descripción
appname Obligatorio; Variant (String). El nombre de la aplicación que proporciona el objeto.
objecttype Obligatorio; Variant (String). El tipo o clase del objeto a crear.

Observaciones

Todas las aplicaciones compatibles con la automatización proporcionan al menos un tipo de objeto. Por ejemplo, una aplicación de procesamiento de texto puede proporcionar un objeto aplicación, un objeto documento y un objeto herramientas.

Para crear un objeto ActiveX, asigne el objeto devuelto por CreateObject a una variable de objeto.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

Este código inicia la aplicación que crea el objeto, en este caso, una hoja de cálculo de Microsoft Excel. Después de crear un objeto, se hace referencia a él en código usando la variable de objeto que haya definido. En el ejemplo siguiente, accede a las propiedades y métodos del nuevo objeto mediante la variable de objeto, ExcelSheet, y otros objetos de Microsoft Excel, incluido el objeto Application y la colección Cells.

' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing

La declaración de una variable de objeto con la cláusula As Object crea una variable que puede contener una referencia a cualquier tipo de objeto. Sin embargo, el acceso al objeto mediante dicha variable es un enlazado en tiempo de ejecución; es decir, el enlace ocurre al ejecutar el programa. Para crear una variable de objeto que de como resultado un enlace anticipado, es decir, se enlace cuando se compile el programa, declare la variable de objeto con un Id. de clase específico. Por ejemplo, puede declarar y crear las siguientes referencias de Microsoft Excel:

Dim xlApp As Excel.Application 
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

La referencia mediante una variable de enlace anticipado puede proporcionar un mejor rendimiento, pero solo puede contener una referencia a la clase especificada en la declaración.

Puede pasar un objeto devuelto por la función CreateObject a una función que espera un objeto como argumento. Por ejemplo, el siguiente código crea y pasa una referencia a un objeto Excel.Application:

Call MySub (CreateObject("Excel.Application"))

Puede crear un objeto en un equipo conectado a la red de forma remota pasando el nombre del equipo al argumento servername de CreateObject. Ese nombre es el mismo que la parte Nombre de equipo de un nombre de recurso compartido; para un recurso compartido denominado "\MyServer\Public", servername es "MyServer".

El siguiente código devuelve el número de versión de una instancia de Excel que se ejecuta en un equipo remoto denominado MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Si el servidor remoto no existe o no está disponible, se produce un error en tiempo de ejecución.

Nota:

Use CreateObject cuando no haya ninguna instancia actual del objeto. Si ya se está ejecutando una instancia del objeto, se inicia una nueva instancia y se crea un objeto del tipo especificado. Para utilizar la instancia actual, o para iniciar la aplicación y cargar un archivo, use la función GetObject.

Si un objeto se ha registrado como objeto de instancia única, solo se crea una instancia del objeto, sin importar cuántas veces se ejecuta CreateObject.

Ejemplo

Este ejemplo usa la función CreateObject para establecer una referencia (xlApp) a Microsoft Excel. Usa la referencia para acceder a la propiedad Visible de Microsoft Excel y, después, usa el método Quit de Microsoft Excel para cerrarla. Por último, se publica la propia referencia.

Dim xlApp As Object    ' Declare variable to hold the reference.
    
Set xlApp = CreateObject("excel.application")
    ' You may have to set Visible property to True
    ' if you want to see the application.
xlApp.Visible = True
    ' Use xlApp to access Microsoft Excel's 
    ' other objects.
    ' Closes the application using the Quit method
xlApp.Quit    

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.