Nota: La función, método, objeto o propiedad descrita en este tema se deshabilita si el Servicio de expresiones de Microsoft Jet se ejecuta en modo de espacio aislado, lo que impide la evaluación de expresiones potencialmente no seguras. Para obtener más información sobre el modo de espacio aislado, busca "modo de espacio aislado" en la Ayuda.

Crea y devuelve una referencia a un objeto ActiveX.

Sintaxis

CreateObject ( class [, servername] )

La sintaxis de la función CreateObject tiene estos argumentos:

Argumento

Descripción

clase

Requerido. Variant (String). El nombre de la aplicación y la clase del objeto que se va a crear.

Nombredeservidor

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.

La argumento de clase usa la sintaxis nombre_de_aplicación.tipo_objeto y tiene estas partes:

Parte

Descripción

Appname

Requerido. Variant (String). El nombre de la aplicación que proporciona el objeto.

Objecttype

Requerido. Variant (String). El tipo o clase del objeto que se va 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 Application , un objeto Document y un objeto Toolbar .

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

Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.

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

En este ejemplo, automatizaremos un objeto de hoja de cálculo de Excel desde una base de datos de Access. Este código inicia la aplicación creando el objeto, en este caso, una hoja de cálculo de Microsoft Excel. Una vez creado un objeto, se hace referencia a él en código mediante la variable de objeto que definió. En el ejemplo siguiente, se obtiene acceso a las propiedades y métodos del nuevo objeto mediante la variable de objeto, ExcelSheety otros objetos de Excel, incluidos el objeto Application y la colección de 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

Al declarar una variable de objeto con la cláusula As Object , se crea una variable que puede contener una referencia a cualquier tipo de objeto. Sin embargo, el acceso al objeto a través de esa variable está enlazado con retraso; es decir, el enlace se produce cuando se ejecuta el programa. Para crear una variable de objeto que da como resultado el enlace anticipado, es decir, enlace cuando se compila el programa, declare la variable de objeto con un id. de clase específico. Por ejemplo, puede declarar y crear las siguientes referencias de Excel:

Dim xlApp As Excel.Application Dim xlBook As Excel.WorkbookDim xlSheet As Excel.WorkSheetSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet = xlBook.Worksheets(1)

La referencia a través de 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 código siguiente crea y pasa una referencia a un objeto Excel.Application:

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

Puede crear un objeto en un equipo en red remoto pasando el nombre del equipo al argumento servername de CreateObject. Ese nombre es el mismo que la parte del nombre de la máquina de un nombre de recurso compartido: para un recurso compartido denominado "\\MiServidor\Público", el nombre del servidor es "MiServidor".

Nota:  Consulta la documentación COM (consulta Microsoft Developer Network) para obtener información adicional sobre cómo hacer que una aplicación sea visible en un equipo en red remota. Puede que tenga que agregar una clave del Registro para la aplicación.

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

Dim xlApp As ObjectSet 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 usar la instancia actual o iniciar la aplicación y hacer que cargue un archivo, use la función GetObject .

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

Ejemplo

En este ejemplo se usa la función CreateObject para establecer una referencia (

xlApp

) a Excel. Usa la referencia para tener acceso a la propiedad Visible de Excel y, a continuación, usa el método Quit de Excel para cerrarlo. Por último, se libera la referencia en sí.

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.xlApp.Quit    ' When you finish, use the Quit method to close Set xlApp = Nothing    ' the application, then release the reference.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.