CLASES en Visual Basic para Aplicaciones (Excel)


En la programación orientada a objetos, una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y contiene el comportamiento que todos los objetos creados a partir de esa clase tendrán. Un objeto creado a partir de una determinada clase se denomina una instancia de esa clase.
Una clase por lo general representa un sustantivo, como una persona, lugar o cosa. Es el modelo de un concepto dentro de un programa de computadora. Fundamentalmente, delimita los posibles estados y define el comportamiento del concepto que representa. Encapsula el estado a través de espacios de almacenaje de datos llamados atributos, y encapsula el comportamiento a través de secciones de código reutilizables llamadas métodos.
Más técnicamente, una clase es un conjunto coherente que consiste en un tipo particular de metadatos. Una clase tiene una interfaz y una estructura. La interfaz describe cómo interactuar con la clase y sus instancias con métodos, mientras que la estructura describe cómo los datos se dividen en atributos dentro de una instancia. Una clase también puede tener una representación (metaobjeto) en tiempo de ejecución, que proporciona apoyo en tiempo de ejecución para la manipulación de los metadatos relacionados con la clase. En el diseño orientado a objetos, una clase es el tipo más específico de un objeto en relación con una capa específica.
Los lenguajes de programación que soportan clases difieren sutilmente en su soporte para diversas características relacionadas con clases. La mayoría soportan diversas formas de herencia. Muchos lenguajes también soportan características para proporcionar encapsulación, como especificadores de acceso.
Crédito: http://es.wikipedia.org/wiki/Clase_(inform%C3%A1tica)

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 empleadose 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.

Dibujo1

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

Crédito: http://vbaparaaplicacionesexcel.blogspot.com.ar/2013/01/clases.html

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s