Términos generales usados en Office VBA

Ahora que hemos hablado sobre VBA y lenguajes de programación en Excel y otras aplicaciones, estaría bien repasar algunos de los términos más usados y lo que realmente significan. Con esto se espera poder dar mayor contexto y tener una entrada como referencia para futuros temas.

Argumento

Las subrutinas o funciones necesitan poder comunicarse entre sí, y a esto se le conoce como argumentos.

Function esBMW(byVal Reg as String '<--------- Esto es el argumento)

La forma errónea de hacerlo es usando variables globales, mismas que se declaran fuera de los procedimientos y consumen memoria.

Global vEsBMW as Boolean

' Cualquier procedimiento para el valor de vEsBMW aqui

Function esBMW() as Boolean
if vEsBMW = "1234" Then
esBMW = True
Else
esBMW = False
End if
End Function

La forma correcta es pasando un argumento.

Sub RegNumber()
Dim vEsBMW as Boolean
Dim RegNum as String

RegNum = "1234"
vEsBMW = esBMW(RegNum)
End Sub

Function esBMW(byVal Reg as String) as Boolean
if Reg = "1234" Then
   esBMW = True
Else
   esBMW = False
End if
End Function

Esto se conecta con el concepto de ocultación de datos, dado que un argumento nos muestra claramente cómo es que la función se relaciona al resto de código en nuestro proyecto.

Este es usado cuando estamos depurando nuestro código. Podemos establecer un «punto de ruptura» temporal dándole click al margen izquierdo del editor de código o presionando F9 sobre la línea que queremos detener:

O bien podemos poner uno permanente si escribimos «STOP» en una línea de nuestro código.

Sub RegNumber()
Dim vEsBMW As Boolean
Dim RegNum As String
RegNum = "1234"
vEsBMW = esBMW(RegNum)
End Sub

Function esBMW(ByVal Reg As String) As Boolean
Stop  '<-----------------------------------------Aqui se detendra
If Reg = "1234" Then
esBMW = True
Else
esBMW = False
End If
End Function

El uso práctico de esto es examinar diferentes variables o el cómo se comporta una función específica o una subrutina dentro de nuestra aplicación; en particular si buscamos que el código se ejecute a toda velocidad hasta que alcance cierto punto para luego detenerse.

Módulo de clase

Esto lo solemos ver cuando establecemos un tipo de variable por medio del código «type of», como lo son String (texto), Double, Integer, Long, Single (número), hoja de cálculo, rango, forma… Este tema lo tocamos con mucho detalle en esta entrada.

Ocultación de datos

La ocultación de datos es parte del proceso para remover complejidad de programas. En un ambiente laboral, un programa con una función simple y práctica puede tener fácilmente entre 500 y 20,000 líneas de código, por lo que lidiar con esto de forma directa haría cualquier programa casi imposible de manejar.

Mediante la ocultación de datos se asegura que sea más fácil para una persona el poder cambiar, arreglar y modificar un programa, lo cual como resultado ayuda a poder entender la compleja programación que este lleva por detrás.

Modelo de objetos de Excel

A esto le podemos llamar el plano de VBA para manipular Excel en código de programación. Usar el modelo de objetos nos permite poder instruir a Excel o cualquier otra aplicación de Microsoft Office para que realice tareas de forma limpia y clara.

Sub Objects()
Dim WApp As Word.Application '<---------Manipular objetos de Word
Dim PApp As PowerPoint.Application '<---------Manipular objetos de Power Point
Dim OApp As Outlook.Application '<---------Manipular objetos de Outlook
End Sub

Rango de Excel y rango de objeto

Un rango de Excel se refiere a un área dentro de una hoja de cálculo. Como bien sabemos, las hojas de cálculo vienen en un formato de cuadrícula, con columnas marcadas por letras y filas marcadas por números. Así pues, «C10:F16» se refiere a un rango entre las colúmnas 3 fila 10 y las colúmnas 6 fila 16.

El rango de un objeto es el equivalente en código VBA a este rango y es usado para «obtener una referencia» a este rango para luego manipularlo con código. Un ejemplo de un rango de objeto en Excel es mostrado a continuación:

Sub Rango()
Dim rngColor As Range
Set rngColor = Sheets(1).Range("C10:F16")
rngColor.Interior.Color = vbGreen
End Sub

Libro de trabajo de Excel

Este es el nombre oficial que recibe un archivo de Excel, según Microsoft. Un libro de trabajo de Excel puede tener un número no específicado de hojas de cálculo o pestañas (limitado solamente por los recursos del sistema).

El nombre de objeto en VBA para esto es Workbook, el cual es parte de la colección de libros de trabajo, por ejemplo:

Sub Libro()
Dim wb As Workbook
Set wb = ThisWorkbook
MsgBox wb.Name
End Sub

Hoja de cálculo de Excel

Este es el nombre que recibe la página o pestaña dentro del libro de trabajo y es comúnmente llamada hoja de cálculo. Tiene aproximadamente entre 65,000 filas y 256 columnas en versiones hasta Excel 2003; desde Excel 2010 cuenta con 1,048,576 filas y 16,384 columnas.

El nombre de objeto en VBA para esto es igualmente WorkSheet o simplemente «Sheet».

Sub Hoja()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1)
MsgBox ws.Name
End Sub

Programación procedural

Esto se puede definir vagamente como un programa que corre desde el inicio y termina como si se ejecutaran instrucciones en una lista, contrario la programación basada en eventos o programación orientada a objetos. También puede ser usada para definir un conjunto de reglas básicas que se necesitan seguir para escribir un código de calidad.

De ahí viene el nombre «procedural». Por ejemplo, ponemos el código en varios procedimientos en lugar de usar un procedimiento con un largo de mil líneas de código. También cubre reglas tales como solo realizar una función por cada tarea, ocultación de datos, declarar todas las variables locales, usar una convención de nombres o pasar variables entre funciones usando argumentos.

Programación orientada a objetos

O también abreviada como OOP por sus siglas en inglés, se trata de una metodología de programación, siempre y cuando el lenguaje de programación que usemos tenga soporte para programación orientada a objetos.

En la programación orientada a objetos, el código es agrupado dentro de módulos virtuales que emulan a objetos reales. Esto genera un contraste con la programación procedural, que es esencialmente código que lee y ejecuta una lista de comandos.

En la práctica, esto significa que la orientación de objetos intenta replicar el mundo real para poder resolver problemas de forma práctica. Dado que todo es una «cosa», el tener un lenguaje de programación que nos permita emular este hecho facilita el poder desarrollar software.

Modelo de objeto

Dentro de la programación orientada a objetos, esto es el plano base del programa que estamos usando. Es bastante útil conocerlo porque cuando los programas exponen un modelo de objeto para que los programadores lo implementen en programas tales como Excel, Word o Access, el programador del negocio puede navegarlo en código y hacer las cosas de una forma legible, fácil, mantenible y concisa.

Proyecto de VBA

El proyecto de VBA es la representación programática de la aplicación que usamos (Word, Excel, Access) y podemos emitir comandos desde aquí por medio de la ventana inmediata. La representación visual de un proyecto de VBA está en la ventana del proyecto, la cual es una ventana clase «hija» de VBA IDE. Esta nos muestra todos los objetos que podemos controlar o interactuar desde nuestro proyecto VBA.

Variable

Esto nos provee una función similar en un programa a la tecla de memoria en una calculadora, con la única diferencia de que podemos tener un número ilimitado de variables en un programa.

Las variables son usadas para representar una pieza de memoria de la computadora que hemos reservado para guardar un número o texto o incluso alguna forma de objeto.

Para ejemplos de variables declaradas en varios lenguajes de programación, tenemos lo siguiente:

Sub Variables_ejemplo()
Dim i As Integer
Dim j As Integer
For i = 1 To 10 'Reescribe la variable i 10 veces
For j = 1 To 10 'Reescribe la variable j 10 veces
Cells(i, j).Value = i + j
Next j
Next i
End Sub

Editor de macros en VBA / VBA IDE / Entorno de Desarrollo Integrado

Aquí es donde todo el código de macro es escrito, aunque para entender bien esto habrá que explicarlo a detalle en otro momento.

Nos leemos abajo.

Términos generales usados en Office VBA

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Scroll hacia arriba