You are on page 1of 36

Macros en Microsoft Excel

Realizado por:

E d u c a c i n I n f o r m t i c a

















Co n t e n i d o

INTRODUCCIN
CONCEPTOS BSICOS
OBJETOS Y CLASES
ATRIBUTOS O PROPIEDADES
MTODOS O ACCIONES
EVENTOS
FORMAS DE CREAR UNA MACRO
FORMA AUTOMTICA
Grabar Nueva Macro
Ejemplos de Macros Automticas
Ejecutar una Macro
Ejercicios Prcticos
FORMA MANUAL
Editor de Visual Basic
Insertar un Nuevo Mdulo
Ejemplos de Macros Manuales
Ejercicios Prcticos
PROGRAMACIN AVANZADA DE MACROS
MEJORANDO LA PRESENTACIN
Insertar Botones en la Hoja
Insertar un Icono en la Barra de Herramientas
USO DE FORMULARIOS
Creacin de un ormulario
Insercin de !bjetos en el ormulario
Insercin de Cdi"o de Pro"ramacin
I nt r oduc c i n


Al desarrollar un libro en Microsoft Excel gran parte del trabajo se realiza
utilizando una gran cantidad de tiempo y recursos que terminan
por agotarnos.

Hay muchas tareas que deben ser realizadas en forma
obligatoria ya sea porque se requiere un formato de n!mero
determinado o se necesita resaltar alg!n texto o cantidad
espec"fica o en su defecto porque se desea dar una
presentacin ms adecuada al trabajo. #ero algo aqu" es muy
importante de resaltar y es que gran parte de estas tareas son
repetiti$as como por ejemplo poner el texto en negrita cursi$a y
justificado o poner alg!n formato de n!mero con signo de pesos
y si decimales con alg!n tipo de alineacin. %areas que se
repiten infinidad de $eces al realizar un libro y que pueden ser
reemplazadas por un solo clic& en lugar de los muchos pasos
tediosos y que terminan por agotarnos.

Al hablar de una forma de reemplazar $arios pasos por un solo clic& 'o
en su defecto muchos menos que los necesarios com!nmente( nos estamos
refiriendo a las denominadas MACROS, que corresponden a un medio de
automatizacin de tareas a tra$)s de un grupo de instrucciones de
programacin que son escritas y soportadas por Microsoft Excel.

%al $ez el lector ha o"do hablar de las Macros ya que por lo general se
les asocia con los $irus y principalmente con los temidos MACROVIRUS pero
no es tan as" pues una macro correctamente programada 'y controlada por el
usuario( puede ser de mucho beneficio para el que utiliza 'en este caso(
Microsoft Excel.

*o slo se pueden programar macros en Microsoft Excel sino que
tambi)n en las dems aplicaciones del paquete de Microsoft +ffice como
Microsoft ,ord Microsoft #o-er #oint y Microsoft Access. En este peque.o
instructi$o nos enfocaremos en las Macros para Microsoft Excel.

/na macro puede realizar prcticamente cualquier tarea desde cosas
simples como poner el texto en negrita cursi$a y justificado hasta cosas ms
complejas como $alidar el 0/% y realizar alguna operacin con )ste.

En s" la tarea que puede realizar una macro se $e limitada
principalmente por la imaginacin y capacidad del programador de la misma.

/na macro puede retornar un $alor 'en tal caso se denomina como
1funcin2( o no 'caso en el cual se denominar 1procedimiento2(. /na funcin
puede ser utilizada directamente en una celda de alguna hoja del libro que
estemos desarrollando de la misma forma que las funciones comunes que
ofrece Microsoft Excel como lo son las de 3/MA #0+ME45+ 6/37A08 35 u
otra ya que el $alor de$uelto por las macros 1funciones2 es asignado
directamente al $alor de la celda o puede trabajarse con )l en alguna otra
frmula.

9as macros del tipo 1procedimiento2 son utilizadas principalmente en el
cuerpo de las macros como parte de las tareas que se deben realizar y son
ejecutadas principalmente por medio de un botn o icono que es insertado
directamente en el libro.

En cualquier caso puede realizarse la misma tarea con ambos tipos de
macros y en s" la diferencia radica en la facilidad de uso ya que como se dijo
una macro funcin puede ser utilizada directamente en la hoja por medio de la
in$ocacin de su nombre y el pasaje de parmetros respecti$o en caso de que
lo requiera.

8eremos posteriormente algunos conceptos bsicos para comprender la
programacin de macros en Microsoft Excel.


Conc e pt os ! s i c os


Al hablar de Macros en Microsoft Excel debemos $er una serie de
conceptos de programacin que son fundamentales para su comprensin.

9o primero es el 9enguaje de #rogramacin 8isual 6asic ya que es en
el que se programan las Macros y es del tipo de lenguajes Orientado a
O"#etos esto es que se pueden crear o representar cosas 'objetos( del
mundo real como por ejemplo desde una simple lista hasta un autom$il un
computador u otro objeto en forma abstracta.


O"#etos $ Clases

/n o"#eto es cualquier cosa que tenga un comportamiento y
corresponde a una ocurrencia de una clase. #or ejemplo la clase Autom$il
ser"a la que represente a todos los autom$iles del mundo y el objeto autom$il
ser"a un autom$il en espec"fico.

En lo sucesi$o no nos referiremos a las clases ni estudiaremos
mayormente su representacin ni programacin slo haremos mencin de los
objetos y cmo afectarn la programacin de las macros.


Atri"utos o %ropiedades

9os objetos entre otras cosas estn compuestos por un conjunto de
atributos o caracter"sticas que denominaremos %ropiedades las cuales
tendrn un $alor determinado. #or ejemplo en el caso de que deseemos
representar un computador podr"amos decir que sus propiedades son: 7olor
Memoria #rocesador #antalla etc. ; cada una de esas propiedades tendrn
un $alor como por ejemplo: 7olor<6lanco= Memoria<>? @6=
#rocesador<#entium 58 etc.


M&todos o Acciones

Adems de las propiedades los objetos poseen '&todos que
corresponden a comportamientos o acciones que en alg!n momento realiza
alg!n objeto. #or ejemplo una accin com!n que realiza un objeto autom$il
es el mo$erse ya sea hacia delante o hacia atrs desde un punto A hasta un
punto 6.

9os m)todos son definidos en las clases para que as" puedan ser
utilizados por cualquiera de los objetos deri$ados de )stas. 4e nuestro
ejemplo se debe definir un m)todo que permita al autom$il mo$erse entre los
dos puntos indicndose cada uno de los pasos o tareas que se deban lle$ar a
cabo para que dicho proceso se lle$e a cabo sin problemas.

9uego de estar definido en la clase Autom$il el m)todo Mo$er los
objetos que se deri$en de dicha clase podrn in$ocar al m)todo Mo$er y hacer
que de esta forma el objeto autom$il pueda mo$erse cualquiera sean los
puntos iniciales y finales.

Ahora bien Apara qu) $er todos estos conceptosB pues bien la
respuesta es que la orientacin a objetos es la base de la programacin hoy en
d"a y Microsoft Excel no escapa a esto. As" en Excel nos podemos encontrar
con dos objetos muy importantes que son ,or&3heet 'objeto 1Hoja de 7lculo2(
y el objeto 0ange que corresponde a una celda o un rango de celdas.

Analicemos un poco ms en profundidad el objeto 0ange que es el que
principalmente usaremos para el trabajo con las macros. #or ejemplo cuando
hablbamos de las propiedades )stas las podemos obser$ar en el objeto
0ange ya que )ste contiene entre otras las propiedades Value que es la que
contiene el $alor de la celda la propiedad Colu'n que es la que indica la
columna de la celda la propiedad Ro( que nos indica la fila de la celda la
propiedad )ont que indica el tipo de letra la propiedad orders que indica el
tipo color estilo de l"nea etc. etc.

#or otro lado podemos obser$ar en el objeto 0ange los m)todos que
entre otros se encuentran: el m)todo Cop$ que permite copiar el contenido de
una cela o un rango de ellas el m)todo Clear que permite borrar el contenido
de una celda o un rango de ellas el m)todo Cut que permite cortar el
contenido de una celda o un rango de ellas etc.

8eamos en las siguientes imgenes los m)todos y propiedades que
posee el objeto 0ange.


)igura *: M)todos que posee el objeto 0ange.



)igura +: #ropiedades del objeto 0ange.

)igura ,: #ropiedades M)todos y E$entos del +bjeto ,or&3heet
E-entos

7omo $emos en la imagen C acaba de aparecer un nue$o tipo de
acciones que ocurren dentro de las clases y que son los e-entos. 9os
e-entos se desencadenan cuando ocurre alg!n tipo de accin en el objeto
como pueden ser el acti$arse 'Acti-ate( o cuando ocurre alg!n tipo de cambio
'C.ange( entre algunos de los e$entos.

9os e-entos son muy importantes ya que gracias a ellos podemos
tomar decisiones 'principalmente( acerca de las acciones que el usuario
realice ya sea presionando alg!n botn o al mo$er el mouse. ;a $eremos ms
adelante la utilidad de los e$entos.

;a hemos re$isado $arios elementos fundamentales a tener en cuenta
en la programacin de Macros en Microsoft Excel. Ahora $amos a dar un paso
ms en nuestro aprendizaje y es el de la forma en que se puede crear una
macro. /na de ellas es en forma automtica y la otra 'un poco ms tediosa y
larga( programando l"nea a l"nea cada una de las tareas que se deseen.

8eamos en la siguiente seccin ambas formas de programacin de
macros. 3er en forma prctica para lo cual el lector podr abrir Microsoft
Excel y crear un nue$o libro y probar cada uno de los ejercicios que se
presentarn.






)or 'a s de Cr ea r una Ma cr o


)or'a Auto'!tica

@rabar *ue$a Macro

9a forma automtica 'por llamarla de alguna forma( corresponde a lo que
en el men! se denomina /0ra"ar nue-a 'acro1112 'como podemos $er en la
figura D( y corresponde a un procedimiento en el cual al seleccionar la opcin
en el men! se comienzan a interpretar cada una de las operaciones que
realiza el usuario en forma de instrucciones de programacin. Estas
instrucciones son escritas en un 'dulo dentro del libro que puede ser
$isualizado desde el Editor de 8isual 6asic.

)igura 3: Muestra la opcin de @rabar nue$a macro.

7omo se mencion anteriormente $eremos todo el proceso de
aprendizaje por medio de ejemplos para lo cual realizaremos la siguientes
macros:

a. a. #oner n!meros en *egrita cursi$a justificada y con signo de pesos.
b. b. 7ombinar celdas ajustar celdas y justificar el contenido en forma
horizontal.
c. c. #oner bordes y sombreados al rea seleccionada.
d. d. 5nsertar una nue$a hoja de clculo con un formato de celda de n!mero
con signo de pesos en toda la hoja.

Ejemplos de Macros Automticas

a. a. #oner n!meros en *egrita cursi$a justificada y con signo de pesos.

#ara comenzar debemos seleccionar la opcin que presentamos en la
figura D a lo cual aparecer una $entana como la de la figura E en la cual
deberemos indicar el nombre de la macro y algunos datos de su creacin.

)igura 4: 7reacin de una nue$a macro.

7omo podemos obser$ar en la imagen E el nombre de la macro no
puede contener espacios en )l. En la opcin 1@uardar macro en:2 debemos
seleccionar 1Este libro2 lo que har que el mdulo con nuestra macro se
guarde en nuestro libro. 4e no hacerlo la macro quedar almacenada en el
9ibro de Macros #ersonal con lo cual podremos usar la macro con cualquier
otro documento. #or !ltimo podemos seleccionar un 1M)todo de abre$iado2 lo
cual es un poco complicado ya que la mayor parte del teclado est ya
asignado a alguna operacin como poner negrita centrar etc. #ero si logras
hallar alguna que no te produzca problemas puedes ponerla en la casilla que
aparece junto a 7%09 F.

#rosiguiendo por lo general luego de presionar en 1Aceptar2 aparece
una barra de herramientas que contiene un botn con el cual podremos detener
la grabacin de la macro como se muestra en la figura G. #ero si no aparece
esta barra basta con seleccionar la opcin 14etener @rabacin2 como se
muestra en la figura H.

)igura 5: 6arra en la cual se presenta
el botn de 4etener @rabacin.

7omencemos a realizar las tareas que requerimos para el ejercicio.
3lo debemos seleccionar el formato especificado para el ejercicio y finalmente
seleccionar la opcin para detener la grabacin con lo cual ya tendremos
nuestros pasos grabados en el mdulo respecti$o como podemos apreciar en
la figura I y figura J.

)igura 6: 3e muestra la opcin que permite detener la grabacin de la macro.

)igura 7: Muestra como poner el formato a la celda que esta seleccionada.

7omo podemos $er en la figura I se presenta cmo se establece el
formato de la celda que esta seleccionada pero hay algo muy importante que
destacar y es que no se debe seleccionar la celda despu)s de comenzar a
grabar la macro es decir no se debe seleccionar ninguna celda slo se debe
aplicar el formato y eso es todo. Esto es porque de seleccionarse una celda
)sta quedar enlazada con la macro y no la podremos reutilizar en cualquier
otra celda de la hoja. Ms adelante explicaremos algo ms de este problema.

8eamos a continuacin cmo ha quedado nuestra macro en el cdigo de
8isual 6asic que se presenta en la figura >?. #ara ello debemos seleccionar la
opcin 1Editor de 8isual 6asic2 en el men! Herramientas subKmen! Macro
como se muestra en la figura J.

)igura 8: Muestra la opcin para acceder al Editor de 8isual 6asic.


)igura *9: Muestra el contenido de la macro Ejercicio>



Ahora $eamos l"nea por l"nea que significado tiene el cdigo anterior.

Su" E#ercicio*:; 5ndica el inicio de la Macro con el nombre que hemos
indicado en la $entana de la figura E.

< E#ercicio* Macro
< Macro gra"ada el 98=97=9, por >uan 0arc&s usta'ante

El texto anterior 'que se encuentra con un apstrofe al inicio de cada l"nea y
generalmente en color $erde( es un comentario y no es interpretado como
cdigo $lido que realice alguna operacin slo est ah" como una explicacin
de la macro. #odemos poner este tipo de comentarios en cualquier lugar del
cdigo de la macro.

Selection1)ont1old ? @rue #one el texto de la celda o
celdas seleccionadas en
*egrita.
Selection1)ont1Italic ? @rue #one el texto de la celda o
celdas seleccionadas en
7ursi$a.
Selection1Au'"er)or'at ? BC D,DD9B 4a el formato de signo de
pesos.

Eit. Selection
9a instruccin Eit. nos permite que podamos escribir en forma
abre$iada las instrucciones que sigan. #or ejemplo como se $e podemos
escribir

1ForizontalAlign'ent ? xl>ustif$
en lugar de
Selection1ForizontalAlign'ent ? xl>ustif$

y lo mismo ocurre con las dems sentencias que le siguen. Ambas significan lo
mismo es slo la comodidad de omitir la palabra 3election.


1ForizontalAlign'ent ? xl>ustif$ permite poner alineacin
justificada en forma horizontal.
1VerticalAlign'ent ? xlotto' permite poner alineacin
inferior en forma $ertical.
1Erap@ext ? )alse #ermite ajustar el texto en la celda.
1Orientation ? 9 +rientacin del texto.
1S.rinG@o)it ? )alse 0educir hasta ajustar en falso.
1MergeCells ? )alse 7ombinar celdas en falso.
End Eit. Lin del bloque donde podemos usar la abre$iatura.
End Su" Lin de la macro.


A continuacin $eremos la utilidad de esta macro ya que este es el
$erdadero fin de las macros.

#or ejemplo primero seleccionemos un rango de celdas en el cual
hayamos escrito alguno $alores.

)igura **: 3eleccin de $alores para prueba.

Ejecutar una Macro

; ahora ejecutemos nuestra macro seleccionndola desde la $entana
que se muestra en la figura >M y presionando posteriormente el botn E#ecutar.
Esta operacin es precedida por la seleccin de la opcin 1Macros2 en el men!
Herramientas subKmen! Macro.

)igura *+: Ejecucin de la Macro Ejercicio>

9uego de la ejecucin de nuestra macro podremos apreciar que el rango
de celdas seleccionado ha tomado el formato que hemos grabado en la macro.
8eamos en la figura >C cmo han quedado estas celdas.
)igura *,: Muestra las celdas luego de ejecutarse la macro Ejercicio>


7omo podemos $er el formato que grabamos en la Macro se ha
aplicado a nuestro rango de celdas seleccionado sin importar si era texto o
n!mero el que conten"a la celda o si )sta estaba $ac"a slo se aplic el
formato. Adems podemos asegurar que este formato se aplicar sin
problemas a cualquier rango de celdas que seleccionemos.


Ejercicios #rcticos

b. b. 7ombinar celdas ajustar celdas y justificar el contenido en forma
horizontal.

E#ercitacin para el lector1
0esultado:
3ub EjercicioM'(
N
N EjercicioM Macro
N Macro grabada el ?JK?IK?C por Ouan @arc)s 6ustamante
N

N
,ith 3election
.HorizontalAlignment < xlOustify
.8erticalAlignment < xl6ottom
.,rap%ext < %rue
.+rientation < ?
.3hrin&%oLit < Lalse
.Merge7ells < %rue
End ,ith
End 3ub


c. c. #oner bordes y sombreados al rea seleccionada.
E#ercitacin para el lector1
0esultado:

3ub EjercicioC'(
N
N MacroI Macro
N Macro grabada el ?JK?IK?C por Ouan @arc)s 6ustamante

3election.6orders'xl4iagonal4o-n(.9ine3tyle < xl*one
3election.6orders'xl4iagonal/p(.9ine3tyle < xl*one
,ith 3election.6orders'xlEdge9eft(
.9ine3tyle < xl4ouble
.,eight < xl%hic&
.7olor5ndex < xlAutomatic
End ,ith
,ith 3election.6orders'xlEdge%op(
.9ine3tyle < xl4ouble
.,eight < xl%hic&
.7olor5ndex < xlAutomatic
End ,ith
,ith 3election.6orders'xlEdge6ottom(
.9ine3tyle < xl4ouble
.,eight < xl%hic&
.7olor5ndex < xlAutomatic
End ,ith
,ith 3election.6orders'xlEdge0ight(
.9ine3tyle < xl4ouble
.,eight < xl%hic&
.7olor5ndex < xlAutomatic
End ,ith
,ith 3election.6orders'xl5nside8ertical(
.9ine3tyle < xl7ontinuous
.,eight < xl%hin
.7olor5ndex < xlAutomatic
End ,ith
,ith 3election.6orders'xl5nsideHorizontal(
.9ine3tyle < xl7ontinuous
.,eight < xl%hin
.7olor5ndex < xlAutomatic
End ,ith
,ith 3election.5nterior
.7olor5ndex < >E
.#attern < xl3olid
.#attern7olor5ndex < xlAutomatic
End ,ith
End 3ub
d. d. 5nsertar una nue$a hoja de clculo con un formato de celda de n!mero
con signo de pesos en toda la hoja.

E#ercitacin para el lector1

0esultado:

3ub EjercicioD'(
N
N EjercicioD Macro
N Macro grabada el ?JK?IK?C por Ouan @arc)s 6ustamante
N

N
3heets.Add
7ells.3elect
3election.*umberLormat < PQ RRR?P
End 3ub







)or'a Manual

9a forma manual es un poco ms larga y requiere que el usuario
comprenda una serie de conceptos de programacin bsicos para que pueda
escribir las instrucciones de la macro. #ara ello se ha dedicado el final de este
instructi$o a esta misin.

Editor de 8isual 6asic

7uando queremos programar macros en forma manual debemos utilizar
el Editor de Visual asic que se muestra en la figura >D y que se encuentra
en el men! Herramientas subKmen! Macro.

)igura *3: Muestra el Editor de 8isual 6asic donde se programarn las Macros.


/na $ez abierto el editor debemos crear un nue$o mdulo que como
mencionamos anteriormente es donde se guarda el cdigo de la macro como
podemos $er en la imagen >E donde se muestra la insercin de un nue$o
mdulo.
5nsertar un *ue$o Mdulo

)igura *4: 5nsercin de un nue$o mdulo.

Al hacer clic& en el men! 5nsertar opcin Mdulo se abrir una nue$a
$entana en la cual podremos escribir el cdigo de nuestra nue$a macro. *os
debemos fijar que al comenzar a escribir el cdigo lo hagamos en el mdulo y
no en una de las hojas es ms por un sentido de orden.

Al igual que en la forma automtica usaremos un ejemplo para realizar
la explicacin de la forma manual. As" desarrollaremos los siguientes
ejemplos:

a. a. 7rear una macro que permita sumar M n!meros ubicados en las celdas
A> y AM y poner el resultado de la suma en la celda AC.
b. b. 7rear una macro que permita determinar el mayor de M n!meros
ubicados en la celda A> y AM y poner en la celda AC el resultado de dicha
comparacin.
c. c. 7rear una macro que permita realizar las D operaciones matemticas
bsica 'suma resta multiplicacin y di$isin( ubicando el primer t)rmino en
la celda A> el s"mbolo de la operacin 'F K S T( en la celda AM y el segundo
t)rmino de la operacin en la celda AC. El resultado debe aparecer en la
celda AD.
Ejemplos de Macros Manuales

a. a. 7rear una macro que permita sumar M n!meros ubicados en las celdas
A> y AM y poner el resultado de la suma en la celda AC.

5nsertar un nue$o #rocedimiento

#ara el desarrollo de este ejercicio deberemos insertar un nue$o mdulo
como se muestra en la figura >E. #osteriormente deberemos crear el inicio de
nuestra macro dando un nombre a esta podemos llamarle 1MacroU3uma2.
8eamos este proceso en las siguientes figuras el que implica el insertar un
nue$o #rocedimiento que puede hallarse en el men! insertar.

)igura *5: Muestra opcin de insercin de #rocedimiento

Al seleccionar la opcin aparecer en la pantalla una $entana '$er figura
>H( en la cual deberemos indicar $arias opciones entre las cuales se encuentra
el nombre.

)igura *6: 8entana de insercin de un nue$o #rocedimiento.

Es importante fijarse en las opciones ya que por ejemplo si no se
selecciona el mbito de nuestra macro como pri$ado slo podr ser utilizada
por otros procedimientos dentro del mdulo en que nos encontremos.

8eamos en la siguiente figura como queda finalmente todo este proceso.

)igura *7: Muestra la creacin de la macro MacroU3uma del ejercicio a.

Ahora slo debemos escribir el cdigo que permita sumar ambas celdas.

#ara ello haremos uso de los mencionados objetos. Es decir
deberemos hacer referencia a la hoja 'objeto hoja de clculo ,or&sheet( y a las
celdas en donde se encuentran los $alores que deberemos sumar. Haremos
algo bastante sencillo como sabemos donde estn los $alores y donde
debemos poner el resultado el cdigo quedar"a como se $e en la figura >J.
7laramente podemos $er como se ha hecho la referencia respecti$a a los
$alores 'propiedad 8alue( de las celdas en donde ubicaremos los $alores a
sumar.

El resultado fue puesto en la celda AC por medio del uso de la propiedad
8alue del objeto 0ange.



)igura *8: Muestra la macro del ejercicio a. creada finalmente.

7omo podemos $er se ha asignado 'por medio del signo 1<2( a la celda
AC el $alor de la suma de las celdas A> y AM.

,or&sheets'>(.0ange'PACP(.8alue < ,or&sheets'>(.0ange'PA>P(.8alue F U
,or&sheets'>(.0ange'PAMP(.8alue












Al ejecutar esta macro desde la $entana de macros se sumarn los
n!meros de las celdas A> y AM de la hoja > poni)ndose el resultado en la celda
AC.

#ero ahora $amos a $er algo muy importante y es el tema de la
seleccin de la hoja. ,or&sheets'>( es parte de la instruccin que permite
seleccionar la hoja en la cual se tomar la celda. 3i lo omitimos el cdigo
quedar"a as":

0ange'PACP(.8alue < 0ange'PA>P(.8alue F 0ange'PAMP(.8alue

0eferencia al $alor
de la 7elda AC de
la primera hoja del
libro.
0eferencia al
$alor de la
7elda A> de la
primera hoja
del libro.
0eferencia al
$alor de la
7elda AM de
la primera
hoja del libro.
3"mbolo
de la
operacin
3uma 7arcter
de salto de
l"nea que
permite
escribir
una
instruccin
en $arias
l"neas.
El cdigo anterior funcionar"a en cualquier hoja que tengamos acti$a
'esto es que tengamos seleccionada que estemos $iendo( en el momento que
ejecutemos la macro. #or ejemplo si tenemos acti$a la hojaM y ejecutamos la
macro entonces se sumarn los $alores que se encuentren en las celdas A> y
AM. 9o mismo si es la hoja> hojaC o la que sea. 'Haga la prueba(.

;a hemos $isto hasta aqu" algo bsico en lo que se refiere a la
programacin de macros. 8eremos ms adelante temas ms a$anzados y que
sern de mucha utilidad para el usuario.


Ejercicios #rcticos

b. b. 7rear una macro que permita determinar el mayor de M n!meros
ubicados en la celda A> y AM y poner en la celda AC el resultado de dicha
comparacin.

E#ercitacin para el lector1

0esultado:

#ublic 3ub MacroU7ompara'(
5f '0ange'PA>P(.8alue V 0ange'PAMP(.8alue( %hen
0ange'PACP(.8alue < PEl $alor en la celda A> es mayor.P
Else
0ange'PACP(.8alue < PEl $alor en la celda AM es mayor.P
End 5f
End 3ub


c. c. 7rear una macro que permita realizar las D operaciones matemticas
bsica 'suma resta multiplicacin y di$isin( ubicando el primer t)rmino en
la celda A> el s"mbolo de la operacin 'F K S T( en la celda AM y el segundo
t)rmino de la operacin en la celda AC. El resultado debe aparecer en la
celda AD.

E#ercitacin para el lector1
0esultado:

13in $alidacin de di$isin por ?2

#ublic 3ub MacroU7alcula'(
3elect 7ase 0ange'PAMP(.8alue
7ase PFP
0ange'PADP(.8alue < 0ange'PA>P(.8alue F 0ange'PACP(.8alue
7ase PKP
0ange'PADP(.8alue < 0ange'PA>P(.8alue K 0ange'PACP(.8alue
7ase PSP
0ange'PADP(.8alue < 0ange'PA>P(.8alue S 0ange'PACP(.8alue
7ase PTP
0ange'PADP(.8alue < 0ange'PA>P(.8alue T 0ange'PACP(.8alue
7ase Else
0ange'PADP(.8alue < P+peracin no 8lidaP
End 3elect
End 3ub


17on $alidacin de di$isin por ?2 3on sutilezas que ayudan al
usuario. =K(

#ublic 3ub MacroU7alcula'(
3elect 7ase 0ange'PAMP(.8alue
7ase PFP
0ange'PADP(.8alue < 0ange'PA>P(.8alue F 0ange'PACP(.8alue
7ase PKP
0ange'PADP(.8alue < 0ange'PA>P(.8alue K 0ange'PACP(.8alue
7ase PSP
0ange'PADP(.8alue < 0ange'PA>P(.8alue S 0ange'PACP(.8alue
7ase PTP
5f '0ange'PACP(.8alue < ?( %hen
0ange'PADP(.8alue < PError: 5ntenta di$idir por ? y no est definido.P
Else
0ange'PADP(.8alue < 0ange'PA>P(.8alue T 0ange'PACP(.8alue
End 5f
7ase Else
0ange'PADP(.8alue < P+peracin no 8lidaP
End 3elect
End 3ub



%r ogr a'a c i n A-a nz a da de Ma cr os

Me#orando la %resentacin

En esta seccin $eremos algunas formas en que el utilizar las macros se
con$ertir en algo muy simple.


5nsertar 6otones en la Hoja

Al ejecutar una macro necesitamos abrir una $entana '$er figura >M( en
la cual se enumeran todas las macros que tengamos. All" deberemos
seleccionar la que deseemos utilizar y ejecutarla. #ero ahora $eremos algo un
poco ms simple y se trata de insertar botones de formulario.

#ara ello haremos $isible la barra de herramientas de Lormularios como
podemos $er en la figura M?.

)igura +9: Muestra la forma en que se hace aparecer la barra de herramientas de Lormularios


Al hacer clic& aparecer la barra de herramientas en la cual se
encuentran una serie de elementos insertables y que podemos enlazar con una
macro. 8eamos en la siguiente figura cmo esta compuesta esta barra de
herramientas.


)igura +*: Muestra lo componentes de la barra de herramientas de Lormularios

Ahora bien insertemos un botn en la hoja de clculo y enlac)mosla con
una de las macros que hemos realizado.

)igura ++: 3e muestra la forma de enlazar un botn con una macro.

Al realizar la operacin anterior el botn queda enlazado con la macro
que hemos seleccionado. @racias a ello al presionar en el botn se ejecutar
la macro.

%ambi)n podemos cambiar el mensaje que aparece dentro del botn
como se muestra en la siguiente figura. 3lo debemos seleccionar el botn
haciendo clic& con el botn derecho y luego seleccionar la opcin 1Modificar
%exto2.

)igura +,: Muestra la forma en que
se cambia el nombre del botn.
;a hemos logrado insertar un botn enlazado a una imagen. 3i el lector
lo desea puede probar con los dems controles para $er con cuales obtiene un
resultado semejante.


5nsertar un 5cono en la 6arra de Herramientas
Ahora realizaremos algo diferente pero con lo cual podremos obtener el
mismo resultado. 3e trata de los "conos de la barra de herramientas.
#odemos insertar uno o $arios de estos botones y podremos enlazarlos a
macros. 8eamos en las siguientes figuras la forma en que se debe realizar.
)igura +3: Muestra la forma en que se debe insertar un "cono para asignarle una macro.
#odemos encontrar la $entana anterior en el men! 8er subKmen! 6arra
de herramientas opcin #ersonalizar... 3eleccionando la categor"a Macros nos
encontraremos con la opcin #ersonalizar 6otn donde arrastrando el botn a
la barra de herramientas se insertar el "cono que podremos asignar y
modificar como queramos. En la siguiente figura podemos $er este proceso.

)igura +4: Muestra la opcin en que se puede asignar la macro al botn.

#odemos asignar la macro al botn y cambiar la imagen entre otras
cosas. #odemos insertar tantos botones como deseemos. 3lo debemos
tomar nue$amente el botn y arrastrarlo hacia la barra de herramientas 'como
se muestra en la figura MD(.




Uso de )or'ularios

)igura +5: Muestra la insercin de un formulario en el 9ibro.

En la figura MG se muestra la insercin de un nue$o formulario el cual se
puede encontrar en el men! 5nsertar subKmen! Lormulario. En este formulario
podremos insertar cuadros de texto etiquetas listas etc. #or medio de ellos
podemos manipular los datos tanto de la hoja de clculo como aquellos que
podamos utilizar dentro del mismo formulario.

#ara insertar un nue$o control en el formulario debemos seleccionar el
control que deseemos insertar y dibujarlo en el formulario dando un clic& y
mo$i)ndolo hacia la derecha sin soltar el clic&.

#or ejemplo si deseamos crear nuestra calculadora bsica 'ejercicio c
de la seccin de macros manuales( podr"amos crear un dise.o de formulario
como se muestra en las figuras siguientes.

All" podemos $er que se encuentran los casilleros correspondientes para
insertar los $alores e ingresar el signo respecti$o a la operacin que se desea
realizar.
7reacin de un Lormulario

#ara crear el formulario que necesitamos para el ejercicio anterior
seguiremos una serie de pasos que detallaremos para una mejor comprensin.

)igura +6: Muestra creacin de formulario. #aso >
7omo dijimos anteriormente podemos crear objetos y en este caso una
$entana 'o formulario como le llamaremos aqu"(. /n formulario tiene
propiedades que son las que le indicarn por ejemplo el nombre que es por
medio del cual nos referiremos al objeto. #or ejemplo si queremos cambiar
alguna propiedad del formulario que creamos en la figura MH deberemos hacer
referencia a sus atributos por medio del nombre que le pusimos. + sea si
queremos ponerle un t"tulo 'propiedad 7aption( podemos escribir
/Calculadora1Caption?2Calculadora !sica2 y lo mismo para los dems
atributos.

El nombre del formulario es distinto del 7aption. El nombre '*ame( es el
que utilizamos para referenciar el objeto. En cambio el 7aption es el t"tulo lo
que se $e por la pantalla como se muestra en la figura MH.

5nsercin de +bjetos en el Lormulario

Es aconsejable siempre poner un nombre a todos los objetos que
utilizamos en el formulario. Ahora insertaremos los siguientes objetos en el
formulario. 8emos las siguientes imgenes.

)igura +7: 5nsercin del objeto 7uadro de %exto. El nombre que le hemos dado es +perador>

9os objetos insertables son los que aparecen en el 7uadro de
herramientas. 9a etiqueta 'que dice +perador >( se puede insertar
seleccionando el control que se encuentra a la izquierda del control cuadro de
texto que se muestra en la imagen MI.

)igura +8: Muestra insercin de cuadro de texto operacin.

%odos los objetos que insertemos en el formulario tienen un nombre que
puede $ariar seg!n los requerimientos del usuario. El objeto etiqueta tambi)n
puede tener un nombre.

En las siguientes imgenes se muestra la finalizacin del formulario
donde se insertarn los controles respecti$os al ingreso del segundo operador
y el botn con el cual ejecutaremos la macro.








)igura ,9: Muestra la insercin del cuadro de texto para ingresar el operador M

)igura ,*: Muestra la insercin del botn 7alcular.

Ahora ya tenemos listo el formulario con el cual realizaremos nuestra
calculadora. 3lo falta poner el cdigo que realizar el clculo.

5nsercin de 7digo de #rogramacin

4ebemos poner el cdigo en el e$ento clic& del botn que hemos
insertado 'pues debern realizarse los clculos al presionar dicho botn(. #ara
ello haremos doble clic& en el botn y se abrir una $entana en la cual
podremos poner el cdigo que realizar el clculo.

)igura ,+: Muestra el editor del e$ento clic& del botn 7alcular.

9o que debemos hacer es poner el cdigo que realizar el clculo de la
operacin de acuerdo al s"mbolo que se encuentre en el segundo cuadro de
texto que hemos puesto en el formulario.

#ara ello deberemos crear un cdigo semejante al que hemos realizado
en el ejercicio c de la seccin de macros manuales.

8eamos el cdigo resultante que realizar el clculo de la operacin
matemtica.


)igura ,,: Muestra el cdigo resultante para la calculadora bsica.


8eamos l"nea por l"nea el significado del cdigo anterior.

%ri-ate Su" CalcularHClicG:; 5nicio de nuestro cdigo. Esta escrito en
el e$ento 7lic& 'o sea cuando se hace clic&
en el botn(.
Select Case Operacion1@ext 0ealizamos un select de acuerdo a la
operacin que se haya escrito en el objeto +peracion. 9a propiedad %ext es la
que nos indica que es lo que hemos escrito en el cuadro de texto.
Case BIB En caso de que lo que hayamos escrito en el cuadro de
texto +peracin un signo F entonces se realiza lo que esta
a continuacin.

Resultado1@ext ? Val:Operador*1@ext; I Val:Operador+1@ext;
7omo lo que hab"a en el cuadro +peracin era un
signo F entonces debemos sumar lo que tenga el
cuadro de texto +perador> ms lo de cuadro de texto
+peradorM.
7omo lo que hay en los cuadros de texto es 1%exto2 'lo mismo que pasa
en las celdas de Excel muchas $eces( entonces debemos transformarlo a un
n!mero. #ara ello se pone la funcin 8A9 antes del contenido del cuadro de
texto.

Case B=B 3i es un signo W entonces debemos realizar la resta y poner el
resultado en el cuadro de texto resultado.
Resultado1@ext ? Val:Operador*1@ext; = Val:Operador+1@ext;

Case BJB 3i es un signo S entonces multiplicamos.
Resultado1@ext ? Val:Operador*1@ext; J Val:Operador+1@ext;

Case BKB 3i es el signo T debemos realizar la $erificacin de di$isin por
? y realizamos la operacin que corresponde.

If :Val:Operador+1@ext; ? 9; @.en
Resultado1@ext ? BError: Intenta di-idir por 9 $ no est! definido1B
Else
Resultado1@ext ? Val:Operador*1@ext; K Val:Operador+1@ext;
End If

Case Else 3i no es ning!n s"mbolo $lido entonces se muestra el
mensaje de error.
Resultado1@ext ? BOperacin no V!lidaB

End Select Lin del select.
End Su" Lin del cdigo del botn.


Hasta ahora hemos realizado un formulario relati$amente simple usando
controles bsicos en la comunicacin con el usuario y donde )ste es el que
debe realizar todas las tareas para obtener el resultado deseado.

En la siguiente seccin $eremos algunos controles que permitirn al
usuario realizar su tarea en forma ms fcil y rpida.

You might also like