0% encontró este documento útil (0 votos)
62 vistas19 páginas

Elementos Clave de VBA en Programación

El documento describe elementos fundamentales de VBA como conceptos de programación orientada a objetos, programación orientada a eventos, estructura básica de un programa VBA, métodos Sub, tipos de variables, funciones y parámetros de función, y módulos y formularios.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
62 vistas19 páginas

Elementos Clave de VBA en Programación

El documento describe elementos fundamentales de VBA como conceptos de programación orientada a objetos, programación orientada a eventos, estructura básica de un programa VBA, métodos Sub, tipos de variables, funciones y parámetros de función, y módulos y formularios.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

1

ACTIVIDAD 2
ELEMENTOS DEL VBA

FUNDAMENTOS DE PROGRAMACIÓN

MTRO.

JULIAN GUTIERREZ

INTEGRANTES

JUAN ESTEBAN CEPEDA BONILLA


KAREN LISETH PARDO ZEAS

FACULTAD DE INGENIERÍA, CORPORACIÓN UNIVERSITARIA


IBEROAMERICANA INTRODUCCIÓN A LA INGENIERÍA INDUSTRIAL

2023
2

INTRODUCCIÓN

La programación en Visual Basic for Applications (VBA) ofrece un conjunto robusto de


elementos que permiten a los desarrolladores crear scripts, automatizar tareas y mejorar la
funcionalidad de aplicaciones de Microsoft, como Excel, Word y Access. En esta sección,
exploraremos algunos de los elementos fundamentales del VBA y su aplicación práctica.
3

CONCEPTOS FUNDAMENTALES

La programación orientada a objetos (POO) es un enfoque de programación que utiliza


objetos, que son instancias de clases, para organizar y estructurar el código. Aquí hay
algunos conceptos clave asociados con la programación orientada a objetos:

Objetos:
- Los objetos son instancias de clases.
- Cada objeto tiene propiedades (atributos) y comportamientos (métodos).

Clases:
- Las clases actúan como plantillas para crear objetos.
- Definen las propiedades y métodos que los objetos creados a partir de ellas tendrán.

Encapsulamiento:
- El encapsulamiento implica ocultar los detalles internos de implementación y exponer solo
lo necesario.
- Esto se logra mediante el uso de clases para agrupar datos y funciones relacionadas.

Herencia:
- La herencia permite que una clase (subclase) herede propiedades y métodos de otra
clase (superclase).
- Esto facilita la reutilización del código y la creación de jerarquías de clases.

Polimorfismo:
- El polimorfismo permite que un objeto se comporte de diferentes formas según el
contexto.
- Puede adoptar múltiples formas o representar diferentes tipos de objetos.

Abstracción:
- La abstracción implica reconocer las características clave de un objeto y eliminar los
detalles superfluos.
- Esto ayuda a simplificar y representar el problema de una manera más fácil de entender.
4
• Ejemplo en Pseudocódigo:

1. La programación orientada a eventos (POE)

Es un paradigma de programación que se centra en la detección y manejo de

eventos, que son acciones o situaciones que ocurren durante la ejecución de un

programa. Este enfoque es comúnmente utilizado en entornos de desarrollo de

interfaces de usuario, como aplicaciones web, aplicaciones de escritorio y sistemas

interactivos. Aquí hay algunas características clave de la programación orientada a

eventos:
5
• Eventos:

− Los eventos son acciones o situaciones específicas que ocurren durante la

ejecución del programa.

− Ejemplos de eventos incluyen clics de ratón, pulsaciones de teclas, cambios

en los datos, etc.

• Manejadores de Eventos:

− Los manejadores de eventos son funciones o métodos que responden a

eventos específicos.

− Se asocian con eventos particulares y se ejecutan cuando ocurre el evento.

• Asincronía:

− La programación orientada a eventos es a menudo asincrónica, ya que los

eventos pueden ocurrir en cualquier momento y no siguen un flujo de ejecución

lineal.

• Reactividad:

− Se basa en la reactividad, respondiendo a eventos en lugar de seguir un flujo

de control predefinido.

− Permite construir interfaces de usuario interactivas y sistemas que responden

a la entrada del usuario de manera eficiente.

• Ejemplos Prácticos:

− En entornos web, JavaScript es ampliamente utilizado para programación

orientada a eventos, donde se responden a eventos del usuario como clics y

cambios en formularios.
6
− En aplicaciones de escritorio, la POE se implementa a través de bibliotecas y

marcos que permiten la detección y manejo de eventos.

2. Estructura de un programa de VBA.

Un programa de Visual Basic for Applications (VBA) sigue una estructura básica

similar a otros lenguajes de programación. A continuación, se presenta una

estructura simple de un programa VBA:


7
• Explicación:

− Option Explicit: Esta declaración al principio del código requiere la declaración

explícita de todas las variables. Ayuda a prevenir errores tipográficos en los

nombres de las variables.

− Declaraciones de Variables y Constantes Globales: Aquí se declaran

variables y constantes que pueden ser utilizadas en varios procedimientos del

módulo.

− Procedimiento Principal (Sub): Aquí comienza el procedimiento principal.

Puede ser un Sub (para procedimientos sin valor de retorno) o una Function

(para procedimientos con valor de retorno).

− Declaraciones de Variables Locales: Dentro del procedimiento principal, se

pueden declarar variables locales que solo son válidas dentro de ese

procedimiento.

− Instrucciones: Aquí se escriben las instrucciones o el código que realiza la

lógica del programa.

− Llamada a Otros Procedimientos o Funciones: Puedes llamar a otros

procedimientos o funciones desde el procedimiento principal.

− Mostrar un Mensaje (MsgBox): Se puede utilizar MsgBox para mostrar

mensajes emergentes con información.

Este es solo un ejemplo básico. En aplicaciones más complejas, los procedimientos

se dividen en módulos, y se utiliza la programación orientada a objetos para

estructurar el código de manera más eficiente.


8
3. Método Sub de VBA.

En VBA (Visual Basic for Applications), un método Sub (procedimiento) es una

porción de código que realiza una tarea específica, pero no devuelve un valor. El

término "Sub" es una abreviatura de "Subroutine" (subrutina), que es un nombre

más antiguo para los procedimientos sin valor de retorno. Aquí tienes un ejemplo

básico de un método Sub en VBA:

• Explicación:

− Sub Saludar(): Esta línea indica el inicio de un procedimiento Sub llamado

"Saludar". No toma argumentos en este ejemplo.

− MsgBox "¡Hola, Mundo!": Dentro del procedimiento, se utiliza MsgBox para

mostrar un cuadro de mensaje con el texto "¡Hola, Mundo!".

− End Sub: Indica el final del procedimiento Sub.

Para ejecutar este código, puedes llamar al procedimiento Saludar desde el Editor de

VBA o asociarlo a un botón en una hoja de Excel (si estás trabajando en Excel).

Ejemplo de llamada al procedimiento desde otro procedimiento:


9
En este ejemplo, el procedimiento Ejemplo Llamada muestra dos cuadros de mensaje y

llama al procedimiento Saludar entre ellos. La palabra clave Call es opcional en este

caso.

4. Tipos de variables en VBA.

En VBA (Visual Basic for Applications), puedes utilizar varios tipos de variables para

almacenar diferentes tipos de datos. Aquí tienes algunos de los tipos de variables más

comunes en VBA:

• Entero (Integer): Almacena números enteros en el rango de -32,768 a

32,767.

• Largo (Long): Almacena números enteros en un rango más amplio de -

2,147,483,648 a 2,147,483,647.

• Doble (Double): Almacena números de punto flotante (decimales) con mayor

precisión.

• Cadena (String): Almacena texto o cadenas de caracteres.


10
• Booleano (Boolean): Almacena valores verdadero (True) o falso (False).

• Fecha (Date): Almacena fechas y horas.

• Objeto (Object): Almacena referencias a objetos.

• Variant (Variant): Puede almacenar cualquier tipo de dato, se ajusta

automáticamente al tipo necesario.

Estos son algunos de los tipos de variables más comunes en VBA. Es importante elegir

el tipo de variable adecuado según el tipo de datos que planeas almacenar. La

declaración explícita de variables con Option Explicit al principio del módulo es una

buena práctica para evitar errores tipográficos en los nombres de las variables.

5. Función y parámetros de función.

En VBA (Visual Basic for Applications), una función es un bloque de código que

realiza una tarea específica y devuelve un valor. Las funciones se utilizan para

modularizar el código y realizar operaciones que pueden requerir parámetros.

Ejemplo básico de una función en VBA:


11

Function SumarDosNumeros(numero1 As Double, numero2 As Double) As Double

' La función toma dos parámetros (numero1 y numero2) y devuelve la suma de

ambos.

SumarDosNumeros = numero1 + numero2

End Function

6. Módulos y formularios en VBA.

En VBA (Visual Basic for Applications), los módulos y formularios son componentes

clave que te permiten organizar y estructurar tu código y crear interfaces de usuario

interactivas.

• Módulos:

Un módulo en VBA es un contenedor para el código. Puedes tener módulos

independientes o módulos asociados a objetos específicos, como hojas de cálculo

en Excel o formularios en Access. En un módulo, puedes definir procedimientos

(Sub y Function), variables, constantes y otros elementos del código.

• Crear un Módulo:

− En el Editor de VBA, haz clic derecho en el proyecto en el Explorador de

proyectos.

− Selecciona "Insertar" y luego "Módulo".

− Puedes agregar tu código dentro del nuevo módulo.

Ejemplo de un Módulo:
12
• Formularios:

Los formularios en VBA son ventanas que puedes crear para interactuar con el

usuario. Pueden contener controles como botones, cuadros de texto, listas, etc. Los

formularios son comúnmente utilizados en entornos como Excel, Access y otros

programas de Microsoft Office.

1. Crear un Formulario:

2. En el Editor de VBA, haz clic derecho en el proyecto.

3. Selecciona "Insertar" y luego "UserForm".

4. Se abrirá una ventana de formulario donde puedes agregar controles.

• Ejemplo de un Formulario:

1. Abre el Editor de VBA y selecciona "Insertar" -> "UserForm".

2. Agrega un botón (CommandButton) al formulario.

3. Haz doble clic en el botón para abrir el editor de código del formulario.

4. Agrega el siguiente código:

Cierra el editor de código y haz clic en el botón en el formulario para ver el mensaje.

Estos son conceptos básicos sobre módulos y formularios en VBA. Los módulos son

lugares para organizar funciones y procedimientos, mientras que los formularios son

utilizados para crear interfaces de usuario interactivas. Ambos son componentes

fundamentales en el desarrollo de aplicaciones VBA.


13
❖ REALIZAR UN PEQUEÑO PROGRAMA (EN LO POSIBLE CON UN MÉTODO

TIPO SUB DE VBA)

VERSION 1.0 CLASS


BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "Hoja1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
' a.
Sub MostrarMensaje()
' Definir el mensaje que deseas mostrar
Dim mensaje As String
mensaje = "¡Hola! Este es el mensaje de ejemplo."

' Mostrar el mensaje utilizando MsgBox


MsgBox mensaje, vbInformation, "Mensaje de ejemplo"
End Sub
' b.
Sub EjemploVariables()
' Declarar variables enteras
Dim numero1 As Integer
Dim numero2 As Integer

' Declarar variables de tipo string


Dim texto1 As String
Dim texto2 As String

' Asignar valores a las variables


numero1 = 10
numero2 = 5

texto1 = "Hola, "


texto2 = "este es un texto de ejemplo!"

' Realizar operaciones con las variables


Dim suma As Integer
suma = numero1 + numero2

' Mostrar resultados en un mensaje emergente


MsgBox texto1 & texto2 & vbCrLf & "Suma de números: " & suma
End Sub
' c.
Sub IncrementarVariableByte()
' Declarar una variable tipo byte
Dim miByte As Byte

' Asignar un valor menor a 200 a la variable


miByte = 150
14
' Incrementar el valor de la variable en una unidad
miByte = miByte + 1

' Mostrar el valor resultante en un mensaje emergente


MsgBox "El valor de la variable incial es de 150 e incrementado es: " &
miByte, vbInformation
End Sub
' d.
Sub CapturarYMostrarEntero()
' Declarar una variable tipo entera
Dim miEntero As Integer

' Capturar un dato con InputBox y convertirlo a entero


Dim datoCapturado As String
datoCapturado = InputBox("Ingrese un número entero:")

' Validar si el usuario ingresó un número válido


If IsNumeric(datoCapturado) Then
miEntero = CInt(datoCapturado)

' Mostrar el dato capturado en un MsgBox


MsgBox "Número ingresado es: " & miEntero, vbInformation
Else
' Mostrar un mensaje de error si no se ingresó un número válido
MsgBox "Por favor, ingrese un número entero válido.", vbExclamation
End If
End Sub
' e.
Sub CalcularEcuacion()
' Declarar variables
Dim a As Double
Dim b As Double
Dim c As Double
Dim d As Double
Dim e As Double
Dim resultado As Double

' Solicitar al usuario ingresar los valores usando InputBox


a = CDbl(InputBox("Hola, en esta sección se calcula la siguiente
ecuación:" & vbCrLf & vbCrLf & "((a + b) * c - d ^ 2) / e" & vbCrLf & vbCrLf
& "Ingrese el valor de a:", "Entrada de datos"))
b = CDbl(InputBox("Ingrese el valor de b:", "Entrada de datos"))
c = CDbl(InputBox("Ingrese el valor de c:", "Entrada de datos"))
d = CDbl(InputBox("Ingrese el valor de d:", "Entrada de datos"))
e = CDbl(InputBox("Ingrese el valor de e:", "Entrada de datos"))

' Calcular la ecuación


resultado = ((a + b) * c - d ^ 2) / e

' Mostrar el resultado en un MsgBox


MsgBox "El resultado de la ecuación es: " & resultado, vbInformation
End Sub
' f.
Sub GenerarNumerosAleatoriosEnRango()
' Inicializa y se usa para obtener secuencias más aleatorias
15
Randomize
Dim numeroAleatorio As Double
numeroAleatorio = Rnd() * 100 + 1

MsgBox "Número aleatorio entre 1 y 100 generado: " & numeroAleatorio,


vbInformation
End Sub
' g.
Sub OperacionConDecimales()
' operación que da como resultado un número con decimales
Dim resultadoConDecimales As Double
resultadoConDecimales = 17 / 13

' Redondear el resultado a un dígito


Dim resultadoRedondeado As Integer
resultadoRedondeado = Round(resultadoConDecimales, 1) ' Redondear a un
dígito

' Mostrar los resultados en un MsgBox


MsgBox "Resultado con decimales: " & resultadoConDecimales & vbCrLf & _
"Resultado redondeado a un dígito: " & resultadoRedondeado,
vbInformation
End Sub
' h.
Sub ConvertirDoubleAInteger()
' Declarar variables
Dim numeroDouble As Double
Dim numeroEntero As Integer

' Asignar un número menor a 30.000 a la variable Double


numeroDouble = 29.567

' Uso de la función Int() para convertir el número Double a Integer


numeroEntero = Int(numeroDouble)

' Mostrar los resultados en un MsgBox


MsgBox "Número Double: " & numeroDouble & vbCrLf & "Número Integer
(después de la conversión): " & numeroEntero, vbInformation
End Sub
' i.
Sub CalcularResiduo()
' Declarar variables
Dim dividendo As Integer
Dim divisor As Integer
Dim residuo As Integer

' Solicitar ingresar los valores usando InputBox


dividendo = CInt(InputBox("Ingrese el dividendo (número entero):",
"Ingreso de datos"))
divisor = CInt(InputBox("Ingrese el divisor (número entero):", "Ingreso
de datos"))

' Verificar si el divisor es diferente de cero


If divisor <> 0 Then
' Calcular el residuo usando el operador Mod
16
residuo = dividendo Mod divisor

' Mostrar el resultado en un MsgBox


MsgBox "El residuo de la división " & dividendo & " / " & divisor &
" es: " & residuo, vbInformation
Else
' Mostrar un mensaje de error si el divisor es cero
MsgBox "Error: El divisor no puede ser cero.", vbExclamation
End If
End Sub
' j.
Sub IdentificarParImpar()
' Declarar variable
Dim numero As Integer

' Solicitar al usuario ingresar un número


numero = CInt(InputBox("Ingrese un número entero:", "Entrada de datos"))

' Validar si el residuo de la división entre el número y 2 es igual a


cero
' se muestra un mensaje indicando que el número es par de lo contrario
es impar
If numero Mod 2 = 0 Then
MsgBox "El número " & numero & " es par.", vbInformation
Else
MsgBox "El número " & numero & " es impar.", vbInformation
End If
End Sub
' k.
Sub CapturarDatoEnCelda()
' Declarar variables
Dim hoja As Worksheet
Dim datoCapturado As Variant

' Referenciar la hoja de Excel con el nombre real de tu hoja


Set hoja = [Link]("Hoja1")

' Capturar el dato en la celda A2 de la hoja


datoCapturado = [Link]("A4").Value

' Mostrar el dato capturado en un MsgBox


MsgBox "Dato capturado en la celda A4: " & datoCapturado, vbInformation
End Sub
' l.
Sub SumarYConsignar()
' Declarar variables
Dim hoja As Worksheet
Dim celda1 As Range
Dim celda2 As Range
Dim celdaResultado As Range

' Referenciar la hoja de Excel con el nombre real de tu hoja


Set hoja = [Link]("Hoja1")

' Referenciar las celdas a sumar y la celda de resultado


17
Set celda1 = [Link]("A1")
Set celda2 = [Link]("B1")
Set celdaResultado = [Link]("C1")

' Sumar los valores de las dos celdas


Dim resultadoSuma As Double
resultadoSuma = [Link] + [Link]

' resultado en la celda


[Link] = resultadoSuma
MsgBox "Se ha realizado la suma de la celda A1: " & celda1 & " + la
celda B1: " & celda2 & vbCrLf & "El resultado es: " & resultadoSuma & " Que
es asignado a la celda C1", vbInformation
End Sub
' m.
Sub ModificarValorDeCelda()
' Declarar variables
Dim hoja As Worksheet
Dim fila As Integer
Dim columna As Integer

' Referenciar la hoja de Excel con el nombre real de tu hoja


Set hoja = [Link]("Hoja1") '

' Especificar la fila y columna de la celda a modificar


fila = 1
columna = 1

' Utilizar el objeto Cells y el método .Value para modificar el valor de


la celda
[Link](fila, columna).Value = "Modificando valor"
MsgBox "Se ha modificado la celda especificada", vbInformation

End Sub
' n.
Sub SeleccionarCeldaActiva()
' Seleccionar la celda activa
[Link]
MsgBox "Celda seleccionada", vbInformation
End Sub
' o.
Sub ModificarCeldaConOffset()
' Seleccionar una celda en Excel (por ejemplo, B1)
Range("B1").Select

' Utilizar ActiveCell con Offset para modificar el valor de otra celda
[Link](1, 3).Value = "Nuevo Valor modificado"
MsgBox "Celda seleccionada B1 y modificación del valor de otra celda",
vbInformation
End Sub
18
CONCLUSION

En resumen, los elementos de VBA son fundamentales para mejorar la productividad,

la eficiencia y la capacidad de adaptación de las aplicaciones de Microsoft Office.

Proporcionan a los usuarios y desarrolladores herramientas poderosas para

personalizar, automatizar y mejorar la funcionalidad de estas aplicaciones según las

necesidades específicas.
19
BIBLIOGRAFIA

• Introducción a VBA, (DhurataJ, 2023) [Link]

es/office/vba/library-reference/concepts/getting-started-with-vba-in-office

• ¿Qué es la Programación Orientada a Objetos?, (Canelo, 2020)

[Link]

También podría gustarte