Que son los módulos de clase en Excel VBA

Siempre e viosto que hay una cosa que se llama modulo de clase pero nunca he visto que hablen sobre eso ni se para que se usan

2 Respuestas

Respuesta
2

Los módulos de clases se usan, como su nombre dice, para crear tus propias clases. Esto es POO (Programación Orientada a Objetos) que en VBA casi nadie usa, no sé por qué todos programan de manera procesal, al menos aquí en Todoexpertos no he visto pregunta o respuesta sobre esto hasta ahora. Yo personalmente programo todo orientado a objetos creando mis propias clases y objetos ya que me parece la mejor manera de programar, más profesional y te abre muchas más opciones en tu aplicación, como por ejemplo, crear un formulario que se pueda Maximizar, Minimizar a la barra de tareas, ponerle icono en la barra de título, y que se comporte como cualquier ventana del sistema operativo, que todos sabemos que los UserForms de Excel no hacen eso.

Un modulo de clase representa una clase. Para crear mas clases, debes crear mas módulos de clases. Dentro de cada modulo define las propiedades y métodos que tendrán tus objetos.

Una propiedad es un valor o una característica del objeto. Un método es una acción que el objeto puede ejecutar.

Por ejemplo, digamos que tienes una hoja en la que agregas información de estudiantes.

Un estudiante tiene un nombre, tiene una edad, pertenece a un curso, tiene una nota. Cada una de esas cosas serian propiedades del estudiante.

Ahora, un objeto Estudiante puede: almacenarse en la hoja, borrarse de la hoja, editarse, cambiarse de curso, cambiar la nota. Esos serian métodos, acciones que el objeto estudiante puede ejecutar.

En un modulo de clases puedes escribir macros como mismo lo harías en un módulo estándar, pero este módulo tiene sus propias rutinas únicas, que son el Property Get y el Property Let.

Con esas rutinas defines la lectura y escritura de una propiedad. Te pondré un ejemplo, volviendo al estudiante.

Para definir su propiedad Nombre, por ejemplo, pondrías el siguiente código en un módulo de clases llamado clsEstudiante:

Private pNombre as String
Public Property Get Nombre() As String
   Nombre = pNombre
End Property
Public Property Let Nombre(Value As String)
   pNombre = Value
End Property

Luego en un módulo estándar crearías el objeto y llamarías a la propiedad Nombre así:

Sub TestCalss()
Dim Estudiante As clsEstudiante
Set Estudiante = New clsEstudiante
Estudiante.Nombre = "JUAN"
End Sub

Y como el objeto es de escritura, pero también de lectura, puedes acceder al nombre usando Estudiante.Nombre

Y el programa devuelve lo que hay almacenado en la propiedad, en este caso JUAN

Obviamente esta es una clase básica y sencilla, pero con este concepto puedes programar lo que sea que imagines.

Respuesta
1

Es para creación de objetos pesonalizados por ejemplo yo los uso cuando quiero que mi modulo standard lea los datos y mediante el modulo de clase les asigne propiedades como darles color y formato, cambiar la letra o hacer operaciones simultaneas como sumas, promedios, restas, desviaciones standard, etc tienen bastantes ventajas usarlos aunque requiere de saber programación bastante avanzada

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas