Está en la página 1de 37

Introducción a la programación

de Macros en el entorno Excel

Parte 1
¿Qué es una Macro?
† Macro (del griego μακρο; significa «grande»), abreviatura de
macroinstrucción, es una serie de instrucciones que se
almacenan para que se puedan ejecutar de forma secuencial
mediante una sola llamada u orden de ejecución. Esto permite
la automatización de tareas repetitivas.

† Las macros suelen almacenarse en el ámbito del propio


programa que las utiliza y se ejecutan pulsando una
combinación especial de teclas o un botón especialmente
creado y asignado para tal efecto.

† La diferencia entre una macroinstrucción y un programa es que


en las macroinstrucciones la ejecución es secuencial y no
existe otro concepto del flujo de programa, y por tanto, no
puede bifurcarse.
Visual Basic©
† Visual Basic es un lenguaje de programación desarrollado por
Alan Cooper para Microsoft©. El lenguaje de programación es
un dialecto de BASIC©, con importantes agregados.

† Su primera versión fue presentada en 1991, con la intención


de simplificar la programación utilizando un ambiente de
desarrollo completamente gráfico que facilitara la creación de
interfaces gráficas y, en cierta medida, también la
programación misma.
Introducción a la POO
† La programación orientada a
objetos o POO (OOP según
sus siglas en inglés) es un
paradigma de programación
que usa objetos y sus
interacciones, para diseñar
aplicaciones y programas de
ordenador. Está basado en
varias técnicas, incluyendo
herencia, abstraccion,
polimorfismo y
encapsulamiento. Su uso se
popularizó a principios de la
década de 1990. En la
actualidad, existe variedad de
lenguajes de programación que
soportan la orientación a
objetos (Visual basic, Java, C
sharp, python, Ruby, Perl,…).
Introducción a la POO
La POO en Excel
La POO en Excel
La POO en Excel
La POO en Excel
Entorno Indegrado de Desarrollo (IDE) de
Visual Basic en Excel
Entorno Indegrado de Desarrollo (IDE) de
Visual Basic en Excel
Barra de título

Barra de herramientas Barra de menús

Ventana de proyecto

Ventana de
propiedades
Ventana de código
Entorno Indegrado de Desarrollo (IDE) de Visual Basic en Excel
Introducción al lenguaje BASIC©
† BASIC© es un lenguaje de alto nivel, es decir, es un
lenguaje más o menos comprensible para el usuario,
pero no para el procesador.
† BASIC© es un lenguaje interpretado, es decir, no debe
ser compilado para que funcione. Eso implica más
rapidez a la hora de programar, pero puede ser algo más
lento en tiempo de ejecución.
Introducción al lenguaje BASIC©
† Los comentarios. Basic© interpreta que todo lo que
está a la derecha del carácter (‘) en una línea
cualquiera del programa es un comentario y no lo tiene
en cuenta para nada.

† Los comentarios son muy útiles para poder entender el


código utilizado, facilitando de ese modo futuras
revisiones y correcciones.
Introducción al lenguaje BASIC©
† Otro aspecto práctico es la posibilidad de escribir una
sentencia en más de una línea, en el caso de
sentencias largas es conveniente cortar la línea para que
entre en la pantalla.

† Una limitación a los comentarios en el código, es que no


se pueden introducir en una línea en la que se ha
introducido el carácter de continuación (_).
Introducción al lenguaje BASIC©
† Los Módulos. Visual Basic© dispone de Módulos, exclusivo de
este lenguaje, que podría asimilarse a un “cajón desastre”
donde podemos definir variables, métodos y funciones que
podrán ser utilizadas en cualquier momento y desde cualquier
lugar de la aplicación.
Variables y constantes en BASIC©
† Los elementos más básicos de cualquier aplicación son los tipos
de datos. Los datos que necesitamos para que nuestra macro
funcionen los almacenaremos en variables o constantes.

† Ámbito de las variables. Se entiende por ámbito de una


variable la parte de la aplicación donde la variable (o
constante) es visible (accesible) y por lo tanto puede ser
utilizada en cualquier expresión.
† Básicamente definiremos dos ámbitos: Público o Privado.
† Público. Una variable pública es visible o accesible desde
cualquier punto del proyecto. Para definir una variable pública
es necesario preceder a la variable de la palabra Public.
Variables y constantes en BASIC©
† Para utilizar una variable pública definida en otra hoja de Excel
se debe preceder el nombre de la variable o procedimiento con
el nombre de la Hoja donde se ha definido ésta. En el caso de
los módulos no es necesario.
Variables y constantes en BASIC©
† Privado. Por el contrario, si precedemos una variable con la
palabra Private o Dim, ésta únicamente será accesible desde
aquel módulo donde se ha declarado.

† Finalmente, se llama local a una variable definida dentro de un


procedimiento o función.
Variables y constantes en BASIC©
† Constantes. El tratamiento es exactamente el mismo que las
variables, la particularidad es que el valor asignado es único y
no puede ser modificado.
† Para declarar un dato como constante es necesario preceder la
palabra Const delante de la declaración de ésta. Por defecto
las constantes son privadas.
Declarar variables o constantes
† El nombre de una variable (o constante) tiene que comenzar
siempre por una letra y puede tener una longitud de hasta 255
caracteres. No se admiten espacios o caracteres en blanco, ni
puntos (.) ni otros caracteres especiales.

† A diferencia de otros lenguajes de programación, Visual Basic©


no distingue entre mayúsculas ni minúsculas. La declaración de
una variable determina como se escribirá en toda la aplicación.
Declarar variables o constantes
† Tipos de datos que podemos asignar a una variable (o
constante).

Tipo Descripción Rango

Boolean Binario True o False

Integer Entero (2 bytes) -32768 a 32767

Long Entero largo (4 bytes) -2147483648 a 147483647

Single Real simple precisión (4 bytes) -3.40E+38 a 3.40E+38

Double Real doble precisión (8 bytes) -1.79E+308 a 1.79E+308

String Cadena de caracteres (4 bytes + 1 0 a 65500 caracteres


byte/car hasta 64 K)
Declarar variables o constantes
† Para declarar variables se utiliza la sentencia siguiente:

† Algunos ejemplos:
Operadores soportados por Visual Basic©
Estructuras condicionales
† Las estructuras condicionales son instrucciones que nos
permiten controlar la ejecución de un fragmento de código en
función de si se cumple o no una condición.

† Estructura If…End If
Estructuras condicionales
† Estructura If…Else…End If
Estructuras condicionales
† Estructuras If anidadas.

† Podemos anidar una cantidad “ilimitada” de estructuras, pero


en la práctica es aconsejable separar los procesos en
subrutinas para facilitar el control de errores y posteriores
revisiones.
Operadores lógicos
† Estos operadores se usan cuando se necesitan evaluar dos o más
condiciones para decidir si se ejecutan o no determinadas acciones.

And Se utiliza cuando sea necesario que se cumpla más de


una condición para ejecutar una acción.

Or Utilizaremos este operador cuando sea preciso que para


ejecutar un bloque de instrucciones se cumpla alguna
de una serie de condiciones.

Not Este operador se utiliza para ver si NO se cumple una


condición.
Estructura Select Case
† En ocasiones se dará el caso que en función del valor o del
rango de valores que pueda tener una variable, deberán
llevarse a cabo diferentes acciones.
Funciones de comprobación
† Antes de terminar con las estructuras condicionales veremos unas
funciones para comprobar o validar el tipo de datos entrados desde el
teclado o contenidos en una celda de la hoja de cálculo.

IsNumeric(Expresión) Comprueba si la expresión tiene un valor numérico.

IsDate(Expresión) Comprueba si la expresión tiene un valor de tipo fecha.

IsEmpty(expresión) Comprueba que la expresión tenga algún valor, que se haya


inicializado.
IsError(expresión) Comprueba si la expresión devuelve algún mensaje de
error.
IsArray(expresión) Comprueba si la expresión es un array o no.

IsObject(expresión) Comprueba si la expresión representa una variable de tipo


objeto
IsNull(expresión) Comprueba si la expresión contiene un valor nulo debido a
datos no válidos.
Funciones de comprobación
Estructuras repetitivas
† Este tipo de estructuras permiten ejecutar más de una vez un
mismo bloque de sentencias.
† Estructura For…Next
Estructuras repetitivas
† Estructura For…Next se adapta perfectamente a aquellas
situaciones en que se sabe previamente el número de veces
que se ha de repetir un proceso.
† En ocasiones, no sabemos previamente el número de veces
que se debe repetir un proceso. Para estos casos vamos a usar
la estructura Do while…Loop.
Procedimientos y funciones
† Se define como procedimiento y/o función a una bloque de
código que realiza alguna tarea.
† La filosofía de usar procedimientos consiste en fragmentar una
aplicación, para poder tratar cada tarea de forma aislada,
facilitando el mantenimiento de la aplicación y posteriores
mejoras o modificaciones.
† Definir un procedimiento:
Procedimientos y funciones
† Llamar a un procedimiento:

† Cuando creamos un procedimiento, podemos definir unos


parámetros necesarios para que éste funcione:
Procedimientos y funciones
† Por ejemplo:
Procedimientos y funciones
† Funciones. Una función es lo mismo que un procedimiento
con la salvedad que esta devuelve un valor.
† Definir una función:

También podría gustarte