Manual - Excel Con Macros

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 70

INDICE

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:

ALGORITMOS, PSEUDOCÓDIGO Y DIAGRAMAS DE


FLUJO

¿Por qué se programa?


La principal razón para que las personas aprendan lenguajes y técnicas de programación
es utilizar la computadora como herramienta para resolver problemas. La resolución de un
problema exige al menos los siguientes pasos:
- Definición o análisis del problema
- Diseño del algoritmo
- Transformación del algoritmo en un programa
- Ejecución y validación del programa

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.

Clasificación de los Lenguajes de Programación


Los lenguajes de programación se clasifican en:
- Lenguaje máquina: Son aquellos cuyas instrucciones son directamente entendidas
por la computadora y no necesitan de una traducción posterior, por lo que el CPU
puede comprender y ejecutar el programa. Las instrucciones en lenguaje máquina
se expresan en lenguaje binario: 0 y 1.

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

Estructura básica y ejemplo de un Pseudocódigo


A continuación se muestra el esquema de un pseudocódigo:

8
Representar en pseudocódigo en inglés, el cálculo del salario de un empleado:

Características del Pseudocódigo


Los pseudocódigos se caracterizan por:
- Mantener una identación o sangría adecuada para la fácil identificación de los
elementos que lo componen.
- Permitir la declaración de los datos (constantes y/o variables) manipulados por el
algoritmo.
- Disponer de un conjunto pequeño y completo de palabras reservadas que permiten
expresar: las acciones elementales, las primitivas de composición de acciones, y la
definición de acciones con nombre.
Ventajas de Pseudocódigo vs. Diagrama de Flujo
- Ocupa menos espacio en una hoja de papel.
- Permite representar en forma fácil operaciones repetitivas complejas.
- Es muy fácil pasar de Pseudocódigo a un programa en algún lenguaje de
programación.
- Si se siguen las reglas se puede observar claramente los niveles que tiene cada
operación.

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:

Reglas al trabajar con un Diagrama de Flujo


- El sentido de un diagrama de flujo generalmente es de arriba hacia abajo.
- En un símbolo solo puede entrar una flecha de flujo, si varias líneas se dirigen al
mismo símbolo, se deben unir en una sola flecha.
- Las líneas de flujo no deben cruzarse, para evitar los cruces se utilizan los
conectores.
- De un símbolo, excepto en el de decisión, solo puede salir una línea de flujo.
- Los símbolos Terminal, Conector dentro de página y Conector fuera de página, solo
pueden estar conectados al diagrama por una sola flecha, ya que por su naturaleza
es imposible que tenga una entrada y una de salida.
- Los rombos de decisión tendrán siempre una sola flecha de entrada y dos o tres
flechas de salida, según la cantidad de alternativas que se presentan.

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.

Ejemplo 1 – Diagrama de Flujo


El siguiente Diagrama de Flujo tiene por objetivo encontrar la suma de 2 números leídos
por teclado y mostrar el resultado:

- Se lee el primer número y se guarda en A.


- Se lee el segundo número y se guarda en B.
- Se suma A y B y se almacena en C.
- Se muestra el resultado en C.

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.

- Pseudocódigo: Es una descripción de alto nivel, compacta e informal del principio


operativo de un programa informático u otro algoritmo.

14
PARTE II:

TIPOS DE DATOS, ESTRUCTURA CONDICIONAL Y


ESTRUCTURAS REPETITIVAS

¿Qué son los datos?


El primer objetivo de toda computadora es el manejo de la información o datos. Estos datos
pueden ser las cifras de ventas de un supermercado o las calificaciones de una clase. Un
dato es la expresión general que describe los objetivos con los cuales opera una
computadora.
La mayoría de las computadoras pueden trabajar con varios tipos de datos. Los algoritmos
y los programas correspondientes operan sobre datos.
En lenguajes de alto nivel aparece el concepto de Tipos de Datos, así como su
representación.

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.

Pero en la notación científica no siempre se puede expresar el número con un


máximo de 8 dígitos, por lo que se utiliza la notación en coma flotante con
exponenciales positivos o negativos.
Ejemplos:
o De coma fija: 0.08, 3.7452, -8.12, 3739.41, 3.0
o De coma flotante: 4.8672 x 109, 3.675201 x 10-12

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

- Carácter: El tipo de dato carácter (char) es el conjunto finito y ordenado de


caracteres que la computadora reconoce. Un dato tipo carácter contiene un solo
carácter.
Los caracteres que reconocen las diferentes computadoras no son estándar; sin
embargo, la mayoría reconoce los siguientes caracteres alfabéticos y numéricos:
o Caracteres alfabéticos (A, B, C, …, Z) (a, b, c, …, z)
o Caracteres numéricos (1, 2, …, 9, 0)
o Caracteres especiales (+, -, *, /, ^, . , ; . < , >, $, …)

- Cadena: Una cadena (string) de caracteres es una sucesión de caracteres que se


encuentran delimitados por una comilla (apóstrofe) o dobles comillas, según el tipo
de lenguaje de programación.

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’

Elementos del Algoritmo


Para la elaboración de un algoritmo es necesario contar con una serie de elementos que
nos permitirán resolver el problema que se nos plantea, los datos podrán ser almacenados
en variables, habrán datos que serán constantes y será necesario muchas veces hacer
cálculos a través de expresiones de diferente tipo, siendo las más comunes las expresiones
numéricas.
A continuación se desarrollarán:
- Constantes
- Variables
- Expresiones

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)

Estructura repetitiva Para


Al ciclo Para, es el conocido ciclo For, y también se le conoce en castellano como ciclo
Desde_Hasta.
En esta estructura se sabe de antemano la cantidad de veces que debe ejecutarse el ciclo,
este número de veces lo determina una variable contadora (i), que siempre deberá ser de
tipo entera y donde se especifica el límite inferior y el límite superior.
Por cada ciclo luego de ejecutar el bloque de instrucciones, la variable i se incrementará o
disminuirá en 1.
Una vez que el contador llega al valor del límite superior, el ciclo termina.

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:

Estructura repetitiva Mientras


La estructura Mientras es conocida en los lenguajes de programación como ciclo While.
Una de sus características es que verifica si la condición se cumple antes de ingresar al
bloque de código que se va a repetir.
El límite de ejecuciones estará dado por la condición, y se ejecutará mientras la condición
devuelva un valor lógico verdadero.

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.

Ejemplo 1 de Estructura Mientras


Se desea mostrar los 10 primeros números y su suma:

26
Ejemplo 2 de Estructura Mientras
Calcular el promedio de 4 notas

Estructura repetitiva Repetir

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

- For: Se usa cuando de antemano se conoce la cantidad de elementos.

- While: La condición que evalúa el bucle se pregunta al inicio.

- Do – While: La condición que evalúa el bucle se pregunta al final

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.

¿Para qué sirve una Macro?


Las Macros en Excel son útiles, entre otros aspectos, porque permiten la automatización
de tareas repetitivas, tales como generación de gráficos, creación de encabezados de
boletas y/o facturas, entre otras.

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.

¿Cómo crear una Macro?


En primer lugar debemos generar un libro Excel habilitado para Macros. Para tal fin, es
necesario guardar el libro activo con este tipo de archivo.

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:

Para disponer de las distintas herramientas de programación de Macros, se debe habilitar


la ficha de “Developer”. Para hacer ello, se deben seguir los siguientes pasos:

• Hacer clic con el botón derecho del mouse sobre la cinta de opciones:

• En la ventana que se va a mostrar activar Developer, luego hacer clic en OK.

33
Se debe luego visualizar la ficha correspondiente en la cinta de opciones:

Donde se tienen los grupos y opciones correspondientes a la programación de Macros:

Creación de Macro utilizando la opción de Record Macro

La creación de una Macro se puede realizar mediante la opción Developer Code


Record Macro:

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:

Se debe visualizar en la lista la Macro generada:

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

Creación de Macro utilizando el entorno de programación


Es importante que reconozcamos las partes principales del entorno de programación VBA
en Excel, al cual podemos acceder mediante la opción Developer Code Visual Basic,
o mediante la combinación de teclas Alt + F11.

37
Una vez activado el entorno de programación reconocemos las siguientes partes:

Explorador
Ventana de
de proyectos
código

Ventana de
propiedades

Viendo en detalle el explorador de proyectos tenemos lo siguiente:


Guardar los
Ejecutar Macro
cambios Detener Macro
Regresar a la hoja
de cálculo

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.

Ubicándonos debajo de la última


Macro, ingresamos el comando:

Sub <nombre_nueva_macro> y
presionamos Enter. Se debe generar
automáticamente una nueva línea y
el comando End Sub al final.

De igual manera, se debe visualizar la nueva macro ingresada mediante el entorno de


programación,

39
Ejecución de Macro
La ejecución de una Macro se puede hacer de las siguientes maneras:

• Mediante la opción Developer Code Macros


• Mediante un control
• Mediante una imagen
• Mediante una autoforma u otro elemento

• Mediante la opción Developer Code Macros

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:

Se pueden visualizar las propiedades del control agregado, haciendo uso de la


opción Developer Controls Properties

Con lo que obtenemos una ventana como la 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:

Principalmente se invoca a la Macro ingresando su nombre:

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:

• Mediante una imagen


La ejecución de una Macro se puede realizar mediante la inserción de una imagen
en una hoja de cálculo del libro Excel. Para ello primero insertamos una imagen:

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.

Se activa la ventana con la lista de Macros disponibles en el libro de Excel activo, y


se elige cuál es la Macro que se va a ejecutar desde la imagen. Luego, se hace clic
en el botón OK.

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.

Existen tres tipos generales de formulario:

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

• Formulario de usuario en VBA


Los formularios de usuario en VBA, también conocidos como UserForm, son
cuadros de diálogo que hacen uso de controles de formulario para solicitar
información al usuario. Estos formularios son creados desde el Editor de Visual
Basic y administrados desde código VBA.

Para crear un formulario de usuario, debemos ingresar al entorno de programación


y mediante la opción Insert UserForm

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:

Se va dando forma al formulario, de acuerdo a lo solicitado o según criterio. Se


ingresa el diverso código Visual Basic a partir del uso de controles. Como ejemplo
ingresaremos un botón de comando en el formulario (cambiándole en la propiedad
Caption la etiqueta del botón):

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:

Estructura de un procedimiento empleando el entorno de programación


VBA
Una macro es un procedimiento que se crea en el entorno de programación VBA. Este
entorno, al basarse en el lenguaje de programación Visual Basic, convierte el procedimiento
en una de las siguientes:

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

Subrutinas y procedimientos propios


También podemos crear nuestros propios Procedimientos y Subrutinas de código, para
ejecutar una determinada tarea. Para crear un procedimiento se debe escribir la palabra
Private Sub o Public Sub (depende del alcance), seguida del nombre del procedimiento (un
nombre que queramos) (interpretamos que el nombre del procedimiento equivale al nombre
de la Macro que se está generando) y los parámetros (opcionalmente). Además el

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:

Si queremos llamar esta subrutina podemos utilizar la anterior subrutina:

E invocar luego a la última subrutina, ingresando su nombre:

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.

Programas en Visual Basic


Para crear adecuadamente un programa (en nuestro caso una Macro), debemos considerar
instrucciones específicas, como se tiene a continuación: (ejemplo: suma de dos ingresados)

Pseudocódigo Código VBA


1. Inicio Sub sumar_dos_numeros()
2. Declarar variables num1, num2, resultado Dim num1, num2, resultado As Integer
3. Pedir número 1 num1 = Range("A2").Value
4. Num1  número 1 num2 = Range("A3").Value
5. Pedir número 2 resultado = num1 + num2
6. Num2  número2 MsgBox "La suma es: " & resultado
7. resultado = num1+num2 End Sub
8. Escribir resultado
9. Fin

Donde:

• Sub…. End Sub: Indican el Inicio y Fin de una subrutina o función


• Sumar_dos_numeros: Nombre de la subrutina (en nuestro caso, el nombre de la
Macro)
• Dim: Indica la declaración de variables
• Num1, num2, resultado: Nombre de las tres variables que se utilizan en la subrutina
• As Integer: Indica que una o varias variables van a ser de tipo Integer
• Num1 = Range(“A2”).Value: El valor que tenga la celda A2 se asigna a la variable
Num1
• Msgbox: Genera un cuadro de diálogo en pantalla para mostrar algún mensaje

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

1. Inicio Sub detalle_alumno()


2. Declarar variable nota_final Dim nota_final As Integer
3. Pedir nota final del alumno nota_final = Range("A2").Value
4. Nota_final  nota final del alumno If nota_final >= 13 Then
5. Si nota_final >= 13 entonces MsgBox "Alumno aprobado"
Escribir “Alumno aprobado” Else
Sino MsgBox "Alumno desaprobado"
Escribir “Alumno desaprobado” End If
Fin Si End Sub
6. Fin

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.

Se puede tener además el análisis de varias condiciones, para determinar un resultado. En


este caso, se tiene el ejemplo siguiente sobre la validación de una nota (entre 0 y 20):
Pseudocódigo Código VBA

1. Inicio Sub validar_nota()


2. Declarar variable nota Dim nota As Integer
3. Pedir nota alumno nota = Range("A2").Value
4. nota  nota alumno If nota >= 0 And nota <= 20 Then
5. Si nota>=0 y nota<=20 entonces MsgBox "Nota Válida"
Escribir “Nota Valida” Else
Sino
MsgBox "Nota Inválida"
Escribir “Nota Invalida”
End If
Fin Si
End Sub
6. Fin

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

1. Inicio Sub categoria_producto2()


2. Declarar variable categoría Dim categoria As String
3. Pedir categoría del producto categoria = Range("A2").Value
4. Categoria  categoría del producto Select Case categoria
5. Seleccionar Categoria Case "A"
Caso sea A MsgBox "Producto es Cat. A"
Escribir “Producto es cat. A” Case "B"
Caso sea B MsgBox "Producto es Cat. B"
Escribir “Producto es cat. B” Case Else
Caso contrario MsgBox "Producto es Cat. C"
Escribir “Producto es cat. C” End Select
Fin Selección End Sub
6. Fin

Donde:

• Select Case categoria: Analiza el valor que tiene la variable categoria


• Case “A”: Se especifica qué va a pasar cuando la variable categoría sea igual a “A”
• Case Else: Se especifica qué va a pasar cuando la variable categoría no
corresponda a ningún caso indicado
• End Select: Indica el final de la instrucción Select Case

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 (While)


• Repetir… Hasta (Do – While)
• Para… Hacer (For)
Para aplicar cada estructura repetitiva se verá el ejemplo de mostrar en pantalla del número
1 al 5.

• Mientras… Hacer

Pseudocódigo Código VBA

1. Inicio Sub numeros()


2. Declarar variable contador Dim contador As Integer
3. Contador = 1 contador = 1
4. Mientras contador<=5 hacer While contador <= 5
Escribir contador MsgBox contador
Contador = Contador+1 contador = contador + 1
Fin Mientras Wend
5. Fin End Sub

• Repetir… Hasta

Pseudocódigo Código VBA


1. Inicio Sub numeros1()
2. Declarar variable contador Dim contador As Integer
3. Contador = 1 contador = 1
4. Repetir Do
Escribir contador MsgBox contador
Contador = Contador+1 contador = contador + 1
Hasta que contador>5 Loop Until contador > 5
5. Fin End Sub

58
• Para… Hacer

Pseudocódigo Código VBA

1. Inicio Sub numeros2()


2. Declarar variable contador Dim contador As Integer
3. Para contador  1 hasta 5 con paso 1 For contador = 1 To 5
hacer Step 1
Escribir contador MsgBox contador
Fin Para Next
4. Fin End Sub

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:

• Para… Hacer: El contador toma el valor inicial en la misma estructura. Aumenta su


valor automáticamente.

• Mientras… Hacer / Repetir… Hasta: Se adiciona una instrucción para que el


contador tome un valor inicial y otra instrucción para aumentar su valor.

Mientras… Repetir…

59
ANEXOS

Anexo 1: Tipos de datos


Tipo de Dato Asignación de Intervalo de valores
almacenamiento
nominal
Boolean En función de la True o False
plataforma de
implementación
Byte 1 byte 0 a 255 (sin signo)
Char (carácter 2 bytes 0 a 65535 (sin signo)
individual)
Date 8 bytes 0:00:00 (medianoche) del 1 de enero de 0001
a 11:59:59 p.m. del 31 de diciembre de 9999.
Decimal 16 bytes 0 a +/-
79.228.162.514.264.337.593.543.950.335
(+/-7,9... E+28) † sin separador decimal; 0 a
+/-7,9228162514264337593543950335 con
28 posiciones a la derecha del decimal;
el número distinto de cero más pequeño es
+/-0,0000000000000000000000000001 (+/-
1E-28) †
Double (punto 8 bytes -1,79769313486231570E+308 a -
flotante de precisión 4,94065645841246544E-324 † para los
doble) valores negativos;
4,94065645841246544E-324 a
1,79769313486231570E+308 † para los
valores positivos
Integer 4 bytes -2.147.483.648 a 2.147.483.647 (con signo)
Long (entero largo) 8 bytes -9.223.372.036.854.775.808 a
9.223.372.036.854.775.807 (9,2...E+18 †)
(con signo)
Objeto. 4 bytes en plataforma Cualquier tipo puede almacenarse en una
de 32 bits variable de tipo Object
8 bytes en plataforma
de 64 bits
SByte 1 byte -128 a 127 (con signo)
Short (entero corto) 2 bytes -32.768 a 32.767 (con signo)
Single (punto flotante 4 bytes -3,4028235E+38 a -1,401298E-45 † para los
de precisión sencilla) valores negativos;
1,401298E-45 a 3,4028235E+38 † para los
valores positivos

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

Función / Instrucción Descripción


ActiveCell.FormulaR1C1 = "mes" Ingresa “mes” en la celda activa (empleando
grabación de macro)
Range("F7").Select Selecciona la celda F7
Range(“B5”).Value = Range(“B2”).Value + Suma de los valores que tienen las celdas B2 y
Range(“B3”).Value B3, y el resultado se ingresa en la celda B5
Selection.ClearContents Borra todo el contenido de las celdas
seleccionadas
Selection.ClearFormats Borra todos los formatos de las celdas
seleccionadas
ActiveCell.Value = codigo Ingresa en la celda activa el valor que tiene la
variable codigo
ActiveCell.Offset(0,1).Value = nombre En la celda de la siguiente columna de la misma
fila de la celda activa ingresa el valor que tiene la
variable nombre ( sintaxis:
ActiveCell.Offset(fila, columna) )

A = Range(“A1”).Value Asigna en la variable A el contenido de la celda


A1
Llegada = minute(hora) Obtiene los minutos del valor de la variable hora y
lo asigna a la variable llegada
Sueldo = Cells(ActiveCell.Row, Obtiene el valor que tiene la celda activa y lo
ActiveCell.Column).Value asigna a la variable Sueldo
For Each celda In Selection.Cells Va a realizar una acción en cada celda de una
selección
Cells(1,1).Value = 5 Ingresa el número 5 en la celda ubicada en la
columna A y en la fila 1 (sintaxis de la instrucción:
Cells(fila, columna) )
Resultado = Obtiene el promedio de los números ingresados
WorksheetFunction.Average(Range(“A1:A en el rango A1:A10 y lo asigna a la variable
10”)) Resultado
Worksheets(“datos”).ShowDataForm Dentro de la hoja de cálculo llamada datos
muestra el formulario de datos
Unload me Cierra el formulario en ejecución (formulario de
usuario)
formIngresoNotas.Show Muestra el formulario de usuario llamado
formIngresoNotas
Dim hojaDatos as Worksheet Declara la variable hojaDatos de tipo Hoja de
Cálculo
Set hojaDatos = Worksheets(“datos”) Asigna todo el contenido de la hoja de cálculo
llamada datos a la variable hojaDatos
totalFilas = hojaDatos.Rows.Count Obtiene la cantidad de filas de la variable
hojaDatos y la asigna a la variable totalFilas
nuevaFila = Verifica cual es la última fila con información en la
hojaDatos.Cells(totalFilas,”A”).End(xlUp). columna A, obtiene el número de fila siguiente y
Offset(1,0).Row lo asigna a la variable nuevaFila
Worksheets(“datos”).Cells(1,1).Value Verifica qué valor se tiene en la celda A1 de la
hoja de cálculo llamada datos
ActiveCell.EntireRow.Delete Borra toda la fila donde pertenece la celda activa

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:

• Excel ejecuta la instrucción que está sombreada en color amarillo


• Si Excel encuentra un error en la instrucción, entonces enviará un mensaje de
error.
• Por el contrario, si no hubo error en dicha instrucción, entonces Excel marcará en
amarillo la siguiente instrucción a ejecutar.
De esta manera podemos ejecutar cada una de las líneas de nuestro código VBA y validar
que no exista error alguno. Regresando a nuestro ejemplo, al momento de llegar a la tercera
instrucción y pulsar la tecla F8, Excel enviará el siguiente mensaje de error:

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

Instrucción Descripción Ejemplo


Add Crea una nueva ActiveWorkbook.Sheets.Add
hoja de cálculo, Before:=Worksheets(Worksheets.Count)
tabla, o libro con
Macro. La nueva
hoja de cálculo se
vuelve en la
activa
Address Muestra una Set mc = Worksheets("Sheet1").Cells(1, 1)
celda de con MsgBox mc.Address() ' $A$1
diferentes MsgBox mc.Address(RowAbsolute:=False) ' $A1
referencias MsgBox mc.Address(ReferenceStyle:=xlR1C1) ' R1C1

Autofit Cambia el ancho Worksheets(“Sheet1”).Columns(“A:I”).AutoFit


de las columnas Worksheets(“Sheet1”).Rows(“1:3”).AutoFit
del rango Worksheets(“Sheet1”).Range(“A1:E1”).Columns.AutoFit
indicado
Add Crea una nueva Worksheets.Add Count:=2, Before:=Sheets(1)
hoja de cálculo y
lo adiciona a la
lista.
Call Invoca a una Call Proc1
macro Call Proc2(“Hola Mundo”) En caso la macro necesite
que se pase un argumento
Columns Indica la acción a Worksheets(“Sheet1”).Columns(1).Font.Bold=True
realizar en una
columna de una
hoja de cálculo
Copy Copia la hoja de Worksheets(“Sheet1”).Copy
cálculo hacia otra. After:=Worksheets(“Sheet3”)
Count Muestra la Worksheets.Count
cantidad de hojas
de cálculo en el
libro
CurrentRegion Devuelve un Worksheets(“Sheet1”).Activate
objeto Range que ActiveCell.CurrentRegion.Select
representa la
región actual. La
región actual es
un rango limitado
por cualquier
combinación de
filas y columnas
en blanco.
DateSerial Devuelve un valor Dim LDate as Date
de fecha DateSerial(2004, 6, 30)
DateSerial(2004-1, 6, 30)
LDate = DateSerial(2004, 5, 31)

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

InputBox Permite ingresar Dim miValor as Variant


un valor por miValor = InputBox(“Ingresa un dato”)
teclado Cells(1,1) = miValor
Move Mueve la hoja de Worksheets.Move After:=Sheets(Sheets.Count)
cálculo al final del
libro
Paste Pega el contenido Worksheets(“Sheet1”).Range(“C1:C5”).Copy
de una hoja de ActiveSheet.Paste
cálculo Destination:=Worksheets(“Sheet1”).Range(“D1:D5”)
PrintPreview Muestra una vista Worksheets("Sheet1").PrintPreview
previa como se
tendrá impresa la
hoja indicada
PrintOut Imprime la hoja ActiveSheet.PrintOut
indicada Worksheets.(“Sheet1”).PrintOut From:=2, To:=3
imprime desde la página 2 hasta la página 3
Worksheets.(“Sheet1”).PrintOut From:=2, To:=3,
Copies:=3 como el ejemplo anterior, con 3 copias
vbCrLf Saltos de línea en Mensaje = “Hola, “ + vbCrLf + “Espero que todo vaya
una cadena bien.” + vbCrLf + “Saludos.”

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.

Luego se activará la siguiente ventana:

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.

• Deshabilitar todas las macros con notificación: Esta es la configuración


predeterminada. Haga clic en esta opción si desea deshabilitar las macros, pero sí quiere
recibir alertas de seguridad si hay macros. Así, podrá elegir cuándo quiere habilitar esas
macros caso por caso.

• Deshabilitar todas las macros excepto las firmadas digitalmente: Esta


configuración es la misma que la de la opción Deshabilitar todas las macros con
notificación, con la excepción de que si la macro cuenta con una firma digital emitida por un
editor de confianza, la macro se puede ejecutar. Si no ha confiado el editor, se le notificará.
Así, podrá elegir habilitar las macros firmadas o confiar en el editor. Todas las macros sin
firmar están deshabilitadas sin notificación.

• Habilitar todas las macros (no se recomienda, se podría ejecutar código


peligroso): Haga clic en esta opción para permitir que todas las macros se ejecuten.
Utilizando esta configuración no es recomendable porque su equipo es vulnerable a
posibles códigos perjudiciales.

• Confiar en el acceso al modelo de objetos de proyectos de VBA: Esta


configuración es para desarrolladores y se usa para bloquear o deshabilitar el acceso
mediante programación al modelo de objeto de VBA desde cualquier cliente de
automatización. En otras palabras, proporciona una opción de seguridad para el código que
se escribe para automatizar un programa de Office y se manipula mediante programación
el entorno y modelo de objetos de Microsoft Visual Basic para aplicaciones (VBA). Es una
configuración por usuario y por aplicación, y niega el acceso de manera predeterminada.
Esta opción de seguridad dificulta que los programas no autorizados generen códigos
perjudiciales que se replican automáticamente. Para que los clientes de automatización
tengan acceso mediante programación al modelo de objetos de VBA, el usuario que ejecuta
el código debe conceder el acceso. Para habilitar el acceso, active la casilla.

70

También podría gustarte