Texto 4

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

UNIDAD IV

“PROGRAMACION I”

1. INTRODUCCIÓN

Excel permite la automatización de las tareas repetitivas (ingresar datos,


aplicar formatos, copiar rangos, etc.) mediante la elaboración de programas.
La manera más sencilla de elaborar un programa es mediante la grabación
de una Macro.

Para realizar tareas más sofisticadas, o que no se pueden grabar, es posible


modificar manualmente el código de la Macro utilizando el editor VB (Visual
Basic).

Estos dos temas son los que se desarrollan en la presente unidad.

2. OBJETIVOS

Grabar y reproducir una Macro.


Utilizar el Editor de Visual Basic
Utilizar instrucciones VBA de asignación, entrada y salida
Definir y utilizar variables

3. MACROS

Una macro es una secuencia de instrucciones (programa) que sirve para


automatizar alguna tarea repetitiva, tal como dar el mismo formato o
ingresar los mismos datos a varias hojas de cálculo, o generar y dar formato
a un gráfico.

El uso de macros permite ahorrar tiempo al poder realizar automáticamente


una secuencia de acciones manuales. También evita cometer los posibles
errores que ocurren al realizar manualmente una y otra vez las mismas
acciones.

Para automatizar aún más la ejecución de una macro, se le puede asociar una
combinación de teclas: Ctrl+letra o Ctrl+Shift+letra.

La manera más sencilla de generar una macro es grabando las acciones que
se pretenden automatizar. El grabador de Macros nos permite grabar las

78 Excel Avanzado 2007


acciones manuales que se desean automatizar. Esta grabación genera una
secuencia de instrucciones que componen la macro en el lenguajes de
programación Visual Basic for Applications (VBA).

3.1. Grabar una Macro

Para grabar una Macro se debe ir a la pestaña Vista, en el grupo


Macros y seleccionar la opción Grabar macro.

Figura N° 1

Se mostrará un cuadro de diálogo donde se debe especificar las


siguientes características:

Figura N° 2

Nombre de la Macro: el nombre no debe contener espacios en


blanco.
Método abreviado: se puede asignar una combinación de teclas
para ejecutar la macro, pero se debe tener cuidado que no sea una
combinación de teclas que ya utilice Excel. Las letras mayúsculas y
minúsculas generan nombres diferentes.
Guardar macro en: se puede especificar guardar la macro en el
libro actual o en cualquier otro que desee.

Excel Avanzado 2007 79


o Este libro: la macro se almacenará como parte del libro Excel.
Estar disponible solo para las hojas de este libro.
o Libro nuevo: estará disponible solo para el libro nuevo que se
cree en ese momento.
o Libro de macros personal: se almacenará en un libro de macros
y estará disponible para todos los libros Excel.

Descripción: conviene describir la macro a manera de


documentación: objetivo, autor, fecha, etc.

Otra opción para iniciar la grabación de una macro es el botón


Grabación de macro de la Barra de estado. Si no está visible, puede
configurar la Barra de estado haciendo clic derecho sobre ella y
activando Grabación de macros.

Figura N° 3

Luego de presionar el botón Aceptar se inicia el proceso de grabación.


En la Barra de estado se mostrará un botón para detener la grabación.
Todas las acciones que se realicen mientras está activa la grabación
formarán parte de la macro.

Figura N° 4

En caso de cometer algún error, lo recomendable es detener la


grabación, eliminar la macro y empezar de nuevo. Otra opción es
modificar el código manualmente, como se verá más adelante.

Para detener la grabación puede utilizar el botón de la Barra de


estado o la opción de Detener grabación del grupo Macros de la
Cinta de opciones.

80 Excel Avanzado 2007


Figura N° 5

3.2. Grabar macros con referencias relativas

Por defecto la grabación las macros se realiza utilizando referencias


relativas.

Para utilizar referencias relativas, antes de empezar la grabación de la


macro, se debe activar la opción Usar referencias relativas de la
opción Macros de la ficha Vista.

Figura N° 6

3.3. Ejecutar una Macro

Para Ejecutar una Macro, debe ir a la pestaña Vista, desplegar las


opciones del grupo Macros y seleccionar la opción Ver Macros.

Figura N° 7

Esto permitirá mostrar la relación de macros que se tengan creadas,


sólo deberá seleccionar la macro correspondiente y pulsar el botón
Ejecutar.

Excel Avanzado 2007 81


Figura N° 8

Tenga en cuenta que es conveniente ubicar el cursor en el libro, hoja y


celda adecuada antes de ejecutar la macro, y/o hacer la selección de
rango apropiada, si fuera el caso.

Otras opciones que se presentan en la caja de diálogo son:

Cancelar: se cerrará el cuadro de diálogo sin ejecutarse nada.


Paso a paso: ejecuta la macro paso por paso, mostrado en el Editor
de Visual Basic cada instrucción que se ejecuta, facilitando la
detección de posibles errores.
Modificar: abre el Editor de Visual Basic para modificar
manualmente el código de la macro.
Eliminar: borra la macro.
Opciones: se abre otra caja de diálogo para poder añadir o
modificar las teclas de abreviación y para cambiar la descripción
de la macro.

3.4. Guardar archivos Excel con Macros

Por defecto, la extensión o tipo de los libros Excel es .xlsx el cual no


puede contener macros. Para guardar un libro Excel que contiene
macros debe utilizar el tipo o extensión xlsm (libro de Excel
habilitado para macros).

Cuando intente guardar un archivo Excel .xlsx con macros se


mostrará una ventana de advertencia:

82 Excel Avanzado 2007


Figura N° 9

Deberá pulsar el botón No, y a continuación se abrirá una ventana de


Guardar como, en ella deberá seleccionar en la opción Tipo: Libro de
Excel habilitado para macros (*.xlsm), luego presionar el botón
Guardar.

Figura N° 10

3.5. Abrir archivo Excel con Macros

Por defecto, al abrir un libro Excel con macros, por seguridad éstas se
deshabilitan. Ya que las macros son programas, podrían contener
código malicioso (virus).

Si está seguro del contenido de las macros, use el botón Opciones del
mensaje de seguridad para habilitarlas.

Excel Avanzado 2007 83


Figura N° 11

Figura N° 12

Este procedimiento deberá de realizarlo cada vez que abra un archivo


que contenga una macro. O para evitarse este proceso, puede ingresar
al Centro de Confianza (botón Office, Opciones de Excel, Centro de

84 Excel Avanzado 2007


confianza, Configuración de Centro de confianza, Configuración de
macros) y activar la casilla: Confiar en el acceso al modelo de
objetos de proyectos VBA.

4. EDITOR DE VISUAL BASIC

Existen acciones que no se pueden automatizar grabándolas, por ejemplo:


enviar un mensaje al usuario o solicitarle que ingrese un dato. En estos casos
será necesario codificar manualmente la macro, parcial o totalmente.

Como ya se mencionó, las macros están compuestas por instrucciones en el


lenguaje de programación Visual Basic for Applications (VBA). Para crear o
modificar una macro manualmente se puede utilizar el Editor de Visual
Basic, el cual es una aplicación integrada a Office y que permite manipular el
contenido de las macros.

Desde Excel, se accede al Editor de VB mediante la combinación de teclas


Alt+F11, o mediante la opción Macros, Ver Macros, botón Modificar.

Figura N° 13

Excel Avanzado 2007 85


4.1. Entorno del Editor de Visual Basic

A diferencia de las aplicaciones Office 2007 que utilizan una Cinta de


opciones, el Editor de Visual Basic mantiene el formato de Barra de
menús y Barra de herramientas de Office 2003
Los componentes principales de la ventana del Editor de VB son:

Explorador de Proyectos: tal como el Explorador de Windows, este


panel muestra un árbol de los objetos (libros, hojas, módulos y otros)
que componen un Proyecto Visual Basic.

Figura N° 14

Panel de Propiedades: muestra las características del objeto


seleccionado en el Explorador de Proyectos.

Barra de herramientas: botones asociados a las acciones más


frecuentes (Mostrar el libro Excel, Guardar, mostrar el Explorador de
proyectos, mostrar el Panel de Propiedades, etc.)

Figura N° 15

Panel de código: muestran el contenido de los módulos. Un módulo


puede contener una o más macros.

86 Excel Avanzado 2007


Objeto Procedimiento

Figura N° 16

El contenido del Panel de código puede manipularse como cualquier


archivo de texto, realizando operaciones como insertar, eliminar,
copiar (Ctrl+C), cortar (Ctrl+X), y/o pegar (Ctrl+V).

En la parte superior muestra dos casilleros: Objeto (izquierda) y


Procedimiento (derecha).

5. ESTRUCTURA DE UNA MACRO

Las macros usualmente tienen las secciones siguientes:

Inicio y Fin: son las instrucciones Sub y End Sub que indican el nombre
de la macro, y dónde empieza y dónde termina el código de la macro (se
muestran en color azul oscuro).

Excel Avanzado 2007 87


Figura N° 17

Comentarios: son líneas informativas (no ejecutables) que pueden estar


en cualquier parte de la macro (no solo al inicio). Cualquier línea que
inicia con un apóstrofe es un comentario (se muestran en color verde).
Instrucciones ejecutables: son las líneas en lenguaje VBA con que se
instruye a la computadora las acciones que debe realizar (se muestran en
color negro).

6. INSTRUCCIONES EJECUTABLES

Las instrucciones ejecutables son aquellas que hacen que la computadora


realice alguna acción: sumar dos cantidades, imprimir, mostrar un mensaje,
etc.

Las instrucciones ejecutables, según la función que realizan, son de diversos


tipos.

6.1. Instrucciones de desplazamiento y asignación

La imagen siguiente muestra las instrucciones ejecutables de una


macro grabada cuyo objetivo es ingresar textos en 3 celdas
específicas.

88 Excel Avanzado 2007


Figura N° 18

Para ello se han utilizado dos instrucciones para cada celda:

Cuadro N° 01

Instrucción Significado
Range(“A1”).Select Selecciona un rango
ActiveCell.FormulaR1C1
Asigna un contenido
= “Apellido”

La “traducción” línea a línea a un lenguaje natural podría ser la


siguiente:

Figura N° 19

La macro mostrada fue grabada utilizando referencias absolutas. La


macro siguiente fue grabada con referencias relativas:

Figura N° 20

Excel Avanzado 2007 89


Cuadro N° 02

Instrucción Significado
ActiveCell.FormulaR1C1 = “101010” Asigna un contenido
ActiveCell.Offset (0, Desplázate una celda a
1).Range(“A1”).Select la derecha y selecciona

La indicación Offset (0, 1) de la segunda instrucción indica el


desplazamiento relativo en número de filas y número de columnas.
Ejemplos de otras variantes podrían ser:

Cuadro N° 03

Instrucción Significado
ActiveCell.Offset (4, Desplázate 4 filas abajo
0).Range(“A1”).Select y selecciona
Desplázate 2 filas abajo
ActiveCell.Offset (2, -
y dos columnas a la
2).Range(“A1”).Select
izquierda y selecciona
Desplázate 3 filas arriba
ActiveCell.Offset (-3,
y 1 columna a la derecha
1).Range(“A1”).Select
y selecciona

Las instrucciones siguientes sirven para asignar formato a


determinadas celdas:

Figura N° 21

90 Excel Avanzado 2007


Cuadro N° 04

Instrucción Significado
Selection.Font.Bold = True Aplica Negrita a la selección
Selection.Font.Italic = True Aplica Cursiva a la selección
HorizontalAligment =
Aplica alineación horizontal Centrar
xlCenter
VerticalAligment =
Aplica alineación vertical Inferior
xlBottom
Wraptext = False No apliques Ajuste de texto

6.2. Secuencialidad de las instrucciones

Como ya se dijo, una macro es un programa. Un programa de


computadora es una secuencia ordenada de instrucciones que la
computadora realiza paso a paso.

De manera similar a una receta de cocina, el orden en que se realizan


las acciones es fundamental. Aunque algunas acciones puedan
realizarse simultáneamente o en orden inverso, en general del orden
de las acciones depende el resultado final. Un orden diferente puede
ocasionar un resultado diferente al deseado.

Cuadro N° 05

Secuencia 1 Secuencia 2
ActiveCell.FormulaR1C1 =
Range(“A1”).Select
“Apellido”
ActiveCell.FormulaR1C1 =
Range(“A1”).Select
“Apellido”
A una celda activa se le asignará el
A la celda A1 se le asignará el
contenido “Apellido”, luego se
contenido “Apellido”
selecciona la celda A1

6.3. Instrucciones de Entrada y Salida

Entre las acciones que no son posibles grabar está la de enviar un


mensaje -informativo o de advertencia- al usuario, o de pedirle que
ingrese algún dato.

La instrucción MsgBox (caja de mensaje) sirve para mostrar un


mensaje al usuario. Por ejemplo, la instrucción MsgBox “Datos
ingresados OK” mostraría lo siguiente:

Excel Avanzado 2007 91


Figura N° 22

La instrucción MsgBox puede incluir argumentos para que muestre


otros botones (además de Aceptar), y otro Título (en vez de Microsoft
Excel). Ejemplo:

Figura N° 23

En este caso la ejecución de las siguientes instrucciones dependerá de


la respuesta del usuario (Sí o No). El manejo de este tipo de
condiciones se verá en la Unidad siguiente.

La instrucción InputBox (caja de entrada) sirve para obtener del


usuario algún dato puntual: una contraseña, su código de empleado,
etc. Ejemplo:

Figura N° 24

92 Excel Avanzado 2007


En este ejemplo, lo que escriba el usuario no es asignado a celda
alguna, sino que será guardado en la variable Ciudad. En seguida
revisaremos qué es una variable.

7. VARIABLES

En determinadas circunstancias, el proceso de una macro requiere almacenar


un dato, no en una celda, sino temporalmente en memoria. Ese lugar de la
memoria que sirve de almacenamiento temporal es una variable.

En los ejemplos anteriores de 6.2., se utilizaron las variables texto, título, e


iconos para almacenar temporalmente los valores que se utilizarían como
argumentos en la instrucción MsgBox, y se utilizó la variable ciudad para
almacenar lo que el usuario escriba en la InputBox.

Las variables deben tener un nombre y un tipo, y eventualmente se les


asigna un valor.

7.1. Nombres de variables

Las variables son nombradas por el programador según las reglas


siguientes:
Debe empezar con una letra
A partir del segundo carácter, puede contener letras, números o
guión bajo. No se permite otro tipo de carácter.
No debe exceder los 256 caracteres de longitud.
No puede ser una palabra o término utilizado por Excel.

7.2. Tipos de variables

Da acuerdo a los datos que van a almacenar, las variables son de


diferentes tipos. Del tipo de variable también dependerá la cantidad
de bytes de memoria que ocupe. Entre los tipos de variable más
utilizados están:
Integer: para contener números enteros.
Boolean: solo puede contener valores lógicos Verdadero o Falso.
Date: almacena fechas y horas.
String: para almacenar textos.

Excel Avanzado 2007 93


Variant: puede contener cualquiera de los otros tipos de
variables.

7.3. Declaración de variables

El nombre y tipo de variable se puede declarar implícitamente, como


se hizo en los ejemplos de 6.2. En este caso, se usa un nombre
apropiado y el tipo de variable será Variant, el cual ocupa 16 bytes de
memoria, lo que puede resultar costoso en cuanto al uso de la
memoria.

Por ello es recomendable declarar las variables explícitamente, de


modo que se utilice sólo la cantidad de memoria necesaria. Las
variables se declaran con la instrucción Dim, cuya sintaxis general es:

Dim nombre_de_variable as tipo_de_dato

Ejemplos:

Cuadro N° 06

Instrucción Significado
Dim Nombre as string Nombre contendrá textos
Dim Edad as integer Edad contendrá números enteros
Dim Ingreso as date Ingreso contendrá fechas

Otras razones para declarar explícitamente las variables son:

Facilita la identificación de las variables utilizadas


Evita utilizar un mismo nombre para dos variables diferentes.
No habrá desperdicio de memoria y por ello la ejecución será
más rápida.

94 Excel Avanzado 2007


8. REFERENCIAS BIBLIOGRÁFICAS

Perry, Gail. Excel 2007 Macros Made Easy. Mc Graw Hill Companies.
2009.
Walkenbach, John. Excel 2007 VBA Programming for Dummies. Wiley
Publishing Inc. 2007.
Walkenbach, John. Excel 2007 Power Programming with VBA. John
Wiley and Sons. 2007.
Biblioteca TECSUP

Se ha utilizado como consulta la página de Microsoft Latinoamérica:

http://office.microsoft.com/es-es/training/CR100479683082.aspx

Excel Avanzado 2007 95

También podría gustarte