Programación en Excel - Observatorio Tecnológico
Programación en Excel - Observatorio Tecnológico
Programación en Excel - Observatorio Tecnológico
2014
Inicio
Internet
Software
Cajn de sastre
NDICE
Inicio
Bilatu...
Programacin en Excel
SOFTWARE - Programacin
Osteguna, 2007(e)ko iraila(r)en 27-(e)an 15:35etan
Equipamiento Tecnolgico
Internet
Tweet
Me gusta
Software
Software General
Programacin
Servidores
Software educativo
Cuando conozcas estas herramientas te resultarn insustituibles para desarrollar tus hojas Excel...
Programacin en Excel
1
Programacin
Cajn de sastre
Con este curso queremos iniciar una serie que te acerque a las herramientas de que dispone Excel, para mejorar el rendimiento
de todos tus trabajos.
REVISTA INTEFP
Puede que programar hayas pensado que resulta una tarea muy complicada. Mi objetivo es demostrarte que, una vez que hayas
alcanzado el grado suficiente de confianza, estas herramientas te resultarn insustituibles para desarrollar tus hojas Excel.
2013 (11)
2012 (49)
2011 (53)
2010 (36)
2009 (47)
MARCADORES SOCIALES
NUESTRA WEB
Monogrficos
ARTCULOS RELACIONADOS
El objeto WorkBook se refiere a los distintos libros abiertos dentro de la aplicacin Excel. Depende del objeto Application.
El objeto Range se refier a una celda o a un rango de celdas. Normalmente depende de un objeto WorkSheet.
dinmicas en Excel
2007-07-12 - Trabajar con Macros
en Excel
2007-06-29 - Aplicaciones
didcticas de las hojas de clculo
2012-07-29 - MONOGRFICO:
Una calculadora grfica para la
enseanza de las matemticas
LICENCIA
En resumen un objeto Application puede contener varios Libros (WorkBooks), que contienen hojas (WorkSheets), que a su vez
contienen otros objetos (por ejemplo Range).
Para acceder al editor de Visual Basic selecciona en el men Herramientas -> Macros -> Editor de Visual Basic.
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
1/10
1.10.2014
Se te abrir el editor de Visual Basic, en el que puedes observar diferentes ventanas: A la izquierda arriba la ventana con los
distintos objetos del proyecto. Debajo la ventana de propiedades del objeto seleccionado. A su derecha la ventana donde
escribirs el cdigo de programacin del objeto seleccionado.
Puedes modificar o conocer las caractersticas de cada uno de estos objetos, accediendo a las propiedades de los mismos.
Por ejemplo para el objeto Range tienes las siguientes propiedades:
Column y Row, que contienen respectivamente los datos de la fila y la columna que se corresponden con la celda.
Font, que contiene la fuente de los caracteres que muestra la celda (Arial, Courier, etc).
Tambin puedes llevar a cabo acciones sobre los objetos que te facilita Excel. Cada una de
estas acciones recibe el nombre de mtodos.
Por ejemplo para el objeto Range tienes los mtodos:
Activate, hace activa una celda determinada, es decir, coloca el cursor (el foco) sobre
ella.
Clear, borra el contenido de una celda o rango de celdas (los valores que contienen).
En los ejemplos que vers a continuacin irs conociendo nuevos objetos y nuevas funciones.
2.
Excel.
3.
Inserta un nuevo mdulo: Insertar Mdulo en la barra de mens del Editor de Visual Basic.
4.
5.
Inserta un procedimiento: escribe Sub Practica1 dentro del mdulo que has insertado y pulsa Enter.
6.
Automticamente aparecer debajo End Sub. En el espacio existente entre estas dos instrucciones escribirs el cdigo del
procedimiento.
7.
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
2/10
1.10.2014
8.
Comprueba que si escribes solamente Range("A1"). Visual Basic te indicar las propiedades y mtodos que puedes aplicar
al objeto Range.
9.
Vas a cambiar el contenido de la celda, cambiando la propiedad Value (asignndole un nuevo valor). Observa que para
separar el objeto de su propiedad se utiliza la notacin punto (.).
10.Ejecuta el procedimiento
11.Sita el cursor dentro del procedimiento. Selecciona en la barra de mens Ejecutar Ejecutar Sub/Userform. Tambin
puedes hacer clic sobre el botn
12.Comprueba en la hoja Excel el resultado: Vers que en la celda A1 ahora est el texto que has escrito:
Esta es la Celda A1
Felicidades, ya has programado tu primer procedimiento!
2.
3.
4.
Inserta un nuevo procedimiento: escribe Sub Practica2 dentro del mdulo que has abierto y pulsa Enter.
5.
6.
Escribe WorkSheets(2).Range("A1").Value = "Esta es la Celda A1 de la hoja 2" en el espacio que hay entre Sub y End Sub.
7.
8.
9.
Escribe WorkBooks(1).WorkSheets(3).Range("A1").Value = "Esta es la Celda A1 de la hoja 3 del libro1" en el espacio que
hay entre Sub y End Sub.
10.Al escribir WorkBooks(1) delante te ests refiriendo a la celda A1 de la hoja 3 del libro 1.
11.Ejecuta el procedimiento y comprueba los resultados
12.Escribe Application.WorkBooks(1).WorkSheets(3).Range("A1").Value = "Esta es la Celda A1 de la hoja 3 del libro1 (jerarqua
completa)" en el espacio entre Sub y End Sub.
13.Al escribir Application delante utilizas la jerarqua completa de objetos Excel. Observa que en algunos casos no es necesario
especificar todas las dependencias entre objetos de Excel. Lo que ocurre es que Excel utiliza objetos por defecto. As, si no
especificas hoja, Excel supone que te refieres a la hoja activa; si no especificas libro, se supone que te refieres al libro activo, etc.
1.1.3 Ejercicios
1.
2.
Igual que el anterior pero que escribe el texto en un nuevo libro, en la Hoja3.
1.2
Cuando se programa, puede ser necesario almacenar informacin para su uso posterior en otra parte del programa. Para ello
dispones de variables en las que puedes guardar distintos tipos de datos.
Los tipos de datos de que dispones son Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String, Object,
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
3/10
1.10.2014
Boolean: Valor lgico. Slo tiene dos valores posibles, True (verdadero) o False (falso).
Date: Fecha
2.
3.
4.
Inserta un nuevo procedimiento: escribe Sub Practica3 dentro del mdulo que has abierto y pulsa Enter.
Automticamente aparecer debajo End Sub. Escribe el siguiente cdigo para el procedimiento:
Un Comentario: Vas a utilizar aqu una funcin muy til de Visual Basic, InputBox (Abre un cuadro de dilogo, para pedir que
des entrada a un valor de una variable).
Si deseas una descripcin completa de esta funcin, consulta la ayuda.
5.
1.2.2 Ejercicios
1.
Pide por pantalla dos nmeros y asigna la suma a la casilla C4, declarando las variables que utilices.
2.
Igual que el anterior pero, al solicitar los nmeros, el primero ser 100 por defecto y el segundo ser 1000 por defecto.
Recuadra el resultado.
1.3
Option Explicit
Es conveniente para evitar escribir incorrectamente el nombre de una variable existente o para evitar confusiones en el cdigo,
utilizar la instruccin Option Explicit.
Esta instruccin se usa en el mdulo para forzar las declaraciones explcitas de todas las variables en dicho mdulo, es decir,
que no las
des por supuestas
, sino que se tengan que declarar antes de comenzar.
Si usas, la instruccin Option Explicit, sta debe aparecer en un mdulo antes de cualquier otro procedimiento.
Si intentas usar un nombre de variable que no hayas declarado antes, te dar un error de compilacin.
Si no usas la instruccin Option Explicit, todas las variables que no hayas declarado previamente, tendrn el tipo Variant, a
menos que el tipo de variable predeterminado est especificado de otra manera.
1.4
Sentencias condicionales
Con las sentencias condicionales, puedes controlar la ejecucin de un fragmento de cdigo en funcin de si se cumple o no una
condicin, que hayas fijado previamente.
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
4/10
1.10.2014
2.
3.
4.
Inserta un nuevo procedimiento: escribe Sub Practica4 dentro del mdulo que has abierto y pulsa Enter.
Automticamente aparecer debajo End Sub. Escribe el siguiente cdigo para el procedimiento:
Un comentario: Vas a utilizar el objeto ActiveSheet para referirte explcitamente a la hoja activa y la funcin RGB para establecer
el color de la fuente de la celda sobre la que trabajas.
5.
Prueba con distintos nmeros en las casillas A1 y A2, ejecuta el procedimiento y comprueba los resultados.
1.4.2 Ejercicios
1.
Escribe un procedimiento que escriba "Mayor de 10" o "Menor de 10" en la casilla A2, en funcin de como sea el nmero
existente en la celda A1.
2.
1.5
Igual que el anterior pero si el nmero de la casilla A1 es menor de 0 se pone el texto en rojo.
Bucles
Seguro que has pensado alguna vez, en cmo repetir varias veces una misma accin, hasta que se cumpla una condicin o
hasta que hayas llegado a repetirla un nmero determinado de veces. Para eso sirven los bucles.
Todos los bucles necesitan una condicin, que se debe cumplir, para que se produzca la siguiente repeticin del bucle.
Hay distintos tipos de bucles:
Do...Loop: Seguir en el bucle mientras o hasta una condicin sea cierta (True).
For...Next: Utilizar un contador para ejecutar las instrucciones un nmero determinado de veces.
For Each...Next: Repeticin del grupo de instrucciones para cada uno de los objetos de una coleccin.
2.
3.
4.
Inserta un nuevo procedimiento: escribe Sub Practica5 dentro del mdulo que se ha abierto. Automticamente aparecer
debajo End Sub.
5.
Un comentario: Vas a utilizar una funcin muy til de Visual Basic, MsgBox, que muestra un mensaje en un cuadro de dilogo. Si
quieres obtener una descripcin completa de esta funcin consulta la ayuda.
6.
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
5/10
1.10.2014
1.5.2 Ejercicios
1.
2.
Igual que el anterior pero insertando una fila de un color entre cada alumno.
1.6
Si quieres acceder a la ayuda desde el editor de Visual Basic, slo necesitas pulsar la tecla F1 para mostrar la ayuda relacionada
con la palabra en la que se encuentra el cursor.
Si esta palabra es del lenguaje de Visual Basic aparece la ayuda de lo que es el lenguaje de programacin nicamente.
Si la palabra sobre la que pulsamos F1 est relacionada con los objetos de Excel, vers una ayuda diferente, en la que el primer
nodo de la solapa contenido es Referencia Visual Basic de Microsoft Excel.
Es interesante echar un vistazo a esta ayuda con especial atencin a los temas:
Objetos de Microsoft Excel. Contiene toda la ayuda relacionada con los objetos, propiedades y mtodos.
Conceptos de programacin. La ayuda te ofrece ejemplos generales interesantes que se pueden aplicar despus a un
caso particular.
Hay que tener en cuenta las siguientes consideraciones:
En la sintaxis de los ejemplos que vers en la ayuda, los argumentos de una funcin o procedimiento que no van entre
corchetes son obligatorios. Los que van entre corchetes son opcionales. Si no deseas especificar algn argumento es necesario
poner la coma que delimita ese argumento, es decir, dejar el espacio que le corresponde en blanco.
Ejemplo:
MsgBox(prompt[, buttons][, title][, helpfile, context])
Obligatorio
1.7
Opcionales
Una operacin bastante habitual cuando se trabaja con Excel es el recorrido de grupos de celdas para llenarlas con valores,
mirar su contenido, etc. Los bucles son imprescindibles para recorrer grupos de celdas o rangos.
Para realizar esta tarea son tambin de gran ayuda las siguientes propiedades:
Cells: Sirve, como el objeto Range, para referenciar una casilla o rango de casillas, pero en lugar de utilizar la referencia
de la forma A1, B1,... utiliza la fila y la columna que ocupa la casilla dentro de la hoja.
Ejemplo: Poner hola en la casilla A1 de la hoja activa: ActiveSheet.Cells(1,1).Value="Hola"
Offset: significa desplazamiento, es una propiedad del objeto Range y se utiliza para referenciar una casilla situada a n
Filas y n Columnas de una casilla dada.
Ejemplos:
ActiveSheet.Range("A1").Offset(2, 2).Value = "Hola" Resultado: Casilla C3 = Hola, 2 filas hacia abajo y 2 columnas hacia la
derecha desde A1.
ActiveCell.Offset(3,1).Value = "Hola" Resultado: 3 Filas por debajo de la casilla Activa = Hola
ActiveCell.Offset(-2,4).Activate Resultado: Activar la casilla que est 2 filas por encima y 3 columnas a la derecha de la activa
2.
3.
4.
Inserta un nuevo procedimiento: escribe Sub Practica6 dentro del mdulo que se ha abierto y pulsa Enter.
Automticamente aparecer debajo End Sub. Escribe el siguiente cdigo para el procedimiento:
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
6/10
1.10.2014
Un comentario: Utilizars aqu una prctica comn en programacin: inicializar una variable (Fila) e incrementar su valor dentro
de un bucle.
5.
2.
3.
4.
Inserta un nuevo procedimiento: escribe Sub Practica7 dentro del mdulo que se ha abierto y pulsa Enter.
Automticamente aparecer debajo End Sub. Escribe el siguiente
2.
Selecciona Herramientas Macro Editor de Visual Basic
en la barra de mens de Excel.
3.
4.
Inserta un nuevo procedimiento: escribe Sub Practica8 dentro
del mdulo que se ha abierto y pulsa Enter.
Automticamente aparecer debajo End Sub. Escribe el siguiente cdigo para el procedimiento:
Un comentario: En primer lugar se activa la Hoja1 y se pone como
casilla activa la A1.
Aqu utilizas un bucle del tipo
hacer mientras se cumpla una condicin
.
En este caso la condicin es que no este vaca la celda activa. Tener en
cuenta que en este caso el bucle se cierra con Loop.
Tambin usas tambin la funcin IsEmpty que sirve para comprobar si
una celda est vaca.
5.
1.7.4 Ejercicios
1.
Localizar la primera celda vaca. Solicitar nombre y edad, y rellenar filas hasta que el nombre introducido este vaco
2.
Igual que el anterior pero si la edad es mayor que 18, solicitar el DNI e introducirlo en color azul en la celda contigua a la
edad.
1.8
Seguramente no te has dado cuenta, pero llevas practicando con procedimientos todo el tiempo.
Un procedimiento es un bloque de instrucciones de cdigo que sirven para llevar a cabo alguna tarea especfica.
Cada tarea la realizar un procedimiento y, si esta tarea implica la ejecucin de otras tareas, cada una se implementar y
solucionar en su correspondiente procedimiento de manera que cada uno haga una cosa concreta. As, los diferentes pasos
que se deben ejecutar para que un programa haga algo, quedaran bien definidos cada uno en su correspondiente procedimiento.
Si el programa falla, fallar a partir de un procedimiento y de esta forma podremos localizar el error ms rpidamente.
Los procedimientos son tambin un eficaz mecanismo para evitar la repeticin de cdigo en un mismo programa e incluso en
diferentes programas.
Sintaxis:
Sub Nombre_Procedimento
Sentencias.
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
7/10
1.10.2014
2.
3.
4.
Inserta un nuevo procedimiento: escribe Sub Practica9 dentro del mdulo que se ha abierto y pulsa Enter.
Automticamente aparecer debajo End Sub. Escribir el siguiente cdigo para el procedimiento:
Un comentario: La llamada al procedimiento buscaCasillaVacia rompe la secuencia del programa, que en ese punto ejecuta las
instrucciones del procedimiento, y devuelve el control a la siguiente instruccin (nombre
).
5.
1.8.3 Ejercicios
1.
Localiza la primera celda vaca. Solicita nombre y edad en un procedimiento, y rellena filas preguntando en cada iteracin si
se desea seguir.
2.
Igual que el anterior pero si la edad es mayor que 18, solicita el DNI y lo introduce en color azul en la celda contigua a la
edad, realizando un procedimiento para poner en color azul la celda activa.
1.9
Tu ya conoces lo que es una funcin. Las has estado utilizando de manera mas o menos consciente. En tus hojas de clculo has
usado funciones matemticas (p.e. SUMA()) o funciones de fecha (p.e. HOY()), etc.
Excel te ofrece la posibilidad de crear tus propias funciones, a las que puedes llamar desde cualquier celda.
Una funcin es lo mismo que un procedimiento (tal y como ya los has visto hasta ahora), con la nica diferencia, de que la
funcin devuelve un valor al procedimiento o funcin desde la que lo has llamado. Este valor es el resultado de aplicar la funcin.
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
8/10
1.10.2014
2.
3.
4.
Un comentario: Has pasado como parmetro la casilla inicial. Utilizas la propiedad Address que te devuelve la referencia de la
celda activa.
5.
1.9.2 Ejercicios
1.
Crea una funcin que devuelva la celda que contenga un valor a partir de una casilla inicial.
2.
Haz un procedimiento que llame a la funcin anterior y ponga la celda encontrada en color rojo.
2.
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
9/10
1.10.2014
3.
4.
http://recursostic.educacion.es/observatorio/web/eu/software/programacion/499-paloma-prieto-gonzalez
10/10