domingo, 6 de enero de 2013

CLASES


En VBA una clase es algo tan sencillo como un procedimiento, que contiene datos para manejarlos, y con el que se puede crear objetos.
Para crear una clase primero debemos crearnos un módulo de clase, desde el menú insertar seleccionamos la opción Modulo de clase.

Los módulos de clase presentan dos eventos:

  • Initialize: ocurre cuando se crea una instancia de una clase. Se usa, generalmente para inicializar cualquier dato usado por la instancia de una clase en el código.
  • Terminate: ocurre cuando toda referencia a una instancia de una clase son removidas de memoria al establecer todas las variables que la refieren a un objeto a Nothing o cuando la última referencia al el objeto se encuentra fuera de alcance.

En el siguiente ejemplo creamos un módulo de clase donde declaramos públicamente las variables que utilizaremos en un módulo diferente y crearemos una función que nos devolverá en un mensaje el nombre completo de un supuesto empleado que estamos dando de alta.

Código del Módulo de Clase:
Option Explicit

Public Nombre As String
Public Apellido1 As String
Public Apellido2 As String
Public Direccion As String
Public Provincia As String

Public Function NombreCompleto() As String
NombreCompleto = Apellido1 & " " & Apellido2 & " " & Nombre
End Function

Código del Módulo:

Sub prueba_clase()
Dim empleado As New Clase1
    With empleado
        .Nombre = InputBox("Nombre: ")
        .Apellido1 = InputBox("Primer Apellido: ")
        .Apellido2 = InputBox("Segundo Apellido: ")
        .Direccion = InputBox("Dirección: ")
        .Provincia = InputBox("Provincia: ")
        MsgBox "Empleado: " & .NombreCompleto
    End With
End Sub



Al utilizar New en la variable empleado se crea una nueva instancia del objeto como primera referencia, de forma que no tenemos que utilizar la instrucción Set para asignar la referencia del objeto.



Como vemos en la imagen la variable empleado nos muestra todas las propiedades y métodos creados en el módulo de clase.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.