Como sugiere el nombre, la función CreateObject se utiliza para crear objetos.
Pero, ¿por qué usamos el método o función CreateObject si podemos crear directamente un objeto usando la nueva palabra clave?
Bueno, esa es una pregunta válida y tenemos una respuesta adecuada.
La creación de un objeto usando CreateObject se llama Encuadernación tardía. En el enlace tardío, la creación de objetos ocurre en el tiempo de ejecución. No es necesario agregar ninguna referencia. Esto hace que el código VBA sea portátil.
Por ejemplo, si crea una aplicación que se ocupa de otras aplicaciones y utiliza encuadernación anticipada agregando referencias y usando el nuevo palabra clave. Más tarde, transfiere ese código a otra máquina, luego tendrá que agregar las referencias en esa máquina también. Pero si ha utilizado el método CreateObject para crear otros objetos de aplicación, no necesitará agregar las referencias en otras máquinas, en caso de que transfiera o comparta el código.
En este artículo aprenderemos sobre el método CreateObject usando algunos ejemplos.
Sintaxis de la función CreateObject:
Establecer object_name = CreateObject (nombre de clase como cadena, [nombre de servidor]) |
nombre de clase como cadena: Es una variable requerida. Es una cadena que hace referencia al nombre de la aplicación y al tipo de objeto. El nombre de la aplicación y la clase del objeto que se creará deben declararse en AppName.ObjecType. Por ejemplo, si quiero un objeto de aplicación de Word, escribiría "Word.Application". Lo veremos en detalle en ejemplos más adelante.
[nombre del servidor]: Es una variable opcional. Es una cadena del nombre del servidor de red donde se creará el objeto. Si el nombre del servidor es una cadena vacía (""), se utiliza la máquina local. No usaremos esto en este capítulo.
Ahora que conocemos los conceptos básicos de la función CreateObject, usémoslos en algunos ejemplos:
Ejemplo 1: Abra la aplicación Microsoft Word con Excel VBA
Entonces, si quisiéramos usar el enlace temprano, agregaríamos referencias a aplicaciones de palabras usando Herramientas -> Menú de referencias.
Y nuestro código se vería así.
Sub OpenWordApp () Dim wordApp como nuevo Word.Application Dim wordDoc como documento wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
La ventaja de este código es que obtienes la ayuda de la inteligencia de VBA y te muestra el método disponible y las propiedades del objeto que has creado, funcionará perfectamente bien en tu sistema. Pero, si comparte este código con otra persona y esta no ha agregado la referencia a la biblioteca de Microsoft Word desde las herramientas, obtendrá un error.
Para evitar este error, utilice el siguiente código.
Sub OpenWordApp () Dim wordApp como conjunto de objetos wordApp = CreateObject ("Word.Application") Dim wordDoc como objeto wordApp.Visible = True Set wordDoc = wordApp.Documents.Add End Sub
El código anterior funcionará perfectamente en cualquier máquina. Es portátil ya que estamos haciendo un enlace tardío usando el método CreateObject para crear el objeto.
Veamos otro ejemplo:
Ejemplo 2: crear un objeto de libro con la función CreateObject
Si está trabajando con VBA durante un período de tiempo, debe haber creado o agregado libros de trabajo con la palabra clave New. En este ejemplo, lo haremos usando CreateObject.
Sub addSheet () 'Declara una variable de objeto para contener la referencia del objeto'. Atenuar como objeto provoca un enlace tardío. Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") 'Hacer que Excel sea visible a través del objeto Aplicación. ExcelSheet.Application.Visible = True 'Coloque algo de texto en la primera celda de la hoja. ExcelSheet.Application.Cells (1, 1) .Value = "Esta es la columna A, fila 1" 'Guarde la hoja en el directorio C: \ test.xls. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Cierre Excel con el método Quit en el objeto Aplicación. ExcelSheet.Application.Quit 'Suelte la variable de objeto. Establecer ExcelSheet = Nothing End Sub
Así que sí, chicos, así es como se usa el método CreateObject en VBA. Analicemos los beneficios y las deficiencias de la misma.
Ventajas de CreateObject para crear objetos
La principal ventaja de CreateObject es que hace que su código sea portátil (cuando la creación del objeto es la preocupación). Puede compartir el código con cualquier persona sin preocuparse de si han agregado la referencia al programa objeto que usa o no.
Deficiencia de CreateObject
Las deficiencias del método CreateObject son:
Necesita conocer la estructura de la clase que va a utilizar para la creación de objetos.
Una vez que haya creado el objeto, depende totalmente de su memoria para los métodos y propiedades de los objetos, ya que VBA no proporciona ningún intellisense para ayudarlo.
Podemos superar las deficiencias anteriores. Tengo un truco.
Siempre que escribo código que se compartirá con otros, utilizo el primer método para crear objetos (Agregar referencias de herramientas). Esto me ayuda a escribir el código más rápido. Una vez que finalizo el programa VBA y lo he probado, reemplazo el método New con el método CreateObject. Esto hace que el código sea portátil. Puedes usar este truco.
Así que sí, chicos, así es como pueden usar la función CreateObject para crear objetos en VBA. Espero haber podido explicar todo. Si tiene alguna pregunta con respecto a este artículo o cualquier otra pregunta relacionada con VBA, pregúnteme en la sección de comentarios a continuación.
Introducción a Excel VBA UserForms| Explicaré cómo crear un formulario en Excel, cómo usar la caja de herramientas de VBA, cómo manejar las entradas del usuario y finalmente cómo almacenar las entradas del usuario. Repasaremos estos temas usando un ejemplo y una guía paso a paso.
Variables de VBA en Excel| VBA son las siglas de Visual Basic para Aplicaciones. Es un lenguaje de programación de Microsoft. Se utiliza con aplicaciones de Microsoft Office como MSExcel, MS-Word y MS-Access, mientras que las variables de VBA son palabras clave específicas.
Alcance variable de Excel VBA| En todos los lenguajes de programación, tenemos especificadores de acceso a variables que definen desde dónde se puede acceder a una variable definida. Excel VBA no es una excepción. VBA también tiene especificadores de alcance.
Argumentos ByRef y ByVal | Cuando se pasa un argumento como argumento ByRef a una función o sub diferente, se envía la referencia de la variable real. Cualquier cambio realizado en la copia de la variable se reflejará en el argumento original.
Elimine hojas sin mensajes de confirmación usando VBA en Microsoft Excel | Dado que está eliminando hojas usando VBA, sabe lo que está haciendo. Le gustaría decirle a Excel que no muestre esta advertencia y elimine la maldita hoja.
Agregar y guardar un nuevo libro de trabajo usando VBA en Microsoft Excel 2016| En este código, primero creamos una referencia a un objeto de libro de trabajo. Y luego lo inicializamos con un nuevo objeto de libro de trabajo. El beneficio de este enfoque es que puede realizar operaciones en este nuevo libro de trabajo fácilmente. Como guardar, cerrar, borrar, etc.
Mostrar un mensaje en la barra de estado de Excel VBA| La barra de estado en Excel se puede utilizar como monitor de código. Cuando su código VBA es extenso y realiza varias tareas usando VBA, a menudo deshabilita la actualización de la pantalla para que no vea que la pantalla parpadea.
Desactive los mensajes de advertencia con VBA en Microsoft Excel 2016| Este código no solo deshabilita las alertas de VBA, sino que también aumenta la eficiencia de tiempo del código. Veamos cómo.
Articulos populares:
50 accesos directos de Excel para aumentar su productividad | Acelera tu tarea. Estos 50 accesos directos le permitirán trabajar aún más rápido en Excel.
La función BUSCARV en Excel | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas.
CONTAR.SI en Excel 2016 | Cuente valores con condiciones usando esta asombrosa función. No necesita filtrar sus datos para contar valores específicos. La función Countif es esencial para preparar su tablero.
Cómo usar la función SUMIF en Excel | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.