Módulos de clase VBA

Módulos de clase de Excel VBA

Cuando usamos VBA usamos las propiedades y atributos definidos en VBA pero lo que sucede cuando queremos crear nuestras propias propiedades y métodos y atributos, es cuando usamos un módulo de clase en VBA para que podamos tenerlo definido por el usuario, un El módulo de clase tiene su propio conjunto de códigos definidos por el usuario para funciones, propiedades y objetos.

Los módulos de clase se utilizan para crear un objeto. Cuando decimos objetos aunque sea una variable, son programas pequeños. Mientras escribimos el código, generalmente escribimos en módulos. Los módulos básicos son donde escribimos nuestros códigos para hacer el trabajo. También utilizamos el formulario de usuario para crear interfaces gráficas de usuario.

Pero si miras la imagen de arriba, puedes ver "Módulo de clase". Estoy seguro de que no lo ha tocado hasta que esté leyendo esta publicación. Debe preguntarse qué es este módulo de clase VBA cuando todo el trabajo se puede hacer utilizando nuestro módulo regular.

¿Qué es el módulo de clase?

Los módulos de clase permiten a un usuario crear su propio objeto tal como tenemos los objetos incorporados en módulos regulares como "Hojas de trabajo", "Libros de trabajo", "Rango", etc.

Así, usando un módulo de clase, podemos crear objetos personalizados.

La clase tiene una relación directa con los objetos. Por ejemplo, tiene un diagrama de máquina para construir una máquina, pero recuerde que todavía no es una máquina y con este diagrama de máquina podemos construir muchas máquinas como esa.

Por ejemplo, si desea enumerar varias marcas de máquinas, enumere las características de varios modelos.

En máquina tenemos marca, número de serie, potencia de la máquina, color de la máquina, número de motores que intervienen, tipo de combustible del motor, etc.… En lenguaje técnico se denominan “propiedades”.

Con respecto a las propiedades de la máquina, podemos arrancar, podemos apagar, podemos aumentar la velocidad del motor, podemos pausar, etc… Y estos se llaman “Métodos”.

Ejemplo

Puede descargar esta plantilla de clase VBA aquí - Plantilla de clase VBA

Empecemos a rodar la pelota porque siempre es aburrido leer la parte teórica. Para insertar un módulo de clase, vaya a la opción Insertar en el editor visual básico.

Ahora podemos ver un módulo de clase como el siguiente.

Esto es similar al que tenemos arriba como módulo regular. Cambie el nombre del módulo de la clase en la ventana de propiedades. Para ver la ventana de propiedades presione la tecla F4 .

Ahora declare la variable como una cadena.

Sin crear un subprocedimiento en vba necesitamos declarar la variable y también esta vez usando la palabra “Public” y no “Dim”.

Ahora podemos acceder a esta variable en cualquier módulo y módulo de clase.

Ahora ve a un módulo normal y nombra la variable.

Después de declarar la variable, debemos asignar el tipo de datos en VBA, en lugar de asignar el tipo de datos, podemos simplemente dar el nombre del módulo de clase, es decir, CM

Ahora, usando la variable "k" podemos acceder a la variable pública que hemos definido en el módulo de clase, es decir, "Mi valor".

Como podemos ver en la imagen de arriba está mostrando la opción de nombre de variable del módulo de clase para asignarle el valor.

Ahora muestre el valor de la variable asignada en el cuadro de mensaje de VBA.

Código:

 Sub Class_Example () Dim k As New CM k.MyValue = "Hola" MsgBox k.MyValue End Sub 

Ejecute este código usando la tecla F5 o manualmente para mostrar el resultado.

Módulo de clase vs objetos

En la etapa inicial del módulo de clase, todos se confunden con lo que es una clase y lo que es un objeto.

Para entender esto, recuerde nuestro ejemplo anterior de un diagrama de máquina. Lo primero que necesitamos para producir una máquina es diseñar la máquina primero y luego se pueden replicar varias copias con ese diseño.

Ahora relacione esto con nuestro módulo de clase.

  • Aquí el módulo de clase es un diseño. Y el objeto es la copia creada por el diseño.
  • Una cosa más interesante es que necesitamos usar la palabra "nuevo" para crear un objeto desde el módulo de la clase.

A continuación se muestra un ejemplo del mismo.

Una cosa más cuando usamos objetos integrados como hojas de trabajo, libros de trabajo y objetos de rango, no usamos la palabra "nuevo"

Para comenzar los procedimientos con el Módulo de clase, debe saber estas cosas básicas. En los próximos artículos, veremos los ejemplos del siguiente nivel.

Parece difícil de entender esto, cuanto más tiempo pases con un módulo de clase te acostumbrarás.