Clase VBA - ¿Cómo crear clases y objetos personalizados en VBA?

Tabla de contenido

Módulo de clase de Excel VBA

La clase VBA nos permite crear nuestra propia función de Objeto en la que podemos agregar cualquier tipo de características, detalles de la línea de comando, tipo de función. Cuando creamos Class en VBA, actúan como una función de objeto totalmente independiente, pero todos están conectados entre sí.

Esto nos ayuda a crear aplicaciones como las que ya existen en VBA y Excel. Por ejemplo, la rueda del ciclo de pedaleo gira. Los pedales y las ruedas son partes del ciclo, pero ambos funcionan de forma independiente para dar la salida como un ciclo en movimiento.

¿Cómo crear clases y objetos personalizados en VBA?

Consideremos un ejemplo de los teléfonos móviles de 3 empresas diferentes, que son Apple, Samsung y Nokia, considerando los teléfonos móviles populares y recientemente lanzados de estas empresas, que son iPhone X, Samsung S8 y Nokia 7+.

Compararemos algunas de las características importantes de estos teléfonos móviles, como la marca, el modelo, el tamaño de la pantalla, el tipo de cámara y el tipo de cargador. Estas son características básicamente importantes sobre esa base. Principalmente comparamos cualquier teléfono móvil. A continuación, hemos mapeado los parámetros discutidos anteriormente en un gráfico.

En la ventana de VBA desde el menú Insertar , seleccione el Módulo de clase, como se muestra a continuación.

Obtendremos la ventana del módulo Clase comenzando con Option Explicit, como se muestra a continuación.

Option Explicit asegura que las variables deben declararse antes de que se utilicen. Si no declaramos ninguna variable y la usamos, entonces el sistema arrojará un error. Ahora en Clase, defina todos los parámetros discutidos de medición de teléfonos móviles con el Público . Esto hará que esos parámetros definidos estén abiertos para su uso en cualquier momento y en cualquier lugar, sin ninguna limitación.

Código:

Option Explicit 'Lista de propiedades Public Brand As String Public Model As String Public ScreenSize As String Public CameraType Como String Public ChargerType Como String

Ahora agregaremos un proceso diferente de operación, características y funciones de un teléfono móvil, como iniciar un teléfono, apagar el teléfono, reproducir música, cargar la batería, etc. con Subcategoría para cada función como se muestra a continuación. Y agregue un cuadro de mensaje en cada bucle de subcategoría para que podamos ver qué métodos se están ejecutando actualmente.

Código:

'Posibles técnicas Sub MobileStarts () MsgBox "El móvil se enciende" End Sub
Sub MobileOff () MsgBox "El móvil se apaga" End Sub
Sub PlayMusic () MsgBox "El sistema de audio está funcionando actualmente" End Sub
Sub BatteryCharge () MsgBox "El cargador está conectado actualmente" End Sub

Esto completa la creación de Class. Antes de continuar, se recomienda cambiar el nombre del módulo de clase. Elija cualquier nombre según sus requisitos, ya que lo cambiamos a Móvil .

Ahora escribiremos un código en un módulo donde veremos y compararemos las características y funciones de cada marca de teléfono móvil. Para esto, necesitamos agregar un Módulo yendo allí debajo del menú Insertar como se muestra en el menú.

Obtendremos un nuevo módulo abierto con Option Explicit habilitado en esto mientras estamos trabajando y creando una clase. Ahora comience a escribir Subcategoría en el nombre de las funciones realizadas como se muestra a continuación.

Podemos cambiar el nombre del Módulo como también lo hicimos para Clase. Esto nos ayuda a mantener la identidad co-relacionada del código VBA creado. Esto se puede hacer desde las ventanas de propiedades, como se muestra a continuación.

Ya hemos definido varias características, funciones y métodos de todas las marcas de teléfonos móviles. Ahora definamos 3 variables en cualquier nombre (preferiblemente en el nombre de la marca del teléfono móvil) y asígnelas a Mobile. Comencemos con el iPhone primero, como se muestra a continuación.

Del mismo modo, haga lo mismo para el resto de la marca de teléfono móvil, como se muestra a continuación.

De esta manera, asignamos la Clase creada a cada variable dimensional de la marca Mobile. Ahora, para cada marca, realice el mismo proceso de asignación de la Clase .

Ahora necesitamos asignar todas las funciones del teléfono móvil y su valor. Para ello, utilice la función Establecer y asígnela a un Nuevo Móvil, como se muestra a continuación.

Ahora abra el bucle With-End para iPhone. Aquí es donde definiremos cada atributo del móvil.

Como podemos ver, hemos asignado todas las características definidas de la marca iPhone de Class con valores específicos como String.

Haga lo mismo con las marcas Samsung y Nokia también.

Ahora usaremos DebugPrint para imprimir la información en la ventana inmediata. Es útil cuando queremos ver una determinada variable en una línea de código. Seleccionaremos diferentes funciones para cada marca móvil, como se muestra a continuación.

Ahora asigne las operaciones funcionales MobileStarts y MobileOff , que definimos en Clase a cada una de las marcas móviles en el mismo módulo junto con el cuadro de Mensaje. Puede omitir el cuadro de mensaje aquí.

Esto completa la asignación de clase a módulo. Ahora compile el código y ejecútelo usando la tecla F5. Veremos el mensaje de cada marca de móvil, como se muestra a continuación.

Now, if you want to know what variables and functions have what kind of values in it, for that open the Local window from the view tab, which will help us getting the details when we compile the code as shown below.

The below code is for your Reference.

Code:

Sub VBA_Class() Dim iPhone As Mobile Dim Samsung As Mobile Dim Nokia As Mobile Set iPhone = New Mobile With iPhone .Brand = "iPhone" .Model = "iPhone X" .ScreenSize = "6.5 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Regular" End With Set Samsung = New Mobile With Samsung .Brand = "Samsung" .Model = "Samsung S8" .ScreenSize = "5.8 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Set Nokia = New Mobile With Nokia .Brand = "Nokia" .Model = "Nokia 7+" .ScreenSize = "6 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Debug.Print "Phone Screen Size is: " & iPhone.ScreenSize Debug.Print "Camera of Samsung is: " & Samsung.CameraType Debug.Print "Charger Type is: " & Nokia.ChargerType iPhone.MobileStarts iPhone.MobileOff MsgBox iPhone.Model Samsung.MobileStarts Samsung.MobileOff MsgBox Samsung.Model Nokia.MobileStarts Nokia.MobileOff MsgBox Nokia.Model End Sub

Pros

  • We can build our own application with a lot of features.
  • Once Class is created, we can update any feature, anytime whenever we require.
  • If we update the code, then also it won’t cause any problem in other parts of the Class.
  • We can test the individual part of the application as per our needs.

Cons

  • Initially, it takes a lot of time to create a class in VBA.
  • People who are new to VBA will find the class very difficult to apply.

Things to Remember

  • As the code can be huge and big, so it’s better to compile the code step-by-step. By doing this, we would avoid the N number of errors, which will be difficult for us to debug and resolve.
  • We can ignore the use of Message Box if you are taking and testing the above-written code.
  • Para las pruebas, puede utilizar técnicas o funciones menores al crear la clase. Esto se puede modificar más adelante cuando queramos agregar más funciones y técnicas de producto.
  • Considere siempre características similares o iguales cuando terminamos la Clase y la asignamos a un Módulo. Esto nos ayudará a comparar las características de diferentes productos.

Articulos interesantes...