Manual - Excel Con Macros
Manual - Excel Con Macros
Manual - Excel Con Macros
PARTE I:............................................................................................................................................ 4
ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE FLUJO ............................................ 4
¿Por qué se programa?............................................................................................................... 4
Lenguajes de programación ....................................................................................................... 4
Clasificación de los Lenguajes de Programación.................................................................... 4
Concepto de Algoritmo ................................................................................................................ 5
Características de los Algoritmos .............................................................................................. 6
Lenguajes algorítmicos ................................................................................................................ 6
Pseudocódigo ............................................................................................................................... 7
Operadores aritméticos ............................................................................................................... 7
Palabras claves............................................................................................................................. 8
Estructura básica y ejemplo de un Pseudocódigo .................................................................. 8
Características del Pseudocódigo ............................................................................................. 9
Diagrama de Flujo ...................................................................................................................... 10
Símbolos y significado ............................................................................................................... 10
Reglas al trabajar con un Diagrama de Flujo ......................................................................... 10
Ejemplo 1 – Diagrama de Flujo ................................................................................................ 11
Ejemplo 2 – Diagrama de Flujo ................................................................................................ 12
Ejemplo 3 – Diagrama de Flujo ................................................................................................ 13
Resumen...................................................................................................................................... 14
Glosario ........................................................................................................................................ 14
PARTE II:......................................................................................................................................... 15
TIPOS DE DATOS, ESTRUCTURA CONDICIONAL Y ESTRUCTURAS REPETITIVAS 15
¿Qué son los datos? .................................................................................................................. 15
Tipos de Datos ............................................................................................................................ 15
Datos numéricos ......................................................................................................................... 15
Datos lógicos ............................................................................................................................... 16
Datos Carácter ............................................................................................................................ 16
1
Elementos del Algoritmo ........................................................................................................... 17
Constantes................................................................................................................................... 17
Variables ...................................................................................................................................... 17
Expresiones ................................................................................................................................. 18
Expresiones aritméticas ............................................................................................................ 19
Reglas de prioridad .................................................................................................................... 19
Expresiones lógicas ................................................................................................................... 19
Ejemplo de constantes .............................................................................................................. 20
Uso de acumuladores (contadores) ........................................................................................ 21
Estructuras repetitivas ............................................................................................................... 22
Estructura repetitiva Para .......................................................................................................... 22
Sintaxis de la estructura Para................................................................................................... 23
Ejemplo Para ............................................................................................................................... 24
Estructura repetitiva Mientras ................................................................................................... 24
Sintaxis de la estructura Mientras ............................................................................................ 25
Ejemplo 1 de Estructura Mientras ............................................................................................ 26
Ejemplo 2 de Estructura Mientras ............................................................................................ 27
Estructura repetitiva Repetir ..................................................................................................... 27
Sintaxis Estructura Repetir........................................................................................................ 28
Ejemplo Repetir .......................................................................................................................... 29
Resumen...................................................................................................................................... 30
Glosario ........................................................................................................................................ 30
PARTE III: ....................................................................................................................................... 31
MACROS EN EXCEL .................................................................................................................... 31
Introducción ................................................................................................................................. 31
¿Para qué sirve una Macro? .................................................................................................... 31
¿Cómo crear una Macro? ......................................................................................................... 32
Creación de Macro utilizando la opción de Record Macro .................................................. 34
Creación de Macro utilizando la opción Macros .................................................................... 36
Creación de Macro utilizando el entorno de programación ................................................. 37
Ejecución de Macro .................................................................................................................... 40
• Mediante la opción Developer Code Macros ................................................... 40
2
• Mediante un control ........................................................................................................ 41
• Mediante una imagen .................................................................................................... 44
• Mediante una autoforma u otro elemento ................................................................... 46
Uso de formularios ..................................................................................................................... 48
• Formulario de Datos....................................................................................................... 48
• Hoja de cálculo con controles de formulario .............................................................. 49
• Formulario de usuario en VBA ..................................................................................... 49
Estructura de un procedimiento empleando el entorno de programación VBA................ 52
Subrutinas.................................................................................................................................... 53
Subrutinas y procedimientos propios ...................................................................................... 53
Funciones .................................................................................................................................... 54
Programas en Visual Basic ....................................................................................................... 55
Estructuras condicionales en Visual Basic ............................................................................. 56
Estructuras repetitivas en Visual Basic ................................................................................... 58
• Mientras… Hacer ............................................................................................................ 58
• Repetir… Hasta .............................................................................................................. 58
• Para… Hacer................................................................................................................... 59
ANEXOS .......................................................................................................................................... 60
Anexo 1: Tipos de datos ............................................................................................................ 60
Anexo 2: Principales instrucciones VBA empleadas en laboratorios ................................. 62
Anexo 3: Depuración de una Macro ........................................................................................ 63
Anexo 4: Funciones de texto en Macros ................................................................................ 65
Anexo 5: Otras instrucciones para programar en Macro ..................................................... 66
Anexo 6: La instrucción WorksheetFunction .......................................................................... 68
Anexo 7: Seguridad de macros ................................................................................................ 69
3
PARTE I:
Lenguajes de programación
Un lenguaje de programación es un conjunto de símbolos, caracteres y reglas que les
permiten a las personas comunicarse con la computadora.
Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten
realizar operaciones de entrada/salida, cálculo, manipulación de textos, lógica/comparación
y almacenamiento/recuperación.
4
- Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se
escriben en códigos alfabéticos conocidos como mnemotécnicos para las
operaciones y direcciones simbólicas.
- Lenguaje de Alto Nivel: Son aquellos donde las instrucciones o sentencias son
escritas con palabras similares al lenguaje humano (natural), que en general es en
inglés, por lo que facilita la escritura y comprensión del programa.
Concepto de Algoritmo
En términos generales, un Algoritmo es el método para resolver un determinado problema.
A quien ejecuta las instrucciones definidas para conseguir la tarea, se le llama: Procesador.
Dicho esto, es lógico decir que existirán algoritmos que describen toda clase de procesos,
como por ejemplo: una receta de cocina, las partituras musicales, manual de ensamblado
de una computadora, operación de un equipo pesado, etc. Entonces, un Procesador realiza
un proceso ejecutando el algoritmo correspondiente.
Secuencia del Algoritmo
El siguiente diagrama representa de forma general, el proceso para la resolución de
problemas con la computadora.
5
Características de los Algoritmos
Las características más relevantes de los Algoritmos son:
- Finito: Un algoritmo debe siempre terminar después de un número finito de pasos.
- Definido: Cada paso de un algoritmo debe ser definido en forma precisa,
estableciendo las acciones que se van a efectuar de manera clara y rigurosamente
en cada paso.
- Entradas: Un algoritmo debe tener cero o más entradas. Es decir, cantidades que
se entregan inicialmente al algoritmo antes de su ejecución.
- Salidas: Un algoritmo tiene una o más salidas, es decir, cantidades que tienen una
relación específica respecto a las entradas.
- Efectivo: Significa que todas las operaciones del algoritmo deben ser llevadas a
cabo de forma exacta, sin ambigüedades.
Lenguajes algorítmicos
Un lenguaje algorítmico es una serie de símbolos y reglas que se utilizan para describir de
manera explícita un proceso. Los tipos de lenguaje algorítmico son:
- Gráficos: Son la representación gráfica de las operaciones que realiza un algoritmo
(diagrama de flujo)
6
- No gráficos: Representan de forma descriptiva las operaciones que debe realizar un
algoritmo (pseudocódigo).
Pseudocódigo
Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de
programación, pero con algunas convenciones del lenguaje natural.
Pseudo o seudo, significa “falso”, “imitación” y Código se refiere a las instrucciones escritas
en el lenguaje de programación.
Pseudocódigo no es realmente un código sino una imitación y una versión abreviada de
instrucciones reales para la computadora.
Operadores aritméticos
Los símbolos más usados para operaciones aritméticas son conocidos como Operadores
Aritméticos:
Operador Significado
+ Suma
- Resta
* Multiplicación
/ División
\ División entera (cociente entero), también se representa por div
mod Resto división entera
^ Exponenciación (potenciación)
7
Palabras claves
En los pseudocódigos se utilizan palabras claves, y estas pueden estar en español o en
inglés. Se recomienda utilizar durante el desarrollo del pseudocódigo el mismo idioma
8
Representar en pseudocódigo en inglés, el cálculo del salario de un empleado:
9
Diagrama de Flujo
Los diagramas de flujo son descripciones gráficas de algoritmos, usan símbolos conectados
con flechas para indicar la secuencia de instrucciones y están regidos por ISO (International
Standard Organization) y ANSI (American National Standards Institute).
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan
mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como
introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a
personas ajenas a la computación.
Un diagrama de flujo debe ilustrar gráficamente los pasos o procesos a seguir para alcanzar
la solución de un problema.
Símbolos y significado
A continuación se muestran los símbolos convencionalmente aceptados y más comunes:
10
- Un diagrama de flujo debe estar completamente cerrado, teniendo una continuidad
de principio a fin, no pueden quedar flechas en el aire ni símbolos sin conexión al
diagrama, pues el flujo sería interrumpido.
11
Ejemplo 2 – Diagrama de Flujo
Calcular el promedio de 2 números
12
Ejemplo 3 – Diagrama de Flujo
Calcular el área de un triángulo:
13
Resumen
Glosario
- Algoritmo: Es un conjunto prescrito de instrucciones o reglas bien definidas,
ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos
que no generen dudas a quien deba realizar dicha actividad.
14
PARTE II:
Tipos de Datos
Los tipos de datos simples son los siguientes:
- Numéricos: integer, real
- Lógicos: boolean
- Carácter: char, string
Aunque existen algunos lenguajes de programación que admiten trabajar con otros tipos de
datos complejos.
Datos numéricos
El tipo de datos numéricos es el conjunto de valores numéricos. Éstos pueden
representarse en dos formas distintas:
- Tipo numérico entero (integer)
- Tipo numérico real (real)
- Enteros: El tipo entero es un subconjunto finito de los números enteros. Los enteros
son números complejos, no tienen componentes fraccionarios o decimales y pueden
ser negativos o positivos.
Los enteros también son llamados números de punto o coma fija, y el rango de estos
números suele ser: -32768 a +32767, fuera de este rango se considera que son
números reales.
15
Ejemplos: 5, -15, 20, 1340.
- Reales: El tipo de dato real consiste en un subconjunto de los números reales. Los
números reales siempre tienen un punto decimal y pueden ser positivos o negativos.
Un número real consta de un entero y una parte decimal.
Datos lógicos
El dato de tipo lógico, también conocido como booleano, es aquel dato que solo puede
tomar uno de dos valores:
- Cierto o verdadero (true)
- Falso (False)
Este tipo de datos se utiliza para representar las alternativas (si/no) a determinadas
condiciones. Por ejemplo, cuando se quiere determinar si un valor entero es par, la
respuesta será verdadera o falsa, según sea par o impar dicho número.
Datos Carácter
Los datos de tipo carácter pueden ser de 2 tipos:
- Carácter o char
- Cadena o string
16
La longitud de una cadena de caracteres es el número de ellos comprendidos entre
los separadores o limitadores. Algunos lenguajes tienen datos tipo cadena.
Ejemplos:
o ‘Hola Mortimer’
o “8 de octubre de 1946”
o ‘Sr. Mckenna’
Constantes
Los programas de computadora contienen ciertos valores que no deben cambiar durante la
ejecución del programa, tales valores se llaman constantes. Una constante es una partida
de datos (objetos) que permanecen sin cambios durante todo el desarrollo del algoritmo o
durante la ejecución del programa. Por ejemplo:
- Reales: 1.234, -0.1436, 54437324, 3.374562 x 104
- Carácter:
o Char: ‘B’, ‘+’, ‘4’, ‘;’
o Cadena: ‘Juan Pérez’, “José Luis García”
- Lógicas: verdadero, falso
Variables
De igual forma, existen otros valores que cambiarán durante la ejecución del programa; a
estos valores se les llama variables. Los tipos de variables aceptadas por un lenguaje de
programación suelen ser las ya mencionadas: enteras, reales, carácter, cadena y
booelanas.
17
Una variable que es de un cierto tipo solo puede tomar únicamente valores de ese tipo. Si
se intenta asignar un valor de un tipo a una variable de otro tipo se producirá un error de
tipo.
Una variable se identifica por los siguientes atributos:
- Nombre, que cada uno lo asigna.
- Tipo, que describe el uso de la variable.
Los nombres de las variables, a veces conocidos como identificadores, suelen constar de
varios caracteres alfanuméricos, de los cuales el primero normalmente es una letra. No se
deben utilizar como nombres de identificadores palabras reservadas del lenguaje de
programación.
Por ejemplo:
- A510, Nombres, Notas, Nombre_Apellido
- Los nombres elegidos para las variables deben ser significativos para el programa,
deben tener relación con el objeto que representan, como por ejemplo:
o Nombre (para representar nombres de personas)
o Precios (para representar los precios de diferentes productos)
o Notas (para representar las notas de los alumnos de una clase)
- Muchas veces en los programas se requiere que las variables tengan un valor de
inicio, conocido como inicialización de la variable, por lo que se le podrá asignar un
valor como sigue:
o i: entero
o i=1
Expresiones
Las expresiones son combinaciones de constantes, variables, símbolos de operación,
paréntesis y nombres de funciones especiales, por ejemplo:
- A+(b+3)*c
Aquí los paréntesis indican el orden del cálculo. Cada expresión toma un valor que se
determina tomando los valores de las variables y constantes implicadas y la ejecución de
las operaciones indicadas.
Una expresión consta de operandos y operadores. Según sea el tipo de objetos que
manipulan, las expresiones se clasifican en:
- Aritméticas
- Lógicas
- Carácter
18
El resultado de la expresión aritmética es de tipo numérico; el resultado de la expresión
relacional y de una expresión lógica es de tipo lógico; el resultado de una expresión carácter
es de tipo carácter.
Expresiones aritméticas
Las expresiones aritméticas son análogas a las fórmulas matemáticas. Las variables y
constantes son numéricas (real o entera) y las operaciones son las aritméticas.
Reglas de prioridad
Las expresiones que tienen dos o más operandos requieren unas reglas matemáticas que
permitan determinar el orden de las operaciones, se denominan reglas de prioridad o
precedencia y son:
- Las operaciones que están encerradas entre paréntesis se evalúan primero. Si
existen diferentes paréntesis anidados (interiores unos a otros), las expresiones más
internas se evalúan primero.
- Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente
orden de prioridad:
o Operador exponencial (^, o bien **)
o Operadores *, /, \
o Operadores div y mod
o Operadores +, -
Expresiones lógicas
La expresión lógica o booleana, siempre tiene como valor verdadero o falso. Recuerde que
existen dos constantes lógicas: verdad (true) y falso (false) y que las variables lógicas
pueden tomar sólo estos dos valores.
19
Las expresiones lógicas se forman combinando constantes lógicas, variables lógicas y otras
expresiones lógicas, utilizando los operadores lógicos not, and y or, y los operadores de
relación.
Ejemplo de constantes
20
Uso de acumuladores (contadores)
21
Estructuras repetitivas
Las estructuras repetitivas nos permiten iterar un proceso un determinado número de veces.
Se dividen en:
- Para (For)
- Mientras (While)
- Repetir (Do – While)
22
Sintaxis de la estructura Para
- Desde: Indica la variable que se utilizará y el valor que tendrá cuando el bloque de
código se ejecute por primera vez, i = 1.
- Hasta: Debe hacer referencia a la misma variable indicada en el desde, indica una
sentencia lógica, que al momento de cumplirse detendrá el ciclo.
23
- Incremento: Es el incremento de la variable contado, y puede ser positivo o
negativo.
- Bloque de sentencias: Es el conjunto de líneas que se ejecutarán en forma
repetitiva.
Ejemplo Para
Se desea mostrar los 10 primeros números pares y luego su suma:
24
Sintaxis de la estructura Mientras
25
- Mientras: Marca el inicio del bloque de código que se repetirá en forma cíclica.
- Condición: Se refiere a una comparación lógica que se evaluará en cada ejecución
del ciclo, si esta operación lógica entrega un resultado verdadero continúa
ejecutando el bloque de código, en caso contrario saldrá del ciclo y continuará con
la línea de código que está a continuación del Fin Mientras.
- Fin Mientras: Indica el término del bloque de código que se repetirá en forma cíclica.
26
Ejemplo 2 de Estructura Mientras
Calcular el promedio de 4 notas
Esta estructura tiene varias formas de decir, en inglés es: Do Until, otra forma de indicar
en castellano es: Repetir_Hasta o Hacer_Mientras.
Cual fuese la forma de expresarse, este tipo de ciclo es muy similar a la estructura anterior,
pero se diferencian del momento en que se evalúa la condición. En esta estructura primero
se hace el bloque de sentencias ejecutables, por lo menos una vez y luego se verifica la
condición.
El bloque de sentencias se ejecutará nuevamente cuando se evalúe la condición y ésta sea
verdadera y termina el ciclo cuando la condición sea falsa.
27
Sintaxis Estructura Repetir
28
- Bloque de sentencias: Es el conjunto de instrucciones que se ejecuta.
- Condición: Si se evalúa como verdadera el bloque de sentencias es ejecutado
nuevamente, si es falsa, se termina el ciclo.
Ejemplo Repetir
Se desea mostrar los números impares del 1 hasta el 15, pero de mayor a menor:
29
Resumen
Excel Avanzado
Glosario
30
PARTE III:
MACROS EN EXCEL
Introducción
Las macros en Excel son un conjunto de instrucciones que se ejecutan de manera
secuencial por medio de una orden de ejecución, por medio de un lenguaje de programación
de alto nivel.
En el caso de Microsoft Excel el lenguaje empleado para el uso de Macros es VBA (Visual
Basic for Applications).
La herramienta Microsoft Excel cuenta con un “Editor de Visual Basic” o también conocido
como “Editor VBA”, que permite la creación y/o mantenimiento de las Macros que se tengan
disponibles.
31
Las Macros ayudan a eliminar tareas repetitivas del trabajo cotidiano al permitirnos utilizar
mejor nuestro tiempo en el análisis de los datos y en la toma de decisiones.
32
A continuación debemos ver, en la barra de título de Excel, que el libro se ha guardado
correctamente, con la extensión XLSM:
• Hacer clic con el botón derecho del mouse sobre la cinta de opciones:
33
Se debe luego visualizar la ficha correspondiente en la cinta de opciones:
Nombre de la
Macro
Dónde se va a
guardar
34
Una vez ingresada la configuración, la opción Record Macro cambia a Stop Recording:
A partir de ese momento todas las acciones que se realicen en el libro activo de Excel se
registrarán en la Macro. Una vez que se ha detenido la grabación, se ha generado la nueva
macro, la cual puede ser vista (y/o ejecutada) desde la opción Developer Code
Macros:
35
Creación de Macro utilizando la opción Macros
La creación de una Macro se puede realizar mediante la opción Developer Code
Macros.
Nombre de la
nueva Macro
Una vez que se hace clic en el botón Create, se activa el entorno de programación VBA,
para que podamos ingresar las instrucciones correspondientes (código) de la nueva Macro
que estamos creando.
36
Entre Sub y End Sub se
debe ingresar el código de
la Macro
37
Una vez activado el entorno de programación reconocemos las siguientes partes:
Explorador
Ventana de
de proyectos
código
Ventana de
propiedades
Libro Excel
habilitado para
Macros
“Paquete” donde
se almacenan los
códigos de las
Macros del Libro
38
La creación de una Macro se puede realizar mediante el ingreso directo de código Visual
Basic en el entorno de programación VBA del libro activo.
Sub <nombre_nueva_macro> y
presionamos Enter. Se debe generar
automáticamente una nueva línea y
el comando End Sub al final.
39
Ejecución de Macro
La ejecución de una Macro se puede hacer de las siguientes maneras:
40
Posteriormente se elige la Macro que se desea ejecutar y se hace clic sobre el botón
Run:
• Mediante un control
Para hacer uso de los controles, nos dirigimos a la opción Developer Controls
Insert; luego se elige de la lista el control que se desea emplear. En el ejemplo
vamos a insertar un control Command Button (ActiveX Control):
41
Se dibuja el control en un lugar de la hoja de cálculo, obteniéndose lo siguiente:
42
A través de esta ventana podemos cambiar alguna propiedad del control, con el
objetivo de comprender de mejor manera el uso del control generado. En nuestro
ejemplo cambiaremos la propiedad Caption (Etiqueta):
Con lo que
obtenemos
Una vez generado (y modificado) el control, hacemos doble clic encima de éste para
ingresar las instrucciones que se realizarán cuando se haga clic en el botón:
43
Guardamos los cambios y regresamos al libro de Excel:
Una vez que se ha regresado al libro de Excel, debemos salir del modo de diseño,
para lo cual debemos hacer clic en la opción correspondiente
Hacer clic
Finalmente, hacer clic encima del botón generado para la ejecución de la Macro:
44
Una vez insertada, cambiar el formato si es necesario y hacer clic con el botón
derecho del mouse. Se debe identificar en el menú contextual la opción Assign
Macro. Hacer clic encima de esa opción.
45
• Mediante una autoforma u otro elemento
De igual manera que con una imagen, la Macro se puede ejecutar mediante una
autoforma. Como ejemplo, se inserta la siguiente autoforma en la hoja de cálculo
activa.
Una vez insertada la autoforma, se siguen los mismos pasos realizados con la
imagen.
46
De igual manera, se siguen estos pasos para ejecutar una Macro mediante otro
elemento (p.ej. un diagrama SmartArt).
47
Uso de formularios
Los formularios en Excel son un método para ingresar datos a nuestras hojas y son de
mucha utilidad porque nos ayudan a evitar errores en la captura de información. Podemos
comparar los formularios de Excel con los formularios impresos en papel.
• Formulario de Datos
• Hojas de cálculo con controles de formulario o controles ActiveX
• Formularios de usuario en VBA
• Formulario de Datos
Podemos mostrar al usuario la información de una sola fila de una tabla. En este
formulario se puede hacer la edición de la información, crear un nuevo registro para
la tabla o buscar un dato específico. No se puede modificar su diseño.
48
• Hoja de cálculo con controles de formulario
Podemos crear formularios de entrada de datos muy útiles. Por ejemplo, podemos
agregar a nuestra hoja de Excel un control de cuadro combinado para facilitar la
selección de los elementos. De igual manera, podemos agregar otros controles,
como son: botones de comando, cuadros de lista, casillas de verificación, etc.
49
Una vez que se ha creado el formulario de usuario, se arrastran y sueltan los
controles que están disponibles desde el Cuadro de Herramientas:
50
Luego le hacemos doble clic encima del botón generado, para poder ingresar las
instrucciones que se van a realizar cuando hagamos clic sobre ese botón:
Tener en cuenta que esta nueva Macro sólo se ejecutará dentro del formulario. Por
lo tanto no se puede visualizar en la lista de Macros general o mediante el módulo
correspondiente.
Para activar el formulario creado desde una hoja de cálculo en Excel, debemos
generar un botón de comando (recomendable ActiveX) y al hacer doble clic sobre
éste ingresar la siguiente instrucción (previamente se va a cambiar el nombre del
botón de comando):
51
Finalmente, guardamos los cambios, regresamos a la hoja de cálculo activa, salimos
del modo diseño y hacemos clic encima del botón. A continuación, se debe activar
el formulario con todo el contenido generado:
• Subrutina
• Función
52
Subrutinas
Se denomina subrutina a una porción de código que tiene como principal función ejecutar
una o varias determinadas tareas. Éstas tienen un nombre para identificarlas y luego
llamarlas para poder utilizarlas. Una subrutina tiene la siguiente estructura:
Inicio de
la
Sub <nombre_subrutina>
subrutina
a Tarea1
Tarea2
….
Fin de la
subrutina End Sub
La siguiente subrutina se crea al hacer doble clic encima de un botón de comando, insertado
en una hoja de cálculo:
Las subrutinas tienen un principio y un fin y éstas pueden tener distinto tipo de alcance, o
sea pueden ser de tipo privadas o públicas. En este ejemplo se tiene una subrutina o
procedimiento de tipo Privado, esto quiere decir que la podemos utilizar sólo en el formulario
o módulo donde está declarada o escrita.
Si quisiéramos que estos procedimientos se puedan llamar desde otro formulario, lo que
tendríamos que hacer es cambiar el alcance del procedimiento, en vez de Private Sub
cambiarlo por Public Sub. Si hacemos esto, ese procedimiento de código puede ser
utilizado desde cualquier parte del proyecto.
53
procedimiento debe ser escrito en un lugar vacío de la ventana de código, es decir no se
puede crear un procedimiento dentro de otro.
Por ejemplo, se tiene la siguiente subrutina propia:
Para finalmente ejecutar ambas subrutinas, haciendo clic encima del botón de comando.
Funciones
Las funciones son casi exactamente iguales a las subrutinas, con respecto a la forma en
que se las llama y se las crea o declara en el código. La diferencia fundamental es que
éstas, luego de ejecutar el código que tengan en su interior, retornan un valor, y este valor
luego lo podemos utilizar para una determinada tarea. En cambio las subrutinas, sólo
ejecutan el código que contienen y luego terminan.
Para declarar o crear una función podríamos escribir lo siguiente:
En este caso, la función pide dos valores (valor1 y valor2, de tipo Integer) y debe retornar
un valor de tipo Long (ver los tipos de valores en el anexo Nro. 1). Las funciones pueden
retornar tipo de datos: numéricos, de cadenas, de fecha, arreglos y vectores.
54
Para llamar a la función anterior podríamos hacerlo de la siguiente manera:
En este caso, el control Label1 llamaría a la función Total; la función realizaría la suma de
los valores pasados como parámetros y por último el valor final de la suma se lo asignaría
al control Label1 en su propiedad Caption.
Donde:
En el ejemplo anterior, se tuvo una ejecución secuencial del programa. Existen casos en
que debemos hacer uso de otras formas de ejecución, las cuales se basan en estructuras
condicionales y repetitivas. A continuación se detallan esas estructuras.
55
Estructuras condicionales en Visual Basic
La ejecución de un programa es según el cumplimiento o no de una o varias condiciones.
A continuación se muestra un ejemplo que determina, mediante un programa, si un alumno
está aprobado o desaprobado, en base a su nota final:
Pseudocódigo Código VBA
Donde:
• If … Then… Else… End If: Representa el uso de una estructura condicional, que
analiza si la nota final es mayor o igual a 13, y de acuerdo a ello, determina si el
alumno está aprobado o desaprobado.
56
Donde:
• And: Permite unir dos o más condiciones a ser analizadas con la estructura
condicional IF
En este caso, donde se desea analizar dos o más condiciones, se puede utilizar la
instrucción SELECT – CASE. A continuación se muestra un ejemplo de ello, donde se
desea determinar si un producto es categoría A, B o C:
Pseudocódigo Código VBA
Donde:
57
Estructuras repetitivas en Visual Basic
En términos de programación, un bucle (estructura repetitiva) es una instrucción que nos
permitirá ejecutar repetidamente un conjunto de instrucciones hasta que se no cumpla la
condición que hayamos especificado. Los bucles también son conocidos como ciclos. Se
dividen en:
• Mientras… Hacer
• Repetir… Hasta
58
• Para… Hacer
Como se puede ver, para trabajar correctamente una estructura repetitiva es necesario
trabajar con variables que sean CONTADORES o ACUMULADORES. Según estructura
repetitiva este tipo de variable tiene las siguientes características:
Mientras… Repetir…
59
ANEXOS
60
String (longitud En función de la 0 a 2.000 millones de caracteres Unicode
variable) plataforma de aprox.
implementación
UInteger 4 bytes 0 a 4.294.967.295 (sin signo)
ULong 8 bytes 0 a 18.446.744.073.709.551.615
(1,8...E+19 †) (sin signo)
User- En función de la Cada miembro de la estructura tiene un
Defined(estructura) plataforma de intervalo de valores determinado por su tipo
implementación de datos y es independiente de los intervalos
de valores correspondientes a los demás
miembros.
UShort 2 bytes 0 a 65.535 (sin signo)
Variant 16 bytes Almacena cualquier tipo de valor (numérico y
no numérico)
61
Anexo 2: Principales instrucciones VBA empleadas en laboratorios
62
Anexo 3: Depuración de una Macro
Cuando nos encontramos con errores en nuestras macros podemos depurar el código
utilizando el Editor de Visual Basic, para encontrar fácilmente los errores que pueda
contener nuestro código VBA. Por ejemplo, consideremos la siguiente macro:
Para iniciar con la depuración del código podemos seleccionar la opción del menú Debug
> Step Into o simplemente pulsar la tecla F8.
Esto hará que se inicie la ejecución en la primera línea, la cual se mostrará con un fondo
amarillo indicando que esa instrucción es la que está por ejecutarse.
63
Para continuar con la depuración debemos pulsar de nuevo la tecla F8 hasta llegar al final
del código. Cada vez que pulsamos la tecla F8 suceden las siguientes cosas:
El mensaje nos advierte que el objeto no admite esa propiedad o método y se está refiriendo
al objeto Range en donde el método Valor no está escrito de manera correcta y por lo tanto
el depurador de VBA no reconoce dicha propiedad. Pulsamos el botón Aceptar / OK para
cerrar el cuadro de diálogo y poder corregir el error en el código.
64
Anexo 4: Funciones de texto en Macros
Para mostrar el resultado de cada ejemplo se puede hacer uso de la instrucción Msgbox.
FUNCIONES PARA MANEJO DE CADENAS
Función Descripción Ejemplo
Len Devuelve la longitud de una cadena Dim rpta As Integer
Dim nombre as String
Nombre = “Juan Perez”
rpta = Len( nombre )
UCase Devuelve el contenido de una cadena Dim xmay As String
en mayúsculas xmay = UCase( nombre )
LCase Devuelve el contenido de una cadena Dim xmin As String
en minúsculas xmin = LCase( nombre )
Left Devuelve una sub cadena desde la Dim lcad As String
izquierda de una cadena lcad = Left(nombre,5)
Right Devuelve una sub cadena desde la Dim rcad As String
derecha de una cadena rcad = Right(nombre,4)
Mid Devuelve una sub cadena de Dim mcad As String
cualquier ubicación dentro de la mcad = Mid(nombre,2,5)
cadena
InStr Devuelve la posición donde se Dim rpta As Integer
encuentra una sub cadena dentro de rpta = InStr(nombre, "Per")
una cadena
Str Convierte un número a cadena Dim cad As String
cad = Str(123)
Val Convierte una cadena numérica a Dim rpta as Integer
valor numérico rpta = Val(cad)
Trim Elimina espacios en blanco ubicados Dim cad as String
al inicio o final de una cadena cad = Trim(nombre)
String Permite crear una cadena repitiendo Dim cad As String
un mismo carácter n veces cad = String(10,”A”)
Space Permite crear una cadena Dim cad As String
conformada por n espacios en blanco cad = Space(10)
65
Anexo 5: Otras instrucciones para programar en Macro
66
Format Convierte un valor Dim MiTiempo, MiStr
en un formato MiTiempo = #17:04:23#
diferente MiStr = Format(Time, “Long Time”)
MiStr = Format(MiTiempo, “hh:mm:ss AMPM”)
Msgbox MiStr
67
Anexo 6: La instrucción WorksheetFunction
Para utilizar funciones de Excel dentro del código Visual Basic, se puede emplear la
instrucción siguiente:
Como se puede ver, ya se tienen acceso a funciones principales de Excel para hacer
cálculos complejos.
68
Anexo 7: Seguridad de macros
Para realizar la configuración de la seguridad de macros, debemos dirigirnos en el libro de
Excel que estamos trabajando las Macros, a la opción: Developer Code Macro
Security.
69
Donde se debe establecer la seguridad que tendrá el uso de las Macros, una vez que se
cierre el libro y se vuelva a abrir.
La lista que se puede ver resume las diferentes configuraciones de seguridad de macros.
En todos las configuraciones, si el software antivirus instalado funciona con Microsoft Office
y el libro contiene macros, el libro se escanea en busca de virus conocidos antes de que se
abre.
• Deshabilitar todas las macros sin notificación: Haga clic en esta opción si no
confía en las macros. Todas las macros en los documentos y las alertas de seguridad sobre
las macros están deshabilitadas. Si hay documentos que contienen macros sin firmar en
las que confía, puede colocar estos documentos en una ubicación de confianza. Los
documentos de las ubicaciones de confianza se pueden ejecutar sin ser revisados por el
Centro de confianza del sistema de seguridad.
70