You are on page 1of 16

CURS

B)"T&'

!" #$CR S %&'"( &

Al terminar este curso, el alumno estar en capacidad de crear Macros utilizando la grabadora de Macros de Microsoft Excel, adems modificarla por el editor de Visual Basic y asignarle un Botn, un grfico o un mtodo abreviado para su e ecucin! "ara lograr el ob etivo los asistentes debern estar familiarizados con los conceptos bsicos de #indo$s y Excel, preferiblemente %aber asistido al curso de Excel nivel medio y avanzado y al taller de &ablas 'inmicas! C %T"%&!

(u es una macro) *rabadora de macros para automatizacin de tareas simples E ecucin y seguimiento de macros Edicin de macros Men+s y Botones personalizados ,ormularios -ntroduccin al ambiente de programacin E ercicios

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

*+ es +na mac,o.na macro es una combinacin de instrucciones /ue pueden ser e ecutadas automticamente con una simple pulsacin de teclas! 0a palabra macro es una abreviatura de la palabra macroinstruccin /ue viene a ser lo mismo /ue %emos definido! En ocasiones, nos vemos en la necesidad de realizar una serie de tareas repetitivas de forma rutinaria! "odemos crear una macro /ue nos evite ese traba o! .na macro en s1 es un pe/ue2o programa en cdigo Visual Basic /ue se graba con un nombre y /ue podemos invocar en cual/uier momento! &ambin podemos asignar una combinacin de teclas como por e emplo 3ontrol45%ift4V para invocarla! 0a e ecucin de una macro es muy rpida, aun/ue depende de la cantidad de instrucciones /ue deba realizar! -maginemos /ue diariamente tenemos /ue arreglar una tabla de datos ponindole color, formato, bordes, etc! para posteriormente imprimirla! 0a ilustracin de la iz/uierda muestra la tabla normal, y la de la derec%a arreglada a mano6

"ara arreglar la tabla tendr1amos /ue6 7! 8! 9! :! ;! =! >! 5eleccionarla Abrir la paleta de bordes y colocar un borde exterior Abrir la paleta de color de fondo y escoger un color Abrir la paleta de color de texto y escoger un color "ulsar un clic< en el botn del formato monetario "ulsar un clic< en el botn del formato cursiva "ulsar un clic< fuera de la tabla y listo

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

Estos %an sido slo > pasos! -magina una tarea rutinaria de 8?? pasos, para ello, podemos crear una macro /ue nos realice el traba o automticamente! Evidentemente, los pasos de la macro %an de ser los correctos, evitando abrir y cerrar men+s y opciones innecesariamente, por lo /ue la macro tardar1a ms en e ecutarse! 3@EA3-AB 'E .BA MA3@C "A5C A "A5C 7! 3rea una tabla ms o menos como en el e emplo superior 8! Daz una copia de la tabla en otra %o a Epara probar luego la macroF 0a copia la puedes %acer arrastrando la pesta2a inferior con la tecla de control pulsada %acia su derec%a, de forma /ue %acemos una copia de la Do a7 tal y como se ve en la ilustracin6

9! 5it+ate en la Do a7 :! Abre el men+ DerramientasGMacroG*rabar nueva macro! &e aparecer una ventana donde debers escribir un nombre para la macro o aceptar el /ue te ofrece Excel EMacro7F

;! Acepta el cuadro de dilogo! 5ale un pe/ue2o botn con el /ue podemos finalizar la grabacin o %acer una pausa en la macro!

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

-M"C@&AB&E6 si este botn no aparece lo puedes activar por la barra de %erramientas! A partir de este momento, la macro comienza a grabar cual/uier pulsacin, seleccin, apertura de men+s, clic<, etc! /ue realicemos, por lo /ue debemos tener cuidado en %acer los pasos poco a poco! A continuacin debers realizar poco a poco los pasos comentados anteriormente! 7! 8! 9! :! ;! =! >! H! 5elecciona la tabla Abre la paleta de bordes y colocar un borde exterior Abre la paleta de color de fondo y escoger un color Abre la paleta de color de texto y escoger un color "ulsar un clic< en el botn del formato monetario "ulsar un clic< en el botn del formato cursiva "ulsar un clic< fuera de la tabla! "ulsa en el botn 'etener grabacin

EIE3.3-AB 'E 0A MA3@C Vamos a probar a%ora la macro6 7! 5elecciona la Do a7 E8F /ue copiaste de la Do a7 para probar la macro 8! 5elecciona la tabla de datos 9! Abre el men+ DerramientasGMacroGMacros! o presiona Alt 4 ,H &e aparecer una ventana con las macros creadas! 5e supone /ue slo %ay una! :! "ulsa el botn E ecutar y eval+a los resultados! MC'-,-3A3-AB 'E 0A MA3@C Abre el men+ DerramientasGMacroGMacros y pulsa en Cpciones 'esde a/u1 podemos asignarle la macro a una combinacin de teclas como por e emplo 3ontrol4J,!si no lo %icimos al momento de grabarla! 3ancela el cuadro y pulsa a%ora en el botn Modificar

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

A/u1 aparece un pedazo de pantalla de Visual Basic! "ara los /ue tienen nociones de programacin, las rdenes les sern familiares! A/u1 se muestran paso a paso todas las acciones /ue %emos realizado en la macro! Excel lo %a traducido al lengua e VB! 'esde a/u1 podemos tambin modificar cual/uier l1nea con lo /ue modificaremos el comportamiento de la macro! Cbserva /ue muc%as rdenes %ay /ue leerlas de derec%a a iz/uierda @angeEKA763=KF!5elect significa /ue %emos seleccionado el rango A763= 0a rutina del programa tiene la siguiente estructura6 5ub &abla7 Ardenes y acciones!!! End 5ub S+b . "n/ S+b marcan el inicio y el fin de la rutina, respectivamente! 'e momento no profundizaremos con las rutinas! 5implemente tendremos una idea de cmo trata Excel las macros! En posteriores lecciones veremos cmo modificar el cdigo de una macro a nuestro gusto! 3ierra la ventana! Cbserva /ue debers cerrar una ventana especial EVisual BasicF para retornar a la ventana de Excel normal ALA'-@ .B BC&AB EB 0A BA@@A 'E DE@@AM-EB&A5 (.E EIE3.&E 0A MA3@C A continuacin crearemos un botn y lo a2adiremos a la barra de %erramientas Estndar 7! Abre VerGBarras de %erramientasG"ersonalizar! 5elecciona la pesta2a 3omandos 8! 5ube la lista de la iz/uierda %asta ver la opcin Macros! 5eleccinala con un clic<! Cbserva /ue a la derec%a aparece una cara amarillaM

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

arrstrala %asta situarla encima de la barra de %erramientas Eo en un extremoF!

9! "ulsa en el botn Modificar seleccin y escoge de la lista la opcin Asignar macro! :! 5elecciona la macro recin creada y acepta! ;! 3ierra el cuadro de dilogo /ue /ueda abierto! A%ora ya slo /ueda probar el botn para ver la e ecucin de la Macro! BS"R'$%! ( S C !&0 S !" U%$ #$CR !" "1C"(

3rearemos una macro y veremos sus cdigos6 ! "ara observar los cdigos de una macro debemos de seguir los siguientes pasos6 7! "rimeramente trasldese a la celda $2 antes de empezar la grabacin de la Macro 8! "resione el Botn 0,aba, #ac,o de la barra de Derramientas 'is+al Basic. "3cel muestra el cuadro de 'ialogo *rabar Macro
9! en la opcin #to/o $b,evia/o escriba la letra

:! ;! =! >!

macro se llamara con Cont,ol 4 , "resione el botn $ce5ta,. "3cel inicia la grabacin del la #ac,o1 &rasldese a la celda $1 y escriba $ntonio, despus presione "nte, para aceptar el valor en la celda "are la grabacin de la macro presionando el botn !etene, 0,abaci6n de la barra de %erramientas 'is+al Basic. Excel a grabado los pasos y a generado un cdigo, Cbservmoslos6 "resione la tecla Alt 4 la tecla de funcin ,77E $lt 4 711F! Excel nos traslada al Editor de Visual Basic! 5i este editor no se activa es /ue Excel no esta bien instalado o se a borrado! &ambin puede acceder desde el #en8 9e,,amientas: #ac,o . "/ito, /e 'is+al Basic!

,,

por lo tanto la

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

H! Active los siguientes cuadros o ventanas6 'e clic en el #en8 'e, y eli a la opcin "35lo,a/o, /e ;,o.ectos 'e clic en el #en8 ve, y eli a la opcin 'entana ;,o5ie/a/es

Estas dos opciones deben de estar siempre activadas ya /ue de a%1 depende todo lo /ue vallamos a %acer!

N! 'el cuadro ;,o.ecto de doble clic en #6/+los o simplemente

presione el signo de 4 /ue aparece en la opcin #6/+los! 5e activara deba o de #6/+los la Cpcin #o/+lo1 7?! 'e doble clic en #o/+lo1! 5e mostrara en el Editor de Visual Basic el cdigo de la macro /ue grabamos de la siguiente forma6 5ub Macro7EF O O Macro7 Macro O Macro grabada el ?HP?9P8??: por 3.@5C 'E MA3@C5 B-VE0 O O Acceso directo6 3&@04r

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

O @angeEKA7KF!5elect Active3ell!,ormula@737 Q KAntonioK @angeEKA8KF!5elect End 5ub (ue es lo /ue significa esto nos preguntaremos asombrados, a continuacin se da una explicacin de lo /ue %a %ec%o "3cel6 S+b y "n/ S+b indican el inicio y el final del procedimiento de la #ac,o1 &odo lo /ue aparece con un apostrofe < indica /ue no se tomara en cuenta /ue es solo texto o comentarios y ese texto debe de aparecer en un color, ya sea el color verde! Range=>$1>?.Select -ndica /ue lo primero /ue %icimos al grabar la macro fue trasladarnos a la celda $1! 0a orden Range nos permite trasladarnos a una celda $ctiveCell.7o,m+laR1C1 @ >$ntonio> Esto indica /ue se escribir en la celda en /ue se encuentra el valor de texto $ntonio! &odo lo /ue aparece entre comillas siempre ser un valor de texto! 0a orden $ctiveCell.7o,m+laR1C1 nos permite escribir un valor en la celda activa! Range=>$2>?.Select Ctra vez indicamos /ue se traslade a la celda A8! Esto se debe a /ue cuando escribimos el nombre de $ntonio en $1 presionamos "nte, y al dar "nte, ba o a la celda $2!

"ara comprender me or alteraremos el cdigo dentro del editor de Visual Basic! (ue crees /ue pasara a/u1 con nuestra Macro6 5ub Macro7EF O O Macro7 Macro O Macro grabada el ?HP?9P8??: por 3.@5C 'E MA3@C5 B-VE0 O
Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

O Acceso directo6 3&@04r O @angeEKA7KF!5elect Active3ell!,ormula@737 @angeEKB7KF!5elect Active3ell!,ormula@737 @angeEK37KF!5elect Active3ell!,ormula@737 @angeEK'7KF!5elect Active3ell!,ormula@737 @angeEKE7KF!5elect Active3ell!,ormula@737 End 5ub

Q KAntonioK Q KAutopista sur Bo! :N R 9HK Q K97R8R:>R79K Q KBogal del BorteK Q K3-.'A'K

As1 es acabo de alterar el cdigo y cuando regrese a "3cel y e ecute la macro con Cont,ol 4 , %ar lo siguiente6 "n "n "n "n "n $1 esc,ibi, $ntonio B1 esc,ibi, $+to5ista s+, %o. AB - CD C1 esc,ibi, C1-2-AE-1C !1 esc,ibi, %ogal /el %o,te "1 esc,ibi, C&U!$!

As1 /ue salgamos del editor dando clic en el #en8 $,cFivo y eligiendo la opcin Ce,,a, . volve, a #ic,osoft "3cel! 5i no desea salir por completo de clic en el bot6n #ic,osoft "3cel /ue se encuentra activado en la barra de tareas y cuando dese volver al editor de clic en el bot6n #ic,osoft 'is+al Basic /ue se encuentra en la barra de &areas! A%ora ya /ue salimos de 'is+al Basic y estamos en "3cel de Buevo e ecutemos la macro presionando Cont,ol 4 , y veamos los resultados de nuestra modificacin! (ue te parece es sencillo o Bo), 3laro necesitamos practicar bastante para dominar esto, as1 /ue repasa la 7ase 2 cuantas veces sea

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

necesario, otra cosa no trates de generar cdigos muy comple os en tus macros por/ue te vas a enredar, poco a poco se va le os! C6/igos #s com+nes: T,asla/a,se a +na Cel/a @angeEKA7KF!5elect "sc,ibi, en +na Cel/a Activecell!,ormula@737QK@amonK (et,a %eg,ita 5election!,ont!Bold Q &rue (et,a C+,siva 5election!,ont!-talic Q &rue (et,a S+b,a.a/a 5election!,ont!.nderline Q xl.nderline5tyle5ingle Cent,a, Te3to #it% 5election !DorizontalAlignment Q xl3enter End #it% $linea, a la iGH+ie,/a #it% 5election !DorizontalAlignment Q xl0eft End #it% $linea, a la !e,ecFa #it% 5election !DorizontalAlignment Q xl@ig%t End #it% Ti5o /e (et,a=7+ente? #it% 5election!,ont !Bame Q KA*aramondK End #it% TamaIo /e (et,a=TamaIo /e 7+ente? #it% 5election!,ont !5ize Q 7; End #it% Co5ia, 5election!3opy

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

;ega, Active5%eet!"aste Co,ta, 5election!3ut ,/ena, $scen/ente 5election!5ort Sey76Q@angeEKA7KF, Crder76QxlAscending, Deader6Qxl*uess, T Crder3ustom6Q7, Matc%3ase6Q,alse, Crientation6Qxl&op&oBottom ,/en !escen/ente 5election!5ort Sey76Q@angeEKA7KF, Crder76Qxl'escending, Deader6Qxl*uess, T Crder3ustom6Q7, Matc%3ase6Q,alse, Crientation6Qxl&op&oBottom B+sca, 3ells!,indE#%at6QKRamonK, After6QActive3ell, 0oo<-n6Qxl,ormulas, 0oo<At T 6Qxl"art, 5earc%Crder6QxlBy@o$s, 5earc%'irection6QxlBext, Matc%3ase6Q T ,alseF!Activate &nse,ta, 7ila 5election!Entire@o$!-nsert "limina, 7ila 5election!Entire@o$!'elete &nse,ta, Col+mna 5election!Entire3olumn!-nsert "limina, Col+mna 5election!Entire3olumn!'elete $b,i, +n (ib,o #or<boo<s!Cpen ,ilename6QK36GMis documentosG vi/eo safe C.3lsK 0,aba, +n (ib,o Active#or<boo<!5aveAs ,ilename6QK36GMis documentosG 5iscis.3lsK, ,ile,ormat T 6QxlBormal, "ass$ord6QKK, #rite@es"ass$ord6QKK, @eadCnly@ecommended6Q T ,alse, 3reateBac<up6Q,alse La funcin MsgBox.

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

Esta funcin muestra un mensa e en un cuadro de dilogo %asta /ue el usuario pulse un botn! 0a funcin devuelve un dato tipo -nteger en funcin del botn pulsado por el usuario! A la %ora de invocar est funcin, se permiten diferentes tipos de botones! Sintxis de MsgBox. #sgBo3E Mensa e, Botones, &1tulo, Arc%ivo de ayuda, contextoF #ensaJe 6 Cbligatorio, es el mensa e /ue se muestra dentro del cuadro de dilogo! Botones 6 Cpcional! Es un n+mero o una suma de n+meros o constantes Evea tabla Valores para botones e -conosF, /ue sirve para mostrar determinados botones e iconos dentro del cuadro de dilogo! 5i se omite este argumento asume valor ? /ue corresponde a un +nico Botn CS! TKt+lo 6 Cpcional! Es el texto /ue se mostrar en la barra del t1tulo del cuadro de dilogo! $,cFivo /e $.+/a 6 Cpcional! 5i %a asignado un texto de ayuda al cuadro de dilogo, a/u1 debe especificar el nombre del arc%ivo de ayuda donde est el texto! Conte3t6 Cpcional! Es el n+mero /ue sirve para identificar el texto al tema de ayuda correspondiente /ue estar contenido en el arc%ivo especificado en el parmetro Arc%ivo de Ayuda! Tabla 5a,a botones e iconos /el c+a/,o #sgBo3 ! E&abla copiada del arc%ivo de ayuda de Microsoft ExcelF! Constante VbCSCnly VbCS3ancel 'al !esc,i5ci6n o, ? Muestra solamente el botn Aceptar! 7 Muestra los botones Aceptar y 3ancelar!

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

VbAbort@etry8 Muestra los botones Anular, @eintentar e gnore -gnorar! VbUesBo3ance 9 Muestra los botones 51, Bo y 3ancelar! l VbUesBo : Muestra los botones 51 y Bo! Vb@etry3ancel ; Muestra los botones @eintentar y 3ancelar! Vb3ritical 7= Muestra el icono de mensa e cr1tico! Vb(uestion 98 Muestra el icono de pregunta de advertencia! VbExclamation :H Muestra el icono de mensa e de advertencia! Vb-nformation =: Muestra el icono de mensa e de informacin! Vb'efaultButt ? El primer botn es el predeterminado! on7 Vb'efaultButt 8;= El segundo botn es el predeterminado! on8 Vb'efaultButt ;78 El tercer botn es el predeterminado! on9 Vb'efaultButt >=H El cuarto botn es el predeterminado! on: VbApplication ? Aplicacin modalM el usuario debe responder al Modal cuadro de mensa es antes de poder seguir traba ando en la aplicacin actual! Vb5ystemMod :?N 5istema modalM se suspenden todas las al = aplicaciones %asta /ue el usuario responda al cuadro de mensa es! El primer grupo de valores E? a ;F describe el n+mero y el tipo de los botones mostrados en el cuadro de dilogoM el segundo grupo E7=, 98, :H, =:F describe el estilo del icono, el tercer grupo E?, 8;=, ;78F determina el botn predeterminado y el cuarto grupo E?, :?N=F determina la modalidad del cuadro de mensa es! 3uando se suman n+meros para obtener el valor final del argumento buttons, se utiliza solamente un n+mero de cada grupo! Bota Estas constantes las especifica Visual Basic for Applications! "or tanto, el nombre de las mismas puede utilizarse en cual/uier lugar del cdigo en vez de sus valores reales!

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

0os valores /ue puede devolver la funcin msgbox en funcin del botn /ue pulse el usuario se muestran en la tabla siguiente! &abla de valores /ue puede devolver MsgBox! E&abla copiada del arc%ivo de ayuda de Microsoft Visual Basic para aplicacionesF! Consta nte VbCS Vb3anc el VbAbor t Vb@etry 'al o, 7 8 9 : !esc,i5 ci6n Aceptar 3ancelar Anular @eintent ar -gnorar 51 Bo

Vb-gnor ; e VbUes = VbBo > "Jem5los /e #sgBo3.

S+b &alEF ! ! ' El cuadro Muestra los botones Si y No y un icono en forma de interrogante. Cuando se pulsa ' un botn, el valor lo recoge la variable X. En este caso los valores devueltos pueden ser 6 o ' !ue corresponden respectivamente a las constantes "b#es y "bNo, observe la instruccin $f de 'despu%s. V Q MsgBoxEK'esea 3ontinuarK, vbUesBo 4 vb(uestion, KCpcinK,,F ' Se &a pulsado sobre botn Si &f V Q vbUes TFen
Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

!!!!! "lse O 5e %a pulsado sobre botn Bo !!!!! "n/ &f ! ! "n/ S+b La Funcin InputBox. Esta funcin muestra una ventana para /ue el usuario pueda teclear datos! 3uando se pulsa sobre $ce5ta,, los datos entrados pasan a la variable a la /ue se %a igualado la funcin! Vea la l1nea siguiente! &exto Q InputBoxEK-ntroduzca el textoK, KEntrada de datosKF! 5i en la ventana /ue muestra -nputBox pulsa sobre el botn Aceptar, los datos tecleados se guardarn el la variable &exto! Sintaxis de InputBox. InputBoxEMensa'e, ()tulo, "alor por defecto, *osicin &ori+ontal, *osicin "ertical, ,rc&ivo ayuda, N-mero de conte.to para la ayudaF! Mensa'e 6 Es el mensa e /ue se muestra en la ventana! 5i desea poner ms de una l1nea ponga 3%rE79F para cada nueva l1nea, vea el e emplo siguiente! ()tulo 6 Es el t1tulo para la ventana InputBox! Es un parmetro opcional! "alor por defecto6 Es el valor /ue mostrar por defecto el cuadro donde el usuario entra el valor! "armetro opcional!

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

*osicin /ori+ontal6 0a posicin V de la pantalla donde se mostrar el cuadro, concretamente es la posicin para la parte iz/uierda! 5i se omite el cuadro se presenta %orizontalmente centrado a la pantalla! *osicin "ertical6 0a posicin U de la pantalla donde se mostrar el cuadro, concretamente es la posicin para la parte superior! 5i se omite el cuadro se presenta verticalmente centrado a la pantalla! ,rc&ivo ,yuda0 Es el arc%ivo /ue contiene la ayuda para el cuadro! "armetro opcional! N-mero de conte.to para la ayuda0 B+mero asignado /ue corresponde al identificador del arc%ivo de ayuda, sirve para localizar el texto /ue se debe mostrar! 5i se especifica este parmetro, debe especificarse obligatoriamente el parmetro Arc%ivo Ayuda! Ejemplo 3 S+b EntrarT"alor !im &exto $s St,ing ' C&r1234 sirve para !ue el mensa'e se muestre en dos 5)neas &exto Q -nputBoxEK-ntroducir un texto K W 3%rE79F W K"ara la casilla A7K, KEntrada de datosKF ActiveSheet.Range("A1").Value = Texto "n/ S+b

Telfono: 6012010 info@visiontecnologica.com Bogot - Colombia

You might also like