Está en la página 1de 465

Aprendiendo OOo Basic

Autor : Correo : Fecha : Licencia : Ultima modificacin : Para ayudar :

Mauricio Baeza Servn mauricio (NO-SPAM) universolibre PUNTO org 15 e Se!"iembre el #$$% &NU 'ree (ocumen"a"ion )icense* v1+# o !os"erior ## e se!"iembre e #$$, A!o-a es"e !ro-ec"o

.o!-rig/" (c) #$$% Mauricio Baeza Servin+ Se conce e !ermiso !ara co!iar* is"ribuir -0o mo i1icar es"e ocumen"o ba2o los "3rminos e la )icencia e (ocumen"aci4n )ibre e &NU* 5ersi4n 1+# o cual6uier o"ra versi4n !os"erior !ublica a !or la 'ree So1"7are 'oun a"ion8 sin Secciones 9nvarian"es ni Te:"os e .ubier"a (elan"era ni Te:"os e .ubier"a Trasera+ Una co!ia e la licencia es"; inclui a en la secci4n "i"ula a &NU 'ree (ocumen"a"ion )icense+

To o el c4 igo inclui o en es"e libro es"a ba2o la siguien"e licencia< .o!-rig/" (.) #$$% Mauricio Baeza Servn =s"e !rograma es so1"7are libre< us"e !ue e re is"ribuirlo -0o mo i1icarlo ba2o los "3rminos e la )icencia P>blica &eneral &NU !ublica a !or la 'un aci4n !ara el So1"7are )ibre* -a sea la versi4n ? e la )icencia* o (a su elecci4n) cual6uier versi4n !os"erior+ =s"e !rograma se is"ribu-e con la es!eranza e 6ue sea >"il* !ero S9N &A@ANTAA A)&UNA8 ni si6uiera la garan"a im!lci"a M=@.ANT9) o e APT9TU( PA@A UN P@OPBS9TO (=T=@M9NA(O+ .onsul"e los e"alles e la )icencia P>blica &eneral &NU !ara ob"ener una in1ormaci4n m;s e"alla a+ (ebera /aber recibi o una co!ia e la )icencia P>blica &eneral &NU 2un"o a es"e !rograma+ =n caso con"rario* consul"e C/""!<00777+gnu+org0licenses0D+

A!ren ien o OOo Basic

ndice de contenido
1 - Introduccin................................................................................8 2 - Conceptos iniciales....................................................................10 3 - Mi primer macro........................................................................16 4 - El lenguaje o !asic...............................................................23

4.1 - "eclarando # usando $aria%les................................................26 4.2 - Instrucciones # &unciones en o !asic..................................32

4.3 - Constantes ' (iempre lo mismo...............................................36 4.4 - !i&urcaciones ' )omando decisiones.......................................36 4.* - !ucles ' +epitelo otra $e,........................................................34.6 - Matrices ' .untos pero no re$ueltos.........................................4/ 4./ - 0m%ito de $aria%les ' 12ora me $es3 a2ora no........................*/ 4./.1 - 0m%ito 4ocal.....................................................................*/ 4./.2 - 0m%ito 5ri$ado.................................................................60 4./.3 - 0m%ito de "ominio 5u%lico...............................................63 4./.4 - 0m%ito 6lo%al...................................................................63 4.8 - 7unciones # su%rutinas ' "i$ide # $encer8s............................63 4.- peradores.............................................................................. /4

4.-.1 - 9 : ; E<ponenciacin =aritm>tico?..................................../4 4.-.2 - 9 @ ; Multiplicacin =aritm>tico?......................................../6 4.-.3 - 9 A ; "i$isin =aritm>tico?..................................................// 4.-.4 - 9 B ; "i$isin entera =aritm>tico?......................................./8 4.-.* - 9Mod; +esto de una di$isin entera =aritm>tico?............../4.-.6 - 9 C ; (uma =aritm>tico?....................................................80 4.-./ - 9 - ; +esta =aritm>tico?......................................................81 4.-.8 peradores de relacin.....................................................82 4.-.- - Dot ' Degacin =lgico?.....................................................82 4.-.10 - 1nd ' E =lgico?...............................................................83 4.-.11 r' =lgico?.................................................................84 e<clusi$a =lgico?................................................8* 4.-.12 - For '

4.-.13 - EG$ ' EGui$alencia =opuesto a For? =lgico?....................86 4.-.14 - Imp ' Implicacin =lgico?...............................................86

E 4.-.1* - 5recedencia de operadores............................................8/ 4.10 - Control de errores..................................................................84.11 - Halidacin de datos................................................................-/ 4.12 - El I"E ' Muc2o m8s Gue un editor........................................103

* - )ra%ajando con

pen &&ice.org...............................................116

*.1 - Mis macros ' un arc2i$o especial...........................................11/ *.2 - 1signando macros.................................................................11*.3 - Creando nuestro primer 9ser$icio; =o%jeto?...........................12* *.3.1 - 5ropiedades especiales de depuracin...........................132 *.4 - )ra%ajando con documentos..................................................13* *.4.1 - Creando nue$os documentos.........................................13* *.4.2 - +utas de arc2i$os # directorios.......................................13/ *.4.3 - 1%riendo3 guardando # cerrando documentos................138 *.4.4 - E<portando a 5"7...........................................................146 *.4.* - )areas comunes en documentos....................................14/

6 - )ra%ajando con 2ojas de calculo ' Calc...................................1*0


6.1 - )ra%ajando con 2ojas.............................................................1*0 6.1.1 - Insertando 2ojas.............................................................1** 6.1.2 - !orrando 2ojas................................................................1*/ 6.1.3 - Mo$iendo 2ojas...............................................................1*8 6.1.4 - Copiando 2ojas...............................................................161 6.1.* - +enom%rando 2ojas........................................................162 6.1.6 cultando # mostrando 2ojas.........................................164 6.1./ - 5roteccin # desproteccin de 2ojas...............................16* 6.2 - +e&erencia a rangos...............................................................166 6.2.1 - +e&erencia a celdas indi$iduales.....................................166 6.2.2 - +e&erencia a un rango de celdas....................................168 6.2.3 - +e&erencia a $arios rangos de celdas.............................1/0 6.2.4 - +e&erencia a &ilas # columnas.........................................1/2 6.2.* - +e&erencia a la seleccin actual.....................................1/6 6.2.6 %teniendo in&ormacin de rangos.................................1/8 6.2./ - )ra%ajando con Cursores................................................181 6.2.8 - (elecciones especiales...................................................188 6.3 - Manipulando rangos..............................................................1-/

A!ren ien o OOo Basic

6.3.1 - Mo$iendo rangos............................................................1-/ 6.3.2 - Insertando rangos...........................................................201 6.3.3 - Eliminando rangos..........................................................203 6.3.4 - Copiando rangos.............................................................20* 6.4 - Manipulando datos.................................................................206.4.1 %teniendo datos ..........................................................206.4.2 - Introduciendo datos........................................................214 6.4.3 - !orrando datos...............................................................21/ 6.4.4 - 4lenando series de datos................................................216.4.* - !uscar # reempla,ar.......................................................222 6.4.6 - )ra%ajando con notas.....................................................226.* - "ando &ormato.......................................................................233 6.*.1 - 7ormato de celdas..........................................................233 6.*.2 - 7ormato de &ilas # columnas...........................................243 6.*.3 - Estilos # auto&ormato......................................................246 6.*.4 - 7ormato de p8gina..........................................................2*4 6.*.* - 7ormato condicional.......................................................2/2 6.6 - Imprimiendo..........................................................................2// 6./ - +angos de datos....................................................................28* 6./.1 - "e&iniendo rangos...........................................................286 6./.2 rdenar datos.................................................................288 6./.3 - 7iltrar datos....................................................................2-2 6./.4 - (u%totales.......................................................................30* 6./.* - Halidando datos..............................................................308 6./.6 - 1grupando datos............................................................316 6.8 - !ases de datos......................................................................323 6.8.1 - Importando datos...........................................................326 6.8.2 - Insertando nue$os datos................................................338 6.8.3 - 1ctuali,ando datos.........................................................343 6.8.4 - !orrando datos...............................................................34* 6.- - 6ra&icando datos....................................................................346 6.10 - )ra%ajando con elementos gr8&icos.....................................3/1 6.10.1 - )ra%ajando con im8genes.............................................3/1 6.10.2 - )ra%ajando con auto&ormas..........................................383
6.10.2.1 - 5rincipales propiedades de lInea.................................38* 6.10.2.2 - 5rincipales propiedades de relleno.............................388

F
6.10.2.3 - 5rincipales propiedades de som%ra............................3-4 6.10.2.4 tras propiedades de las auto&ormas.........................3-* 6.10.2.* - 1grupando # desagrupando &ormas............................3-/ 6.10.2.6 - )ra%ajando con 7ontJorK...........................................3-6.10.2./ - 5ropiedades particulares de algunas &ormas..............401

6.11 - 7unciones personali,adas....................................................40* 6.12 - Con&iguracin glo%al de Calc...............................................411

/ - )ra%ajando con &ormularios.....................................................418


/.1 - 7ormularios =7orms?...............................................................418 /.2 - EtiGuetas =4a%el?....................................................................422 /.3 - Cuadros de te<to =)e<t!o<?...................................................424 /.4 - Casilla de $eri&icacin =C2ecK!o<?.........................................42/.* - Campo &ormateado =7ormatted7ield?.....................................431 /.6 - !otn de comando =Command!utton?...................................432 /./ - !otn de opcin = ption!utton?............................................433 /.8 - Cuadro de lista =4ist!o<?........................................................436 /.- - Cuadro com%inado =Com%o!o<?............................................443 /.10 - !otn de seleccin =(pin!utton?..........................................44* /.11 - !arra de despla,amiento =(croll!ar?...................................446 /.12 tros controles....................................................................44/

/.12.1 - !otn gr8&ico =Image!utton?........................................448 /.12.2 - Control de imagen =ImageControl?................................44/.12.3 - (eleccin de arc2i$o =7ile(election?.............................44/.12.4 - Campo de &ec2a ="ate7ield?.........................................4*1 /.12.* - Campo de 2ora =)ime7ield?..........................................4*2 /.12.6 - Campo num>rico =Dumeric7ield?..................................4*4 /.12./ - Campo moneda =Currenc#7ield?...................................4** /.12.8 - Campo enmascarado =5attern7ield?.............................4*6 /.12.- - Cuadro de grupo =6roup!o<?........................................4*8 /.12.10 - Control de ta%las =)a%leControl?.................................4*8 /.12.11 - !arra de na$egacin...................................................4*-

8 - )ra%ajando con cuadros de dialogo.........................................461

A!ren ien o OOo Basic

- - )ra%ajando con e$entos..........................................................462


- Lemos llegado a un tema central en la programacin de o3 central por Gue una gran parte de la programacin en o3 tiene Gue responder a la pregunta McuandoN3 Mcuando Gueremos Gue se ejecute una macroN3 ......................................................................462

10 - 1p>ndices..............................................................................463
10.1 - (eguridad en macros...........................................................463 10.2 - Errores m8s comunes en tiempo de diseOo.........................46* 10.3 - Instalando ("P.....................................................................4/6 10.4 - Mostrar in&ormacin de un o%jeto en un arc2i$o de Calc.....4/8 10.* - 7ormulas de Calc espaOol-ingles..........................................4/10.6 - 4istar &uentes en un arc2i$o de Calc....................................486 10./ - 4istar &ormatos en un arc2i$o de Calc.................................488

11 - !i%liogra&Ia............................................................................4-0 12 - Qndice 1l&a%>tico....................................................................4-1

1 9n"ro ucci4n

1 Introduccin
"Quien recibe una idea de m, recibe instruccin sin disminuir la ma; igual que quien enciende su vela con la ma, recibe luz sin que yo quede a oscurasH Thomas Jefferson

IAs 6ue 6uieres a!ren er a !rogramar en OOo BasicJ Bien* !ues -o "ambi3n* - ese es un buen in"er3s com>n - buen comienzo+ No se si llegas"e al lugar in ica o* -a me lo con"aras+ Sabe e an"emano 6ue so- un !rograma or au"o i ac"a 6ue reconoce 6ue "iene vicios e los cuales "al vez no me o- cuen"a* es!ero - eseo* 6ue alg>n buen samari"ano 6ue se encuen"re con es"as no"as me a-u e a i en"i1icarlos+ =s"os a!un"es no "ienen o"ro !ro!4si"o 6ue com!ar"ir mi e:!eriencia al ir e:!erimen"an o con es"e maravilloso !rograma llama o O!enO11ice+org - !or su!ues"o* con su lengua2e e macros OOo Basic* una e:!eriencia sumamen"e !lacen"era+ Me eci a aven"urarme a escribir* !or la 1al"a e ocumen"aci4n en es!aKol !ara !rogramar con OOo Basic* a base e !aciencia - isci!lina /e i o !ro1un iza o en el ominio el lengua2e* creo 6ue !ue o a-u ar"e a 6ue "u curva e a!ren iza2e no sea "an larga como la ma* si se cum!le es"e segun o - sencillo !ro!4si"o* el "iem!o - es1uerzo inver"i o* bien /abr;n vali o la !ena* as 6ue* como icen en mi !ueblo -sobre a ver"encia no /a- engaKo-* a elan"e* em!ecemos+++ )a versi4n e O!enO11ice+org 6ue u"ilizo !ara escribir es"as no"as - mos"rar"e los e2em!los e !rogramaci4n* normalmen"e es la ul"ima es"able (?+1 en es"e momen"o) escarga a irec"amen"e es e /""!<00es+o!eno11ice+org* es"o es !or 6ue algunas is"ribuciones &NU0)inu:* com!ilan sus !ro!ias versiones* casi "o as L eberanM e "raba2ar e 1orma sa"is1ac"oria* !ero "e recomien o ba2ar e ins"alar la o1icial !ara 6ue nos en"en amos me2or+ (ar3 !or sen"a o 6ue es"a versi4n es "ambi3n con la 6ue "raba2as* no "e garan"izo 6ue los e2em!los mos"ra os a6u 1uncionen con o"ras versiones* e /ec/o no "e garan"izo 6ue 1uncionen con ninguna* o2o* no me malin"er!re"es* es "an al"a la can"i a e e6ui!os* sis"emas - con1iguraciones i1eren"es* 6ue es cues"i4n so1"7are es i1cil garan"izar algo - si lo u as* lee"e alguna e las muc/as licencias e so1"7are 6ue /a- en el merca o* inclu-en o !or su!ues"o* las e so1"7are libre+ )o 6ue si "e !ue o asegurar* es 6ue ca a uno e los e2em!los 6ue "e mues"ro los /e !roba o m;s e una vez an"es e arlos !or buenos* as 6ue en general es!ero no "engas !roblemas con ellos+ Tambi3n* es im!or"an"e 6ue se!as* 6ue "raba2o sobre &NU0)inu: en varias is"ribuciones (!or a/ora) Arc/)inu: (/""!<00arc/linu:-es+org)* aun6ue con"inuamen"e - m;s segui o e lo 6ue "e imaginas cambio e is"ribuci4n* !ues aun no !ue o aban onar esa mana e !robar - e:!erimen"ar (- a veces suici ar"e)* "an"o las nuevas is"ribuciones como las nuevas versiones e las -a e:is"en"es* !or lo 6ue las in"er1aces !o ran variar un !oco con res!ec"o al sis"ema o!era"ivo (S+O+) 6ue usas* !or e2em!lo Mac0OS o Nin o7s u o"ro* aun6ue es!ero 6ue es"o no sea un !roblema !ues en si lo >nico 6ue cambia es la ecoraci4n e las ven"anas* lo em;s* L eberaM ser igual en la ma-ora e los casos* no obs"an"e no es"a e m;s 6ue al enviar una consul"a es!eci1i6ues la versi4n e OOo 6ue usas - el S+O+ on e "raba2as* aun6ue claro* como no /abra e recomen ar"elo* 6ue es!eras !ara !robar alguna e las ecenas e is"ribuciones &NU0)inu: e:is"en"es* seguro 6ue alguna se a a!"a a "u gus"o - 1orma e "raba2ar* !or lo menos* no e2es e in"en"arlo+ =s"e ocumen"o es"a en cons"an"e crecimien"o* !ue es veri1icar la ul"ima versi4n en< 777+universolibre+org* como eres libre e is"ribuirlo* si "e !arece 6ue lo merece* "e invi"o a 6ue /ables e el - lo i1un as* - si no "e gus"a* !ues no seas c/ismoso+

A!ren ien o OOo Basic

Para comen"arios* no"i1icaci4n e errores* sugerencias* colaboraciones - u as !ue es usar las siguien"es al"erna"ivas< Presionar la "ecla F1 a-u a muc/o* an"es e escribir !ara u as* aseg>ra"e 6ue< No es"a resuel"a en es"as no"as No es"a resuel"a en la a-u a No se /a comen"a o en las lis"as e correo IOa realizas"e una consul"a en "u busca or 1avori"oJ O lo m;s im!or"an"e* 6ue /a-as "ra"a o e resolverlo !or "i mismo (e !re1erencia* !lan"ea "us u as en las lis"as - no a mi correo* es"o- en la me2or is!osici4n e a-u ar"e* !ero recuer a 6ue "u u a* "al vez o"ros la "engan* - si se !ublica en alguna lis"a o 1oro* la !osible res!ues"a "ambi3n le !o r; servir a mas e uno* si aun as* eseas escribirme* !rocura ser lo mas claro !osible en "u e:!osici4n - aun6ue !rocuro con"es"ar siem!re* no "e garan"izo una res!ues"a inme ia"a !ues a !ar"e e escribir es"as no"as* "engo o"ras varias ac"ivi a es 6ue "al vez no sean e "u in"er3s* !ero 6ue consumen un !oco e mi "iem!o* agra ezco "u com!rensi4n al res!ec"o+ 9nscribe"e a cual6uiera e las siguien"es lis"as e correo* e !re1erencia a las os* !ues en las os !ar"ici!o cons"an"emen"e+ Para enviar mensajes usersPes+o!eno11ice+org ooobasicQesPegru!os+ne" Para subscribirse users-subscribePes+o!eno11ice+org /""!<00777+egru!os+ne"0gru!o0ooobasicQes0al"a

Procuro !ar"ici!ar en el 1oro o1icial e macros< 'oro e Macros en =s!aKol


=s"as no"as son !osibles gracias a la generosi a e la gran comuni a O!enO11ice+org en "o o el mun o - !or su!ues"o a la comuni a mun ial el so1"7are libre* es ecir* a las personas 6ue L"o os los asM esarrollan* usan - i1un en el so1"7are libre+

Dedico este trabajo a las personas que me aman sin su amor, no seria lo que soy...

1$

# .once!"os iniciales

2 Conceptos iniciales
.omo so- una !ersona 1lo2a* "al vez !ienses 6ue no me gus"a "raba2ar - es"ar;s en lo correc"o* !or ello* cuan o escubr lo 6ue se !o a /acer con los lenguajes de programacin* com!ren 6ue es"o es lo 6ue necesi"aba (- lo 6ue me gus"aba)* los lengua2es e !rogramaci4n nos !ermi"en /acer 6ue la com!u"a ora /aga !or noso"ros* esas "areas com!le2as* re!e"i"ivas "e iosas ("ambi3n las iver"i as)* en es"os a!un"es* "ra"aremos e a!ren er como /acer en O!enO11ice+org* esas "areas com!le2as* re!e"i"ivas - "e iosas con uno e sus varios lengua2es con los 6ue se !ue e !rogramar en el* me re1iero claro es"a* al OOo Basic+ )as ins"rucciones 6ue usamos !ara ecirle al !rograma 6ue /acer* como* cuan o* el or en - la secuencia en 6ue 6ueremos 6ue lo /aga* las llamaremos MACROS* es"as macros !o emos /acerlas e 1orma Hsemiau"om;"icaH con la Grabadora de macros (!or a/ora solo !resen"e en Nri"er - .alc) o escribirlas noso"ros es e cero (!o emos crearlas es e "o as las a!licaciones e O!enO11ice+org)* a mi cri"erio* a es"a graba ora "o ava le 1al"a ma urar un !oco* !or lo cual* crearemos nues"ras macros es e cero* veras 6ue no es "an com!lica o - si* mu- iver"i o+ )o !rimero 6ue "ienes 6ue a!ren er (- recor ar) es 6ue las macros se guar an en mdulos* es"os a su vez se guar an - organizan en bibliotecas* las cuales* es";n con"eni as en"ro e ocumen"os* con lo cual "en remos el siguien"e iagrama* !or cier"o* /ec/o en (ra7+

A!ren ien o OOo Basic

11

To os los ocumen"os* "ienen una biblio"eca es!ecial !re e"ermina a llama a Standard* a es"a biblio"eca le !ue es agregar - eliminar m4 ulos* !ero no !ue es eliminarla* mas a elan"e veremos - a!ren eremos 6ue los m4 ulos "ambi3n* a em;s e macros* !ue en con"ener HfuncionesH* - los ocumen"os "ambi3n !ue en con"ener H dilogosH+ =n la siguien"e imagen !ue es ver un ocumen"o (1) con una biblio"eca (#)* un mo ulo (?) - os macros (E)+

=m!ecemos con lo iver"i o* crearemos el arc/ivo 6ue "e mues"ro en la imagen an"erior* "al como es"a - el cual nos servir; !ara guar ar las macros 6ue va-amos crean o< Abre .alc (!ue es usar cual6uier o"ra a!licaci4n e O!enO11ice+org) - guar a el ocumen"o nuevo en el lugar - con el nombre 6ue consi eres* !ara nues"ros 1ines usaremos el nombre H=2em!los e macros+o sH+ 5e al men> Herramientas | Macros | Organizar macros | OpenOffice org !asic Te mos"rara el siguien"e cua ro e ialogo* !resiona el bo"4n e coman o Administrar

Al mos"rar"e el siguien"e cua ro e ialogo* a un clic en la 1ic/a Bibliotecas asegura"e e 6ue en"ro el cua ro e lis"a es!legable Ubicacin* es"e selecciona o el

1#

# .once!"os iniciales

ocumen"o al 6ue le ane:aremos la nueva biblio"eca* en nues"ro caso* el ocumen"o e .alc* "jemplos de macros ods

9nme ia"amen"e es!u3s* !resiona el bo"4n e coman o !uevo* "ras lo cual "e mos"rara un cua ro e ialogo* solici"an o el nombre e la nueva biblio"eca* la cual llamaremos mi!iblioteca+

(es!u3s e ar clic en Aceptar* no"aras 6ue la nueva biblio"eca se agrego a la lis"a* a/ora* regresa a la 1ic/a "dulos - observa 6ue au"om;"icamen"e a la nueva biblio"eca se le ane:o un mo ulo nuevo llama o Module#* si no lo vez* "al ves "engas 6ue ar clic en el bo"4n e:!an ir re!resen"a o !or un signo e suma (R) a la iz6uier a el nombre el ocumen"o+ (a un clic en el bo"4n e coman o Cerrar !ara regresar al an"erior cua ro e ialogo+

A!ren ien o OOo Basic

1?

A/ora* es!liega los elemen"os e nues"ro ocumen"o* es"o lo logras con el icono el smbolo mas (R) 6ue es"a a la iz6uier a el nombre el ocumen"o* lo 6ue veas "iene 6ue ser igual o mu- !areci o a la siguien"e ilus"raci4n* observa 6ue "ambi3n en la lis"a e macros* a!arece -a una con el nombre e Main (eli!se ro2a)* el mismo mo o 6ue al agregar una nueva biblio"eca es"a a!arece con un nuevo mo ulo llama o e 1orma !re e"ermina a "odule#* cuan o agregamos un nuevo mo ulo* es"e crea e 1orma !re e"ermina a* una macro nueva - vaca con el nombre e "ain* un nombre 6ue "e resul"ara 1amiliar si alguna vez !rogramas"e en .+ =s"os nombres vienen !re e"ermina os* !ero se !ue en cambiar cuan o 6uieras* como lo /aremos a con"inuaci4n* !ara lo cual* a un clic en el bo"4n e coman o $ditar+

Al ar clic en $ditar* "e abrir; una nueva ven"ana* la cual ser; el cen"ro e "raba2o e H"o oH lo 6ue /agamos en OOo Basic* es"a nueva ven"ana e /ec/o es una nueva a!licaci4n* una a!licaci4n mu- es!ecial* !ues ella nos !ermi"ir; escribir "o as las macros 6ue nos !ermi"a nues"ro "iem!o e imaginaci4n* es"a a!licaci4n* recibe el nombre e =n"orno e (esarrollo 9n"egra o (9(= !or sus siglas en ingles) - es mu- Limportante %ue te familiarices con el& lo mas !osible* lo

1E

# .once!"os iniciales

cual* a1or"una amen"e se a como consecuencia in"rnseca e !rogramar en OOo Basic+ Observa como nos mues"ra el nombre el ocumen"o en on e nos encon"ramos* as como el nombre e la biblio"eca en la 6ue es"amos "raba2an o (1)* nos mues"ra* el nombre el mo ulo ac"ivo ac"ualmen"e (#)* en caso e 6ue /ubiese m;s* nos los mos"rara en 1ic/as con"iguas a es"e* !or ul"imo* observa la macro menciona a en el inciso an"erior* Main (?)

.omo siguien"e !aso* cambiemos el nombre el mo ulo* !ara ello* a un clic con el bo"4n secun ario e "u ra"4n (normalmen"e el bo"4n secun ario es el erec/o) sobre la 1ic/a 6ue mues"ra el nombre ac"ual (#)* "e mos"rara un men> con"e:"ual en"re cu-as o!ciones veras Cambiar nombre* a un clic en ella - el cursor e escri"ura (el 6ue !ar!a ea) se !osicionara al 1inal el nombre ac"ual el mo ulo* a/ora* !ue es cambiarlo !or el 6ue 6uieras* !ara nues"ro e2ercicio le llamaremos miModulo* al "erminar !resiona la "ecla SEnterT !ara ace!"ar el cambio o sim!lemen"e ac"iva el ;rea e escri"ura e c4 igo (?) con un clic* es"a ;rea en reali a es un e i"or e "e:"os* !ero un e i"or con muc/as carac"ers"icas es!eciales 6ue iremos conocien o !oco a !oco* !ara "erminar nues"ro !rimer e2ercicio* a un oble clic a la !alabra Main* con lo cual lograremos seleccionar la !alabra com!le"a* !ue es reem!lazar es"e nombre !or el 6ue 6uieras (bueno* casi !or el 6ue 6uieras* m;s a elan"e* veremos las res"ricciones al res!ec"o)* !ara con"inuar con nues"ro e2ercicio escribiremos "i'Primer'"acro+ Por ul"imo* ve al men> Arc$i%o | Guardar& o a un clic en el conoci o icono e Guardar* o !resiona la combinaci4n e "eclas .@T)R&* como en la ma-or !ar"e e los !rogramas e com!u"o* /a- mas e una manera e /acer la misma acci4n* usa* la 6ue me2or "e convenga o gus"e - guar a "u ocumen"o* -a sea con el nombre !ro!ues"o o con el 6ue consi eres correc"o+ =n es"a misma ven"ana* ve al men> Herramientas | Macros | Organizar macros | OpenOffice org !asic - com!rueba 6ue lo 6ue "ienes es bas"an"e similar a la imagen siguien"e* 6ue* salvo un !e6ueKo cambio (6ue -a no"as"e) 6ue o igual al 6ue !ro!usimos al inicio e es"as no"as+

A!ren ien o OOo Basic

15

ITe gus"o el cursoJ* es!ero 6ue si* eso es "o o* "an "an - /as"a !ron"o+ No* no es cier"o* con es"o cubrimos el $+$$1U e lo 6ue !re"en o* cons"e 6ue solo lo !re"en o+ Para 1inalizar es"e ca!i"ulo - es"a noc/e (-a me canse)* sien"o muc/o ecir"e - con1esar"e* 6ue so- un !ro1esor 6ue e2a muc/a "area* as 6ue "u "area es<
Prac"icar muc/o Agregar - eliminar biblio"ecas a i1eren"es ocumen"os Prac"icar muc/o Agregar - eliminar m4 ulos a i1eren"es biblio"ecas+ Prac"icar muc/o Observar como es"a es"ruc"ura a nues"ra !rimer macro

e O!enO11ice+org+

- "ra"ar e /acer mas* como

conse2o* una macro no !ue e ir en"ro e o"ra+ Prac"icar muc/o )os cua ro e ialogo vis"os /as"a a/ora* "ienen algunos con"roles mas* "ra"a e inves"igar !ara 6ue sirven o cual es su 1unci4n+ Prac"icar muc/o =nvame "us comen"arios* im!resiones* 6ue2as - u as* como un servicio agrega o* "ambi3n !ue es enviarme "us !roblemas e:is"enciales+ VA/W - !rac"ica muc/o+++

1F

? Mi !rimer macro

Mi primer macro
A/ora 6ue -a sabes on e crearemos nues"ras macros* em!ecemos con ellas+++ Abre "u arc/ivo e "raba2o* si /as segui o es"as no"as* nues"ro arc/ivo* es un ocumen"o e .alc nombra o $jemplos de macros(ods( (e 1orma !re e"ermina a* cuan o abres un arc/ivo e O!enO11ice+org 6ue con"iene macros* "e mos"rara el siguien"e aviso e seguri a * 6ue creo* es bas"an"e claro+

Por su!ues"o* !ara !o er "raba2ar correc"amen"e "ienes 6ue /abili"ar las macros* m;s a elan"e a!ren eremos a evi"ar es"e mensa2e !ara los arc/ivos 6ue sabemos son seguros+ Pue e ser 6ue no "e mues"re es"e mensa2e - "e abra el arc/ivo irec"amen"e con las macros es/abili"a as* si es"e es "u caso* "ienes 6ue cambiar el nivel e seguri a como "e mues"ro en %+1 Seguri a en macros+ 5e al men> Herramientas | Macros | Organizar macros | OpenOffice org !asic - navega /as"a "u ocumen"o* "u biblio"eca - "u mo ulo* inme ia"amen"e es!u3s e seleccionar la macro 6ue lleva !or nombre Mi'(rimer'Macro* !resiona el bo"4n e coman o $ditar+ =s"a serie e acciones* es la 1orma 6ue usaremos !ara acce er a la e ici4n e cual6uier macro vis"a en es"as no"as* !or lo cual* e a6u en a elan"e* ar3 !or /ec/o* 6ue -a lo ominas+

.on la acci4n an"erior* "e abrir; el =n"orno e esarrollo ( e a6u en a elan"e )*$) es"e es el !un"o in"eresan"e - el m;s iver"i o* escribir c4 igo* es ecir* ecirle al !rograma 6ue

A!ren ien o OOo Basic

1%

/aga lo 6ue 6ueramos* cuan o 6ueramos - como 6ueramos* !ara no salirnos e los Hsan"os c;nonesH e la !rogramaci4n* em!ezaremos con un cl;sico+++

O !ara lograrlo* agrega la siguien"e linea a la macro* asegura"e e escribirla o co!iarla "al cual< MsgBox "Hola Mundo!!" (e mo o 6ue 6ue e e la siguien"e manera<

A/ora* !ara He2ecu"arH la macro* es ecir* 6ue realice su "raba2o* !resiona el bo"4n e e2ecuci4n (circulo ro2o en la imagen an"erior) o !resiona la "ecla S F!T - lis"o* "en r;s 6ue ver el cua ro e mensa2e 6ue "e mos"r3 lineas arriba+ W'elici a esV* -a eres "o o un !rograma or* !ero es!era* no eres "o ava un !rograma or com!le"o* !ues -a sabes el HcomoH* solo "e 1al"a el saber el H!or6ueH* !ara lograr lo 6ue eca mi en"raKable !ro1esor e "o!ogra1a< El "ombre terico sabe #por qu$#, el "ombre practico sabe el #cmo#, lo ideal es saber #como# y #por qu$#... Para en"en er el HI!or 6u3JH* analicemos la linea 6ue acabamos e agregarle a nues"ra macro< MsgBox "Hola Mundo!!" )a !rimer !alabra* es una HinstruccinH e OOo Basic* es ecir* una !alabra es!ecial* 6ue el lengua2e* en con2un"o con el )*$* reconoce e mo o es!ecial - HrealizaH* H/aceH* He2ecu"aH* una "area es!eci1ica* en el caso e es"a Hpalabra clave o reservadaH (llama a as* !or 6ue LsoloM OOo Basic !ue e /acer uso e ella* recuer a es"o bien* solo %%o &asic la puede usar) MsgBox* mues"ra un HmensajeH en un cua ro e ialogo* I6ue mensa2eJ* como /abr;s no"a o (!or 6ue e a6u en a elan"e "en r;s 6ue ser mu- observa or)* el mensa2e 6ue mues"ra es

1G

? Mi !rimer macro

el 6ue Hnoso"rosH le in icamos elan"e e ella* - como es una Hca enaH e "e:"o* lo "enemos 6ue /acer en"re comillas - se!ara a e la ins"rucci4n !or un es!acio* Isuce er; lo mismo con n>merosJ* I- con 1ec/as o algun o"ro valorJ+++ MsgBox 1234567890 MsgBox 15/01/1974 MsgBox 1dfgdfh245 @ealiza "o os los e:!erimen"os 6ue 6uieras - me cuen"as 6ue suce e+ Observa la !rimer linea e la macro 6ue acabas e /acer* - 6ue* si /as segui o al !ie e la le"ra* no "en ras 6ue /aber mo i1ica o< REM B!"#$

)a !rimer !alabra * "ambi3n es una !alabra clave e OOo Basic* - sencillamen"e lo 6ue H/aceH* es ecirle al !rograma (nues"ra macro)* 6ue "o o lo /a-a es!u3s e es"a !alabra* es un comen"ario* es ecir* el lengua2e se lo sal"ara olm!icamen"e sin /acerle caso* comen"ar las lineas e c4 igo es una !rac"ica sumamen"e >"il* sobre "o o* cuan o las macros van crecien o e "amaKo - com!le2i a * as 6ue* asume es"a recomen aci4n* HcasiH* como una regla* -siem!re comen"a "us lineas e c4 igo-* !or a/ le en alg>n 1oro 6ue un c4 igo bien escri"o - !ro1esional no necesi"aba comen"arios* !ero como noso"ros somo Lama"eurM /aremos caso omiso e ese comen"ario* !ues como i2o alguna vez )ing Ou Tan -me gus"a la gen"e ama"eur-+ As 6ue ve al c4 igo e nues"ra macro - comen"a la linea 6ue le agregas"e* e mo o 6ue "e 6ue e* as< REM Mu%s&'a un (%nsa)% %n un *uad'o d% d+alogo MsgBox "Hola Mundo!!" )os comen"arios* "ambi3n !ue es es"ablecerlos con una comilla sim!le (X) ,Mu%s&'a un (%nsa)% %n un *uad'o d% d+alogo MsgBox "Hola Mundo!!" A emas* !o emos agregarlos* al 1inal e la linea e c4 igo< MsgBox "Hola Mundo!!" REM Mu%s&'a un (%nsa)%---d+alogo MsgBox "Hola Mundo!!" ,Mu%s&'a un (%nsa)%--- d% d+alogo @ei"ero* !rocura comen"ar la ma-or !ar"e e "u c4 igo* "u memoria "e lo agra ecer;* as como "o os los !rograma ores con los 6ue com!ar"as "u c4 igo* si eci es 6ue sea so1"7are libre* como "e recomien o 6ue sea+ A/ora veamos la linea on e inicia nues"ra macro< "u. M+/0'+(%'/Ma*'o

A!ren ien o OOo Basic

1,

.omo se 6ue eres observa or* -a /abr;s e uci o 6ue la !rimer !alabra* si* e1ec"ivamen"e* es una !alabra clave e OOo Basic* la cual nos sirve !ara e1inir una Hsubru"inaH* como "ambi3n se les conoce a las macros* !ara i en"i1icarla* le asignamos un nombre* en nues"ro caso le !usimos< Mi_Primer_Macro* nombre 6ue< !ue e llevar es!acios* si lo /aces* "e mos"rara un mensa2e* 6ue !or a/ora* no analizaremos* !ero recuer alo !ara m;s a elan"e+
NO

NO

!ue e iniciar con un n>mero* si lo /ace* "e mos"rara el siguien"e mensa2e e

error<

ebe re!e"irse el nombre e la macro* en"ro el mo ulo en 6ue se eclara* o sea* no !ue e /aber os 6ue se llamen igual* si "ra"as e /acer lo an"erior* al e2ecu"ar* "e mos"rara el siguien"e mensa2e e error<

NO

Observa la !rimer linea e los mensa2es e las os im;genes an"eriores* las os son iguales -Error de sinta'is de &(SIC -* a6u* la !alabra im!or"an"e es8 Hsin"a:isH* 6ue* si nos a"enemos a lo 6ue ice la (oKa @eal Aca emia =s!aKola* 6uiere ecir<

sinta+is(
((el la"+ s)nta*is& - es"e el gr+ YRZ[\]^_* e Y`Z[YYa^Z* coor inar)+ 1. 1+ Gram Par"e e la gram;"ica 6ue enseKa a coor inar - unir las !alabras !ara 1ormar las oraciones - e:!resar conce!"os+ 2. 1+ +nform .on2un"o e reglas 6ue e1inen las secuencias correc"as e los elemen"os e un lengua2e e !rogramaci4n+

#$

? Mi !rimer macro
@eal Aca emia =s!aKola b To os los erec/os reserva os

(e es"as e1iniciones* la 6ue nos in"eresa es la numero os* "ra"a e recor arla -Conjunto de reglas ,ue definen las secuencias correctas de los elementos de un lenguaje de programacin-* !ues en las siguien"es !;ginas* "ra"aremos e a!ren er e im!lemen"ar es"e conjunto de re,las* las cuales* "e con1esar3* no son "an"as* ni "an com!le2as - como seguro /abr;s no"a o* el )*$ nos in1orma muc/as veces cuan o im!lemen"amos mal* es"e con2un"o e reglas* es ecir* cuan o com>nmen"e /acemos mal uso e la Lsin"a:isM e Ooo Basic+ Para 1inalizar es"e ca!i"ulo* analicemos la ul"ima - mu- sencilla linea e nues"ra macro< End "u. Si* las os son !alabras claves el lengua2e - "ambi3n* creo* son bas"an"e e:!lici"as* nos in ican el 1inal e nues"ro H!rogramaH* Hsubru"inaH o HmacroH* como las llamaremos e a6u en a elan"e+ =n"onces* ca a lnea e c4 igo -* /as"a on e se encuen"re un sal"o e lnea* el lengua2e lo reconocer; como una sentencia e OOo Basic* !ue es "ener varias sen"encias en una sola lnea* si las se!aras con os !un"os* como en<
"u. 1a'+as"%n&%n*+as23 MsgBox "Es&as %s una s%n&%n*+a" 4 MsgBox "Es&a %s o&'a s%n&%n*+a" End "u.

=n sen"encias largas* !ue es usar el car;c"er e con"inuaci4n e lnea* 6ue es el guion ba2o Q* como en el siguien"e e2em!lo* !ero recuer a 6ue sigue sien o la misma sen"encia<
"u. 5+n%as5a'gas23 MsgBox "Es&as %s una l+n%a la'ga d% *od+go6 s% 7u%d% d+8+d+' " 9 / "usando %l gu+on .a)o6 *o(o %n %s&% %)%(7lo"6 0 6"E)%(7lo " 9 / "d% l+n%a la'ga" End "u.

O a/ora si* !ara "erminar es"e ca!i"ulo* observa 6ue el +-" nos mues"ra i1eren"es colores en las !alabras* es"o es mu- >"il cuan o se es"a !rograman o* !ero !or !uro gus"o "ambi3n* lo con1ieso* como una /erencia el 5BA (aun6ue "ambi3n !esa el /ec/o e "ener una macro -a /ec/a 6ue convier"e es"os colores en 1orma"o cTM))* uso la siguien"e combinaci4n e colores<
!:ul 7a'a las 7ala.'as *la8%s 1%'d% 7a'a los *o(%n&a'+os Ro)o 7a'a los n;(%'os Ro)o o.s*u'o 7a'a las *ad%nas d% &%x&o <%g'o 7a'a &odo lo d%(=s

A6u un e2em!lo e como se mos"rara el c4 igo con es"a combinaci4n e colores<


>7&+on Ex7l+*+& R%( 0'u%.as d% *o(%n&a'+o "u. 0'u%.as2B?1al 0al !s "&'+ng3 , *o(%n&a'+o @+( +n&<u( !s #n&%g%' +n&<u( A 10 B 10

A!ren ien o OOo Basic

#1
MsgBox "0'u%.a" End "u. ,*o(%n&a'+o

Para con1igurar es"os u o"ros colores 6ue sean e "u agra o* ve al men> Herramientas | Opciones en OpenOffice org escoge Representacin* !ara 6ue 6ue e e la siguien"e manera

@ecuer a 6ue es"o es solo una recomen aci4n* "u* con el uso - la !rac"ica* eci ir;s si es as como "e gus"a* si no* no u es ni un momen"o en es"ablecer los colores 6ue m;s "e agra en* gus"en o sim!lemen"e "e en la gana 6ue !ara eso es la liber"a + =s"a es la e a e veras* a/ora si* !ara "erminar es"e ca!i"ulo* "ienes 6ue recor ar 6ue !ara OOo Basic* es in is"in"o el uso e MAOUS.U)AS o min>sculas* o una combinaci4n e ambas* es ecir* nues"ra macro* H eberaH e 1uncionar igual con<
min>sculas

su. (+/7'+(%'/(a*'o (sg.ox "Hola Mundo!!" %nd su.


MAOUS.U)AS

"CB M#/0R#MER/M!$R> M"DB>E "Hola Mundo!!" E<@ "CB


.ombinaci4n e ambas* como nues"ro original* 6ue es la 1orma mas com>n - la 1orma 6ue -o usare a "o o lo largo e es"as no"as+

"u. M+/0'+(%'/Ma*'o MsgBox "Hola Mundo!!" End "u.

##

? Mi !rimer macro

=l +-"* no /ace una au"ocorrecci4n e las !alabras* no "e iguala las !alabras a ma->sculas o min>sculas ("o ava)* !ero es"o* "e a-u a muc/o a me2orar "u mecanogra1a* a ser me2or observa or* as 6ue<

Prac"ica muc/o+ 9nves"iga mas acerca e la ins"rucci4n MsgBo:* !resionar S F1T Ha-u aH muc/o+ Prac"ica muc/o+ =nvame "us comen"arios* a!or"es - u as+ Prac"ica muc/o+

A!ren ien o OOo Basic

#?

) El len*uaje %%o &asic


OOo Basic* 1orma !ar"e e la 1amilia e lengua2es Basic* com!ar"e con ellos la ma-or !ar"e e su sin"a:is* su 1acili a - sencillez* no en"raremos a6u en is6uisiciones 1ilos41icas e su /is"oria o i1erencia con o"ros HsaboresH Basic* me limi"are a mos"rar"e el uso e su sin"a:is lo mas claramen"e 6ue me sea !osible* !rocuran o 6ue los e2em!los sean "u !rinci!al 1uen"e e consul"a+ =l +-"* se encarga e revisar la correc"a Hsinta+isH (recor an o 6ue sin"a:is es un Hcon2un"o e reglasH) e ca a lnea 6ue noso"ros escribamos* !or ello* a OOo Basic se le enomina un Hlengua2e in"er!re"a oH* !or 6ue revisa la sin"a:is* ca a vez 6ue He2ecu"amosH la macro+ A/ora -a conoces on e inicia - on e "ermina una macro* como nombrarla - como e2ecu"arla* es"o es im!or"an"e 6ue lo omines bien* !ues 6ue e a6u en a elan"e* ar3 !or en"en i o 6ue as es* !or 6ue ca a nueva ins"rucci4n 6ue a!ren amos* la "ienes 6ue !robar H en"roH e una macro* as 6ue !ara 6ue no /a-a e:cusas* re!acemos una vez mas es"o+++ )a es"ruc"ura b;sica !ara una macro es<
"u. <o(.'%/d%/la/Ma*'o REM !FuG 8an &odas las +ns&'u**+on%s Fu% Fu%'a(os End "u.

Por su!ues"o e:is"en m;s varian"es* !or a/ora* !ara nues"ros 1ines* es"a es m;s 6ue su1icien"e* vamos a escribir nues"ra segun a macro* a6u es"a<
"u. M+/"%gunda/Ma*'o ,!lgo (=s +n&%'%san&% MsgBox "Hola <%na!" End "u.

O -a encarrila os* agrega una "ercer macro<


"u. M+H%'*%'Ma*'o ,5o Fu% Fu+%'as MsgBox ">>o Bas+* %s f=*+l ? d+8%'&+do" End "u.

Observaciones (Irecuer as 6ue bamos a ser observa oresJ* ser buen observa or es una e:celen"e vir"u en un !rograma or)< =n la "ercer macro* en el nombre* -a no use guiones !ara se!arar las !alabras* Ies correc"oJ* res!ues"a* si* es correc"o* uno e los re6uisi"os es 6ue el nombre HnoH lleve es!acios* as 6ue es"a bien escri"o MiTercerMacro* en la 6ue usamos la "3cnica enomina a e HcamelloH* creo 6ue es bas"an"e obvio I!or 6ueJ* es"a es la 1orma en 6ue e a6u en a elan"e* escribir3 "o o mi c4 igo+ Su!ongo 6ue /as i o !roban o ca a macro* Iver a J* si no es as* a/ora es el momen"o* !resiona SF!T - observa mu- bien 6ue suce e* I-aJ* es mu- sencilla la e:!licaci4n* -a la /abr;s e uci o+ =l 9(=* HsoloH* e2ecu"a la !rimer macro 6ue es"e en el m4 ulo ac"ivo* as 6ue si "ienes las "res macros 6ue /emos /ec/o* solo se e2ecu"ara la 6ue se llama Mi_Primer_Macro+ .laro* si "ienes como !rimer macro alguna o"ra* es"a ser; la 6ue se e2ecu"e+ O ca a vez 6ue "ra"es e e2ecu"ar* solamen"e "e mos"rara<

#E

E =l lengua2e OOo Basic

=n algunas is"ribuciones )inu:* /e no"a o 6ue la macro 6ue se e2ecu"a al !resionar '5* es la macro on e es"e el cursor e escri"ura en ese momen"o* es"o me !arece bien* !ero "o ava no es"a im!lemen"a o en la is"ribuci4n o1icial+ Para e2ecu"ar la macro 6ue 6uieras* ve a la barra e /erramien"as - a un clic en el icono Seleccionar macro

(el cua ro e ialogo 6ue "e mues"ra* escoges la macro 6ue esees - !resiona el bo"4n "jecutar+

.omo ira un buen amigo -ansina si-* a/ora si vemos lo 6ue 6ueremos ver<

A!ren ien o OOo Basic

#5

O la "ercera "ambi3n<

O"ra "3cnica !ara e2ecu"ar la macro 6ue sea* es crear una !rimer macro 6ue se llame !or e2em!lo< +ruebas* -* es e es"a* HllamarH a las o"ras* as 6ue aran nues"ras macros<
REM ***** BASIC *****
"u. 0'u%.as M+/0'+(%'/Ma*'o End "u. "u. M+/0'+(%'/Ma*'o ,Hodo un *l=s+*o MsgBox "Hola Mundo!" End "u. "u. M+/"%gunda/Ma*'o ,!lgo (as +n&%'%san&% MsgBox "Hola <%na!" End "u. "u. M+H%'*%'Ma*'o ,5o Fu% Fu+%'as MsgBox ">>o Bas+* %s f=*+l ? d+8%'&+do" End "u.

O es"o* es algo 6ue "en r;s 6ue ominar mu- bien* HllamarH a una macro* es e o"ra* observa como es "an sencillo como escribir el nombre correc"o e la macro 6ue eseamos HllamarH+++
"u. 0'u%.as M+/0'+(%'/Ma*'o End "u.

Para llamar a la segun a macro seria as<


"u. 0'u%.as M+/"%gunda/Ma*'o End "u.

Tu /aces la "ercera+ )o in"eresan"e* es 6ue !ue es HllamarH a m;s e una macro* es e o"ra* !or e2em!lo+
"u. 0'u%.as M+/0'+(%'/Ma*'o

#F
M+/"%gunda/Ma*'o End "u.

E =l lengua2e OOo Basic

O"ra 1orma e HllamarH a o"ras macros* es usan o la ins"rucci4n Call* e la siguien"e manera* el resul"a o es el mismo<
"u. 0'u%.as $all M+/0'+(%'/Ma*'o $all M+/"%gunda/Ma*'o End "u.

Se 6ue "en ramos 6ue escribir el nombre e la macro a llamar !ara !robar la 6ue eseamos ca a vez 6ue la necesi"amos* !ero recuer a 6ue solo es e !rueba* a emas* m;s a elan"e* cuan o a!ren amos m;s o!ciones e como eclarar - usar macros* veras 6ue es"e ul"imo m3"o o e !ruebas es me2or 6ue el !rimero - 6ue es"o nos sirve como a1irmaci4n e lo 6ue eca el Sr+ (escar"es -"o o lo com!le2o* !ue e ivi irse en !ar"es sim!les-

).1

Declarando y usando ,ariables


.a a vez 6ue !rogrames "us macros* recuer a el siguien"e sencillo iagrama<

Si analizas ca a !rograma e com!u"o 6ue usas* veras 6ue en ma-or o menor me i a* cum!le el 1lu2o an"erior* ca a uno e es"os "res !asos los !o emos ivi ir en muc/os m;s* !ero esa ivisi4n "u mismo la iras no"an o - esglosan o con1orme !ro1un ices en es"e o cual6uier o"ro lengua2e* veamos un sencillo e2em!lo<
Solici"amos 6ue el usuario ca!"ure su nombre com!le"o (=n"ra a) .on"amos el n>mero e le"ras (o !alabras) 6ue con"iene (Proceso) Mos"ramos el resul"a o ob"eni o (5isualizaci4n)

A/ora* 6ue !asa si a emas el nombre solici"amos 6ue ca!"ure su 1ec/a e nacimien"o* "al vez !o ramos ob"ener a em;s el n>mero e le"ras o !alabras< =l a e la semana en 6ue naci4 .uan"os as lleva vivo .uan"os aKos "iene .uan"as vocales "iene el nombre ISe "e ocurren o"ra Lin1ormaci4nM 6ue !ue as ob"enerJ Observa como con solo os a"os* !o emos ob"ener muc/a Lin1ormaci4nM* es"a sencilla ecuaci4n /ace la i1erencia en"re un !rograma e1icien"e* e uno 6ue no lo es* los buenos !rogramas* mani!ulan e1icien"emen"e los a"os !ara arnos Lin1ormaci4nM - en"re el 1lu2o e los

A!ren ien o OOo Basic

#%

a"os a la Lin1ormaci4nM* e:is"en os en"es 6ue son e"erminan"es !ara la cali a e la in1ormaci4n ob"eni a* uno es la com!u"a ora* la cual* normalmen"e solo !rovee e Lveloci a M "u* el !rograma or* 6ue !one "o a su in"eligencia* unos mas o"ros menos* al servicio el !roceso e conver"ir los a"os en Lin1ormaci4nM* 6ue como sabes* es la 6ue !ermi"e "omar las ecisiones+

No !ienses 6ue es"o- esvarian o* "o o es"e LrolloM lleva un 1in* veamos cual es+ (e acuer o a los os iagramas an"eriores* el inicio e "o a LmacroM (o !rograma)* es ob"ener los a"os* -a sea "raerlos e alg>n la o o solici"arlos al usuario+ @ecuer a 6ue !rimero /a- 6ue saber caminar !ara es!u3s correr* as 6ue no eses!eres si ves 6ue vamos algo len"o* !ero es"os "emas iniciales son e"erminan"es !ara com!ren er "o o lo 6ue venga es!u3s+ =n"onces* re"oman o el sencillo e2em!lo con el 6ue em!ezamos es"e ca!i"ulo* vamos a solici"arle al usuario 6ue nos !ro!orcione su nombre* lo cual lograremos con la L1unci4nM InputBox* o2o con la !alabra L1unci4nM -a 6ue es im!or"an"e* creo 6ue casi cual6uier !ersona 6ue usa com!u"a oras* sabe 6ue una 1unci4n* Lnormalmen"eM* re"orna un valor* es"o es im!or"an"e* nos regresa un valor* 6ue* en el caso e nues"ra macro* "en remos 6ue !oner en alg>n lugar !ara !o er "enerla is!onible - !ara !o er mani!ularla* el !rimer lugar on e "enemos 6ue a!ren er a guar ar a"os* aun6ue sea e 1orma "em!oral* es en memoria* !or su!ues"o* no en nues"ra memoria* sino en la e la com!u"a ora* en la llama a memoria @AM* !ara ello* "en remos 6ue arle un nombre a una !orci4n e ic/a memoria* a es"a ;rea 6ue es"amos nombran o* le llamaremos L ,ariableM* o"ra vez* recuer alo bien L,ariableM* algunos "e:"os "ambi3n la nombran como Lmarca orM* !ero lo m;s com>n es llamarlo L,ariableM* !recisamen"e !or 6ue su valor o con"eni o !ue e variar uran"e los !rocesos 6ue /aga nues"ra macro* resumien o* los a"os 6ue ob"engamos los guar amos L"em!oralmen"eM en variables* con lo cual "enemos es"a !rimer sencilla ecuaci4n* 6ue iremos am!lian o seg>n va-amos avanzan o en nues"ro curso+

-ariable . Dato
5eamos un e2em!lo e es"o* mos"ran o el nombre e una novia 6ue "uve<
"u. Mos&'a'<o(.'% ,!s+gna(os un 8alo' a una 8a'+a.l% <o(.'% A "<+*ol% I+d(an" ,Mos&'a(os %l 8alo' d% la 8a'+a.l% MsgBox <o(.'% End "u.

Observa como en la linea<


Nombre = "Nicole Kidman"

=s"amos asignan o el L a"oM #/icole 0idman1* a la LvariableM /ombre, el nombre e las variables* al igual 6ue el nombre e las macros* no !ue en llevar es!acios - no !ue en em!ezar con un n>mero* a emas e no !o er llevar carac"eres es!eciales* veamos algunos e2em!los e nombres e variables<

#G
(ireccion Tele1ono# 'ec/a(eNacimien"o .orreo elec"ronico ?'a: d34> .alle*Numero

E+1 (eclaran o - usan o variables

.orrec"o .orrec"o .orrec"o 9ncorrec"o ("iene un es!acio) 9ncorrec"o (inicia con n>mero) 9ncorrec"o (no se !ermi"en carac"eres es!eciales) 9ncorrec"o (no se !ermi"en comas ni !un"os)

.omo no"as"e* sim!lemen"e con usar el nombre correc"o e una variable* OOo Basic /ace uso e ella* es"a 1orma e usar variables se conoce como* L eclaraci4n im!lci"aM* !or 6ue al asignarle un valor !or !rimera vez a una variable* el lengua2e reserva el es!acio en memoria !ara su uso* !ero ( icen 6ue siem!re /a- un !ero)* es"a 1orma e usar las variables* no es na a recomen able* con1orme "us macros se /acen m;s gran es - com!le2as* el /acer uso e las variable e es"a 1orma se vuelve (- no e:agero) una ver a era locura* en con"ras"e* es m;s e1icien"e - muc/o m;s claro si le ices al lengua2e* es e el inicio e "u macro* 6ue variables son las 6ue usaras !ara 6ue reserve la memoria necesaria* es"a segun a 1orma e usar las variables se enomina* L eclaraci4n e:!lci"aM* e es"a 1orma* noso"ros somos los 6ue le in icamos al lengua2e* 6ue variables son las 6ue usaremos* /a- una !alabra clave !ara ello* se llama im - su uso es mu- sencillo* a6u el e2em!lo<
"u. @%*la'ando1a'+a.l%s ,@%*la'a(os *ua&'o 8a'+a.l%s @+( @+'%**+on @+( H%l%fono2 @+( J%*ha<a*+(+%n&o @+( Edad ,Mas *Kd+go End "u.

(e es"a 1orma* con la ins"rucci4n im* le es"amos icien o -o-e mi /ermano* a!ar"ame un cac/i"o e memoria 6ue se llame ireccion !ara 6ue -o la use-* - e1ec"ivamen"e* el lengua2e lo /ar; !ara noso"ros+ Observa 6ue el nombre e las variables inme ia"amen"e nos a una i ea acerca el a"o 6ue guar aremos en ella* en el caso e la variable ireccion* normalmen"e guar ara un "e:"o* en la variable !ec"aNacimien#o una 1ec/a - en la variable Edad un n>mero* e la 1orma como es";n eclara as las variables* se !ue e guar ar cual6uier L"i!oM e a"o ("e:"o* numero* 1ec/a* e"c) en ella* !or eso* a es"e "i!o e variables se le conoce como L$arian#M* veamoslo con un e2em!lo<
"u. 1a'+a.l%sH+7o1a'+an& @+( Cn@a&o Cn@a&o MsgBox Cn@a&o MsgBox Cn@a&o MsgBox End "u. A "Es&o %s un &%x&o" Cn@a&o A 12345678 Cn@a&o A "15/01/1974" Cn@a&o ,Dua'da(os un &%x&o ,Dua'da(os un nu(%'o ,Dua'da(os una f%*ha

)a recomen aci4n es 6ue* en vez e usar variables "i!o L5arian"M* le in i6uemos e:!lici"amen"e al lengua2e 6ue "i!o e a"os guar aremos en una variable* !ara ello* se usa la !alabra clave As* 2un"o con im - el "i!o e variable* !or e2em!lo<
"u. @+( @+( @+( @%*la'a*+onEx7l+*+&a@%1a'+a.l%s @+'%**+on !s "&'+ng ,1a'+a.l% &+7o &%x&o Edad !s #n&%g%' ,1a'+a.l% &+7o nu(%'o %n&%'o J%*ha !s @a&% ,1a'+a.l% &+7o f%*ha

A!ren ien o OOo Basic

#,

@+'%**+on A "0a'Fu% "an !nd'%s <L 14" Edad A 32 MsgBox @+'%**+on MsgBox Edad End "u.

A6u* la lis"a com!le"a el "i!o e variables 6ue !ue es usar en OOo Basic<
Tipo

Descripcin

Valores que puede contener

"&'+ng B?&% #n&%g%' 5ong "+ngl% @ou.l% $u''%n*?

Te:"o =n"ero =n"ero =n"ero largo Sim!les (obles Mone a

cas"a F5*5?5 carac"eres =n"eros en"re $ - #55 =n"eros en"re -?#%FG - ?#%F% =n"eros en"re -#1E%EG?FEG - #1E%EG?FE% Precisi4n sim!le - coma 1lo"an"e (?*E$#G#? : 1$=?G a 1*E$1#,G : 1$=-E5)+ Precisi4n oble - coma 1lo"an"e (1*%,%F,?1?EGF#?# : 1$=?$G a E*,E$F5FE5GE1#E% : 1$=-?#E) M;:imo e 15 n>meros an"es el signo ecimal - cua"ro es!u3s e el+ Almacena valores en"re -,##??%#$?FG5E%%+5G$G R,##??%#$?FG5E%%+5G$% Solo !ue e con"ener valores True (ver a ero) o 'alse (1also) .ual6uier valor* "i!o e eclaraci4n !re e"ermina o Para /acer re1erencias a ob2e"os

Bool%an @a&% 1a'+an& >.)%*&

)4gica 'ec/a 5arian"e Ob2e"o

5eamos es"e nuevo e2em!lo e una macro* aseg>ra"e e "ranscribirla "al cual o me2or aun* !ue es co!iarla<
"u. @a(%Hu<o(.'% @+( <o(.'% !s "&'+ng ,>&'a d% (+s no8+as <o(.'% A "M+'anda >&&o" MsgBox <o(.'%s End "u.

Ieue !asa al e2ecu"arlaJ* e1ec"ivamen"e* no nos mues"ra na a en el cua ro e mensa2e* es"o es !or 6ue* !ara el lengua2e* la variable Nombre* es i1eren"e e la variable Nombres - a la variable Nombres no le /emos asigna o ning>n valor "o ava* a !esar e 6ue en es"e e2em!lo es bas"an"e evi en"e nues"ro error (una !e6ueKa L s1 e i1erencia)* cuan o se !rograma - /aces uso e unas cuan"as ecenas e variables eclara as* es"o no es "an evi en"e a sim!le vis"a* !ara minimizar es"e "i!o e errores* e:is"e una ins"rucci4n 6ue nos a-u a a ello* %&#ion Ex&lici#* 6ue nos obliga a eclarar con la ins"rucci4n im* cual6uier variable an"es e usarla* es"a ins"rucci4n* cuan o se use* ebe /acerse como !rimer linea e cual6uier mo ulo (solo una vez !or mo ulo)* e mo o 6ue nues"ra an"erior macro 6ue ara as<
>7&+on Ex7l+*+& "u. @a(%Hu<o(.'% @+( <o(.'% !s "&'+ng

?$

E+1 (eclaran o - usan o variables

,>&'a d% (+s no8+as <o(.'% A "M+'anda >&&o" MsgBox <o(.'%s End "u.

5uelve a e2ecu"ar es"a macro - observa 6ue !asa* as es* nos mues"ra el siguien"e mensa2e<

.omo ves el mensa2e es mu- claro< -ariable no de2inida* es ecir* no /emos usa o la ins"rucci4n im !ara eclararla* a em;s* observa en la imagen (el subra-a o ro2o)* 6ue el +-" nos in ica con una 1lec/a la lnea on e ocurri4 el error* as 6ue* o"ra recomen aci4n 6ue "ienes 6ue "omar como regla -siem!re usa Option Explicit al !rogramar-* usan o es"a ins"rucci4n "e volver;s un !oco menos loco cuan o bus6ues I!or 6ueJ no 1unciona "u macro* mas a elan"e veremos 6ue o"ras /erramien"as im!lemen"a el +-" !ara a-u arnos con la localizaci4n e errores - la e!uraci4n e nues"ras macros+ =l inicio e es"e "ema* mencion;bamos 6ue una macro (o !rograma)* em!ieza con la solici"u e alg>n a"o al usuario (generalmen"e)* "ambi3n veamos 6ue es"e a"o o a"os se guar an "em!oralmen"e en variables (generalmen"e)* la ins"rucci4n b;sica !ara ello era<

-ariable . Dato
- como e2em!lo mos"ramos<
"u. Mos&'a'<o(.'% ,!s+gna(os un 8alo' a una 8a'+a.l% <o(.'% A "<+*ol% I+d(an" ,Mos&'a(os %l 8alo' d% la 8a'+a.l% MsgBox <o(.'% End "u.

)o cual 1unciona* !ero no es mu- vers;"il 6ue igamos* es ecir* siem!re nos mos"rara el mismo nombre* 6ue aun6ue bello* creo 6ue "erminara !or cansarnos+ )a segun a varian"e 6ue veremos !ara asignarle un valor a una variable - 6ue servir; como !re;mbulo !ara los siguien"e ca!"ulos es la siguien"e<

-ariable . Funcion
=n on e Funcion* es cual6uier ins"rucci4n 6ue nos Lre"orneM una valor* veamos un e2em!lo e la 1unci4n +nput!o*+
"u. M+<o(.'e @+( <o(.'% !s "&'+ng

A!ren ien o OOo Basic

?1

<o(.'% A #n7u&Box2"M$ual %s &u no(.'%N"3 MsgBox <o(.'% End "u.

Al e2ecu"ar* "e "en r; 6ue mos"rar el siguien"e cua ro e ialogo<

O al escribir "u nombre - ar clic en Ace!"ar* "e mos"rara lo 6ue /a-as escri"o< Para cerrar el circulo* - com!robar 6ue si 1unciona el !rimer iagrama e es"e ca!i"ulo* L"a*amos al*oM con el a"o* veamos cuan"as le"ras "iene* es"o lo logramos con la 1unci4n Len* 6ue nos ice cuan"os carac"eres "iene una ca ena* en"onces* nues"ra macro com!le"a 6ue ara as<
"u. M+<o(.'% @+( <o(.'% !s "&'+ng @+( <u(%'o@%5%&'as !s #n&%g%' <o(.'% A #n7u&Box2 "M$ual %s &u no(.'%N" 3 <u(%'o@%5%&'as A 5%n2 <o(.'% 3 MsgBox <u(%'o@%5%&'as End "u. ,En&'ada d% da&os ,0'o*%so d% da&os ,1+sual+:a*+Kn d% '%sul&ado

Observa como se cum!le el 1lu2o el iagrama mos"ra o al inicio e es"e ca!"ulo* se 6ue es un gran sim!li1icaci4n !ero nos es bas"an"e >"il !ara nues"ros !ro!4si"os+ Ni mo o* no se me olvi a e2ar"e "area<
Prac"ica

muc/o mas e la 1unci4n 9n!u"Bo:+

9nves"iga Prac"ica

muc/o "us comen"arios* a!or"es - u as+

=nvame Prac"ica

muc/o+

?#

E+# 9ns"rucciones - 1unciones en OOo Basic

).2

Instrucciones y 2unciones en %%o &asic

I@ecuer as 6ue mencionamos 6ue las !alabras claves o reserva as e OOo Basic* se llaman as !or 6ue solo OOo Basic !ue e /acer uso e ellasJ* Iver a 6ue lo recuer asJ* !or ello* no !ue es crear una macro 6ue se llame MsgBox u %&#ion* "am!oco !ue es eclarar variables con alguna e es"as !alabras+ =s"as !alabras clave* las !o emos ivi ir en os gran es gru!os8 las ins"rucciones - las 1unciones* 6ue* como !rimer a!ro:imaci4n a una e1inici4n >"il* iremos 6ue< 3as instrucciones 4"acen1 al*o 3as 2unciones 4de,uel,en1 al*o )a i1erencia en"re una - o"ra* es crucial !ara el en"en imien"o - esarrollo 4!"imo e los siguien"es ca!"ulos+ Usaremos una ins"rucci4n 6ue -a conoces* MsgBo:* !ara mos"rar"e las i1erencias en"re las ins"rucciones - las 1unciones* !ues es"a !alabra clave "iene la !ar"iculari a e !o er usarse como una u o"ra e!en ien o e nues"ras necesi a es+ 5eamos la siguien"e linea e c4 igo+
MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"

=s"amos usan o MsgBo: como una ins"rucci4n* !or 6ue es"a L/acien oM algo* I6ueJ* nos mues"ra un mensa2e en !an"alla* I6ue mues"raJ* el "e:"o* e a6u en a elan"e Lca ena e "e:"oM* 6ue le in icamos en"re comillas* es"a ca ena e "e:"o* recibe el nombre e L!ar;me"roM o Largumen"oM* recuer alo bien* recibe el nombre e Largumen"oM+ Icas !roba o a in"en"ar e2ecu"ar es"a ins"rucci4n sin ning>n argumen"oJ+
MsgBox

=1ec"ivamen"e* el +-" nos mues"ra el siguien"e error+

O nos seKalara con la 1lec/a 6ue -a conoces* la linea el error* en es"e caso* la linea con la ins"rucci4n MsgBox* con lo cual se e uce 1;cilmen"e 6ue el argumen"o Mensaje* 6ue es e "i!o Lca ena e "e:"oM (o2o con es"o* los argumen"os* al igual 6ue las variables* son e un L tipo de datoM)* es necesario o re6ueri o* es ecir* no "raba2ara mien"ras no lo incor!oremos a la linea e c4 igo* Inecesi"a alg>n o"roJ* no* con es"e argumen"o es m;s 6ue su1icien"e !ara 6ue "raba2e* !ero eso si* !ue e llevar m;s argumen"os* !or e2em!lo* !rueba la siguien"e lnea e c4 igo observa el resul"a o+
MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 16

A!ren ien o OOo Basic

??

O a/ora es"a<
MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 32

=n"onces* si 6uieres 6ue "e mues"re un icono con la seKal e Ls"o!M* ebes e agregarle un segun o argumen"o 6ue se llama 5ipo* el cual* es un n>mero en"ero* !ara el !rimer caso un 1F - !ara el icono e in"errogaci4n !onemos un ?#* e:is"en o"ro os iconos 6ue !ue es mos"rar* el icono e e:clamaci4n (EG) - el icono e in1ormaci4n (FE)* 6ue "e mues"ro a6u<

)a ins"rucci4n MsgBox* "iene un "ercer argumen"o o!cional 6ue se llama 5itulo* el cual !ermi"e !ersonalizar el "i"ulo el cua ro e ialogo* 6ue como no"as en las cua"ro im;genes an"eriores* "o as icen so22ice* com!ru3balo* nunca me creas com!le"amen"e /as"a no /aberlo com!roba o !or "i mismo* !ara /acerlo* !rueba las siguien"es lineas e c4 igo+
MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 166 "#*ono d% "&o7" MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 326 "#*ono d% 7'%gun&a" MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 486 "#*ono d% %x*la(a*+Kn" MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 646 "#*ono d% +nfo'(a*+Kn"

O observa el resul"a o* en es"a caso* solo e la segun a linea<

.reo 6ue "o ava man"engo "u con1ianza* Iver a J* es!ero 6ue si+ Sigamos+ =s"os son los "res argumen"os 6ue !ue e usar la ins"rucci4n MsgBo:* Mensa2e* Ti!o - Ti"ulo* !or lo cual* la sin"a:is com!le"a - correc"a e es"a ins"rucci4n es<
MsgBox Mensaje As String, [Tipo As Integer], [Titulo As String6

?E

E+# 9ns"rucciones - 1unciones en OOo Basic

)o im!or"an"e a6u es 6ue aprendas a distin,uir la estructura o sinta+is de una instruccin* observa como los argumentos se se!aran !or comas - los argumentos o!cionales se encierran en"re corc/e"es* a emas* - mu- im!or"an"e* observa 6ue se es!eci1ica el tipo de dato 6ue se es!era se use en el argumento* es"o* es mu- im!or"an"e* !asarle a un argumento un "i!o e a"o 6ue /% es el 6ue es!era* !ue e !ro ucir errores o resul"a os im!revisibles+ @egresemos al argumen"o Ti!o* - veamos 6ue "ambi3n !o emos es"ablecer los bo"ones e coman o 6ue 6ueramos se mues"ren en el cua ro e ialogo* a6u es"a la lis"a com!le"a e es"as o!ciones< $ 1 # ? E 5 Mos"rar s4lo el bo"4n Ace!"ar+ Mos"rar los bo"ones Ace!"ar - .ancelar+ Mues"re los bo"ones .ancelar* @e!e"ir - 9gnorar+ Mos"rar los bo"ones S* No - .ancelar+ Mos"rar los bo"ones S - No+ Mos"rar los bo"ones @e!e"ir - .ancelar+

O una mues"ra<
MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 26 "#ns&'u**+Kn MsgBox"

.uan o 6uieras mos"rar una combinaci4n e bo"ones e iconos* sim!lemen"e es"ablece el argumen"o .ipo* como una suma e los valores 6ue 6uieres mos"rar* las os lineas siguien"es son e6uivalen"es<
MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*6 MFu+%'%s *on&+nua'N"6 4 B 326 ">>o Bas+*" MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*6 MFu+%'%s *on&+nua'N"6 366 ">>o Bas+*"

eue nos mos"rara<

O a!ues"o a 6ue -a "e /icis"e la !regun"a in"eresan"e* Icomo sabemos 6ue bo"4n es el 6ue !resiono el usuarioJ* la res!ues"a es sencilla* usaremos MsgBox !ero a/ora* como 1unci4n* !ara ello "ienes 6ue recor ar 6ue< una 1unci4n evuelve un valor* el cual* !ara em!ezar* guar aremos en una variable* segun o8 las 1unciones* al evolver un valor* "ambi3n es e un "i!o es!eci1ico (S"ring* 9n"eger* e"c)* !or lo cual* es mu- im!or"an"e 6ue la variable on e guar emos el valor sea el Lmismo tipoM el valor 6ue es!eramos nos evuelva la 1unci4n+ =n las 1unciones* los argumentos 6ue lleve la 1unci4n* van siem!re en"re !ar3n"esis -* como van asigna as a una

A!ren ien o OOo Basic

?5

variable* necesi"amos usar el signo igual* como resul"a o* la es"ruc"ura com!le"a e la 2uncin MsgBox seria<
Variable As [Titulo As String] Integer = MsgBox (Mensaje As String, [Tipo As Integer],

@ecor an o* -a 6ue es mu- im!or"an"e* 6ue la variable ebe ser eclara a el mismo tipo el valor 6ue es!eramos evuelva la 1unci4n* en es"e caso en es!eci1ico* la 1unci4n MsgBox* evuelve un en"ero (9n"eger)* !or lo 6ue la variable on e guar es el valor e re"orno ebes e eclararla como "i!o en"era (9n"eger) - as !ara ca a valor e re"orno e ca a 1unci4n 6ue uses* !or su!ues"o* en la ocumen"aci4n e OOo Basic* normalmen"e viene es!eci1ica o es"e valor e re"orno !ara ca a 1unci4n* o en su e1ec"o* es!ero me alcancen las ganas e mos"rar"e "o as las 1unciones 6ue usa OOo Basic* es!ero 6ue si+ )o realmen"e im!or"an"e* es 6ue a!ren as a consul"ar es"a ocumen"aci4n* es ecir* vien o es"ruc"uras como las 6ue "e /e mos"ra o* ebes e ser ca!as e /acer uso e cual6uier 1unci4n o ins"rucci4n* saber 6ue argumen"os necesi"a - e 6ue "i!o* as* como saber 6ue "i!o e valor e re"orno "en r;s* en el caso e las 1unciones+ 5eamos el e2em!lo an"erior* com!le"o* -a con su variable e re"orno<
"u. #ns&'u**+on%sOJun*+on%s @+( R%s7u%s&a !s #n&%g%' R%s7u%s&a A MsgBox 2 "Es&o? a7'%nd+%ndo >>o Bas+*6 MFu+%'%s *on&+nua'N"6 366 ">>o Bas+*" 3 MsgBox R%s7u%s&a End "u.

Por su!ues"o* !or a/ora* no veras muc/a i1erencia* "e mos"rara el mismo cua ro e ialogo* !ero la gran i1erencia* es 6ue en la variable Res&'es#a* "en remos el valor el bo"4n 6ue el usuario /a-a !resiona o* Icomo saber cualJ - ac"uar en consecuencia* es "ema e o"ro ca!i"ulo* as 6ue sigue le-en o* !or a/ora* solo "e !aso la lis"a com!le"a e los valores 6ue !ue e re"ornar la 1unci4n MsgBox+ 1 Ace!"ar # .ancelar ? .ancelar E @e!e"ir 5 9gnorar F S % No No creas 6ue es"a mal la lis"a* el bo"4n .ancelar* !ue e regresar un valor # o ?* e!en ien o e con 6ue o"ros bo"ones se mues"re+ =n"re m;s conozcas - omines las ins"rucciones - 1unciones e OOo Basic* m;s r;!i o - !ro uc"ivo ser;s* !ero recuer a 6ue no es necesario a!ren erse e memoria "o o es"o* lo ver a eramen"e im!or"an"e es 6ue Laprendas a reconocer la sinta'is y estructura de cualquier instruccin o 2uncin1* con es"o* el res"o es solo consul"ar la ocumen"aci4n el lengua2e* la a-u a el !rograma o manuales como es"e* 6ue solo son re1erencia* la l4gica* lo im!or"an"e - relevan"e al !rogramar* eso* solo se logra con la !rac"ica iaria* !ara /acer real lo 6ue eca (on Aris"o"eles* -somos lo 6ue /acemos a con a* e mo o 6ue la e:celencia no es un ac"o sino un /abi"oM;s a elan"e a!ren eremos a crear nues"ras !ro!ias ins"rucciones 6ue a6u llamaremos Lsubru"inasM - "ambi3n nues"ras !ro!ias 1unciones* !ero !ara ello* no ebes e "ener u a alguna e como se usan las 6ue incor!ora OOo Basic+ O un nuevo ca!i"ulo /a llega o a su 1in* no olvi es e<

?F

E+# 9ns"rucciones - 1unciones en OOo Basic

Prac"icar muc/o+ Prueba a combinar los Prac"icar muc/o+ No "e eben e 6ue ar

i1eren"es valores el argumen"o 5ipo. u as* es"e "ema es mu- im!or"an"e !ara los siguien"es

ca!"ulos+
=nviarme "us u Prac"icar muc/o+

as* comen"arios - a!or"es+

).

Constantes 7 Siempre lo mismo

cemos vis"o como guar ar un a"o "em!oralmen"e en una variable* !ero /abr; ocasiones* 6ue un valor ser; cons"an"e uran"e "o a la e2ecuci4n e una macro* el uso e cons"an"es es mu- sencillo - nos evi"a "ener 6ue es"ar recor an o valores es!ec1icos* o"ro valor agrega o e las cons"an"es* es 6ue* si es"a llega a cambiar* solo "enemos 6ue cambiar su valor una vez en la secci4n on e la eclaramos+ Para eclarar una cons"an"e* usamos la !alabra clave Cons# e la siguien"e manera<
$ons& # A 100

Aun6ue lo m;s recomen able* es "ambi3n es"ablecer el "i!o e cons"an"e<


$ons& 0# !s "+ngl% A 3-1416

=s una !rac"ica com>n en los !rograma ores* eclarar las cons"an"es con MAOUS.U)AS* aun6ue es"o no es una regla* "e encon"raras mu- segui o con es"a 1orma e eclarar cons"an"es+ Un buen e2em!lo el uso e cons"an"es* es sus"i"uir el uso e los en"eros en el argumen"o .ipo e la ins"rucci4n MsgBox* vis"o en el ca!i"ulo an"erior* veamos como<
$ons& #$><>/0REDC<H! !s #n&%g%' A 32 $ons& B>H><E"/"#<> !s #n&%g%' A 4 MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 #$><>/0REDC<H! B B>H><E"/"#<>6 ">>o Bas+*"

Para nombrar a las cons"an"es* a!lican las mismas reglas vis"as !ara nombrar a las macros - a las variables* !or lo 6ue no las re!e"iremos a6u+ (e!en ien o el "amaKo e "u !ro-ec"o* es una buena !rac"ica e !rogramaci4n* usar un mo ulo >nico !ara eclarar variables cons"an"es* !ero a 1in e cuen"as "u gus"o - cri"erio son los 6ue man an+

).)

&i2urcaciones 7 5omando decisiones

ITe /as !ues"o a !ensar cuan"as ecisiones "omas al aJ* la vi a es"a /ec/a e ecisiones* o eso icen* - en las macros no nos salvamos e ellas* casi siem!re /a- 6ue es"ar eci ien o algo - en base a es"a ecisi4n* "omamos uno u o"ro camino+ A1or"una amen"e en OOo Basic es muc/o m;s sencillo 6ue en la vi a* veamos como /acerlo+

A!ren ien o OOo Basic

?%

Un !regun"a im!or"an"e< Ieuieres ser mi noviaJ* si ice 6ue LnoM I6ue /agoJ* !ero 6ue "al 6ue ice 6ue LsiM* !regun"emosle<
>7&+on Ex7l+*+& "u. <o8+os @+( R%s7u%s&a !s #n&%g%' R%s7u%s&a A MsgBox2 "MPu+%'%s s%' (+ no8+aN"6 32 B 46 "<o8+os" 3 MsgBox R%s7u%s&a End "u.

.o!ia - e2ecu"a la macro an"erior - observa como >nicamen"e es"amos ob"enien o la in1ormaci4n el bo"4n 6ue selecciono el usuario< un F !ara el bo"4n LSiM - un % !ara el bo"4n LNoM* e acuer o a los valores mos"ra os en la secci4n #+ A/ora* ac"uaremos en consecuencia* e!en ien o e la res!ues"a* !ara ello "e !resen"o una nueva ins"rucci4n 6ue "e acom!aKara (es"a s) !ara el res"o e "u !rogramaci4n+ SeKoras - seKores* con Us"e es* la ins"rucci4n I2...5"en...Else+ 5eamos su uso+
"u. <o8+os2 @+( R%s7u%s&a !s #n&%g%' ,5a 7'%gun&a +(7o'&an&% R%s7u%s&a A MsgBox2 "MPu+%'%s s%' (+ no8+aN"6 32 B 46 "<o8+os" 3 ,E8alua(os la '%s7u%s&a6 '%*u%'da6 un 7 %s +gual <o #f R%s7u%s&a A 7 Hh%n MsgBox "@% lo Fu% &% 7+%'d%s" End #f End "u.

Observa 6ue solo logramos saber cuan o se !resiono el bo"4n e LNoM* !ero cuan o se !resiona el bo"4n LSiM* sim!lemen"e no lo sabemos* !ara solven"ar es"o* c/eca la siguien"e macro<
"u. <o8+os3 @+( R%s7u%s&a !s #n&%g%' ,5a 7'%gun&a +(7o'&an&% R%s7u%s&a A MsgBox2 "MPu+%'%s s%' (+ no8+aN"6 32 B 46 "<o8+os" 3 ,E8alua(os la '%s7u%s&a6 '%*u%'da6 un 7 %s +gual <o #f R%s7u%s&a A 7 Hh%n MsgBox "@% lo Fu% &% 7+%'d%s" Els% ,$ualFu+%' o&'o 8alo' d+f%'%n&% d%l Fu% s% %8al;a %n la *ond+*+Kn MsgBox "Pu% +n&%l+g%n&% %'%s" End #f End "u.

No"aras al e2ecu"ar* 6ue a/ora si sabemos cuan o se !resiono ca a uno e los bo"ones e nues"ro cua ro e ialogo+ (ebes e !oner a"enci4n a algo im!or"an"e* la ins"rucci4n =lse* signi1ica Lcual6uierM o"ro valor o caso o con ici4n* es ecir* en nues"ro e2em!lo* si el valor e la variable @es!ues"a era %* la e2ecuci4n con"inua en la lnea inme ia"a* si la variable "iene Lcual6uierM o"ro valor o con ici4n* en"onces /ace lo segun o* veamoslo con un e2em!lo<
"u. @+a@%5a"%(ana @+( @+a !s #n&%g%' ,"ol+*+&a' un nu(%'o d+ga(os %n&'% 1 ? 10 @+a A #n7u&Box2 "MPu% d+a Fu+%'%s sa.%' 21 a 103N" 3 #f @+a A 1 Hh%n MsgBox "Es&% d+a %s @o(+ngo" Els% MsgBox "Es&% d+a <> %s @o(+ngo" End #f

?G
End "u.

E+E Bi1urcaciones f Toman o ecisiones

Observa como Lsolamen"eM con el valor e 1* es como se nos in1orma 6ue es (omingo* cual6uier o"ro valor nos mues"ra el segun o mensa2e+ Si 6uisi3ramos saber 6ue a e la semana corres!on e a o"ro valor* usaremos una varian"e e la ins"rucci4n I2..5"en...Else* veamos como<
"u. @+a@%5a"%(ana2 @+( @+a !s #n&%g%' ,"ol+*+&a' un nu(%'o d+ga(os %n&'% 1 ? 10 @+a A #n7u&Box2 "MPu% d+a Fu+%'%s sa.%' 21 a 103N" 3 #f @+a A 1 Hh%n MsgBox "Es&% d+a %s @o(+ngo" Els%#f @+a A 2 Hh%n MsgBox "Es&% d+a %s 5un%s" Els% MsgBox "<> s% Fu% d+a %s" End #f End "u.

(e es"a manera* !o emos /acer "an"as com!araciones como 6ueramos* gTA@=Ah com!le"a la macro !ara 6ue nos e "o o los as e la semana - en caso e o"ro valor nos in1orme 6ue no es un a e la semana+ .omo !is"a* !ue es usar "an"os ElseI2 como 6uieras+ @esumien o< la es"ruc"ura general e la ins"rucci4n I2...5"en...Else es<
#f $><@#$#>< Hh%n ,$Kd+go s+ *ond+*+Kn %s 8%'dad%'a QEls%#f $><@#$#></2 Hh%nR ,$Kd+go s+ *ond+*+Kn 2 %s 8%'dad%'a QEls%R ,$ualFu+%' o&'o 8alo' End #f

@ecuer a 6ue las o!ciones 6ue es";n en"re corc/e"es son Lo!cionalesM* no necesariamen"e "ienes 6ue usarlas* !ero veras 6ue casi siem!re as ser;+ =n .ON(9.9ON* !ue e ir Lcual6uierM ins"rucci4n susce!"ible e ser evalua a como ver a era o 1alsa - !ue e ser "an sencilla como las vis"as /as"a a/ora o com!le2a como el siguien"e e2em!lo* 6ue !or a/ora* no "e im!or"e como es"a cons"rui a* sino "an solo 6uiero mos"rar"e un caso L i1eren"eM e con ici4n* !ero veras 6ue m;s a elan"e a!ren eremos a /acer+
Els%#f .olHa?$o(+llas A Jals% !nd 2s&'0ala.'a A "," >' C$as%2s&'0ala.'a3 A "REM"3 Hh%n Els%#f Es0ala.'a$la8%2s&'0ala.'a3 !nd .olHa?$o(+llas A Jals% Hh%n

5olvien o al e2em!lo e los as e la semana* en ocasiones* sobre "o o cuan o se com!ara la misma variable varias veces* es !osible usar o"ra ins"rucci4n e bi1urcaci4n* a/ora* a!ren er;s a usar Select...Case* veamos un e2em!lo<
"u. @+a@%5a"%(ana3 @+( @+a !s #n&%g%' @+a A #n7u&Box2 "MPu% dGa Fu+%'%s sa.%' 21 a 103N" 3 "%l%*& $as% @+a $as% 1 MsgBox "Es&% dGa %s @o(+ngo" $as% 2 MsgBox "Es&% dGa %s 5un%s"

A!ren ien o OOo Basic


$as% 3

?,

MsgBox "Es&% dGa %s Ma'&%s" $as% 4 MsgBox "Es&% dGa %s M+S'*ol%s" $as% Els% MsgBox "<> s% Fu% dGa %s" End "%l%*& End "u.

Observa 6ue 1;cil es es"a ins"rucci4n+ A emas* !ue e usar varios valores a evaluar o rangos e valores* !or e2em!lo<
"u. @+a@%5a"%(ana4 @+( @+a !s #n&%g%' @+a A #n7u&Box2 "MPu% dGa Fu+%'%s sa.%' 21 a 103N" 3 "%l%*& $as% @+a ,!FuG %8alua(os s+ %s s=.ado o do(+ngo $as% 16 7 MsgBox "0o' f+n a d%s*ansa'" ,O aFuG s+ %s %n&'% s%(ana6 d% 5un%s a 1+%'n%s $as% 2 Ho 6 MsgBox "Pu% ho''o'6 dGa d% &'a.a)o" $as% Els% MsgBox "<> s% Fu% dGa %s" End "%l%*& End "u.

I5er a 6ue es 1;cilJ Al igual 6ue con la ins"rucci4n I2...5"en...Else* las con ici4n a evaluar !ue e ser mu- sencilla o com!le2a* !ero las os* son el !an nues"ro e ca a a en la !rogramaci4n* as 6ue* "enlas siem!re a la mano+

).!

&ucles 7 8epitelo otra ,e9

=n ocasiones ( e /ec/o* mu- segui o) es necesario realizar el mismo !aso una o"ra vez* es ecir* necesi"amos re!e"ir blo6ues e c4 igo las veces 6ue 6ueramos o cuan o (o /as"a) 6ue se cum!la una con ici4n es!eci1ica+ Para ello* vamos a conocer os nuevas es"ruc"uras !ara /acer bucles o re!e"iciones* es";n son< For.../e't - Do...3oop* veamos e2em!los e ca a una* "e acuer as cuan o "e !or"abas mal - la maes"ra "e e2aba escribir cien veces -Tengo 6ue !or"arme bien-* si en eso en"onces /ubiese sabi o !rogramar (- cons"e 6ue cuan o iba a la !rimaria -a e:is"an las com!u"a oras) le /ubiese en"rega o a la maes"ra el siguien"e c4 igo<
>7&+on Ex7l+*+& "u. 0o'&a's%B+%n @+( $on&ado' !s #n&%g%' ,#n+*+a %l *on&ado' *on los l+(+&%s %s7%*+f+*ados Jo' $on&ado' A 1 Ho 2 ,Es&% %s %l *Kd+go Fu% s% %)%*u&a %l nu(%'o d% 8%*%s ,%s7%*+f+*ado *on los l+(+&%s %n nu%s&'o *aso 2 8%*%s MsgBox "H%ngo Fu% 7o'&a'(% .+%n"

E$
<%x& End "u.

E+5 Bucles f @e!i"elo o"ra vez

Se 6ue es"a mu- claro* !ero me2or lo e:!licamos !ara 6ue no /a-a ninguna u a ning>n !re"e:"o e como a!licarlo m;s a elan"e+ Para /acer uso e la es"ruc"ura For.../e't* es necesaria una variable e a!o-o* !ara nues"ro caso* escogimos la variable .on"a or* con 1recuencia "e encon"raras 6ue algunos !rograma ores usan la le"ra 9* i - subsecuen"es como con"a ores* !ero "u eres libres e elegir - usar la variable 6ue m;s "e !lazca* !or e2em!lo* la le"ra M es mu- boni"a* la B "ambi3n es mu- lin a+ Observa 6ue solo "e mos"rara el mensa2e os veces* 6ue son las in ica as !or el limi"e in1erior - su!erior el con"a or es!eci1ica as con 1 To #* no "e !use cien !or 6ue "en ras 6ue ar cien clics !ara "erminar la macro* !ero !ara es"ablecer valores m;s gran es* a!rovec/aremos !ara ver como LsumarM ca enas e "e:"o* en !rogramaci4n a la LsumaM e ca enas e "e:"o se le conoce como Lconca"enarM - no es o"ra cosa 6ue !egar ca enas e "e:"o una con o"ra* !or e2em!lo<
"u. @+( @+( @+( @+( Hu<o(.'% <o(.'% !s "&'+ng !7%ll+do1 !s "&'+ng !7%ll+do2 !s "&'+ng <o(.'%$o(7l%&o !s "&'+ng <o(.'% A #n7u&Box2 "M$ual %s &u <o(.'%N"3 !7%ll+do1 A #n7u&Box2 "M$ual %s &u 7'+(%' !7%ll+doN"3 !7%ll+do2 A #n7u&Box2 "MO %l s%gundoN"3 <o(.'%$o(7l%&o A <o(.'% B !7%ll+do1 B !7%ll+do2 MsgBox "Hu no(.'% *o(7l%&o %s4 " B <o(.'%$o(7l%&o End "u.

Observa como solici"amos el nombre - a!elli o - al 1inal lo mos"ramos en una sola lnea e "e:"o* si bien 1unciona con el o!era or R* es m;s com>n usar el smbolo e am!ersan (j) como conca"ena or e ca enas e "e:"o<
"u. @+( @+( @+( @+( Hu<o(.'%2 <o(.'% !s "&'+ng !7%ll+do1 !s "&'+ng !7%ll+do2 !s "&'+ng <o(.'%$o(7l%&o !s "&'+ng <o(.'% A #n7u&Box2 "M$ual %s &u <o(.'%N"3 !7%ll+do1 A #n7u&Box2 "M$ual %s &u 7'+(%' !7%ll+doN"3 !7%ll+do2 A #n7u&Box2 "MO %l s%gundoN"3 <o(.'%$o(7l%&o A <o(.'% 9 !7%ll+do1 9 !7%ll+do2 MsgBox "Hu no(.'% *o(7l%&o %s4 " 9 <o(.'%$o(7l%&o End "u.

Por su!ues"o /abr;s no"a o 6ue el nombre com!le"o sale "o o !ega o* "e e2o e "area 6ue "e 6ue e mu- !resen"able - boni"o+ A/ora si* !o emos /acer nues"ro bucle m;s gran e* !robemos !rimero con 1$<
"u. 0o'&a's%B+%n2 @+( $on&ado' !s #n&%g%' @+( H%x&o !s "&'+ng Jo' $on&ado' A 1 Ho 10 H%x&o A H%x&o 9 "H%ngo Fu% 7o'&a'(% .+%n"

A!ren ien o OOo Basic


<%x& MsgBox H%x&o End "u.

E1

@;!i o !ero no nos gus"a "o o el "e:"o 2un"o* Iver a J+ Para me2orarlo un !oco* le agregaremos un sal o e lnea al 1inal e ca a una* as<
"u. 0o'&a's%B+%n3 @+( $on&ado' !s #n&%g%' @+( H%x&o !s "&'+ng Jo' $on&ado' A 1 Ho 10 H%x&o A H%x&o 9 "H%ngo Fu% 7o'&a'(% .+%n" 9 $h'2133 <%x& MsgBox H%x&o End "u.

I@ecuer as como eca mi amigoJ -ansina si-+

IO 6ue "e !arecera si lo me2oramos agreg;n ole el n>mero a ca a lneaJ<


"u. 0o'&a's%B+%n4 @+( $on&ado' !s #n&%g%' @+( H%x&o !s "&'+ng Jo' $on&ado' A 1 Ho 10 H%x&o A H%x&o 9 $on&ado' 9 "-T H%ngo Fu% 7o'&a'(% .+%n" 9 $h'2133 <%x& MsgBox H%x&o End "u.

E#

E+5 Bucles f @e!i"elo o"ra vez

Muc/o me2or* Ino creesJ+ )os limi"es in1erior - su!erior no necesariamen"e "ienen 6ue ser !osi"ivos<
Jo' $on&ado' A T5 Ho 5

Tam!oco "ienen !or 6ue ir e uno en uno* cuan o !o emos ir e os en os* e "res en "res o en el rango 6ue necesi"emos+
"u. 0o'&a's%B+%n5 @+( $on&ado' !s #n&%g%' @+( H%x&o !s "&'+ng Jo' $on&ado' A 1 Ho 20 "&%7 2 H%x&o A H%x&o 9 $on&ado' 9 "-T H%ngo Fu% 7o'&a'(% .+%n" 9 $h'2133 <%x& MsgBox H%x&o End "u.

=s"o se es"a !onien o iver"i o+ Por su!ues"o observas"e 6ue le agregamos un argumen"o a la ins"rucci4n* en es"e caso Step* !ara in icarle 6ue sal"o 6ueremos - es"e sal"o no necesariamen"e "iene 6ue ser ni en"ero* ni !osi"ivo* o2o* muc/o o2o con es"o+
Jo' $on&ado' A 100 Ho 10 "&%7 T10

A!ren ien o OOo Basic

E?

O a6u "e lo e2o !ara 6ue /agas "o as las !ruebas 6ue 6uieras - nos las cuen"es en el 1oro o lis"a e correo+ )a siguien"e macro "iene un !e6ueKo error* "u "area es in icarme cual es* en el ca!i"ulo e variables !ue es encon"rar a-u a+
"u. 0o'&a's%B+%n6 @+( $on&ado' !s #n&%g%' @+( H%x&o !s "&'+ng Jo' $on&ado' A 0 Ho 1 "&%7 0-1 H%x&o A H%x&o 9 $on&ado' 9 "-T H%ngo Fu% 7o'&a'(% .+%n" 9 $h'2133 <%x& MsgBox H%x&o End "u.

.omo ul"imo comen"ario e es"a ins"rucci4n* !ue es usar es!u3s e la !alabra clave /e't* el mismo nombre e la variable 6ue es"e usan o como con"a or* !or e2em!lo<
Jo' $on&ado' A 0 Ho 1 "&%7 0-1

(A)'* $a c+digo
<%x& $on&ado'

=s"o es sumamen"e >"il cuan o "ienes varios bucles e re!e"ici4n ani a os* muc/as veces el uso e la sangra es su1icien"e !ara is"inguir unos e o"ros* !ero en o"ras ocasiones* sobre "o o cuan o /a- muc/as lneas e c4 igo en"re ellos* es un !oco com!le2o saber on e "ermina uno* claro 6ue el 9(= e in ica si 1al"a alguno* !ero no es"a e m;s como a-u a* a 1in e cuen"as* e nuevo* "u - solo "u* eci ir;s si lo usas o no* 6ue e eso se "ra"a la liber"a +
"u. Bu*l%s!n+dados @+( *o1 !s #n&%g%'6 *o2 !s #n&%g%' Jo' *o1 A 1 Ho 5 Jo' *o2 A 1 Ho 10 <%x& *o2 <%x& *o1 End "u.

A/ora si* e La everasM !ara 1inalizar* recuer a bien la es"ruc"ura e es"a ins"rucci4n<
Jo' 1a'+a.l% A #n+*+o Ho J+n Q"&%7 "al&oR ,*od+go QEx+& Jo'R <%x& Q1a'+a.l%R

O recuer a 6ue lo 6ue es"a en"re corc/e"es es o!cional+ Observa 6ue eba2o e la linea e comen"ario* /a- una ins"rucci4n 6ue no /emos vis"o* se "ra"a e< E'it For* es"a nos sirve !ara salir an"ici!a amen"e e un ciclo 'or+++Ne:"* es ecir en el momen"o 6ue 6uieras* veamos un e2em!lo iver"i o e su uso<
>7&+on Ex7l+*+& "u. @+( @+( @+( @+( Csando/Ex+&/Jo'23 *o1 !s #n&%g%' s5%&'a !s "&'+ng s1o*al%s !s "&'+ng s$onsonan&%s !s "&'+ng Jo' *o1 A 1 Ho 100 s5%&'a A $h'2 Rnd23 25 B 65 3

EE

E+5 Bucles f @e!i"elo o"ra vez

"%l%*& $as% s5%&'a $as% "!"6 "E"6 "#"6 ">"6 "C" s1o*al%s A s1o*al%s 9 " " 9 s5%&'a $as% """ Ex+& Jo' $as% Els% s$onsonan&%s A s$onsonan&%s 9 " " 9 s5%&'a End "%l%*& <%x& MsgBox "El *+*lo &%'(+no %n4 " 9 *o1 9 $h'2133 9 $h'2133 9 / "1o*al%s4 " 9 s1o*al%s 9 $h'2133 9 / "$onsonan&%s4 " 9 s$onsonan&%s6 06 "E)%(7lo Ex+& Jo'" End "u.

)a 1unci4n ./r(valor) nos evuelve el car;c"er AS.99 corres!on ien"e a ic/o valor* la le"ra A "iene un valor e F5 - la le"ra k "iene un valor e ,$* !or ello es 6ue con la lnea
s5%&'a A $h'2 Rnd23 25 B 65 3

Ob"enemos un valor alea"orio en"re F5 - ,$ - ./r nos evuelve ic/a le"ra* es!u3s evaluamos si es una vocal* si es la le"ra S o si es una consonan"e* solo en el caso e 6ue la le"ra evuel"a sea una S ( e Sali a)* el ciclo 'or+++Ne:" se in"errum!e - sale con E'it For* al 1inal* mos"ramos el valor el con"a or !ara saber si "ermino el ciclo o salio an"es* es mis !ruebas curiosamen"e salio varias veces en 1 - lo m;:imo 1ue ,G* es ecir* nunca "ermino el ciclo* -a me con"aras como "e va a "i con "us !ruebas+ Al "i!o e ciclo usa o en 'or++Ne:"* algunos au"ores le llama L e"ermina oM !ues sabemos on e em!ieza - on e "ermina* /a- o"ro "i!o e ciclos llama os Lin e"ermina osM* !ues e!en en e una o unas con iciones !ara em!ezar o "erminar el ciclo* veamos cuales son< )a ins"rucci4n Do...3oop* "ambi3n nos sirve !ara /acer re!e"iciones* !ero en vez e usar un con"a or* se usa una con ici4n !ara saber cuan o "erminar un bucle e incluso cuan o em!ieza o "al vez nunca em!ezar+ .omo creo 6ue es m;s claro con e2em!los* a ellos nos a"enemos<
"u. @a(%Hu<o(.'% @+( <o(.'% !s "&'+ng @o <o(.'% A #n7u&Box2 "M$ual %s &u <o(.'%N"3 5oo7 Uh+l% <o(.'% A "" End "u.

Analicemos lnea !or lnea la macro an"erior<


"u. @a(%Hu<o(.'% ,#n+*+a(os la (a*'o @+( <o(.'% !s "&'+ng ,@%*la'a(os una 8a'+a.l% d% &%x&o @o ,#n+*+a(os %l .u*l% <o(.'% A #n7u&Box2 "M$ual %s &u <o(.'%N"3 ,"ol+*+&a(os un 8alo'6 %n %s&% *aso un no(.'% 5oo7 Uh+l% <o(.'% A "" ,$on&+nua(os %l .u*l% VmientrasW la *ond+*+Kn s%a 1ER@!@ER! End "u. ,J+nal+:a(os la (a*'o

cabr;s no"a o 6ue e es"a 1orma* 1orzamos al usuario a escribir un valor en el cua ro e ialogo* si bien es !osible* recuer a 6ue es eseable* !ro!orcionar casi siem!re una 1orma e cancelar o in"errum!ir el bucle* !ara !robar una !rimer al"erna"iva !ara ello* nos a!o-aremos en una es"ruc"ura -a vis"a<
"u. @a(%Hu<o(.'%2

A!ren ien o OOo Basic


@+( <o(.'% !s "&'+ng @+( R%s7u%s&a !s #n&%g%' @o

E5

<o(.'% A #n7u&Box2 "M$ual %s &u <o(.'%N" 3 #f <o(.'% A "" Hh%n R%s7u%s&a A MsgBox2 "!l 7a'%*%' no %s*'+.+s&% nada6 M'%al(%n&% Fu+%'%s sal+'N"6 32 B 46 ""al+'" 3 ,R%*u%'da Fu% un 6 s+gn+f+*a Fu% %l usua'+o 7'%s+ono %l .o&Kn "# #f R%s7u%s&a A 6 Hh%n ,Es&a.l%*%(os la 8a'+a.l% *on *ualFu+%' *osa 7a'a Fu% &%'(+n% %l .u*l% <o(.'% A "*ualFu+%' *osa" End #f End #f 5oo7 Uh+l% <o(.'% A "" End "u.

@ecuer a siem!re e ir !roban o el c4 igo+ Parece 6ue 1unciona bien la macro an"erior* !ero /a- una sim!le 1orma e LengaKarlaM* !rueba a in"ro ucir !uros es!acios - veras 6ue sale inme ia"amen"e* !ara subsanar es"e inconvenien"e* /aremos uso e una 1unci4n in"egra a en OOo Basic 6ue nos sirve !ara eliminar los es!acios vacos al inicio - al 1inal e una ca ena* "e !resen"o a la ins"rucci4n 5rim* 6ue se usa e la siguien"e 1orma<
"u. @a(%Hu<o(.'%3 @+( <o(.'% !s "&'+ng @+( R%s7u%s&a !s #n&%g%' @o <o(.'% A #n7u&Box2 "M$ual %s &u <o(.'%N" 3 Nombre = Trim( Nombre ) #f <o(.'% A "" Hh%n R%s7u%s&a A MsgBox2 "!l 7a'%*%' no %s*'+.+s&% nada6 M'%al(%n&% Fu+%'%s sal+'N"6 32 B 46 ""al+'" 3 ,R%*u%'da Fu% un 6 s+gn+f+*a Fu% %l usua'+o 7'%s+ono %l .o&Kn "# #f R%s7u%s&a A 6 Hh%n ,Es&a.l%*%(os la 8a'+a.l% *on *ualFu+%' *osa 7a'a Fu% &%'(+n% %l .u*l% <o(.'% A "*ualFu+%' *osa" End #f End #f 5oo7 Uh+l% <o(.'% A "" End "u.

A/ora s* 1unciona me2or* Ise "e ocurren m;s al"erna"ivas !or L!reverM o me2orarJ* lo sien"o* esa es "u "area+ Para con"inuar* veremos una varian"e e es"a es"ruc"ura 6ue nos !ermi"e inver"ir la l4gica e la con ici4n* veamos como<
"u. @a(%Hu<o(.'%4 @+( <o(.'% !s "&'+ng @o <o(.'% A #n7u&Box2 "M$ual %s &u <o(.'%N"3 5oo7 Until <o(.'% XY "" End "u.

Se mu- a"en"o* observa como a/ora le ecimos L"astaM (con la ins"rucci4n :ntil* en negri"as) 6ue la variable Nombre* sea L i1eren"eM e vaca* es ecir* con"enga algo+ Tambi3n* no"a 6ue la con ici4n "iene 6ue seguir sien o ver a era !ara 6ue el bucle "ermine* lo 6ue /icimos 1ue cambiar un argumen"o - el o!era or e la con ici4n+ A/ora* la macro com!le"a* con ,alidacin "o o* o2o* recuer a es"a !alabra mu- bien* ,alidacin* es el !an nues"ro e ca a a al !rogramar+

EF
"u. @a(%Hu<o(.'%5 @+( <o(.'% !s "&'+ng @+( R%s7u%s&a !s #n&%g%' @o

E+5 Bucles f @e!i"elo o"ra vez

<o(.'% A #n7u&Box2 "M$ual %s &u <o(.'%N"3 <o(.'% A H'+(2 <o(.'% 3 #f <o(.'% A "" Hh%n R%s7u%s&a A MsgBox2 "!l 7a'%*%' no %s*'+.+s&% nada6 ZM'%al(%n&% Fu+%'%s sal+'N"6 32 B 46 ""al+'" 3 ,R%*u%'da Fu% un 6 s+gn+f+*a Fu% %l usua'+o 7'%s+ono %l .o&on "# #f R%s7u%s&a A 6 Hh%n ,Es&a.l%*%(os la 8a'+a.l% *on *ualFu+%' *osa 7a'a Fu% &%'(+n% %l .u*l% <o(.'% A "*ualFu+%' *osa" End #f End #f 5oo7 Cn&+l <o(.'% XY "" End "u.

Tal vez* con 2us"a raz4n* "e !regun"aras* I!or6ue os 1ormas e /acer lo mismoJ+ @ecuer a 6ue no "o os "enemos el mismo mo o e LrazonarM* a los 1un amen"alis"as e cual6uier e:"remo - color se les reconoce 1;cilmen"e !or su L!ensamien"oM uni1orme - negaci4n a ver o"ro o al o"ro+ =n casi "o o - m;s en la !rogramaci4n* /a- m;s e una 1orma e /acer las cosas* es casi seguro 6ue unas se a a!"aran r;!i amen"e a "u 1orma e razonar* o"ras no* !ero al /aber varias maneras e resolver el mismo !roblema* la cues"i4n se enri6uece* as 6ue la !r4:ima vez 6ue es"3s !ron"o a !re2uzgar* e"en"e un momen"o - "ra"a e en"en er la 1orma L i1eren"eM e razonar el o"ro* "al vez* sea un buen momen"o !ara am!liar "us /orizon"es+ O /ablan o e varie a * observa como las os varian"es e la es"ruc"ura vis"a* e2ecu"a el c4 igo en"re Do..3oop* al menos una vez+ cabr; ocasiones en 6ue necesi"emos o 6ueramos 6ue no se e2ecu"e ni una sola vez* I!or e2em!loJ* imagina 6ue !ara en"rar en el bucle* necesi"amos 1orzosamen"e 6ue se cum!la una con ici4n+ Para /acer es"o* sim!lemen"e !asamos la ins"rucci4n al inicio e la es"ruc"ura* e la siguien"e 1orma<
"u. @a(%Hu<o(.'%6 @+( <o(.'% !s "&'+ng @+( 5+s&a !s "&'+ng ,"ol+*+&a(os un da&o <o(.'% A #n7u&Box2 "M@a(% un <o(.'%N"3 ,5% Fu+&a(os los %s7a*+os so.'an&%s al +n+*+o ? al f+nal <o(.'% A H'+(2 <o(.'% 3 ,#n+*+a(os %l .u*l%6 s+ la 8a'+a.l% %s d+f%'%n&% d% 8a*Ga @o Uh+l% <o(.'% XY "" ,Jo'(a(os una l+s&a d% los no(.'%s +n&'odu*+dos 5+s&a A 5+s&a 9 " T " 9 <o(.'% ,"ol+*+&a(os o&'o no(.'% <o(.'% A H'+(2 #n7u&Box2 "M@a(% o&'o <o(.'%N"3 3 5oo7 ,"+ la l+s&a *on&+%n% algo lo (os&'a(os #f 5+s&a XY "" Hh%n MsgBox 5+s&a End #f End "u.

';cil* Iver a J+ A6u no"a las os 1ormas en 6ue /acemos uso e la ins"rucci4n Input&o'* la !rimera e 1orma irec"a - la segun a e 1orma ani a a+ Ani ar 1unciones* "e ebe e resul"ar mu- 1amiliar si eres un usuario me io0avanza o e cual6uier /o2a e calculo* conocimien"o 6ue "e resul"ara mu- >"il en !rogramaci4n -a 6ue es mu- recurri a+ O s* !ues /a-

A!ren ien o OOo Basic

E%

"area* la cual consis"e en 6ue logres el mismo !ro!4si"o* !ero con la !alabra clave :ntil* en vez e ;"ile+ Para 1inalizar es"e "ema e los bucles* "e mos"rare la ins"rucci4n !ara 1inalizar an"ici!a amen"e un ciclo (o+++)oo!* es"as !alabras clave son< E'it Do - se usan e la siguien"e manera<
>7&+on Ex7l+*+& "u. Csando/Ex+&/@o23 @+( s$la8% !s "&'+ng @+( sH(7 !s "&'+ng s$la8% A "(%llon" @o sH(7 A H'+(2#n7u&Box2"Ha.la a(+go ? %n&'a"33 #f sH(7 A "(%llon" Hh%n MsgBox "O s% a.'%n las 7u%'&as d% Mo'+a" Ex+& @o End #f 5oo7 Cn&+l sH(7 A "sal+'" End "u.

Observa como "enemos os 1ormar e "erminar el bucle* una* la 6ue -a conoces en la con ici4n 1inal* - la o"ra* si el usuario escribe correc"amen"e la !alabra clave - salimos con =:i" (o+ 5en cuidado con los ciclos indeterminados* una con ici4n mal !lan"ea a "e !ue e e2ar en"ro e un ciclo in1ini"o+ Me creer;s 6ue con los elemen"os vis"os /as"a a/ora* -a se !ue en /acer muc/as* muc/as cosas+ =m!ieza a !ensar en como au"oma"izaras esos !asos "an re!e"i"ivos - "e iosos 6ue siem!re /aces+ Para ello* man"3n siem!re en "u men"e el iagrama 6ue vimos en el ca!i"ulo E+1* LcasiM "o o lo 6ue se /ace en !rogramaci4n res!on e a!ro:ima amen"e bien a el* como ice el ic/o -la !rac"ica /ace al maes"ro- - solo la !rac"ica iaria "e ar; el ominio e la /erramien"a !ara ob"ener e ella el me2or !rovec/o* no te en*a<es* con solo leer es"as no"as o cual6uiera o"ra ocumen"aci4n 6ue encuen"res o a 6uieras (- "e lo igo !or e:!eriencia) no es su1icien"e !ara 6ue resuelvas "us !roblemas in1orm;"icos* muc/o menos* 6ue "e /agas llamar !rograma or* si crees 6ue es"o- "ra"an o e in1luenciar"e !ara 6ue !rac"i6ues muc/o* es"ar;s en lo cier"o* eso 6uiero /acer - !ara "erminar es"e ca!i"ulo* recuer a lo 6ue eca un /ombre 6ue !rac"icaba e:!erimen"aba muc/o+

"El genio es 1% de inspiracin y 99% de transpiracin"

Thomas Alva Edison

).=

Matrices 7 >untos pero no re,ueltos

=n el cual veremos como mani!ular muc/os a"os en una sola variable* las ma"rices !ue en ser e muc/a u"ili a o conver"irse en un ver a ero galima"ias si no se mane2an correc"amen"e* es im!or"an"e 6ue a!ren as a u"ilizarlas* !ues muc/as es"ruc"uras e O!enO11ice+org vienen im!lemen"a as en ma"rices+ )a sin"a:is m;s sencilla !ara una ma"riz es la siguien"e< (im NombreQMa"riz( TamaKo As 9n"eger ) As Ti!o

EG

E+F Ma"rices f iun"os !ero no revuel"os

=n on e !ara NombreQMa"riz "iene 6ue cum!lir las mismas con iciones 6ue !ara nombrar las macros - las variables vis"as an"eriormen"e+ TamaKo se re1iere al n>mero e elemen"os 6ue con"en r; la ma"riz* en es"e caso* el in icar"e 6ue sea un "i!o Inte*er (=n"ero) es m;s in ica"ivo 6ue res"ric"ivo* /e /ec/o la !rueba con valores m;s gran e 6ue un Inte*er (=n"ero)* !ero no me imagino una macro 6ue use "an"os elemen"os - si lo /a-* "al vez 6uiera ecir 6ue es /ora e !asar a usar bases e a"os+ No /e encon"ra o ocumen"aci4n al res!ec"o el limi"e e es"e valor* en mis !ruebas es"o- casi seguro 6ue es"a con iciona o m;s !or el limi"e e la memoria @am el e6ui!o on e se e2ecu"e 6ue e o"ra causa+ Te e2o a "u cri"erio* e:!eriencia - !ruebas el limi"e e elemen"os a usar+ Te resul"ara mu- 1;cil !ensar en las ma"rices con una lis"a e valores en su !resen"aci4n m;s sencilla* o en una "abla e 1ilas - columnas en las mas com!le2a* !or e2em!lo< los as e la semana* una sim!le lis"a sera as<

"omingo 4unes Martes Mi>rcoles .ue$es Hiernes (8%ado

Para guar ar es"o en una ma"riz* sera as<


"u. E)%(7lo/Ma&'+*%s1 @+( (+"%(ana263 !s "&'+ng (+"%(ana203 A "@o(+ngo" (+"%(ana213 A "5un%s" (+"%(ana223 A "Ma'&%s" (+"%(ana233 A "M+S'*ol%s" (+"%(ana243 A "[u%8%s" (+"%(ana253 A "1+%'n%s" (+"%(ana263 A ""=.ado" MsgBox (+"%(ana2 3 3 End "u.

O observa 6ue con un sim!le bucle* !o emos acce er a "o a la ma"riz


"u. E)%(7lo/Ma&'+*%s2 @+( (+"%(ana263 !s "&'+ng @+( *o1 !s #n&%g%' (+"%(ana203 (+"%(ana213 (+"%(ana223 (+"%(ana233 (+"%(ana243 (+"%(ana253 (+"%(ana263 A A A A A A A "@o(+ngo" "5un%s" "Ma'&%s" "M+S'*ol%s" "[u%8%s" "1+%'n%s" ""=.ado"

Jo' *o1 A 0 Ho 6 MsgBox (+"%(ana2 *o1 36 646 "Hoda la s%(ana" <%x& End "u.

No"a 6ue la ma"riz em!ieza en $ (cero)* 6ue es la 1orma !re e"ermina a* !o emos 1orzar a 6ue las ma"rices em!iecen en 1 (uno)* usan o la !alabra clave %ption &ase* e la siguien"e manera<

A!ren ien o OOo Basic


>7&+on Ex7l+*+& >7&+on Bas% 1 "u. E)%(7lo/Ma&'+*%s3 @+( (+"%(ana273 !s "&'+ng @+( *o1 !s #n&%g%' (+"%(ana213 (+"%(ana223 (+"%(ana233 (+"%(ana243 (+"%(ana253 (+"%(ana263 (+"%(ana273 A A A A A A A "@o(+ngo" "5un%s" "Ma'&%s" "M+S'*ol%s" "[u%8%s" "1+%'n%s" ""=.ado"

E,

Jo' *o1 A 1 Ho 7 MsgBox (+"%(ana2 *o1 36 646 "Hoda la s%(ana" <%x& End "u.

%ption &ase LnoM !ue e ir en"ro e una macro* "iene 6ue ir al inicio e un mo ulo en el ;rea e eclaraci4n e variables+ )a ma-ora e las es"ruc"uras e O!enO11ice+org inician en $ (cero)* as 6ue usaremos es"e valor e inicio como !re e"ermina o en "o o el libro+ Si "e es necesario un inicio - un 1in i1eren"es !ues usar la siguien"e varian"e !ara la eclaraci4n e ma"rices+ (im NombreQMa"riz( 9nicio As Ti!o To 'in As Ti!o ) As Ti!o =n on e 9nicio !ue e ser incluso un valor nega"ivo como en los e2em!los siguien"es<
"u. E)%(7lo/Ma&'+*%s4 @+( (+s<u(%'os25 Ho 143 !s #n&%g%' @+( (+s$olo'%s2T5 Ho 43 !s "&'+ng (+s<u(%'os253 A 123 (+s<u(%'os263 A 345 (+s<u(%'os273 A 567 (+s<u(%'os283 A 890 (+s<u(%'os293 A 135 (+s<u(%'os2103 A 246 (+s<u(%'os2113 A 147 (+s<u(%'os2123 A 258 (+s<u(%'os2133 A 369 (+s<u(%'os2143 A 951 (+s$olo'%s2T53 A "!:ul" (+s$olo'%s2T43 A "1%'d%" (+s$olo'%s2T33 A "Mo'ado" (+s$olo'%s2T23 A "Ro)o" (+s$olo'%s2T13 A "Blan*o" (+s$olo'%s203 A "Rosa" (+s$olo'%s213 A "1+ol%&a" (+s$olo'%s223 A "D'+s" (+s$olo'%s233 A "<%g'o" (+s$olo'%s243 A ">'o" MsgBox (+s<u(%'os2 9 36 646 "<;(%'os" MsgBox (+s$olo'%s2 0 36 646 "$olo'%s" End "u.

5$

E+F Ma"rices f iun"os !ero no revuel"os

Observa como en los os casos* las ma"rices "ienen los mismos iez elemen"os* en una guar amos n>meros - en la o"ra "e:"o* !ero mu- bien !o emos combinar a"os si eclaramos la ma"riz como -ariant* como en el siguien"e e2em!lo<
"u. E)%(7lo/Ma&'+*%s5 @+( (+s@a&os253 !s 1a'+an& @+( *o1 !s #n&%g%' (+s@a&os2 0 3 A "Mau'+*+o Ba%:a" (+s@a&os2 1 3 A 1974 (+s@a&os2 2 3 A "M+gu%l !ng%l 64" (+s@a&os2 3 3 A "M%x+*o" (+s@a&os2 4 3 A "@-J-" (+s@a&os2 5 3 A 37000 Jo' *o1 A 0 Ho 5 MsgBox (+s@a&os2 *o1 36 646 "M+s da&os" <%x& End "u.

No"aras 6ue en los casos vis"os /as"a a/ora* cuan o 6ueremos recorrer una ma"riz con un bucle* /emos es"ableci o los valores su!erior e in1erior e la ma"riz eclara a !reviamen"e* en muc/os casos* no sera !osible conocer los valores e inicio - 1in e una ma"riz* en es"os casos* OOo Basic* cuen"a con os 1unciones mu- >"iles !ara conocer es"os valores<
"u. E)%(7lo/Ma&'+*%s6 @+( (+s@a&os23 !s #n&%g%' @+( *o1 !s #n&%g%' (+s@a&os23 A !''a?2 87658626635698651626658612648635616 3 MsgBox "5+(+&% #nf%'+o' A " 9 "&'2 5Bound2 (+sda&os23 33 MsgBox "5+(+&% "u7%'+o' A " 9 "&'2 CBound2 (+sda&os23 33 Jo' *o1 A 5Bound2 (+sda&os23 3 Ho CBound2 (+s@a&os23 3 MsgBox (+s@a&os2 *o1 36 646 "M+s da&os" <%x& End "u.

=n es"e e2em!lo a!ren emos cua"ro nuevas 1unciones e OOo Basic* (rray* 6ue nos !ermi"e crear una ma"riz in"ro ucien o irec"amen"e los valores 6ue con"en r;* ca a uno se!ara o !or una coma* 3&ound 6ue nos evuelve el limi"e in1erior e una ma"riz - :&ound 6ue nos evuelve el limi"e su!erior+ Usan o es"as os ul"imas 1unciones* ni si6uiera "enemos 6ue en"erarnos e los limi"es e una ma"riz* - !or ul"imo la 1unci4n Str 6ue convier"e en ca ena e "e:"o el argumen"o !asa o+ Pue es eclarar una ma"riz e un e"ermina o "amaKo - usar (rray !ara llenar la ma"riz sin 6ue necesariamen"e corres!on an el n>mero e elemen"os* como en los siguien"e e2em!los<
"u. @+( @+( @+( @+( E)%(7lo/Ma&'+*%s7 (+s@a&os1253 !s 1a'+an& (+s@a&os2253 !s 1a'+an& (+s@a&os3233 !s 1a'+an& *o1 !s #n&%g%'

,5l%na(os la 7'+(%' (a&'+: *on %l nu(%'o %xa*&o d% %l%(%n&os d%*la'ados (+s@a&os123 A !''a?2 "5+:%&"6 306 "Hola"6 456 "0'u%.a"6 15 3 MsgBox "5+(+&% #nf%'+o' A " 9 "&'2 5Bound2 (+sda&os123 33 9 $h'2 13 3 9 / "5+(+&% "u7%'+o' A " 9 "&'2 CBound2 (+sda&os123 33 ,$on (%nos %l%(%n&os (+s@a&os223 A !''a?2 "0aola"6 256 "Hola" 3 MsgBox "5+(+&% #nf%'+o' A " 9 "&'2 5Bound2 (+sda&os223 33 9 $h'2 13 3 9 / "5+(+&% "u7%'+o' A " 9 "&'2 CBound2 (+sda&os223 33 ,$on (as %l%(%n&os

A!ren ien o OOo Basic

51

(+s@a&os323 A !''a?2 "Ma'+ana"6 276 "Hola"6 186 "0'u%.a" 3 MsgBox "5+(+&% #nf%'+o' A " 9 "&'2 5Bound2 (+sda&os323 33 9 $h'2 13 3 9 / "5+(+&% "u7%'+o' A " 9 "&'2 CBound2 (+sda&os323 33 End "u.

Al observar los valores in1erior - su!erior 6ue nos evuelve ca a ma"riz* claramen"e no"amos 6ue la ma"riz se Lre imencionaM con el n>mero e elemen"os 6ue "enga la 1unci4n Arra-* no im!or";n ole el valor con el 6ue /a-amos eclara o la ma"riz+ .ambiar e "amaKo o e can"i a e elemen"os 6ue !ue e con"ener una ma"riz e 1orma in;mica uran"e la e2ecuci4n e una macro* es una "area /abi"ual e !rogramaci4n* !or ello e:is"en varias al"erna"ivas !ara lograr es"e !ro!4si"o+ OOo Basic cuen"a con una ins"rucci4n es!eci1ica !ara lograr es"o* se llama 8eDim - se usa e la siguien"e manera<
"u. E)%(7lo/Ma&'+*%s8 @+( (+s!(+gos223 !s "&'+ng @+( *o1 !s #n&%g%' (+s!(+gos203 A "Edga'"4 (+s!(+gos213 A "Dlo'+a" 4 (+s!(+gos223 A "Ho\+&o" Jo' *o1 A 5Bound2 (+s!(+gos23 3 Ho CBound2 (+s!(+gos23 3 MsgBox "&'2 *o1 3 9 " T " 9 (+s!(+gos2 *o1 36 646 "M+s a(+gos" <%x& R%d+( (+s!(+gos243 (+s!(+gos233 A "5+d+a"4 (+s!(+gos243 A "!n+&a" Jo' *o1 A 5Bound2 (+s!(+gos23 3 Ho CBound2 (+s!(+gos23 3 MsgBox "&'2 *o1 3 9 " T " 9 (+s!(+gos2 *o1 36 646 "M+s a(+gos" <%x& End "u.

Se 6ue eres mu- observa or - -a no"as"e 6ue en el segun o bucle* solo nos mues"ra los valores e los in ices ? - E* es"o es !or 6ue al re imencionar la ma"riz con 8eDim* es"a* borra los valores 6ue /a-amos in"ro uci o !reviamen"e en la ma"riz* !or su!ues"o 6ue en ocasiones esearemos man"ener los valores 6ue e:is"an* es"o* se logra agregan o una sim!le !alabra clave<
"u. E)%(7lo/Ma&'+*%s9 @+( (+s!(+gos223 !s "&'+ng @+( *o1 !s #n&%g%' (+s!(+gos203 A "Edga'"4 (+s!(+gos213 A "Dlo'+a" 4 (+s!(+gos223 A "Ho\+&o" Jo' *o1 A 5Bound2 (+s!(+gos23 3 Ho CBound2 (+s!(+gos23 3 MsgBox "&'2 *o1 3 9 " T " 9 (+s!(+gos2 *o1 36 646 "M+s a(+gos" <%x& R%@+( 0'%s%'8% (+s!(+gos243 (+s!(+gos233 A "5+d+a"4 (+s!(+gos243 A "!n+&a" Jo' *o1 A 5Bound2 (+s!(+gos23 3 Ho CBound2 (+s!(+gos23 3 MsgBox "&'2 *o1 3 9 " T " 9 (+s!(+gos2 *o1 36 646 "M+s a(+gos" <%x& End "u.

A/ora si* "o o se man"iene con la !alabra clave +reser,e. Pero 8eDim no solo sirve !ara aumen"ar elemen"os* "ambi3n sirve !ara isminuirlos* !ero "iene el inconvenien"e e 6ue ni aun usan o +reser,e* "e man"iene los valores !revios* como lo emues"ra el siguien"e e2em!lo<
"u. E)%(7lo/Ma&'+*%s10 @+( (+s<u(%'os293 !s #n&%g%' @+( *o1 !s #n&%g%' (+s<u(%'os23 A !''a?2 16263646566676869610 3 Jo' *o1 A 5Bound2 (+s<u(%'os23 3 Ho CBound2 (+s<u(%'os23 3 MsgBox (+s<u(%'os2 *o1 36 646 "M+s n;(%'os"

5#

E+F Ma"rices f iun"os !ero no revuel"os

<%x& R%@+( 0'%s%'8% (+s<u(%'os243 Jo' *o1 A 5Bound2 (+s<u(%'os23 3 Ho CBound2 (+s<u(%'os23 3 MsgBox (+s<u(%'os2 *o1 36 646 "M+s n;(%'os" <%x& End "u.

Una !rimera soluci4n es la !ro!ues"a siguien"e<


"u. @+( @+( @+( E)%(7lo/Ma&'+*%s11 (+s<u(%'os293 !s #n&%g%' (H(723 !s "&'+ng *o1 !s #n&%g%'

,5l%na(os la (a&'+: *on 10 n;(%'os (+s<u(%'os23 A !''a?2 16263646566676869610 3 ,R%d+(%n*+ona(os la (a&'+: &%(7o'al R%d+( (H(7243 ,0asa(os los 8alo'%s a la (a&'+: &%(7o'al Jo' *o1 A 5Bound2 (H(723 3 Ho CBound2 (H(723 3 (H(72 *o1 3 A (+s<u(%'os2 *o1 3 <%x& ,R%d+(%n*+ona(os la (a&'+: o'+g+nal R%d+( (+s<u(%'os243 ,$o7+a(os loa 8alo'%s &%(7o'al%s (+s<u(%'os23 A (H(723 ,1%'+f+*a(os Fu% %s&%n los da&os Jo' *o1 A 5Bound2 (+s<u(%'os23 3 Ho CBound2 (+s<u(%'os23 3 MsgBox (+s<u(%'os2 *o1 36 646 "M+s n;(%'os" <%x& ,Bo''a(os la (%(o'+a usada 7o' la (a&'+: &%(7o'al E'as% (H(7 End "u.

ISe "e ocurre alguna o"raJ* seguro 6ue si+ .omo es una "area /abi"ual (el isminuir e "amaKo una ma"riz - esear man"ener los valores res"an"es)* es una "area i 4nea !ara conver"irla en una subru"ina o si lo eseas en una 1unci4n como se ve en el "ema E+G 'unciones subru"inas - (ivi e - vencer;s+ A6u las os 1ormas - "u eci es cual usar+ .omo una subru"ina* en on e le !asamos la ma"riz a re imensionar - el nuevo "amaKo 6ue "en r;* si es ma-or solo re imensiona* si es menor* co!ia los valores a man"ener re imenciona* si es igual la e2a "al cual<
"u. R%d+(%n*+ona'Ma&'+:2 Ma&'+:23 !s 1a'+an&6 B?1al Ha(ano !s #n&%g%'3 @+( (H(723 !s 1a'+an& @+( *o1 !s #n&%g%' #f Ha(ano Y CBound2 Ma&'+:23 3 Hh%n R%@+( 0'%s%'8% Ma&'+:2 Ha(ano 3 Els%#f Ha(ano X CBound2 Ma&'+:23 3 Hh%n R%@+( (H(72 Ha(ano 3 Jo' *o1 A 5Bound2 (H(723 3 Ho CBound2 (H(723 3 (H(72 *o1 3 A Ma&'+:2 *o1 3 <%x& R%d+( Ma&'+:2 Ha(ano 3 Ma&'+:23 A (H(723 E'as% (H(7 End #f End "u.

.omo una 1unci4n* 6ue /ace e:ac"amen"e lo mismo* e:ce!"o 6ue evuelve el valor en vez e mani!ular el !ar;me"ro !asa o+
Jun*&+on Jun*+onR%d+(%n*+ona'Ma&'+:2 Ma&'+:23 !s 1a'+an&6 B?1al Ha(ano !s #n&%g%'3 !s 1a'+an&

A!ren ien o OOo Basic


@+( (H(723 !s 1a'+an& @+( *o1 !s #n&%g%'

5?

#f Ha(ano Y CBound2 Ma&'+:23 3 Hh%n R%@+( 0'%s%'8% Ma&'+:2 Ha(ano 3 Els%#f Ha(ano X CBound2 Ma&'+:23 3 Hh%n R%@+( (H(72 Ha(ano 3 Jo' *o1 A 5Bound2 (H(723 3 Ho CBound2 (H(723 3 (H(72 *o1 3 A Ma&'+:2 *o1 3 <%x& R%d+( Ma&'+:2 Ha(ano 3 Ma&'+:23 A (H(723 E'as% (H(7 End #f Jun*+onR%d+(%n*+ona'Ma&'+: A Ma&'+:23 End Jun*&+on

Pero !ara 6ue no 6ue e u a* veamos su uso* "an"o como subru"ina - como 1unci4n<
,Cs=ndola *o(o su.'u&+na "u. E)%(7lo/Ma&'+*%s12 @+( (+s<u(%'os293 !s 1a'+an& @+( (H(723 !s "&'+ng @+( *o1 !s #n&%g%' (+s<u(%'os23 A !''a?2 16263646566676869610 3 $all R%d+(%n*+ona'Ma&'+:2 (+s<u(%'os236 153 (+s<u(%'os2123 A 12 MsgBox (+s<u(%'os2123 $all R%d+(%n*+ona'Ma&'+:2 (+s<u(%'os236 53 ,1%'+f+*a(os Fu% %s&Sn los da&os Jo' *o1 A 5Bound2 (+s<u(%'os23 3 Ho CBound2 (+s<u(%'os23 3 MsgBox (+s<u(%'os2 *o1 36 646 "M+s n;(%'os" <%x& End "u. ,Cs=ndola *o(o fun*+Kn "u. E)%(7lo/Ma&'+*%s13 @+( (+s<u(%'os293 !s 1a'+an& @+( (H(723 !s "&'+ng @+( *o1 !s #n&%g%' ,5l%na(os la (a&'+: (+s<u(%'os23 A !''a?2 16263646566676869610 3 ,5la(a(os a la fun*+on6 o.s%'8a %l 7aso d% a'gu(%n&os6 *'%*%(os la (a&'+: (+s<u(%'os23 A Jun*+onR%d+(%n*+ona'Ma&'+:2 (+s<u(%'os236 15 3 ,!s+gna(os un 8alo' al +nd+*% 12 (+s<u(%'os2123 A 12 ,1%'+f+*a(os Fu% lo ha?a gua'dado MsgBox (+s<u(%'os2123 ,5la(a(os d% nu%8o a la fun*+on6 %s&a 8%: la d+s(+nu+(os (+s<u(%'os23 A Jun*+onR%d+(%n*+ona'Ma&'+:2 (+s<u(%'os236 5 3 ,1%'+f+*a(os Fu% %s&Sn los da&os Jo' *o1 A 5Bound2 (+s<u(%'os23 3 Ho CBound2 (+s<u(%'os23 3 MsgBox (+s<u(%'os2 *o1 36 646 "M+s n;(%'os" <%x& End "u.

OOo Basic es mu- noble en el mane2o e las ma"rices* observa 6ue sencillo es co!iar una ma"riz en o"ra Ma"riz(es"ino() l Ma"rizOrigen()

5E

E+F Ma"rices f iun"os !ero no revuel"os

Tambi3n* observa el uso e la !alabra clave Erase !ara borrar e memoria las ma"rices in;micas 6ue -a no usemos* si bien a/ora la ma-ora e las ma6uinas is!onen e muc/os megas e ram* !rocura man"ener el con"rol e la can"i a e memoria 6ue usas en "us macros+ cas"a a/ora* /emos vis"o la eclaraci4n - el uso e ma"rices e una sola imensi4n* es !osible eclarar - usar ma"rices e m;s e una imensi4n veamos como se /ace+ )a sin"a:is !ara eclarar ma"rices mul"i imensionales es la siguien"e< (im NombreQMa"riz( TamaKo As 9n"eger* TamaKo As 9n"eger) As Ti!o Observa como a/ora* le in icamos os "amaKos se!ara os !or una coma* un e2em!lo es m;s ilus"ra"ivo+
"u. Ma&'+*%s/Mul&+d+(%ns+on1 @+( (@a&os2 26 2 3 !s "&'+ng ,5l%na(os los da&os (@a&os2 06 0 3 A "0T0" (@a&os2 06 1 3 A "0T1" (@a&os2 06 2 3 A "0T2" (@a&os2 16 0 3 A "1T0" (@a&os2 16 1 3 A "1T1" (@a&os2 16 2 3 A "1T2" (@a&os2 26 0 3 A "2T0" (@a&os2 26 1 3 A "2T1" (@a&os2 26 2 3 A "2T2" ,Mos&'a(os los MsgBox (@a&os2 MsgBox (@a&os2 MsgBox (@a&os2 End "u. da&os 06 0 3 16 1 3 26 2 3

Piensa en las ma"rices e os imensiones como en una /o2a e calculo 1orma a !or 1ilas - columnas* la ma"riz an"erior 6ue ara as< $ $ 1 # $-$ $-1 $-# 1 1-$ 1-1 1-# # #-$ #-1 #-#

Por su!ues"o !ue es eclarar - usar ma"rices e m;s e os imensiones I/as"a cuan"asJ* !arece ser 6ue el limi"e es"a e"ermina o una vez m;s !or la can"i a e memoria ram 6ue con"enga la ma6uina on e se e2ecu"e la macro* en lo !ersonal ma"rices con m;s e "res imensiones se me /acen com!lica as e mani!ular* no obs"an"e* creo 6ue es m;s !or mis limi"es - 1lo2era 6ue no lo /e com!roba o* as 6ue "e invi"o a 6ue /agas "us !ruebas con muc/as imensiones - las com!ar"as conmigo+ O"ro e2em!lo iver"i o* llenamos una ma"riz e 1$ : 1$ elemen"os - la llenamos con valores alea"orios e en"re 1 - 1$$+
"u. Ma&'+*%s/Mul&+d+(%ns+on2 @+( (<u(%'os2 96 9 3 !s #n&%g%' @+( *o1 !s #n&%g%'6 *o2 !s #n&%g%'

A!ren ien o OOo Basic

55

,R%*u%'da Fu% 7o' d%faul& los +nd+*%s d% las (a&'+*%s %(7+%:a %n *%'o Jo' *o1 A 0 Ho 9 Jo' *o2 A 0 Ho 9 (<u(%'os2 *o16 *o2 3 A Rnd23 100 B 1 <%x& <%x& ,$o(7'o.a(os un +nd+*% *ualFu+%'a MsgBox (<u(%'os2 46 4 3 End "u.

Observa el uso e la 1unci4n 8nd?@* 6ue nos evuelve un n>mero alea"orio en"re $ 1 6ue al ser mul"i!lica o !or el valor su!erior 6ue nos in"eresa - sumarle el valor in1erior 6ue nos in"eresa* nos a ic/o n>mero alea"orio en"re es"os os - sin 6uerer "ienen a/ora el Lalgori"moM !ara 6ue evuelvas un n>mero alea"orio en"re os valores a os+ .on las ma"rices e os imensiones !o emos simular el uso e una !e6ueKa base e a"os o el uso e una /o2a e calculo on e guar amos una serie e a"os en columnas 6ue se enominan Lcam!osM - 1ilas 6ue se enominan Lregis"rosM* veamos un sencillo e2em!lo<
"u. Ma&'+*%s/Mul&+d+(%ns+on3 @+( (H%l%fonos2 26 1 3 !s "&'+ng (H%l%fonos2 06 0 3 A "Dlo'+a" (H%l%fonos2 06 1 3 A "12345678" (H%l%fonos2 16 0 3 A "!n&on+o" (H%l%fonos2 16 1 3 A "87654321" (H%l%fonos2 26 0 3 A "5+d+a" (H%l%fonos2 26 1 3 A "32458924" MsgBox "El &%l%fono d% " 9 (H%l%fonos2 26 0 3 9 " %s " 9 (H%l%fonos2 26 1 3 End "u.

Pero lo in"eresan"e - iver"i o es arle la o!or"uni a al usuario e ir ca!"uran o es"os a"os e ir crecien o la ma"riz seg>n las necesi a es e es"e* veamos como<
"u. @+( @+( @+( @+( @+( @+( Ma&'+*%s/Mul&+d+(%ns+on4 (@+'%*&o'+o2 06 1 3 !s "&'+ng <o(.'% !s "&'+ng H%l%fono !s "&'+ng +$on&+nua' !s #n&%g%' *o1 !s #n&%g%' sH(7 !s "&'+ng @o ,"ol+*+&a(os %l no(.'%6 o.s%'8a %l uso d% la fun*+on H'+( 7a'a Fu+&a' %s7a*+os so.'an&%s <o(.'% A H'+(2 #n7u&Box2 "Es*'+.% un no(.'%"6 "<o(.'%" 3 3 H%l%fono A H'+(2 #n7u&Box2 "!ho'a su &%l%fono"6 "H%l%fono" 3 3 ,R%d+(%n*+ona(os la (a&'+:6 7%'o >[>6 solo la 7'+(%' d+(%ns+on R%d+( 0'%s%'8% (@+'%*&o'+o2 *o16 1 3 ,Dua'da(os los da&os %n %l nu%8o +nd+*% (@+'%*&o'+o2 *o16 0 3 A <o(.'% (@+'%*&o'+o2 *o16 1 3 A H%l%fono ,1a(os *ons&'u?%ndo nu%s&'o d+'%*&o'+o sH(7 A sH(7 9 "El &%l%fono d% " 9 (@+'%*&o'+o2 *o16 0 3 9 " %s " 9 (@+'%*&o'+o2 *o16 1 3 9 $h'2133 ,#n*'%(%n&a(os nu%s&'o *on&ado' d% '%g+s&'os *o1 A *o1 B 1 ,0'%gun&a(os s+ d%s%a *on&+nua' +$on&+nua' A MsgBox2 "M@%s%as *a7&u'a' (as da&osN"6 4 B 326 "$on&+nua'" 3 5oo7 Uh+l% +$on&+nua' A 6

5F
,Mos&'a(os nu%s&'o d+'%*&o'+o MsgBox sH(7 End "u.

E+F Ma"rices f iun"os !ero no revuel"os

Observa a"en"amen"e 6ue /acemos un !oco e "ram!a al ir guar an o los valores in"ro uci os !or el usuario en un variable "em!oral (sTm!)* con lo cual* no es"amos mu- seguros e 6ue e1ec"ivamen"e los a"os es"3n sien o guar a os en"ro e la ma"riz* !ara corroborarlo* e "area "ienes 6ue mo i1icar la macro !ara 6ue< 1+ Te mues"re "u irec"orio com!le"o* llenan o la variable sTm! L es!u3sM e salir el bucle* !ara resolver es"o "ienes 6ue /acer uso e la 1unci4n UBoun vis"a m;s arriba* !ero con una !e6ueKa varian"e* le "ienes 6ue in icar e 6ue imensi4n 6uieres saber su limi"e su!erior* como en el e2em!lo siguien"e< MsgBo: Uboun ( m(irec"orio* 1 ) =n on e nos mos"rara el in ice su!erior e la !rimer imensi4n - as sucesivamen"e* si le es"ableces un n>mero su!erior al e imensiones 6ue "iene la ma"riz* "e ar; un error+ #+ Obliga al usuario a in"ro ucir un nombre - "el31ono* es ecir* 6ue no es"3n vacos es"os cam!os ?+ Por ul"imo* ingenia"elas !ara !o er arle la o!or"uni a al usuario e borrar un regis"ro* es ecir* "ienes 6ue encon"rar la manera e !regun"arle al usuario si 6uiere borrar un regis"ro* - !or su!ues"o* borrarlo e1ec"ivamen"e+ Si* si* reconozco 6ue el !un"o "res no es"a na a 1;cil cuan o uno va em!ezan o* !ero es"a en"ro e lo !osible - con1o en "us ca!aci a es* as 6ue* a "raba2ar+ O"ra varian"e el uso e las ma"rices* es "ener ma"rices e ma"rices* es ecir* "ener en"ro e una ma"riz o"ra ma"riz* algunos au"ores a es"as le llamas ma"rices escalares* veamos su uso<
"u. Ma&'+*%s/Ma&'+*%s1 @+( (@a&os223 !s 1a'+an& @+( (H(7 !s 1a'+an& (@a&os203 A !''a?2"0%''o"6"Da&o"6">so"6"H+.u'on"6"Bu''o"3 (@a&os213 A !''a?2"$%d'o"6"0+no"6"$ao.a"6"J'%sno"3 (@a&os223 A !''a?2"$o.'%"6"0la&a"6"Mangan%so"6"!:uf'%"6"0o&as+o"6"J+%''o"3 (H(7 A MsgBox (H(7 A MsgBox (H(7 A MsgBox End "u. (@a&os203 (H(7203 (@a&os213 (H(7213 (@a&os223 (H(7223

Observa el uso e una variable "em!oral (mTm!) !ara asignar la ma"riz in"erna - as !o er acce er a sus valores* algunas 1unciones - es"ruc"uras e O!enO11ice+org 6ue veremos m;s a elan"e* es";n im!lemen"a as e es"ar 1orma* es ecir* como una ma"riz en"ro e o"ra* e a/ la im!or"ancia e 6ue las conozcas* !ero -a lo no"as"e* su uso es mu- sencillo* veamos un e2em!lo iver"i o e los 6ue me gus"an<
"u. @+( @+( @+( @+( Ma&'+*%s/Ma&'+*%s2 (@a&os233 !s 1a'+an& (H(7 !s 1a'+an& *o1 !s #n&%g%' s$a'a*&%' !s "&'+ng

A!ren ien o OOo Basic


@+( s$on&'a !s "&'+ng

5%

,5l%na(os los da&os6 o.s%'8a *o(o &%n%(os *ua&'o g'u7os6 l%&'as (+nus*ulas6 l%&'as (a?us*ulas6 nu(%'os ? *a'a*&%'%s %s7%*+al%s (@a&os203 A !''a?2 "a"6 "." 6"*" 6"d" 6"%" 6"f" 6"g" 6"h" 6"+" 6")" 6"]" 6"l" 6"("6"n"6"\"6"o"6"7"6"]"6"'"6"s"6"&"6"u"6"8"6"^"6"x"6"?"6":"3 (@a&os213 A !''a?2 "!" 6"B" 6"$" 6"@" 6"E" 6"J" 6"D" 6"H" 6"#" 6"[" 6"I" 6"5" 6"M"6"<"6"_"6">"6"0"6"P"6"R"6"""6"H"6"C"6"1"6"U"6"E"6"O"6"`"3 (@a&os223 A !''a?2"1"6"2"6"3"6"4"6"5"6"6"6"7"6"8"6"9"6"0"3 (@a&os233 A !''a?2 "a" 6"b" 6"!" 6"c" 6"d" 6"e" 6"9" 6"/" 6"2" 6"3" 6"A" 6"N" 6"M"6""6"B"6"T"6"/"6"-"6"4"6"6"6"f"6"X"6"Y"6"g"6"h"6"R"6"Q"3 ,<u%s&'a *on&'as%\a s%'a d% 10 *a'a*&%'%s Jo' *o1 A 1 Ho 10 ,"%l%**+ona(os aleatoriamente6 C<> d% los *ua&'o g'u7os (H(7 A (@a&os2 $#n&2 Rnd23 3 3 3 ,"%l%**+ona(os aleatoriamente6 C< %l%(%n&o d%l g'u7o6 o.s%'8a *o(o usa(os la fun*+on Rnd ? la (ul&+7l+*a(os 7o' %l +nd+*% su7%'+o' d%l g'u7o s%l%**+onado s$a'a*&%' A (H(72 $#n&2 Rnd23 CBound2(H(73 3 3 ,1a(os )un&ando los *a'a*&%'%s d% la *on&'as%\a s$on&'a A s$on&'a 9 s$a'a*&%' <%x& ,Mos&'a(os la *on&'as%\a MsgBox "Hu *on&'as%\a %s4 " 9 s$on&'a End "u.

Analizala - veras 6ue no es "an com!le2o como !arece - si* lo sien"o* "ienes "area* mo i1ica la macro e mo o 6ue le !regun"e al usuario e cuan"os carac"eres 6uiere su con"raseKa* !onle un rango mnimo - m;:imo 6ue !ue a escoger* igamos en"re 5 - 5$ carac"eres O sin 6uerer "enemos un nuevo ca!i"ulo com!le"o* bueno* casi com!le"o* a es"as al"uras -a "e /abr;s a o cuen"a e la can"i a e varian"es 6ue se !ue en "ener con unas cuan"as ins"rucciones e OOo Basic !or lo cual* ar !or com!le"o un "ema es un !oco aven"ura o* !ero !ara 1ines !r;c"icos* si* es"e ca!i"ulo* lo amos !or conclui o* 6ue a a "u curiosi a e imaginaci4n buscarle sus a!licaciones !rac"icas - las no "an !rac"icas* 6ue a veces* son las m;s iver"i as* a6uellas 6ue no sirven !ara na a+ W'eliz !rogramaci4nV

).A

Bmbito de ,ariables 7 ("ora me ,es, a"ora no

.omo "o o en es"a vi a* las variables "ambi3n se crean - 1enecen* unas uran m;s o"ras menos* !ero "o as lo /acen* la buena no"icia es 6ue noso"ros eci imos cuan o - cuan"o* lo cual a!ren eremos en es"e ca!i"ulo+ =l lugar on e eclares una variable - como lo /agas* e"erminara su Lvisibili a M - "iem!o e vi a* en"en ien o !or "iem!o e vi a* el "iem!o 6ue es"a is!onible !ara !o er acce er - mani!ular su con"eni o* a es"a visibili a - "iem!o e vi a se le conoce como ;mbi"o e la variable* el nivel m;s ba2o - b;sico -a lo conoces !ues* si /as segui o es"os a!un"es* los /as veni o usan o es e el inicio e es"as no"as* veamos cual es< ).A.1 Bmbito 3ocal

5G

E+% dmbi"o e variables f A/ora me ves* a/ora no

=s"as variables son las 6ue se eclararan en"ro el cuer!o e una macro o 1unci4n - se crean al invocar a es"a - se es"ru-en al 1inalizar* como en<
>7&+on Ex7l+*+& "u. 1a'+a.l%s/5o*al%s1 @+( +Edad !s #n&%g%' ,Mos&'a(os %l 8alo' d% la 8a'+a.l% MsgBox +Edad ,$a(.+a(os su 8alo' +Edad A 34 ,Mos&'a(os d% nu%8o %l 8alo' d% la 8a'+a.l% MsgBox +Edad End "u.

=2ecu"a varias veces la macro an"erior !ara 6ue observes como Lsiem!reM el valor inicial e la variable es cero* !ara com!robar 6ue e1ec"ivamen"e* solo es"a macro !ue e LverM a la variable i= a * crea una segun a macro es e on e in"en"emos usar es"a variable<
"u. 1a'+a.l%s/5o*al%s2 ,#n&%n&a(os (os&'a' %l 8alo' d% la 8a'+a.l% +Edad MsgBox +Edad End "u.

Por su!ues"o* el 9(= e solo "e mos"rara un error* si "ienes la !recauci4n e usar la !alabra clave %ption E'plicit* lo cual* "e recomien o 6ue nunca olvi es e usar* "e evi"ara muc/os olores e cabeza+ =n"onces* si e2ecu"as la segun a macro* "e "iene 6ue ar un error como el e la siguien"e imagen<

Observa la 1lec/a en el margen iz6uier o 6ue nos in ica la lnea on e se !ro u2o el error - observa "ambi3n el mensa2e 6ue es mu- claro* no /emos e1ini o la variable !ara Lesa macroM dentro e esa macro* en resumen* todas la variables declaradas dentro de macros tienen -mbito local+ 5eamos un e2em!lo m;s* o2o* "ienes 6ue e2ecu"ar la macro 6ue se llama 5ariablesQ)ocales?<
>7&+on Ex7l+*+& "u. 1a'+a.l%s/5o*al%s3 @+( sH(7 !s "&'+ng sH(7 A "!FuG no so? nad+%" $all "o?/J+losofo $all "o?/@+8%'&+do MsgBox sH(7 End "u.

A!ren ien o OOo Basic


"u. "o?/J+losofo @+( sH(7 !s "&'+ng sH(7 A "!ho'a so? un f+losofo" MsgBox sH(7 End "u. "u. "o?/@+8%'&+do @+( sH(7 !s "&'+ng sH(7 A "!ho'a so? d+8%'&+do" MsgBox sH(7 End "u.

5,

Tienes 6ue ser mu- observa or !ara 6ue no"es como la variable "oma el valor asigna o en ca a macro* ca a una es i1eren"e - se inicializa - "ermina con la macro on e se eclara+ .o!ia las os macros siguien"es - e2ecu"a la 6ue se llama 5ariablesQ)ocalesE varias veces<
>7&+on Ex7l+*+& "u. 1a'+a.l%s/5o*al%s4 $all $on&a'23 End "u. "u. $on&a' @+( +$on&ado' !s #n&%g%' +$on&ado' A +$on&ado' B 1 MsgBox +$on&ado' End "u.

Siem!re lo mismo* Iver a J* es ecir* siem!re "e mues"ra el valor 1* I6ue !asar; si llamamos a la macro varias veces como en el e2em!lo siguien"eJ<
>7&+on Ex7l+*+& "u. 1a'+a.l%s/5o*al%s4 $all $on&a'23 $all $on&a'23 $all $on&a'23 End "u.

Sigue igual* Iver a J* vamos a /acer un !e6ueKo cambio a la macro .on"ar* es!ec1icamen"e en la eclaraci4n e la variable - volvemos a e2ecu"ar la macro 5ariablesQ)ocalesE* !ero es"a segun a versi4n on e llamamos varias veces a la macro .on"ar<
>7&+on Ex7l+*+& "u. 1a'+a.l%s/5o*al%s4 $all $on&a'23 $all $on&a'23 $all $on&a'23 End "u. "u. $on&a' "&a&+* +$on&ado' !s #n&%g%' +$on&ado' A +$on&ado' B 1 MsgBox +$on&ado' End "u.

F$

E+% dmbi"o e variables f A/ora me ves* a/ora no

I)o no"as"eJ* observa como eclaramos la variable iContador en la macro .on"ar* !ero a/ora* en vez e usar la !alabra clave Dim* usamos la !alabra clave Static* con lo 6ue le es"amos in ican o 6ue conserve el valor en"re las llama as a la macro* es"e valor lo conservara mien"ras se e2ecu"e la macro 6ue llamo a la macro on e es"a eclara a la variable S"a"ic* como !o r;s emos"rarlo* e2ecu"an o varias veces la macro /ariables'0ocales1* el valor m;:imo siem!re es "res* en nues"ro caso* !or 6ue llamamos a la macro .on"ar "res veces - es"a* incremen"a el valor e la variable una uni a ca a vez+ OiO* aun6ue es"emos eclaran o la variable i.on"a or como S"a"ic* en"ro e la macro .on"ar* no !or ello e2a e ser una variable e ;mbi"o local* como !ue es com!robarlo 1;cilmen"e "ra"an o e mos"rar su valor es e la macro 5ariablesQ)ocalesE* el siguien"e cambio en la macro "e ebera ar un error e -variable no e1ini a-+
>7&+on Ex7l+*+& "u. 1a'+a.l%s/5o*al%s4 $all $on&a'23 $all $on&a'23 $all $on&a'23 ,5a s+gu+%n&% l+n%a Vd%.%'+aW da'&% un %''o' MsgBox +$on&ado' End "u.

I5er a 6ue es mu- iver"i oJ* a/ora* le /aremos un !e6ueKo cambio a la macro 5ariablesQ)ocalesE* !ara 6ue cuen"e /as"a 6ue le igamos 6ue LNoM* si lo !re1ieres* !ue es crear o"ra macro !ara 6ue la an"erior 6ue e "al cual+ =s!ero 6ue lo /a-as no"a o* !ero con"inuamen"e "e invi"o a e:!erimen"ar - a 6ue "omes "us !ro!ias ecisiones - "e 1or2es "us !ro!ios cri"erios !ara "u !rogramaci4n* a6u como en la vi a* ice el maes"ro Sava"er* -nos vienen bien las enseKanzas e los maes"ros* !ero al 1inal* es"amos solos !ara eci ir-* !ues eso* "u eci es+
>7&+on Ex7l+*+& "u. 1a'+a.l%s/5o*al%s5 @+( +R%s7u%s&a !s #n&%g%' @o $all $on&a'23 +R%s7u%s&a A MsgBox2 "M$on&+nua' *on&andoN"6 4B326 "$on&+nua'"3 ,R%*u%'da Fu% s+ %l usua'+o 7'%s+ona "+6 %l 8alo' Fu% d%8u%l8% MsgBox %s 6 5oo7 Uh+l% +R%s7u%s&a A 6 End "u.

).A.2

Bmbito +ri,ado

=s"e segun o nivel* corres!on e a las variables eclara as en la cabecera e un mo ulo usan o la !alabra clave +ri,ate* recuer a 6ue la cabecera es el inicio e un mo ulo* on e Lsiem!reM "ienes 6ue agregar la o"ra im!or"an"e !alabra clave %ption E'plicit* !ara 6ue nos avise siem!re si no /emos eclara o una variable* es"o* "e recuer o* no es obliga"orio* !ero "e aseguro 6ue lo agra ecer;s m;s e una vez+ Observa el e2em!lo siguien"e<
>7&+on Ex7l+*+& ,>.s%'8a Fu% %n 8%: d% @+( %s&a(os usando 0'+8a&% 0'+8a&% +n&$on&ado' !s #n&%g%' "u. "u(a'/?/R%s&a' ,5la(a(os a la (a*'o "u(a'

A!ren ien o OOo Basic

F1

$all "u(a'23 ,Mos&'a(os %l 8alo' d% la 8a'+a.l% MsgBox +n&$on&ado' ,5la(a(os a la (a*'o R%s&a' $all R%s&a'23 ,Mos&'a(os d% nu%8o %l 8alo' d% la 8a'+a.l% MsgBox +n&$on&ado' End "u. "u. "u(a' ,!FuG au(%n&a(os la 8a'+a.l% %n dos un+dad%s +n&$on&ado' A +n&$on&ado' B 2 End "u. "u. R%s&a' ,? aFuG '%s&a(os a la 8a'+a.l% una un+dad +n&$on&ado' A +n&$on&ado' T 1 End "u.

No"a como a/ora* la variable intContador* es LvisibleM - mani!ulable !or cual6uier macro o 1unci4n eclara a en el mo ulo* ojo, la teorCa dice que estas ,ariables, solo son ,isibles para el modulo donde se declaran, pero en mis pruebas 5(M&IE/ son ,isibles en otros mdulos* an"es e emos"rar"e es"o* veamos una varian"e e la macro an"erior !ara seguir suman o - res"an o<
>7&+on Ex7l+*+& 0'+8a&% +n&$on&ado' !s #n&%g%' "u. "u(a'/?/R%s&a'2 @+( +R%s !s #n&%g%' @o +R%s A MsgBox2 "0a'a su(a' 7'%s+ona "#" 9 $h'2133 9 "0a'a '%s&a' 7'%s+ona <>" 9 / $h'2133 9 "0a'a sal+' 7'%s+ona $!<$E5!R"6 36 ""u(a' ? R%s&a'"3 "%l%*& $as% +R%s $as% 6 $all "u(a'23 $as% 7 $all R%s&a'23 End "%l%*& MsgBox +n&$on&ado' 5oo7 Cn&+l +R%s A 2 End "u.

A/ora si* vamos a a elan"arnos un !o6ui"o en los "emas - veremos como agregar un segun o mo ulo a nues"ra biblio"eca !ara agregar m;s macros - emos"rar como las variables eclara as a nivel mo ulo con Priva"e son visibles !or cual6uier o"ro mo ulo* !ara ello* a un clic con el bo"4n secun ario e "u ra"4n (normalmen"e el erec/o) sobre la e"i6ue"a el mo ulo ac"ual on e es"3s "raba2an o* es"a acci4n "e "iene 6ue mos"rar un men> con"e:"ual* e es"e* seleccionas +nsertar - es!u3s Modulo !AS+C como "e mues"ro en la siguien"e imagen+

F#

E+% dmbi"o e variables f A/ora me ves* a/ora no

Tienes 6ue ver el nuevo mo ulo al la o el an"erior* como se 6ue eres observa or* no"aras en el men> con"e:"ual an"erior* "ienes la o!ci4n e cambiar el nombre el mo ulo* "e e2o a "u cri"erio 6ue lo /agas* !or a/ora* nos bas"a "ener os m4 ulos !ara !ruebas como en<

No"a 6ue al inser"ar un mo ulo* e 1orma !re e"ermina a* es"e agrega la eclaraci4n e una nueva macro* vamos a renombrarla - "ra"aremos e acce er a la variable in".on"a or eclara a - usa a en el mo ulo uno* veamos 6ue !asa<
>7&+on Ex7l+*+& "u. Mos&'a'1alo'23 MsgBox +n&$on&ado' End "u.

No"a 6ue la macro an"erior es"a en el mo ulo # - al e2ecu"arla nos mues"ra el valor e la variable* 6ue es cero* !ues recuer a 6ue el valor inicial e "o a variable num3rica es cero* !ero observa como LnoM nos a error* como ice la "eora* !ues "oma la eclaraci4n e la variable el mo ulo 1+ 5olvamos al mo ulo 1* co!ia - e2ecu"a la siguien"e macro<
>7&+on Ex7l+*+& 0'+8a&% +n&$on&ado' !s #n&%g%' "u. 1alo'1a'+a.l% +n&$on&ado' A 100 ,5la(a(os a la (a*'o d%l (odulo 2 $all Mos&'a'1alo'23 End "u.

.reo 6ue es bas"an"e claro 6ue la variable se !ue e mani!ular - acce er es e cual6uier o"ro mo ulo* aun - cuan o se eclare con Priva"e* lo cual es!ero se arregle en 1u"uras versiones* !ues e es"e mo o* usar Priva"e - (im es in is"in"o - el siguien"e "ema no "iene raz4n e ser* incluso* en mis !ruebas* la variable es acce i a es e o"ras biblio"ecas el arc/ivo+ Te

A!ren ien o OOo Basic

F?

agra ecer3 si /aces "us !ruebas - si no"as algo i1eren"e o "e 1unciona como L eberaM me lo /agas saber+ ).A. Bmbito de Dominio +ublico

=n es"e ;mbi"o* se su!one* 6ue las variables eclara as a nivel cabecera e mo ulo usan o la !alabra clave (im* son visibles !ara cual6uier mo ulo e la biblio"eca* !ero en mis !ruebas es visible /as"a !or los m4 ulos e o"ras biblio"ecas el arc/ivo - se com!or"a e:ac"amen"e el mismo mo o 6ue las variables e ;mbi"o !riva o vis"as en el "ema an"erior* !or lo 6ue no lo re!e"ir3 a6u* solo es!eremos 6ue !ron"o se arregle - 1uncione como icen 6ue ebe /acerlo+
>7&+on Ex7l+*+& @+( +n&$on&ado' !s #n&%g%'

).A.)

Bmbito Dlobal

=s"e ;mbi"o es igual al e ominio !ublico en cuan"o a su visibili a * !ero i1iere en cuan"o a su 1unci4n* !ues es"a guar a su ul"imo valor* aun - cuan o se "ermina la macro+ Para 6ue una variable sea e ;mbi"o global* ebe ser eclara a en la cabecera e un m4 ulo con la !alabra clave &lobal e la siguien"e manera<
>7&+on Ex7l+*+& Dlo.al +n&g$on&ado' !s #n&%g%' "u. 1a'+a.l%/Dlo.al23 +n&g$on&ado' A +n&g$on&ado' B 100 MsgBox +n&g$on&ado' End "u.

Al e2ecu"ar varias veces la macro an"erior* no"aras como guar a el valor* aun cuan o -a "ermino la e2ecuci4n e la macro+ Su uso !o ra com!ararse en 1unci4n a las variables e ;mbi"o local* eclara as con la !alabra clave S"a"ic* !ero a nivel global e "o as las macros el arc/ivo+ O con es"o "erminamos un "ema m;s* la recomen aci4n !ara es"e "ema es !rocurar usar lo m;s !osible variables e ;mbi"o local - es!u3s e ;mbi"o !ublico* es"o es !or 6ue con1orme -a no uses una variable* al ser e ;mbi"o local* es"a se es"ru-e - se libera la memoria usaba !or ella al concluir la macro on e se use* !or su!ues"o es"o no es res"ric"ivo solo "u !rac"ica - e:!eriencia "e ir;n cual es la me2or o!ci4n+ =l eci ir 6ue variables usar - con 6ue ;mbi"o no es un "ema menor - cuan o uno va em!ezan o se convier"e casi en un !roblema e:is"encial* !ero no "e !reocu!es* es!eremos 6ue con los muc/os e2em!los 6ue mos"ramos* "e sea m;s 1;cil a!ren er a eci ir lo me2or en ca a caso+

).E

Funciones y subrutinas 7 Di,ide y ,encerFs


odo lo comple!o puede dividirse en partes simples

FE

E+G 'unciones - subru"inas f (ivi e - vencer;s


8ene Descartes

=n ocasiones* las 1unciones e ins"rucciones incor!ora as el lengua2e* no nos son su1icien"es !ara resolver alg>n !roblema !lan"ea o o su com!le2i a nos obliga a !ensar en o"ra al"erna"iva* en o"ras ocasiones* el c4 igo se vuelve "an largo 6ue se vuelve i1cil e leer* analizar o me2orar+ =n es"os casos* como en o"ros m;s 6ue "al vez se "e !resen"en* recurrimos a crear nues"ras !ro!ias 1unciones - subru"inas+ =n es"e ca!i"ulo veremos como eclararlas - usarlas . =n el "ema E+# 9ns"rucciones - 1unciones en OOo Basic * vimos algunos conce!"os 6ue nos ser;n mu- >"iles en es"e* comencemos con los e2em!los - es!u3s las e:!licaciones* co!ia - e2ecu"a la siguien"e macro<
>7&+on Ex7l+*+& "u. Mos&'a'M%nsa)%123 MsgBox "Es&o? a7'%nd+%ndo >>o Bas+*"6 486 "!7'%nd+%ndo >>o Bas+*" MsgBox "Es f=*+l ? d+8%'&+do"6 486 "!7'%nd+%ndo >>o Bas+*" MsgBox "Oa 8o? a (%d+o *a(+no"6 486 "!7'%nd+%ndo >>o Bas+*" End "u.

Si* no "iene na a e e:"raor inario* !ero nos resul"ara mu- >"il !ara nues"ros !ro!4si"os+ 5amos a su!oner una segun a macro similar a la an"erior<
"u. Mos&'a'M%nsa)%223 MsgBox "Es un 7o*o &a'd%"6 486 "!7'%nd+%ndo >>o Bas+*" MsgBox "Oa &%ngo su%\o"6 486 "!7'%nd+%ndo >>o Bas+*" MsgBox ""olo a*a.a(os %s&% &%(a"6 486 "!7'%nd+%ndo >>o Bas+*" End "u.

A/ora "enemos os macros 6ue /acen cosas mu- similares* - sigamos con nues"ras su!osiciones* su!ongamos 6ue e nues"ros mensa2es* el icono mos"ra o - el "i"ulo el cua ro e ialogo* siem!re son los mismos* !or lo 6ue lo >nico 6ue cambia es la ca ena mos"ra a* es"e caso es i 4neo !ara 6ue /agamos una subru"ina* 6ue no es m;s 6ue una macro crea a !or noso"ros a la 6ue com>nmen"e (no es obliga"orio) se le !asa un0unos !ar;me"ro(s) o argumen"o(s) - realice una "area+ =s ecir L/agaM algo+ .o!ia la siguien"e macro - mo i1ica las os !rimeras macros !ara 6ue 6ue en e la siguien"e manera<
>7&+on Ex7l+*+& "u. Mos&'a'M%nsa)%323 $all Mu%s&'aM%nsa)%2 $all Mu%s&'aM%nsa)%2 $all Mu%s&'aM%nsa)%2 $all Mu%s&'aM%nsa)%2 $all Mu%s&'aM%nsa)%2 $all Mu%s&'aM%nsa)%2 End "u. "Es&o? a7'%nd+%ndo >>o Bas+*" 3 "Es fa*+l ? d+8%'&+do" 3 "Oa 8o? a (%d+o *a(+no" 3 "Es un 7o*o &a'd%" 3 "Oa &%ngo su%\o" 3 ""olo a*a.a(os %s&% &%(a" 3

"u. Mu%s&'aM%nsa)%2M%nsa)% !s "&'+ng3 MsgBox $ad%na6 486 "!7'%nd+%ndo >>o Bas+*" End "u.

)o im!or"an"e es 6ue a!ren as como llamamos a una macro con argumen"os - 6ue es mu- im!or"an"e 6ue* los argumen"os !asa os sean el mismo "i!o e los es!era os* observa como la macro Mues"raMensa2e Lnecesi"aM un argumen"o llama o Mensa2e 6ue es e "i!o S"ring* en"onces* al llamarla* Lnecesi"amosM !asarle una variable* no im!or"a el nombre* sino 6ue sea e "i!o S"ring+ Tambi3n observa 6ue usamos la !alabra clave .all !ara llamar a la macro* es"o no es re6uisi"o* las siguien"e lneas son e6uivalen"es<

A!ren ien o OOo Basic

F5

"u. Mos&'a'M%nsa)%323 $all Mu%s&'aM%nsa)%2 "Es&o? a7'%nd+%ndo >>o Bas+*" 3 Mu%s&'aM%nsa)%2 "Es&o? a7'%nd+%ndo >>o Bas+*" 3 Mu%s&'aM%nsa)% "Es&o? a7'%nd+%ndo >>o Bas+*" End "u.

Observa como en la !rimera usamos .all - !ar3n"esis* en la segun a omi"imos .all - en la "ercera 6ui"amos .all - los !ar3n"esis+ =n lo !ersonal el uso e .all solo lo uso !ara saber 6ue es una subru"ina !ersonaliza a* 6ue a a "u cri"erio su uso u omisi4n+ =l uso e !ar3n"esis como abras no"a o "ambi3n es o!cional* como muc/as ins"rucciones 6ue usa O!enO11ice+org /acen uso e los !ar3n"esis* "ambi3n* en lo !ersonal* /ago uso e ellos* !ero -a sabes* "ienes la ul"ima !alabra+ A/ora* veremos un "ema im!or"an"e* a una subru"ina* se le !ue en !asar los argumen"os o !ar;me"ros e os maneras* una es !or valor - o"ra !or re1erencia* la i1erencia es mu- sencilla !ero es e suma im!or"ancia es"a i1erencia+ .uan o !asamos los argumen"os !or valor* en reali a lo 6ue se /ace es !asarle una Lco!iaM el valor e la variable* !or lo cual* el valor e es"e argumen"o solo se !ue e usar L en"roM e la subru"ina 6ue la usa* en cambio* cuan o los argumen"os se !asan !or re1erencia* lo 6ue es"amos /acien o es !asarle la Lubicaci4nM e la variable en la memoria* !or lo cual* !o emos mo i1icar su valor L en"roM e la subru"ina* com!robemoslo con un e2em!lo<
>7&+on Ex7l+*+& "u. 0aso0o'R%f%'%n*+a23 @+( sM%nsa)% !s "&'+ng ,!s+gna(os una *ad%na a la 8a'+a.l% sM%nsa)% A "5a &'a8%s+a d% (+l ]+lo(%&'os *o(+%n:a *on un 7aso" ,5la(a(os a la su.'u&+na ? l% 7asa(os %l a'gu(%n&o $all $a(.+a1alo'2 sM%nsa)% 3 ,Mos&'a(os la 8a'+a.l% *on %l nu%8o 8alo'6 *a(.+ado %n la su.'u&+na MsgBox sM%nsa)% End "u. "u. $a(.+a1alo'2$ad%na !s "&'+ng3 ,Mos&'a(os %l (%nsa)% *on la *ad%na 7asada MsgBox $ad%na6 486 "$ad%na >'+g+nal" ,Mod+f+*a(os %l a'gu(%n&o 7asado $ad%na A "Eso lo d+)o 5ao Hs%" End "u.

Observa como en es"e caso* mo i1icamos el argumen"o !asa o - el cambio se ve re1le2a o en la variable origen* no as* en el siguien"e e2em!lo<
>7&+on Ex7l+*+& "u. 0aso0o'1alo'23 @+( sM%nsa)% !s "&'+ng ,!s+gna(os una *ad%na a la 8a'+a.l% sM%nsa)% A "El &'a.a)o %s %l '%fug+o d% los Fu% no &+%n%n nada Fu% ha*%'" ,5la(a(os a la su.'u&+na ? l% 7asa(os %l a'gu(%n&o $all <o$a(.+a1alo'2 sM%nsa)% 3 ,Mos&'a(os la 8a'+a.l% Fu% nos (u%s&'a lo (+s(o6 %s d%*+' ,no h%(os 7od+do *a(.+a' su 8alo' %n la su.'u&+na MsgBox sM%nsa)% End "u. ,>.s%'8a %l *a(.+o %n la d%*la'a*+on d%l a'gu(%n&o usando B?1al

FF
"u. <o$a(.+a1alo'2 B?1al $ad%na !s "&'+ng 3 ,Mos&'a(os %l (%nsa)% *on la *ad%na 7asada MsgBox $ad%na6 486 "$ad%na >'+g+nal" ,#n&%n&a(os (od+f+*a' %l a'gu(%n&o 7asado $ad%na A "Eso lo d+)o >s*a' U+ld%" End "u.

E+G 'unciones - subru"inas f (ivi e - vencer;s

A/ora* la variable origen 6ue o in"ac"a* !ero observa la i1erencia en la eclaraci4n e la subru"ina* !ara !asar un argumen"o !or valor* "ienes 6ue usar la !alabra clave &y-al Lan"esM el nombre el argumen"o+ Por e1aul"* salvo 6ue se in i6ue lo con"rario* los argumen"os se !asan !or re1erencia+ Una !regun"a 6ue nos a-u a a saber si eclaramos una variable !or valor o re1erencia es< Inecesi"o mani!ular su valor en la subru"inaJ* si la res!ues"a es si se !asa !or re1erencia* si es no* se !asa !or valor+ ce observa o 6ue /a- os cri"erios encon"ra os en el uso e los argumen"os !or valor o re1erencia* algunos !rograma ores o!inan 6ue "o os los argumen"os eberan !asarse !or re1erencia* !ues al !asar la irecci4n e la variable en memoria* no es"amos usan o m;s memoria a es"e cri"erio !o ra argumen"arse 6ue los e6ui!os ac"uales "ienen muc/a m;s memoria* o"ros icen 6ue "o os los argumen"os eberan !asarse !or valor* !ues una subru"ina "iene 6ue ser como una uni a com!le"a !or si misma* - la memoria usa a se libera al 1inalizar la subru"ina+ )as !reocu!aciones el uso e la memoria* !or el momen"o* se las vamos a e2ar a gran es !ro-ec"os* como O!enO11ice+org !or e2em!lo* on e es";n involucra as millones e lneas e c4 igo* !ara nues"ros 1ines !r;c"icos* "u eci es* si !asas los argumen"os en subru"inas - 1unciones !or valor o re1erencia+ To as las subru"inas 6ue "engan argumen"os "ienen 6ue ser invoca as (llama as) es e o"ra macro* si in"en"as e2ecu"ar irec"amen"e una subru"ina con argumen"os es e el 9(=* "e ar; el siguien"e error<

E si la intentas ejecutar desde la inter&a, del usuario3 es decir3 desde el menS Herramientas | Macros | Ejecutar macro... 3 te dar8 el siguiente errorT

)as subru"inas nos a-u an a ivi ir nues"ro c4 igo en blo6ues l4gicos o m;s mane2ables* cier"a ocasi4n* no recuer o on e* le 6ue una macro* !roce imien"o o subru"ina* no L eberaM "ener m;s e una !;gina e lneas* es"o !or su!ues"o es sumamen"e sub2e"ivo* escribir

A!ren ien o OOo Basic

F%

Lc4 igo com!ac"oM no es sin4nimo e Lc4 igo e1icien"eM* una vez m;s* la !rac"ica iaria "e ic"ara los me2ores argumen"os !ara !rogramar+ cabr; ocasiones* en 6ue 6uieras salir an"ici!a amen"e e una subru"ina* !ara ello* e:is"e una ins"rucci4n 6ue se llama E'it Sub* veamos su uso<
>7&+on Ex7l+*+& "u. E)%(7lo/Ex+&"u.23 @+( sJ'as% !s "&'+ng sJ'as% A H'+(2#n7u&Box2"Es*'+.% una f'as%"33 $all $on&a'5%&'as2 sJ'as% 3 End "u. "u. $on&a'5%&'as2 $ad%na !s "&'+ng3 #f $ad%na A "" &h%n Ex+& "u. Els% MsgBox "Ha?" 9 "&'25%n2$ad%na33 9 " l%&'as %n la *ad%na" 9 $h'2133 9 $h'2133 9 $ad%na End #f End "u.

Observa como en la subru"ina .on"ar)e"ras si el argumen"o !asa o es"a vaco* sale inme ia"amen"e e la macro con la ins"rucci4n E'it Sub* algunos au"ores no recomien an el uso e la ins"rucci4n =:i" Sub* en L"eoraM una subru"ina L eberaM ser com!le"a* es ecir* no L eberaM necesi"ar sali as L1orza asM* !or su!ues"o 6ue a a "u cri"erio - e:!eriencia su uso* !or e2em!lo* la subru"ina an"erior !o ra 6ue ar as<
"u. $on&a'5%&'as12 $ad%na !s "&'+ng3 #f $ad%na XY "" &h%n MsgBox "Ha?" 9 "&'2 5%n2$ad%na3 3 9 " l%&'as %n la *ad%na" 9 $h'2133 9 $h'2133 9 $ad%na End #f End "u.

Observa como solo e2ecu"amos el c4 igo si el argumen"o .a ena LnoM es"a vaco* incluso* algunos au"ores m;s e:igen"es* argumen"an 6ue la 4,alidacin de datos1 (no se "e olvi e es"a 1rase)* se "iene 6ue /acer Lan"esM e llamar a una subru"ina* es ecir* 6ue es"as L eberanM /acer solo su "raba2o - !asarle los a"os correc"os* !ara e2em!li1icar es"o* observa las mo i1icaciones a las macros an"eriores<
"u. E)%(7lo/Ex+&"u.223 @+( sJ'as% !s "&'+ng sJ'as% A H'+(2#n7u&Box2"Es*'+.% una f'as%"33 #f sJ'as% XY "" Hh%n $all $on&a'5%&'as22 sJ'as% 3 End #f End "u. "u. $on&a'5%&'as22 $ad%na !s "&'+ng3 MsgBox "Ha?" 9 "&'25%n2$ad%na33 9 " l%&'as %n la *ad%na" 9 $h'2133 9 $h'2133 9 $ad%na End "u.

No"a 6ue la vali aci4n la /acemos con la linea<


#f sJ'as% XY "" Hh%n

FG

E+G 'unciones - subru"inas f (ivi e - vencer;s

Por lo 6ue al llamar a la macro .on"ar)e"ras#* -a le es"amos !asan o un a"o vali a o* es ecir* correc"o* !or 6ue en"ro e la subru"ina no es necesario /acer ninguna vali aci4n* !or su!ues"o es"o "iene sus !ros - sus con"ras* sus e1ensores - sus e"rac"ores+ Solo "e igo* a!lica "u cri"erio 6ue la e:!eriencia - la !rac"ica ser;n "us me2ores alia as+ )o 6ue si nunca* o"ra vez lo re!i"o* nunca ebes e e2ar e /acer* es 4,alidar tus datos1* garan"izar 6ue sean correc"os* no im!or"a on e lo /agas !ero vali alos* un gran !orcen"a2e e errores en muc/os !rogramas es !or una e1icien"e vali aci4n e a"os - "ambi3n* -a "e ar;s cuen"a* 6ue un gran !orcen"a2e e c4 igo* se nos va* vali an o a"os+ 5eamos o"ro e2em!lo e una subru"ina+ Su!ongamos 6ue nos !i en /acer una macro 6ue solici"e el ra io e un circulo - se calcule su ;rea<
>7&+on Ex7l+*+& "u. $al*ula'!'%a$+'*ulo123 @+( d!'%a !s @ou.l% @+( sRad+o !s "+ngl% $ons& 0# !s "+ngl% A 3-1416 ,"ol+*+&a(os %l 'ad+o d%l *+'*ulo a *al*ula'6 o.s%'8a Fu% 7'+(%'o l+(7+a(os los %s7a*+os ,*on H'+(6 d%s7u%s *on8%'&+(os %l 8alo' a &+7o "+ngl%6 Fu% %s %l &+7o d% 8a'+a.l% %s7%'ado sRad+o A $"ng2 H'+(2 #n7u&Box2 "M$ual %s %l 'ad+oN"6 "!'%a d% un *+'*ulo"6 "1" 3 3 3 ,"olo s+ &%n%(os 8alo'%s (a?o'%s a *%'o #f sRad+o Y 0 Hh%n d!'%a A 0# 2 sRad+o i 2 3 MsgBox "El a'%a d% un *+'*ulo d% 'ad+o A " 9 "&'2sRad+o3 9 " %s A4 " 9 "&'2d!'%a3 End #f End "u.

(i creamos una su%rutina3 podrIa ser algo asIT


>7&+on Ex7l+*+& "u. $al*ula'!'%a$+'*ulo223 @+( d!'%a !s @ou.l% @+( sRad+o !s "+ngl% sRad+o A $"ng2 H'+(2 #n7u&Box2 "M$ual %s %l 'ad+oN"6 "!'%a d% un *+'*ulo"6 "1" 3 3 3 #f sRad+o Y 0 Hh%n $all @%8u%l8%!'%a$+'*ulo2 sRad+o6 d!'%a 3 MsgBox "El a'%a d% un *+'*ulo d% 'ad+o " 9 "&'2sRad+o3 9 " %s A4 " 9 "&'2d!'%a3 End #f End "u. "u. @%8u%l8%!'%a$+'*ulo2 Rad+o !s "+ngl%6 !'%a !s @ou.l% 3 $ons& 0# !s "+ngl% A 3-1416 !'%a A 0# End "u. 2 Rad+o i 2 3

Si bien lo an"erior 1unciona* no es com>n usar subru"inas !ara mani!ular variables argumen"os* lo m;s usual* si se 6uiere L evolverM un valor* es usar una 1unci4n en vez e una subru"ina* la macro an"erior* usan o una 1unci4n* 6ue ara e la siguien"e manera<
>7&+on Ex7l+*+& "u. $al*ula'!'%a$+'*ulo323 @+( d!'%a !s @ou.l% @+( sRad+o !s "+ngl% sRad+o A $"ng2 H'+(2 #n7u&Box2 "M$ual %s %l 'ad+oN"6 "!'%a d% un *+'*ulo"6 "1" 3 3 3

A!ren ien o OOo Basic

F,

#f sRad+o Y 0 Hh%n ,>.s%'8a *o(o usa(os la fun*+on ? as+gna(os %l '%sul&ado a una 8a'+a.l% d!'%a A !'%a$+'*ulo2 sRad+o 3 MsgBox "El a'%a d% un *+'*ulo d% 'ad+o A " 9 "&'2sRad+o3 9 " %s A4 " 9 "&'2d!'%a3 End #f End "u. Jun*&+on !'%a$+'*ulo2 Rad+o !s "+ngl% 3 !s @ou.l% $ons& 0# !s "+ngl% A 3-1416 ,>.s%'8a *o(o usa(os %l no(.'% d% la fun*+Kn 7a'a d%8ol8%' al 8alo' !'%a$+'*ulo A 0# 2 Rad+o i 2 3 End Jun*&+on

Observa el mo o e eclarar una 1unci4n* a/ora* en vez e usar la !alabra clave Sub* usamos una nueva !alabra clave Function* la eclaraci4n e los argumen"os "iene las mismas carac"ers"icas usa as en las subru"inas* como el !aso !or valor o re1erencia* !ero un cambio im!or"an"e* es el "i!o e valor L evuel"oM !or una 1unci4n* es ecir* las 1unciones "ambi3n evuelven un L"i!oM es!eci1ico e valor* !or su!ues"o* "ambi3n !ue en evolver el "i!o !or e1aul" e las variables 6ue es 5arian" !ero la recomen aci4n es es!eci1icar siem!re 6ue "e sea !osible el "i!o e valor 6ue es!eras evuelva la 1unci4n+ O"ro cambio im!or"an"e es 6ue !ara evolver el valor en"ro e la 1unci4n* en vez e usar o"ro argumen"o o variable* usamos el mismo nombre e la 1unci4n como es"ino - !ara 1inalizar* en vez e usar =n Sub como /as"a a/ora* en L"o asM las eclaraciones e Function* ebemos cerrarlas con End Function, sino* "e ar; un error+ =l !aso e argumen"os en subru"inas - 1unciones* "iene o"ra !osibili a muin"eresan"e* el !aso e argumen"os o!cionales* con"inuemos con nues"ro e2em!lo el circulo* su!ongamos 6ue a/ora se nos !i e /acer una macro 6ue calcule -a sea el ;rea o el !erme"ro e un circulo* !ara usar la misma 1unci4n* le agregaremos un argumen"o o!cional !ara saber si lo 6ue 6ueremos calcular es el !erme"ro<
>7&+on Ex7l+*+& "u. @+( @+( @+( $al*ula'$+'*ulo d!'%a !s @ou.l% d0%'+ !s @ou.l% sRad+o !s "+ngl% sRad+o A $"ng2 H'+(2 #n7u&Box2 "M$ual %s %l 'ad+oN"6 "$+'*ulo"6 "1" 3 3 3 #f sRad+o Y 0 Hh%n ,!Fu+ usa(os la fun*+on "#< %l a'gu(%n&o o7*+onal d!'%a A $+'*ulo2 sRad+o 3 ,O aFu+ usa(os la fun*+on $>< %l a'gu(%n&o o7*+onal d0%'+ A $+'*ulo2 sRad+o6 H'u% 3 MsgBox "!'%a A " 9 "&'2d!'%a3 9 *h'2133 9 / "0%'+(%&'o A " 9 "&'2d0%'+36 646 "$+'*ulo" End #f End "u. Jun*&+on $+'*ulo2 Rad+o !s "+ngl%6 >7&+onal 0%'+(%&'o !s Bool%an 3 !s @ou.l% $ons& 0# !s "+ngl% A 3-1416 ,$o(7'o.a(os s+ %l 7a'a(%&'o s% 7aso o no #f #sM+ss+ng2 0%'+(%&'o 3 Hh%n ,"+ no s% 7aso l% as+gna(os %l 8alo' 7o' d%faul& 0%'+(%&'o A Jals% End #f #f 0%'+(%&'o Hh%n $+'*ulo A 0# Els% $+'*ulo A 0# 2 Rad+o 2 3

2 Rad+o i 2 3

%$
End #f End Jun*&+on

E+G 'unciones - subru"inas f (ivi e - vencer;s

No"a el uso e la !alabra clave %ptional* !ara 1ines e lo 6ue se nos !i e usamos una variable "i!o boleana* ver a era o 1alsa (Boolean)* !ero en "us 1unciones !ue e eclarar al igual 6ue los o"ros argumen"os* el "i!o 6ue necesi"es* !ue es eclarar "an"os argumen"os o!cionales como necesi"es* el !un"o im!or"an"e es 6ue Lcom!ruebesM si se !aso o no el argumen"o !ara 6ue en su e1ec"o* le asignes un valor !or e1aul" a ic/o argumen"o* !ara veri1icar si se !aso o no un argumen"o usas la 1unci4n e OOo Basic IsMissin*? (r*umento @* como se ve en el e2em!lo an"erior+ (e "area* mo i1ica la macro !ara 6ue le !regun"es al usuario* I6ue es lo 6ue esea calcularJ O !or su!ues"o* solo mues"ra el valor el calculo solici"a o+ Por su!ues"o* a las 1unciones "ambi3n es !osible !asarle como argumen"os* ma"rices* lo >nico 6ue "ienes 6ue consi erar es 6ue los argumen"os es!era os como ma"rices* "ienes siem!re 6ue eclararlos como 5arian" si !ara llenar ic/a ma"riz usas la 1unci4n Arra-* en o"ros casos* !ue es usar el mismo "i!o con 6ue eclares "u ma"riz* veamos un e2em!lo e uno o"ro<
>7&+on Ex7l+*+& "u. "u(ando @+( (@a&os293 !s #n&%g%' @+( *o1 !s #n&%g%' ,5l%na(os la (a&'+: *on da&os al%a&o'+os %n&'% 1 ? 100 Jo' *o1 A 5Bound2 (@a&os23 3 Ho CBound2 (@a&os23 3 (@a&os2 *o1 3 A Rnd23 100 B 1 <%x& MsgBox "5a su(a d% la (a&'+: %s A " 9 "&'2 "u(aMa&'+:2 (@a&os23 3 3 End "u. Jun*&+on "u(aMa&'+: 2 @a&os23 !s #n&%g%' 3 !s #n&%g%' @+( *o1 !s #n&%g%' Jo' *o1 A 5Bound2 @a&os23 3 Ho CBound2 @a&os23 3 "u(aMa&'+: A "u(aMa&'+: B @a&os2 *o1 3 <%x& End Jun*&+on

Observa como se eclaro la ma"riz "i!o 9n"eger* "an"o la variable en la macro como el argumen"o en la eclaraci4n e la 1unci4n* a/ora* in"en"emos usar una ma"riz* /acien o uso e la 1unci4n Arra- - veamos 6ue !asa<
>7&+on Ex7l+*+& "u. "u(ando223 @+( (@a&os23 !s #n&%g%' @+( +"u(a !s #n&%g%' ,5l%na(os la (a&'+: *on la fun*+on !''a? (@a&os23 A !''a?2106206306406506606706806903 ,#n&%n&a(os su(a' la (a&'+: +"u(a A "u(aMa&'+:2 (@a&os23 3 MsgBox "&'2 +"u(a 3 End "u. Jun*&+on "u(aMa&'+: 2 @a&os23 !s #n&%g%' 3 !s #n&%g%' @+( *o1 !s #n&%g%'

A!ren ien o OOo Basic

%1

Jo' *o1 A 5Bound2 @a&os23 3 Ho CBound2 @a&os23 3 "u(aMa&'+: A "u(aMa&'+: B @a&os2 *o1 3 <%x& End Jun*&+on

Nos a un error* Iver a J* la raz4n es 6ue la 1unci4n es!era una ma"riz e "i!o 9n"eger - se le es"a !asan o una ma"riz e "i!o 5arian"* es"o es !or 6ue la 1unci4n Arra-* siempre* no im!or"a como /a-as eclara o la ma"riz* siem!re evuelve una ma"riz "i!o 5arian"+ .orrige la eclaraci4n e la 1unci4n - a/ora si* ebe e 1uncionar+
Jun*&+on "u(aMa&'+: 2 @a&os23 !s 1a'+an& 3 !s #n&%g%' @+( *o1 !s #n&%g%' Jo' *o1 A 5Bound2 @a&os23 3 Ho CBound2 @a&os23 3 "u(aMa&'+: A "u(aMa&'+: B @a&os2 *o1 3 <%x& End Jun*&+on

Observa como cambiamos a "i!o 5arian" el "i!o e ma"riz 6ue es!era con lo cual* -a no nos a error+ =n las 1unciones* "ambi3n es !osible /acer uso e la ins"rucci4n =:i"* claro* a6u usaremos E'it Function* "iene las mismas consi eraciones 6ue "e comen"e !ara la ins"rucci4n =:i" Sub* as 6ue no a/on are en ello* "an solo "e mues"ro un sencillo e2em!lo e su uso<
>7&+on Ex7l+*+& "u. $o''%o23 @+( s$o''%o !s "&'+ng s$o''%o A H'+(2#n7u&Box2"@a(% &u *o''%o"33 #f 1al+da'$o''%o2 s$o''%o 3 Hh%n MsgBox "$o''%o 1al+do" Els% MsgBox "$o''%o <> 8al+do" End #f End "u. ,0a'a f+n%s d+d=*&+*os6 solo 8al+da'%(os Fu% %l *o''%o &%nga ,%l o.l+gado sG(.olo d% a''o.a 2j3 ? Fu% no s%a n+ %l 7'+(%' ,n+ %l ul&+(o *a'=*&%' Jun*&+on 1al+da'$o''%o2 $o''%o !s "&'+ng 3 !s Bool%an @+( 7os !s #n&%g%' ,"+ %l a'gu(%n&o $o''%o %s&a 8a*Go6 sal+(os d% la fun*+Kn #f $o''%o A "" Hh%n ,"+ lo d%s%as %s&a l+n%a la 7u%d%s o(+&+'6 7u%s al sal+' *on Ex+& Jun*&+on ,la fun*+Kn d%8u%l8% Jalso6 7%'o &al 8%: %n o&'os *asos Fu% no s%a .ool%ana ,la '%s7u%s&a6 n%*%s+&%s as+gna'l% un 8alo' 7'%d%&%'(+nado d+f%'%n&% 1al+da'$o''%o A Jals% Ex+& Jun*&+on Els% ,Bus*a(os la 7os+*+on d% la a''o.a *on la fun*+Kn #n"&' 7os A #n"&'2 16 $o''%o6 "j" 3 ,<o d%.% s%' n+ %l 7'+(%'o n+ %l ul&+(o *a'=*&%' ,%n %l s+gu+%n&% &%(a a7'%nd%'%(os (=s d% los o7%'ado'%s lKg+*os #f 7os Y 1 !nd 7os X 5%n2$o''%o3 Hh%n 1al+da'$o''%o A H'u% Els% 1al+da'$o''%o A Jals% End #f End #f End Jun*&+on

%#

E+G 'unciones - subru"inas f (ivi e - vencer;s

Para "erminar es"e "ema* veamos el e2em!lo e una 1unci4n 6ue /ace uso e una 1unci4n incor!ora a el lengua2e 6ue es mu- boni"a+ Su!ongamos 6ue "enemos 6ue mos"rar muc/os mensa2es al usuario* !or e2em!lo* el siguien"e<
>7&+on Ex7l+*+& "u. Mos&'a'M%nsa)%s123 @+( sM%nsa)% !s "&'+ng sM%nsa)% A "0o' fa8o' %s*og% una o7*+on4 $!<$E5!R A "al%s d%l 7'og'a(a " 9 / "RE0EH#R A #n&%n&a d% nu%8o #D<>R!R A <o ha*% nada" MsgBox sM%nsa)%6 26 ">7*+on" End "u.

.omo !o r;s no"ar* la es"3"ica no es mu- boni"a 6ue igamos<

Me2oremos un !oco la vis"a e nues"ro cua ro e mensa2e* inser"an o unos sal"os e linea* 6ue* como sabes* se /ace usan o la 1unci4n ./r !asan ole el argumen"o 1?* 6ue es el valor AS.99 !ara el sal"o e linea* e la siguien"e manera<
"u. Mos&'a'M%nsa)%s223 @+( sM%nsa)% !s "&'+ng sM%nsa)% A "0o' fa8o' %s*og% una o7*+on4" 9 $h'2133 9 $h'2133 9 / "$!<$E5!R A "al%s d%l 7'og'a(a" 9 $h'2133 9 / "RE0EH#R A #n&%n&a d% nu%8o" 9 $h'2133 9 / "#D<>R!R A <o ha*% nada" MsgBox sM%nsa)%6 26 ">7*+on" End "u.

A/ora si* nues"ro cua ro e mensa2e "iene muc/a me2or !resen"aci4n

Pero imagina"e 6ue "ienes 6ue mos"rar m>l"i!les mensa2es con i1eren"es ca enas es"ar conca"enan o los sal"os e linea en ca a una* no es una ac"ivi a 6ue igamos mu!lacen"era* !ara ello* /agamos una 1unci4n 6ue lo /aga !or noso"ros
Jun*&+on #ns%'&a'"al&os2 @a&os23 3 !s "&'+ng #ns%'&a'"al&os A [o+n2 @a&os236 $h'2133 3 End Jun*&+on

A!ren ien o OOo Basic

%?

Observa 6ue 1unci4n m;s sencilla - 6ue >"il - lin a es* la 1unci4n >oin e OOo Basic* es una 1unci4n 6ue me gus"a muc/o* es!era como argumen"os* una ma"riz - un car;c"er se!ara or* lo 6ue /ace es 2un"ar ca a elemen"o e la ma"riz se!ara os !or el car;c"er se!ara or* en el e2em!lo siguien"e* 2un"amos en una ca ena unos n>meros se!ara os !or un guion<
"u. [un&a'@a&os23 @+( (@a&os23 !s 1a'+an& @+( s$ad%na !s "&'+ng (@a&os23 A !''a?210062006300640065003 s$ad%na A [o+n2 (@a&os236 "T"3 MsgBox s$ad%na End "u.

)a 1unci4n +nsertarSaltos la usamos e la siguien"e manera<


"u. Mos&'a'M%nsa)%s323 @+( (M%nsa)%s23 !s 1a'+an& @+( sM%nsa)% !s "&'+ng ,R%*u%'da Fu% la fun*+on !''a? "#EM0RE d%8u%l8% una (a&'+: 1a'+an& (M%nsa)%s23 A !''a?2"0o' fa8o' %s*og% una o7*+on4"6""6"$!<$E5!R A "al%s d%l 7'og'a(a"6"RE0EH#R A #n&%n&a d% nu%8o"6"#D<>R!R A <o ha*% nada"3 ,5la(a(os a la fun*+on Fu% +ns%'&a los sal&os d% l+n%a sM%nsa)% A #ns%'&a'"al&os2 (M%nsa)%s23 3 ,Mos&'a(os %l (%nsa)% MsgBox sM%nsa)%6 26 ">7*+on" End "u.

(ivi ir nues"ro c4 igo en subru"inas - 1unciones* es el !an nues"ro e ca a a* no ebes e "ener u a !ues m;s a elan"e las usaremos 1recuen"emen"e* !or a/ora* o"ro "ema a llega o a su 1in+ VV'eliz !rogramaci4nWW

%E

E+, O!era ores

).G

%peradores

OOo Basic so!or"a los siguien"e o!era ores ari"m3"icos* e relaci4n - l4gicos+ n

).G.1

4 H 1 E'ponenciacin ?aritm$tico@

Se usa !ara elevar un n>mero llama o base a o"ro llama o e:!onen"e+ =l n>mero resul"an"e el siguien"e e2em!lo* "al vez "e resul"e 1amiliar<
>7&+on Ex7l+*+& "u. @+( @+( @+( 0o&%n*+as123 +<u(1 !s #n&%g%' +<u(2 !s #n&%g%' +R%sul !s #n&%g%' +<u(1 A 2 +<u(2 A 10 ,Bas% ,Ex7on%n&%

+R%sul A +<u(1 i +<u(2 MsgBox "&'2+R%sul3 End "u.

=n general con "o os los o!era ores* ebes e "ener la !recauci4n e !roveer lo me2or !osible 6ue el resul"a o e la o!eraci4n no e:ce a el L"amaKoM e la variable es"ino* !or e2em!lo* la siguien"e o!eraci4n "e "iene 6ue ar un error e esbor amien"o* es ecir* el resul"a o no cabe en la variable i@esul eclara a como 9n"eger+
"u. @+( @+( @+( 0o&%n*+as223 +<u(1 !s #n&%g%' +<u(2 !s #n&%g%' +R%sul !s #n&%g%' +<u(1 A 3 +<u(2 A 10 ,Bas% ,Ex7on%n&%

+R%sul A +<u(1 i +<u(2 MsgBox "&'2+R%sul3 End "u.

A!ren ien o OOo Basic

%5

)a soluci4n es cambiar la variable i@esul !or una m;s gran e* en es"e caso )ong* !ero seg>n "us necesi a es !o ra ser incluso m;s gran e+
@+( +R%sul !s 5ong

)a base - el e:!onen"e no "ienen !or 6ue ser en"eros* observa el cambio e eclaraci4n e las variables<
"u. @+( @+( @+( 0o&%n*+as323 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s @ou.l% +<u(1 A 2-53 +<u(2 A 5-54 ,Bas% ,Ex7on%n&%

+R%sul A +<u(1 i +<u(2 MsgBox "&'2+R%sul3 End "u.

Tam!oco "ienen !or 6ue ser !osi"ivos* cuan o la base es nega"iva* el signo e la !o"encia lo e"erminar; el e:!onen"e* si es"e es !ar ser; !osi"iva* si es im!ar ser; nega"iva* e acuer o a las le-es e los signos 6ue -a conoces es e la escuela elemen"al* como se com!rueba en los siguien"e e2em!los<
"u. @+( @+( @+( 0o&%n*+as423 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s @ou.l% +<u(1 A T2 ,Bas% +<u(2 A 4 ,Ex7on%n&% +R%sul A +<u(1 i +<u(2 MsgBox "&'2+R%sul3 ,R%sul&ado 7os+&+8o +<u(1 A T2 ,Bas% +<u(2 A 5 ,Ex7on%n&% +R%sul A +<u(1 i +<u(2 MsgBox "&'2+R%sul3 ,R%sul&ado n%ga&+8o End "u.

=n el caso e 6ue el e:!onen"e sea nega"ivo* lo 6ue /ace el lengua2e* como lo ic"an las ma"em;"icas* invier"e la base !ara 6ue el e:!onen"e sea !osi"ivo+

%F
"u. @+( @+( @+( 0o&%n*+as523 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s @ou.l% +<u(1 A 2 ,Bas% +<u(2 A T3 ,Ex7on%n&% +R%sul A +<u(1 i +<u(2 MsgBox "&'2+R%sul3 End "u.

E+, O!era ores

" =

1 1 = =%&1"' # " $

4.9.2

* Multiplicacin (aritmtico)

)a mul"i!licaci4n es la o!eraci4n ari"m3"ica 6ue nos !ermi"e /acer una suma abrevia a* al resul"a o se le llama !ro uc"o - los n>meros mul"i!lica os 1ac"ores<
>7&+on Ex7l+*+& "u. @+( @+( @+( Mul&+7l+*a*+on123 +<u(1 !s #n&%g%' +<u(2 !s #n&%g%' +R%sul !s #n&%g%' ,Ja*&o'%s +<u(1 A 365 +<u(2 A 34 +R%sul A +<u(1 End "u. +<u(2

MsgBox "&'2+R%sul3

@ecuer a 6ue la variable on e asignes el resul"a o* ebe ser lo su1icien"emen"e gran e !ara con"enerlo* 6ue !ue es mul"i!licar valores en"eros - no en"eros* !osi"ivos nega"ivos* en es"e caso* las le-es e los signos a!lican correc"amen"e+
>7&+on Ex7l+*+& "u. @+( @+( @+( Mul&+7l+*a*+on223 +<u(1 !s #n&%g%' +<u(2 !s #n&%g%' +R%sul !s #n&%g%' +<u(1 A 11 +<u(2 A 56 +R%sul A +<u(1 +<u(2 MsgBox "&'2+R%sul3 +<u(1 A T11 +<u(2 A 56 +R%sul A +<u(1 +<u(2 MsgBox "&'2+R%sul3 +<u(1 A 11 +<u(2 A T56 +R%sul A +<u(1 +<u(2 MsgBox "&'2+R%sul3 +<u(1 A T11

A!ren ien o OOo Basic


+<u(2 A T56 +R%sul A +<u(1 +<u(2 MsgBox "&'2+R%sul3 End "u.

%%

@ecuer a 6ue en las mul"i!licaciones el or en e los 1ac"ores no al"era el !ro uc"o (!ro!ie a conmu"a"iva)<
"u. @+( @+( @+( Mul&+7l+*a*+on323 +<u(1 !s #n&%g%' +<u(2 !s #n&%g%' +R%sul !s 5ong +<u(1 A 12345 +<u(2 A 18 +R%sul A +<u(1 +<u(2 MsgBox "&'2+R%sul3 +<u(1 A 18 +<u(2 A 12345 +R%sul A +<u(1 +<u(2 MsgBox "&'2+R%sul3 End "u.

4.9.3

!i"i#in (aritmtico)

O!eraci4n ari"m3"ica !ara saber cuan"as veces cabe un n>mero en o"ro* es* !o ra ecirse* una res"a abrevia a+ =l n>mero a ivi ir se llama L ivi en oM* al o"ro L ivisorM* al resul"a o en"ero se le llama Lcocien"eM - si no es e:ac"a la ivisi4n a lo 6ue res"a se le llama Lresi uoM+ =s la o!eraci4n inversa a la mul"i!licaci4n+ Pue es ivi ir numero en"eros - no en"eros* nega"ivos - !osi"ivos* las le-es e los signos a!lican e la misma 1orma 6ue en la mul"i!licaci4n+
>7&+on Ex7l+*+& "u. @+( @+( @+( @+8+s+on123 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s @ou.l% +<u(1 A 123456790 +<u(2 A 123 +R%sul A +<u(1 / +<u(2 MsgBox "&'2+R%sul3 End "u. "u. @+( @+( @+( @+8+s+on223 +<u(1 !s #n&%g%' +<u(2 !s #n&%g%' +R%sul !s #n&%g%' +<u(1 A 589 ,@+8+d%ndo +<u(2 A T25 ,@+8+so' +R%sul A +<u(1 / +<u(2 MsgBox "&'2+R%sul3 ,@+8+d%ndo ,@+8+so'

%G

E+, O!era ores

End "u.

=n el caso e la ivisi4n* el or en e los o!eran os si im!or"a* es mu- i1eren"e 6ue un n>mero sea ivi en o 6ue ivisor como !o emos verlo en el siguien"e e2em!lo<
"u. @+( @+( @+( @+8+s+on323 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s @ou.l% +<u(1 A 98765 +<u(2 A 321 +R%sul A +<u(1 / +<u(2 MsgBox "&'2+R%sul3 +<u(1 A 321 +<u(2 A 98765 +R%sul A +<u(1 / +<u(2 MsgBox "&'2+R%sul3 End "u.

4.9.4

$ !i"i#in entera (aritmtico)

Con este operador o%tenemos solo la parte entera de una di$isinT


>7&+on Ex7l+*+& "u. @+( @+( @+( @+8+s+on/En&%'a123 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 100 +<u(2 A 15 +R%sul A +<u(1 / +<u(2 MsgBox "&'2+R%sul3 ,@%8u%l8% solo la 7a'&% %n&%'a +R%sul A +<u(1 a +<u(2 MsgBox "&'2+R%sul3 End "u.

En algunos casos3 cuando el $alor decimales es mu# cercano al siguiente entero3 este operador te de$uel$e el siguiente entero3 como enT
"u. @+( @+( @+( @+8+s+on/En&%'a223 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 100 +<u(2 A 25-1 +R%sul A +<u(1 / +<u(2 MsgBox "&'2+R%sul3

A!ren ien o OOo Basic

%,

+R%sul A +<u(1 a +<u(2 MsgBox "&'2+R%sul3 End "u.

(i Guieres asegurarte Gue 9siempre; te regrese 9solo; la parte entera3 mejor usa la &uncin %nt=$alor? Gue te de$uel$e solo la parte entera del $alor pasado3 como te muestro aGuIT
"u. @+( @+( @+( @+8+s+on/En&%'a323 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 100 +<u(2 A 25-1 +R%sul A +<u(1 / +<u(2 MsgBox "&'2+R%sul3 +R%sul A +<u(1 a +<u(2 MsgBox "&'2+R%sul3 +R%sul A Int2 +<u(1 / +<u(2 3 MsgBox "&'2+R%sul3 End "u.

4.9.&

Mod 'e#to de una di"i#in entera (aritmtico)

=s"e o!era or nos evuelve el resi uo en"ero e una ivisi4n en"era<


>7&+on Ex7l+*+& "u. @+( @+( @+( R%s&o/@+8+s+on123 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 100 +<u(2 A 15 +R%sul A +<u(1 Mod +<u(2 MsgBox "&'2+R%sul3 End "u.

15

F 1$$ 1I

=l siguien"e e2em!lo /ace uso e los o!era ores LMo M - MmM ( ivisi4n en"era) !ara conver"ir un n>mero ecimal en binario<
"u. @+( @+( @+( @%*+(al/B+na'+o23 +@%* !s #n&%g%' sB+n !s "&'+ng +Bas% !s #n&%g%' ,<;(%'o %n&%'o a *on8%'&+' +@%* A 100 ,El s+s&%(a .+na'+o %s .as% 2 +Bas% A 2

G$
,Has&a Fu% %l n;(%'o s%a (%no' Fu% la .as% @o Cn&+l +@%* X +Bas% ,>.&%n%(os %l '%s+duo ? lo 8a(os *on*a&%nando sB+n A 2+@%* Mo +Bas%3 9 sB+n ,>.&%n%(os la d+8+s+Kn %n&%'a ? '%as+gna(os %l nu(%'o ,s+ no ha*%s %s&o6 &% Fu%da'as %n un *+*lo +nf+n+&o +@%* A +@%* ! +Bas% 5oo7 ,0o' ul&+(o *on*a&%na(os %l ul&+(o *o*+%n&% sB+n A +@%* 9 sB+n ,Mos&'a(os %l 8alo' %n .+na'+o MsgBox sB+n End "u.

E+, O!era ores

).G.=

4 J 1 Suma ?aritm$tico@

)a a ici4n* es la o!eraci4n ari"m3"ica 6ue nos !ermi"e combinar os can"i a es !ara ob"ener una sola+ A ic/as can"i a es se les llama suman os - al resul"a o suma<
>7&+on Ex7l+*+& "u. @+( @+( @+( "u(as123 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 159-25 +<u(2 A 489-55 +R%sul A +<u(1 B +<u(2 MsgBox "&'2 +R%sul 3 End "u.

Por su !ro!ie a conmu"a"iva* el or en e los suman os no al"era la suma<


"u. @+( @+( @+( "u(as223 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 1974 +<u(2 A 34 +R%sul A +<u(1 B +<u(2 MsgBox "&'2 +R%sul 3 +<u(1 A 34 +<u(2 A 1974 +R%sul A +<u(1 B +<u(2 MsgBox "&'2 +R%sul 3 End "u.

A!ren ien o OOo Basic

G1

Por le-es e los signos* la suma "en r; el signo el ma-or suman o<
"u. @+( @+( @+( "u(as323 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 4268 +<u(2 A T258 +R%sul A +<u(1 B +<u(2 MsgBox "&'2 +R%sul 3 +<u(1 A T5689 +<u(2 A 197 +R%sul A +<u(1 B +<u(2 MsgBox "&'2 +R%sul 3 End "u.

).G.A

4 K 1 8esta ?aritm$tico@

)a sus"racci4n o res"a es la o!eraci4n ari"m3"ica 6ue nos !ermi"e conocer la i1erencia en"re os n>meros* al !rimero se le llama minuen o - al segun o sus"raen o+ =s la o!eraci4n inversa e la suma+
>7&+on Ex7l+*+& "u. @+( @+( @+( R%s&as123 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 5000 +<u(2 A 2125 +R%sul A +<u(1 T +<u(2 MsgBox "&'2 +R%sul 3 End "u. ,M+nu%ndo ,"us&'a%ndo

)a res"a no "iene !ro!ie a conmu"a"iva* es ecir* si in"ercambias el minuen o - el sus"raen o* no "e ar; el mismo resul"a o* !ero 1i2a"e 6ue curioso resul"a o<
"u. @+( @+( @+( R%s&as223 +<u(1 !s "+ngl% +<u(2 !s "+ngl% +R%sul !s "+ngl% +<u(1 A 562 +<u(2 A 956 +R%sul A +<u(1 T +<u(2 MsgBox "&'2 +R%sul 3 +<u(1 A 956

G#
+<u(2 A 562 +R%sul A +<u(1 T +<u(2 MsgBox "&'2 +R%sul 3 End "u.

E+, O!era ores

4.9.(

Operadore# de relacin

=s"os o!era ores nos !ermi"en com!arar el valor e os e:!resiones o "3rminos* siem!re evuelven un valor ver a ero (True) o 1also ('alse)* es ecir* un valor booleano+
>7&+on Ex7l+*+& "u. @+( @+( @+( >7%'ado'%s/R%la*+on23 .R%sul !s Bool%an +<u(1 !s #n&%g%' +<u(2 !s #n&%g%' +<u(1 A 99 +<u(2 A 19 .R%sul A +<u(1 = +<u(2 MsgBox ""on +gual%sN " 9 .R%sul .R%sul A +<u(1 "# +<u(2 MsgBox ""on d+s&+n&osN " 9 .R%sul .R%sul A +<u(1 " +<u(2 MsgBox "M%no' Fu%N " 9 .R%sul .R%sul A +<u(1 # +<u(2 MsgBox "Ma?o' Fu%N " 9 .R%sul .R%sul A +<u(1 "= +<u(2 MsgBox "M%no' o +gualN " 9 .R%sul .R%sul A +<u(1 #= +<u(2 MsgBox "Ma?o' o +gualN " 9 .R%sul End "u.

Ten cui a o e no con1un ir los signos e igual (l)* el !rimero e iz6uier a a erec/a es el signo igual usa o como asignaci4n* el resul"a o e la e:!resi4n a la erec/a el signo se asigna a la variable a la iz6uier a el signo* el segun o signo igual (en negri"as - ro2o) es usa o como o!era or e relaci4n en"re os "3rminos* es"e e2em!lo es m;s claro !ues es"a en"re !ar3n"esis<
.R%sul A 2 +<u(1

+<u(2 3

4.9.9

)ot * )e+acin (l+ico)

.ambia el valor e la e:!resi4n e 1also a ver a ero - viceversa+ Se a!lica a solo un o!era or+

A!ren ien o OOo Basic


>7&+on Ex7l+*+& "u. <%ga*+on23 @+( .1alo' !s Bool%an ,1alo' o'+g+nal 1%'dad%'o .1alo' A H'u% Msg.ox .1alo' ,5% a7l+*a(os %l o7%'ado' .1alo' A <o& .1alo' Msg.ox .1alo' ,1alo' o'+g+nal Jalso .1alo' A Jals% Msg.ox .1alo' ,5% a7l+*a(os %l o7%'ado' .1alo' A <o& .1alo' Msg.ox .1alo' End "u.

G?

Su "abla e ver a es mu- sencilla* sien o es"a una /erramien"a !ara conocer los !osibles valores e una e:!resi4n cuan o se le a!lican o!era ores l4gicos+
, )ot ,

5 '

' 5

4.9.-.

,nd * / (l+ico)

Se a!lica a os o!era ores* evuelve ver a ero (True) solo en el caso e 6ue los os o!era ores sean ver a eros (True)* cual6uier o"ro valor* evuelve 1also ('alse)+ A/ora* !rimero "e mues"ro su "abla e ver a - es!u3s los e2em!los<
, 0 , ,nd 0

5 5 ' '

5 ' 5 '

5 ' ' '

>7&+on Ex7l+*+& "u. @+( @+( @+( $on)un*+on23 .1alo'1 !s Bool%an .1alo'2 !s Bool%an .R%sul !s Bool%an ,"olo %n *aso d% Fu% los dos s%an 8%'dad%'os ,%l '%sul&ado s%'a 8%'dad%'o

GE
.1alo'1 A H'u% .1alo'2 A H'u% .R%sul A .1alo'1 !nd .1alo'2 Msg.ox .R%sul .1alo'1 A H'u% .1alo'2 A Jals% .R%sul A .1alo'1 !nd .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A H'u% .R%sul A .1alo'1 !nd .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A Jals% .R%sul A .1alo'1 !nd .1alo'2 Msg.ox .R%sul End "u.

E+, O!era ores

4.9.--

Or * O (l+ico)

Se a!lica a os o!era ores+ Si los os o!era ores son 1alsos ('alse)* evuelve 1also ('alse)* cual6uier o"ro valor evuelve ver a ero (True)+ Su "abla e ver a es<
, 0 , Or 0

5 5 ' '
>7&+on Ex7l+*+& "u. @+( @+( @+(

5 ' 5 '

5 5 5 '

@+s?un*+on23 .1alo'1 !s Bool%an .1alo'2 !s Bool%an .R%sul !s Bool%an .1alo'1 A H'u% .1alo'2 A H'u% .R%sul A .1alo'1 >' .1alo'2 Msg.ox .R%sul .1alo'1 A H'u% .1alo'2 A Jals% .R%sul A .1alo'1 >' .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A H'u% .R%sul A .1alo'1 >' .1alo'2 Msg.ox .R%sul

A!ren ien o OOo Basic


.1alo'1 A Jals% .1alo'2 A Jals% .R%sul A .1alo'1 >' .1alo'2 Msg.ox .R%sul End "u.

G5

4.9.-2

1or * O exclu#i"a (l+ico)

(e aplica a dos operadores. (i los dos operadores son iguales de$uel$e &also =7alse?3 si son di&erentes de$uel$e $erdadero =)rue?. (u ta%la de $erdad esT
, 0 , 1or 0

5 5 ' '
>7&+on Ex7l+*+& "u. @+( @+( @+(

5 ' 5 '

' 5 5 '

>7%'ado'/Eo'23 .1alo'1 !s Bool%an .1alo'2 !s Bool%an .R%sul !s Bool%an .1alo'1 A H'u% .1alo'2 A H'u% .R%sul A .1alo'1 Eo' .1alo'2 Msg.ox .R%sul .1alo'1 A H'u% .1alo'2 A Jals% .R%sul A .1alo'1 Eo' .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A H'u% .R%sul A .1alo'1 Eo' .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A Jals% .R%sul A .1alo'1 Eo' .1alo'2 Msg.ox .R%sul

End "u.

GF 4.9.-3

E+, O!era ores

E2" * E2ui"alencia (opue#to a 1or) (l+ico)

(e aplica a dos operadores. (i los dos operadores son iguales de$uel$e $erdadero =)rue?3 si son di&erentes de$uel$e 7also =7alse?. (u ta%la de $erdad esT
, 0 , E2" 0

5 5 ' '
>7&+on Ex7l+*+& "u. @+( @+( @+(

5 ' 5 '

5 ' ' 5

>7%'ado'/EF823 .1alo'1 !s Bool%an .1alo'2 !s Bool%an .R%sul !s Bool%an .1alo'1 A H'u% .1alo'2 A H'u% .R%sul A .1alo'1 EF8 .1alo'2 Msg.ox .R%sul .1alo'1 A H'u% .1alo'2 A Jals% .R%sul A .1alo'1 EF8 .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A H'u% .R%sul A .1alo'1 EF8 .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A Jals% .R%sul A .1alo'1 EF8 .1alo'2 Msg.ox .R%sul

End "u.

4.9.-4

%mp * %mplicacin (l+ico)

Se a!lica a os o!era ores+ Si el !rimer o!era or es ver a ero (True) - el segun o es 'also ('alse) evuelve 1also ('alse)* cual6uier o"ro valor* evuelve ver a ero (True)+ Su "abla e ver a es<
, 0 , %mp 0

5 5 ' '

5 ' 5 '

5 ' 5 5

A!ren ien o OOo Basic


>7&+on Ex7l+*+& "u. @+( @+( @+( >7%'ado'/#(723 .1alo'1 !s Bool%an .1alo'2 !s Bool%an .R%sul !s Bool%an .1alo'1 A H'u% .1alo'2 A H'u% .R%sul A .1alo'1 #(7 .1alo'2 Msg.ox .R%sul .1alo'1 A H'u% .1alo'2 A Jals% .R%sul A .1alo'1 #(7 .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A H'u% .R%sul A .1alo'1 #(7 .1alo'2 Msg.ox .R%sul .1alo'1 A Jals% .1alo'2 A Jals% .R%sul A .1alo'1 #(7 .1alo'2 Msg.ox .R%sul End "u.

G%

4.9.-&

3recedencia de operadore#

=n resumen* los o!era ores 6ue !ue es usar en OOo Basic* son los siguien"es* es";n or ena os e ma-or a menor !rece encia* es ecir* la !riori a 6ue les asigna el lengua2e cuan o en una sen"encia es";n im!lica os os o mas o!era ores+ )os o!era ores 6ue es";n en la misma linea* "iene el mismo nivel e !rece encia %perador n o*0 m Mo R*l * CD * C * D Cl * Dl No" An Or por =6v 9m! =:!onenciaci4n Mul"i!licaci4n - ivisi4n (ivisi4n en"era @es"o e una ivisi4n en"era Suma - res"a 9gual* is"in"o* menor 6ue* ma-or 6ue* menor o igual 6ue* ma-or o igual 6ue Negaci4n O O O e:clusiva =6uivalencia (o!ues"o a por) 9m!licaci4n %peracin 5ipo Ari"m3"ico Ari"m3"ico Ari"m3"ico Ari"m3"ico Ari"m3"ico @elacionales )4gico )4gico )4gico )4gico )4gico )4gico

GG

E+, O!era ores

)a !riori a e e2ecuci4n es mu- im!or"an"e* !ues si no la u"ilizas correc"amen"e* "e !ue e ar resul"a os i1eren"es a los es!era os* "oma en cuen"a las siguien"e reglas< )a !rece encia va e ma-or a menor* es ecir* se e2ecu"an !rimero los o!era ores e ma-or 2erar6ua Si los o!era ores "ienen la misma !rece encia* se e2ecu"an e iz6uier a a erec/a )a !rece encia se !ue e Lrom!erM (cambiar) usan o !ar3n"esis* "ienen !riori a los m;s in"ernos - /acia a1uera
>7&+on Ex7l+*+& "u. 0'%*%d%n*+a/>7%'ado'%s123 @+( nu( !s @ou.l% ,>.s%'8a *o(o la 7'+o'+dad 8a d% +:Fu+%'da a d%'%*ha ,4 16 1 3 nu( A 2 i 2 4 Mod 3 B 2 MsgBox nu( ,O aho'a 8a d% d%'%*ha a +:Fu+%'da ,16 32 34 nu( A 2 B 2 4 i 2 MsgBox nu( End "u.

)o m;s sencillo* es 6ue "u e"ermines el or en e las o!eraciones* -a sea en sucesivas lneas como en el !rimer e2em!lo o usan o !ar3n"esis como en el segun o e2em!lo<
"u. 0'%*%d%n*+a/>7%'ado'%s223 @+( nu( !s @ou.l% nu( A 45 56 nu( A nu( / 10 nu( A nu( i 3 nu( A nu( B 125 MsgBox nu( nu( A 22245 MsgBox nu( 563 / 103 i 33 B 125

,>.s%'8a *o(o6 s+n los 7a'Sn&%s+s da un '%sul&ado ,&o&al(%n&% d+f%'%n&% nu( A 45 56 / 10 i 3 B 125 MsgBox nu( End "u.

)os !ar3n"esis nos a-u an a e"erminar el or en en 6ue 6ueramos /acer una o!eraci4n cuan o la !rece encia e o!eraciones no es mu- clara+ Mi recomen aci4n como casi siem!re lo no"aras* es 6ue man"engas el con"rol e "u c4 igo+

A!ren ien o OOo Basic

G,

).1I

Control de errores

=n "eora* un !rograma no ebera "ener errores o no necesi"ara e un con"rol e errores* en la !rac"ica* sabemos 6ue es"o no es as+ =n general !o ramos /ablar e "res "i!os e errores e!en ien o e cuan o se !ro ucen o en 6ue con"e:"o+ 1) Errores en tiempo de dise<oL son a6uellos 6ue se come"en cuan o se es"a co i1ican o* !rograman o* escribien o nues"ro c4 igo* generalmen"e son e"ec"a os !or el 9(= en cuan"o "ra"amos e e2ecu"ar el c4 igo - normalmen"e nos mues"ra un mensa2e in ic;n onos el "i!o e error come"i o* mu- com>nmen"e son errores e sin"a:is* recor an o 6ue sin"a:is es< - Conjunto de reglas ,ue definen las secuencias correctas de los elementos de un lenguaje de programacin - !or e2em!lo* el siguien"e c4 igo* "e eber; mos"rar el siguien"e mensa2e e error 6ue es mu- claro<
>7&+on Ex7l+*+& "u. E''o'%s123

=n el a!3n ice A !un"o %+#* "e mues"ro una lis"a e los errores en "iem!o e iseKo m;s 1recuen"es #) Errores l*icos< es"os errores* son los m;s i1ciles e e"ec"ar - corregir !ues 1recuen"emen"e no "e an un mensa2e o no se e"iene el c4 igo* sino sim!lemen"e el c4 igo Lno /aceM las "areas !ara las 6ue se su!one es"a esarrolla o o Lno evuelveM los valores es!era os* en"re m;s gran e - com!le2o sea "u c4 igo* la !robabili a e 6ue "enga errores l4gicos aumen"a consi erablemen"e+ ca- una 1rase 6ue se le a"ribu-e (no /e !o i o com!robarlo) a )inus Torval s 6ue ice -an"e los o2os e muc/os* los errores son evi en"es-* !or su!ues"o* es"o solo !ue e suce er con el so1"7are libre* como el 6ue "u - -o usamos* Iver a J* !ues solo en el "enemos a nues"ra is!osici4n el c4 igo 1uen"e 6ue es la >nica 1orma e veri1icar 6ue un so1"7are /aga lo 6ue ice 6ue /ace+ qnicamen"e la e:!eriencia - la !rac"ica "e a-u aran a minimizar es"e "i!o e errores+ ?) Errores en tiempo de ejecucin< es"os errores se !ro ucen uran"e el "iem!o 6ue se es"a e2ecu"an o "u !rograma o c4 igo+ OOo Basic cuen"a con ins"rucciones - !alabras claves !ara con"rolar es"e "i!o e errores - son los 6ue a!ren eremos en es"e ca!i"ulo+ .o!ia - e2ecu"a la siguien"e macro<
>7&+on Ex7l+*+& "u. Man%)o/E''o'%s123 @+( sRu&a!'*h+8o !s "&'+ng

,$
sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 I+ll sRu&a!'*h+8o MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" End "u.

E+1$ .on"rol e errores

Si escribes la ru"a e un arc/ivo 6ue no e:is"e* "e L ebeM ar el mensa2e e error no"a 6ue el ul"imo mensa2e con MsgBo: -a LnoM se mues"ra<

.laro* es"ar;s !ensan o 6ue es m;s 1;cil - m;s e1icien"e el vali ar an"es 6ue e:is"a el arc/ivo - es"ar;s en lo correc"o<
"u. Man%)o/E''o'%s223 @+( sRu&a!'*h+8o !s "&'+ng sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 #f sRu&a!'*h+8oXY"" !nd @+'2sRu&a!'*h+8o3XY"" Hh%n I+ll sRu&a!'*h+8o MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" Els% MsgBox "Ru&a +n8al+da o a'*h+8o no %x+s&%"6 06 "Bo''a' a'*h+8o" End #f End "u.

=n la vali aci4n an"erior es"amos usan o una 1unci4n e OOo Basic 6ue "al vez no conozcas* me re1iero a la 1unci4n Dir(valor)* on e valor !ue e ser una ru"a e arc/ivo* si LnoM encuen"ra el arc/ivo* evuelve una ca ena vaca+ .onsi era 6ue cuan o acce es a recursos e:"ernos* no "ienes la seguri a 6ue esos recursos es"ar;n Lsiem!reM is!onibles* en el caso e los arc/ivos* o"ros !rocesos !ue en acce er - mani!ularlos* !or ello* en es"e - o"ros casos* consi era la u"ilizaci4n e un con"rolar e errores como en el e2em!lo siguien"e<
>7&+on Ex7l+*+& "u. Man%)o/E''o'%s323 @+( sRu&a!'*h+8o !s "&'+ng >n E''o' Do&o $><HR>5!ERR>RE" sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 I+ll sRu&a!'*h+8o MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" Ex+& "u. $><HR>5!ERR>RE"4

A!ren ien o OOo Basic

,1

"%l%*& $as% E'' $as% 0 $as% 53 MsgBox "<o s% %n*on&'K la 'u&a %s7%*+f+*ada" 9 $h'2133 9 $h'2133 9 sRu&a!'*h+8o6 48 $as% Els% MsgBox ">*u''+K %l %''o' nu(%'o4 " 9 E'' 9 $h'2133 9 E''o' 9 / $h'2133 9 "En la l+n%a " 9 E'l End "%l%*& >n E''o' Do&o 0 End "u.

5eamos "o as las !ar"es el c4 igo an"erior+ (es!u3s e eclarar la macro - las variables a usar* "enemos una nueva ins"rucci4n<
>n E''o' Do&o $><HR>5!ERR>RE"

)a sin"a:is general e es"a ins"rucci4n es< On =rror &o"o 2ombre"ti,ueta =n on e !ombre$ti%ueta es cual6uier !alabra 6ue cum!la las carac"ers"icas vis"as !ara nombrar a las variables - li"eralmen"e signi1ica -=n caso e error sal"a (o va) a 2ombre"ti,ueta+ (es!u3s e iniciar el con"rola or e errores* "enemos !ro!iamen"e el c4 igo e nues"ra macro+ =nsegui a* observa 6ue usamos la ins"rucci4n =:i" Sub* es"o es !ara 6ue si* nues"ro c4 igo se e2ecu"a sin !roblemas* salga e la macro LsinM e2ecu"ar el con"rola or e errores+ A/ora si* observa como eclaramos la e"i6ue"a usa a en la eclaraci4n el con"rola or e errores* no"a 6ue es"a e"i6ue"a* e:ce!"o !or 6ue es in is"in"o las ma->sculas - min>sculas* es e:ac"amen"e igual a la usa a en la eclaraci4n el con"rola or e errores* "ambi3n no"a* muim!or"an"e* 6ue es"a "ermina en os !un"os (<) * es"os* son in is!ensables !ara 6ue no "e mues"re el siguien"e mensa2e e error en "iem!o e iseKo<

9nme ia"amen"e es!u3s e la eclaraci4n e la e"i6ue"a* observa 6ue iniciamos un Selec" .ase con la variable Err* es"a* es una variable "i!o )ong e OOo Basic 6ue con"iene el n>mero e error 6ue se /a-a !rovoca o* es"a variable "en r; valor $ si no ocurri4 ning>n error+ =n nues"ro e2em!lo* sabemos 6ue si no se encuen"ra un arc/ivo* ocurre el error 5?* el cual mani!ulamos con la linea<
$as% 53 MsgBox "<o s% %n*on&'K la 'u&a %s7%*+f+*ada" 9 $h'2133 9 $h'2133 9 sRu&a!'*h+8o6 48

=n caso e 6ue ocurra un error no es!eci1ica o o esconoci o* mos"ramos el n>mero e error (variable Err)* la escri!ci4n el error (variable Error) - la lnea on e es"e ocurri4 (variable Erl)* cu-a valiosa in1ormaci4n nos a-u ara a corregirlo+
$as% Els% MsgBox ">*u''+K %l %''o' nu(%'o4 " 9 $rr 9 $h'2133 9 $rror 9 / $h'2133 9 "En la l+n%a " 9 $rl

,#

E+1$ .on"rol e errores

(es!u3s e cerrar la es"ruc"ura Selec" .ase con =n Selec"* "enemos la linea<


>n E''o' Do&o 0

eue no /ace o"ra cosa 6ue reinicializar las variables e error* es ecir Err* Error Erl+ )a es"ruc"ura e con"rol o a minis"raci4n e errores 6ue acabamos e ver* a1or"una amen"e* no es la >nica !ero es la 6ue generalmen"e se usa* /a- algunas varian"es 6ue a cri"erio !ue es usar* veamos algunas+ =n caso e 6ue 6uieras es"ablecer un con"rol e errores gen3rico* !o ras usar<
"u. Man%)o/E''o'%s423 >n E''o' Do&o $><HR>5!ERR>RE" ,!Fu+ 8a &odo &u *od+go Ex+& "u. $><HR>5!ERR>RE"4 #f E'' XY 0 Hh%n MsgBox ">*u''+o %l %''o' nu(%'o4 " 9 E'' 9 $h'2133 9 E''o' 9 $h'2133 9 "En la l+n%a " 9 E'l End #f >n E''o' Do&o 0 End "u.

Pue es simular el error 6ue 6uieras sim!lemen"e asignan o el n>mero e error a la variable =rror e la siguien"e manera<
,!Fu+ 8a &odo &u *od+go E''o'2123

=s"a es la lis"a e valores e errores 6ue !ue es usar en la variable =rror o 6ue en alg>n momen"o "e !ue en a!arecer* "oma en cuen"a 6ue algunos e es"os errores LsoloM ocurren en "iem!o e iseKo - varios e ellos LnoM !ue es in"erce!"arlos* "an solo corregirlos en "u c4 igo+ Cdi,os de error !. # ? E 5 F % G , 1$ 11 1# 1? 1E *escripcin =rror e sin"a:is no es!eci1ica o @e"urn sin &osub @es"aurar es e el !rinci!io )lama a a !roce imien"o no v;li a (esbor amien"o Memoria ago"a a Ma"riz -a imensiona a Sunbn ice 1uera e rango (e1inici4n u!lica a (ivisi4n !or cero 5ariable no e1ini a (iscor ancia e "i!o Par;me"ro no v;li o !. %$ %1 %? %E %5 %F ,1 ,? ,E *escripcin Permiso enega o (isco no !re!ara o Pres"aci4n no im!lemen"a a 9m!osible cambiar nombre con uni a is"in"a =rror e acceso a ru"a0arc/ivo @u"a no encon"ra a 5ariable e ob2e"o no e1ini a .a ena e secuencia no v;li a Uso e Null no v;li o

?#? 9m!osible cargar m4 ulo ?E1 An ice e ob2e"o no v;li o ?FF No /a- ocumen"o o vis"a ac"ivos ?G$ 5alor e !ro!ie a incorrec"o

A!ren ien o OOo Basic

,?

Cdi,os de error !. 1G #$ #G ?5 EG E, 51 5# 5? 5E 55 5% 5G 5, F1 F# F? F% FG *escripcin 9n"erru!ci4n e usuario .on"inuar sin error =s!acio e !ila ago"a o Sub o 'unc"ion no e1ini os =rror al cargar ()) .onvenci4n e llama a a ()) incorrec"a =rror in"erno Nombre e arc/ivo o n>mero incorrec"os Arc/ivo no encon"ra o Mo o e arc/ivo incorrec"o Arc/ivo -a abier"o =rror e =0S e is!osi"ivo Arc/ivo -a e:is"en"e )ongi"u e regis"ro incorrec"a (isco lleno =n"ra a m;s all; el 1inal el arc/ivo N>mero e regis"ro incorrec"o (emasia os arc/ivos (is!osi"ivo no is!onible !. ?G# Pro!ie a ?,E Pro!ie a *escripcin e s4lo lec"ura e s4lo escri"ura

E#$ @e1erencia e ob2e"o no v;li a E#? Pro!ie a o m3"o o no encon"ra os E#E Ob2e"o necesario E#5 Uso e ob2e"o no v;li o E?$ )a clase no a mi"e O)= E?G =l ob2e"o no a mi"e es"e m3"o o EE$ =rror e au"oma"izaci4n O)= EE5 =l ob2e"o no a mi"e es"a acci4n EEF =l ob2e"o no a mi"e argumen"os con nombre EE% =l ob2e"o no a mi"e la con1iguraci4n e en"orno local ac"ual EEG Argumen"o menciona o no encon"ra o EE, Argumen"o no o!cional E5$ N>mero e argumen"os incorrec"o E51 Ob2e"o no es una colecci4n E5# Or inal no v;li o E5? 'unci4n ()) es!eci1ica a no encon"ra a EF$ 'orma"o e !or"a!a!eles no v;li o

OOo Basic cuen"a con una ins"rucci4n 6ue com!lemen"a el uso e un con"rola or e errores* es"a ins"rucci4n es 8esume* b;sicamen"e "iene "res !osibles usos* e la !rimer 1orma* nos !ermi"e regresar* es ecir* volver a in"en"ar e2ecu"ar la lnea 6ue !rovoco el error* !or su!ues"o* es"o es recomen able -a 6ue se /a-an corregi o o a"en i o las causas el error* !or e2em!lo<
>7&+on Ex7l+*+& "u. Man%)o/E''o'%s523 @+( sRu&a!'*h+8o !s "&'+ng @+( +R%s !s #n&%g%' >n E''o' Do&o $><HR>5!ERR>RE" sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 I+ll sRu&a!'*h+8o MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" Ex+& "u. $><HR>5!ERR>RE"4 "%l%*& $as% E''

,E
$as% 0 $as% 53

E+1$ .on"rol e errores

+R%s A MsgBox 2"<o s% %n*on&'o la 'u&a %s7%*+f+*ada" 9 $h'2133 9 $h'2133 9 sRu&a!'*h+8o 9 $h'2133 9 $h'2133 9 "M@%s%as +n&%n&a'lo d% nu%8oN"6 32 B 4 3 #f +R%s A 6 Hh%n %esume End #f $as% Els% MsgBox ">*u''+o %l %''o' nu(%'o4 " 9 E'' 9 $h'2133 9 E''o' 9 / $h'2133 9 "En la l+n%a " 9 E'l End "%l%*& >n E''o' Do&o 0 End "u.

Observa como en"ro el blo6ue on e con"rolamos el error* !regun"amos al usuario si esea volver a in"en"arlo<
$as% 53 +R%s A MsgBox 2"<o s% %n*on&'o la 'u&a %s7%*+f+*ada" 9 $h'2133 9 $h'2133 9 sRu&a!'*h+8o 9 $h'2133 9 $h'2133 9 "ZM@%s%as +n&%n&a'lo d% nu%8oN"6 32 B 4 3 #f +R%s A 6 Hh%n %esume End #f

Si no /aces lo an"erior* !ue es 6ue ar en un bucle in1ini"o en"re la linea 6ue !rovoco el error - el con"rola or e errores+ )a segun a 1orma* usan o 8esume /e't* "e !ermi"e con"inuar la e2ecuci4n e "u c4 igo en la lnea siguien"e a la 6ue !rovoco el error* !or e2em!lo<
"u. Man%)o/E''o'%s623 @+( sRu&a!'*h+8o !s "&'+ng @+( +R%s !s #n&%g%' >n E''o' Do&o $><HR>5!ERR>RE" sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 I+ll sRu&a!'*h+8o MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" Ex+& "u. $><HR>5!ERR>RE"4 "%l%*& $as% E'' $as% 0 $as% 53 +R%s A MsgBox 2"<o s% %n*on&'o la 'u&a %s7%*+f+*ada" 9 $h'2133 9 $h'2133 9 sRu&a!'*h+8o 9 $h'2133 9 $h'2133 9 "M@%s%as *on&+nua'N"6 32 B 4 3 #f +R%s A 6 Hh%n %esume Next End #f $as% Els% MsgBox ">*u''+o %l %''o' nu(%'o4 " 9 E'' 9 $h'2133 9 E''o' 9 / $h'2133 9 "En la l+n%a " 9 E'l End "%l%*& >n E''o' Do&o 0 End "u.

A6u lo im!or"an"e es 6ue no"es como nos mues"ra el mensa2e e con1irmaci4n e borra o* aun - cuan o es"e no se /izo e1ec"ivamen"e* "u "area es corregir eso+ )a ul"ima 1orma es usar la ins"rucci4n 8esumen !ombre$ti%ueta* en on e !ombre$ti%ueta "iene las mismas consi eraciones vis"as al inicio e es"e "ema* e2em!lo<
"u. Man%)o/E''o'%s723

A!ren ien o OOo Basic


@+( sRu&a!'*h+8o !s "&'+ng @+( +R%s !s #n&%g%' >n E''o' Do&o $><HR>5!ERR>RE"

,5

RE#<HE<H!R5>4 sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 I+ll sRu&a!'*h+8o MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" Ex+& "u. $><HR>5!ERR>RE"4 "%l%*& $as% E'' $as% 0 $as% 53 +R%s A MsgBox 2"<o s% %n*on&'o la 'u&a %s7%*+f+*ada" 9 $h'2133 9 $h'2133 9 sRu&a!'*h+8o 9 $h'2133 9 $h'2133 9 "M@%s%as +n&%n&a'lo d% nu%8oN"6 32 B 4 3 #f +R%s A 6 Hh%n %esume %$INT$NTA%&' End #f $as% Els% MsgBox ">*u''+o %l %''o' nu(%'o4 " 9 E'' 9 $h'2133 9 E''o' 9 / $h'2133 9 "En la l+n%a " 9 E'l End "%l%*& >n E''o' Do&o 0 End "u.

No e2es e observar la eclaraci4n e la e"i6ue"a corres!on ien"e a on e va a sal"ar la ins"rucci4n @esume* aun6ue el uso m;s com>n es re irigir a un segun o blo6ue on e se sale e la macro e 1orma con"rola a* !or e2em!lo<
"u. Man%)o/E''o'%s823 @+( sRu&a!'*h+8o !s "&'+ng >n E''o' Do&o $><HR>5!ERR>RE" sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 I+ll sRu&a!'*h+8o MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" Do&o "!5#@!$><HR>5!@! $><HR>5!ERR>RE"4 "%l%*& $as% E'' $as% 0 $as% 53 MsgBox "<o s% %n*on&'o la 'u&a %s7%*+f+*ada" 9 $h'2133 9 $h'2133 9 sRu&a!'*h+8o 9 $h'2133 9 $h'2133 9 "El 7'og'a(a &%'(+na'a"6 48 R%su(% "!5#@!$><HR>5!@! $as% Els% MsgBox ">*u''+o %l %''o' nu(%'o4 " 9 E'' 9 $h'2133 9 E''o' 9 / $h'2133 9 "En la l+n%a " 9 E'l End "%l%*& >n E''o' Do&o 0 "!5#@!$><HR>5!@!4 ,!Fu+ 8a &odo %l *od+go Fu% Fu+%'as6 7o' %)%(7lo ,*+%''% d% a'*h+8os ? .as%s d% da&os6 la +d%a ,%s sal+' d% fo'(a *on&'olada d% &u (a*'o MsgBox ""% sald'a *o''%*&a(%n&%" End "u.

No"a "ambi3n 6ue en vez e usar =:i" Sub* Lan"esM e la e"i6ue"a - c4 igo e con"rola or e errores* usamos la ins"rucci4n Doto !ombre$ti%ueta* !ara sal"ar irec"amen"e a

,F

E+1$ .on"rol e errores

la e"i6ue"a e sali a+ =s"as o!ciones son solo varian"es* una vez m;s "u eci ir;s 6ue es lo 6ue me2or se acomo a a "u 1orma e "raba2ar - e razonar* la recomen aci4n es 6ue no abuses e los sal"os con @esume o &o"o* !or clari a * limi"a"e en su uso lo m;s !osible+ Para "erminar es"e "ema* "e mues"ro o"ra ins"rucci4n !ara Lomi"irM errores* me re1iero a la ins"rucci4n %n Error 8esume /e't* 6ue signi1ica -=n caso e error* con"inua el la siguien"e lnea-* - se usa e la siguien"e manera<
"u. Man%)o/E''o'%s923 @+( sRu&a!'*h+8o !s "&'+ng >n E''o' R%su(% <%x& sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 I+ll sRu&a!'*h+8o MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" End "u.

9n"en"emos con"rolar el error


"u. Man%)o/E''o'%s1023 @+( sRu&a!'*h+8o !s "&'+ng >n E''o' R%su(% <%x& sRu&a!'*h+8o A H'+(2#n7u&Box2"Es*'+.% la 'u&a d%l a'*h+8o a .o''a'"33 I+ll sRu&a!'*h+8o #f E'' A 0 Hh%n MsgBox "El a'*h+8o " 9 sRu&a!'*h+8o 9 " s% .o''o *o''%*&a(%n&%" End #f End "u.

No"aras 6ue no es !osible* no im!or"a el n>mero e errores 6ue suce an


"u. Man%)o/E''o'%s1123 @+( sRu&a!'*h+8o !s "&'+ng >n E''o' R%su(% <%x& E''o'223 E''o'233 E''o'243 E''o'253 E''o'263 #f E'' A 0 Hh%n MsgBox "<o o*u''+o n+ngun %''o'" End #f End "u.

Pue es "ener 2un"as una es!u3s e o"ra las os ins"rucciones !ara con"rolar errores<
>n E''o' R%su(% <%x& >n E''o' Do&o $><HR>5!ERR>RE"

A!ren ien o OOo Basic

,%

Pero "en r; !riori a On =rror @esume Ne:"* !or lo 6ue no es aconse2able* e /ec/o* no "e recomien o el uso e On =rror @esume Ne:" a menos 6ue es"3s seguro e lo 6ue /aces+

).11

-alidacin de datos

.on la e:!eriencia "e ar;s cuen"a 6ue /acer una macro o !rograma libre e errores no es "ema menor - 6ue en"re m;s gran e sea "u c4 igo* la !robabili a e 6ue "enga errores aumen"a consi erablemen"e+ Una 1uen"e 1recuen"e e errores* son los a"os 6ue un usuario alimen"a a un !rograma* !or su!ues"o* es nues"ra res!onsabili a como !rograma ores el minimizar es"e "i!o e errores* es"o lo logramos 1il"ran o los a"os 6ue el usuario alimen"a* es ecir Lvali an oM los a"os* no se "e olvi e* -(3ID(/D% 3%S D(5%S * veras 6ue la vali aci4n e a"os* consume bas"an"e lneas e c4 igo* a veces* muc/as m;s 6ue el !roceso en si e es"os* !or ello es un "ema mu- im!or"an"e en !rogramaci4n+ OOo Basic cuen"a con algunas 1unciones 6ue nos a-u an a vali ar a"os* o"ras* "ienes 6ue !rogramar"elas (e ingenier"ales) "u mismo* veamos algunas e ellas* !ero recuer a 6ue son solo guas* !ues las o!ciones son "an"as - "an varia as como !rograma ores las im!lemen"en+ Para el me2or a!rovec/amien"o e es"e "ema* "ienes 6ue saber 6ue los lengua2es Basic son mu- nobles en al conversi4n e a"os e un "i!o a o"ro* muc/as e es"as conversiones las !ue e /acer el lengua2e e 1orma irec"a* a es"a conversi4n se se llama implCcita* !ero lo recomen able es 6ue noso"ros con"rolemos* siem!re 6ue sea !osible* es"as conversiones* a es"a 1orma se le llama e'plicita - nos a!o-amos en varias 1unciones e OOo Basic !ara /acer es"as conversiones+ .omo sabes* la ins"rucci4n MsgBo:* es!era como !ar;me"ro Lre6ueri oM un argumen"o llama o Mensa2e e "i!o S"ring* es ecir* una ca ena e "e:"o+
MsgBox Mensaje As String, [Tipo As Integer], [Titulo As String]

5eamos los siguien"es e2em!los<


>7&+on Ex7l+*+& "u. @+( @+( d+( M%nsa)%s123 dJ%*ha !s @a&% +<u(%'o !s #n&%g%' .>7*+on !s Bool%an dJ%*ha A @a&%"%'+al274616153 +<u(%'o A 2008 .>7*+on A H'u% MsgBox dJ%*ha MsgBox +<u(%'o MsgBox .>7*+on End "u.

Observa como* aun6ue le !asemos un n>mero o una 1ec/a o incluso un valor booleano* la ins"rucci4n MsgBo: sigue "raba2an o* es"o es !or 6ue el lengua2e* /ace in"ernamen"e ( e 1orma implCcita) una conversi4n e "i!os* mien"ras le sea !osible* convier"e el "i!o 6ue reciba* a una ca ena e "e:"o (s"ring)* lo i eal* es 6ue noso"ros /agamos es"a conversi4n e 1orma e:!lici"a* como en el siguien"e e2em!lo<

,G
"u. @+( @+( d+( M%nsa)%s223 dJ%*ha !s @a&% +<u(%'o !s #n&%g%' .>7*+on !s Bool%an dJ%*ha A @a&%"%'+al274616153 +<u(%'o A 2008 .>7*+on A H'u% MsgBox (Str2 dJ%*ha 3 MsgBox (Str2 +<u(%'o 3 MsgBox (Str2 .>7*+on 3 End "u.

E+11 5ali aci4n e a"os

Observa como /acemos uso e la 1unci4n CStr(valor) 6ue convier"e el "i!o e LvalorM a una ca ena e "e:"o (S"ring)+ (e es"a 1orma* LcasiM !o emos es"ar seguros e 6ue no nos ar; un error ines!era o+ OOo Basic cuen"a con 1unciones !ara conver"ir a la ma-ora e los "i!os e variables !osibles< Funcin .S"r(valor) .B-"e(valor) .9n"(valor) .)ng(valor) .Sng(valor) .(bl(valor) .Bool(valor) .(a"e(valor) .onvier"e a "i!o B-"e .onvier"e a "i!o en"ero (9n"eger) .onvier"e a "i!o en"ero largo ()ong) .onvier"e a "i!o sim!le (Single) .onvier"e a "i!o oble ((ouble) .onvier"e a "i!o booleano (Boolean) .onvier"e a "i!o 1ec/a ((a"e) *escripcin .onvier"e a ca ena e "e:"o (S"ring)

OOo Basic cuen"a con o"ras 1unciones 6ue nos a-u an a saber 6ue "i!o e a"o "iene una variable* veamos las siguien"es< .uan o necesi"es saber si una variable con"iene un n>mero usamos Is/umeric<
>7&+on Ex7l+*+& "u. Es<u(%'o23 @+( s@a&o !s "&'+ng s@a&o A H'+(2 #n7u&Box2 "#n&'odu*% un nu(%'o" 3 3 #f IsNumeri)2 s@a&o 3 Hh%n MsgBox "Es un nu(%'o" Els% MsgBox "<o %s un nu(%'o" End #f End "u.

.uan o necesi"es saber si una variable con"iene una 1ec/a usamos IsDate<
"u. EsJ%*ha23 @+( s@a&o !s "&'+ng s@a&o A H'+(2 #n7u&Box2 "#n&'odu*% una f%*ha" 3 3

A!ren ien o OOo Basic


#f Is*ate2 s@a&o 3 Hh%n MsgBox "Es una f%*ha" Els% MsgBox "<o %s una f%*ha" End #f End "u.

,,

O cuan o necesi"es saber si una variable es una ma"riz usamos Is(rray<


"u. EsMa&'+:23 @+( (@a&o !s 1a'+an& #f IsArra+2 (@a&o23 3 Hh%n MsgBox "Es una (a&'+:" Els% MsgBox "<o %s una (a&'+:" End #f (@a&o A !''a?21626364653 #f IsArra+2 (@a&o23 3 Hh%n MsgBox "Es una (a&'+:" Els% MsgBox "<o %s una (a&'+:" End #f End "u.

5eamos algunos e2em!los e vali aciones comunes* como icen en mi !ueblo -ni son "o as las 6ue es";n* ni es";n "o as las 6ue son-* solo !re"en o 6ue "e sea e re1erencia - las a a!"es - com!lemen"es a "us necesi a es+ Obligamos al usuario a in"ro ucir un a"o* el 6ue sea* la >nica con ici4n es 6ue no sea una ca ena vaca<
"u. 1al+da'123 @+( s@a&o !s "&'+ng @+( ."al+' !s Bool%an @o s@a&o A H'+(2 #n7u&Box2"#n&'odu*% los da&os"3 3 #f s@a&o XY "" Hh%n ."al+' A H'u% End #f 5oo7 Cn&+l ."al+' End "u.

cabr;s observa o en el e2em!lo an"erior* 6ue aun cuan o el usuario !resione .ancelar* e "o os mo os no le /acemos caso - lo obligamos a in"ro ucir un a"o* si bien lo !o emos /acer* no es com>n* lo /abi"ual es !ro!orcionar siem!re al usuario una 1orma e cancelar un !roceso<
"u. @+( @+( @+( 1al+da'223 s@a&o !s "&'+ng ."al+' !s Bool%an +R%s !s #n&%g%' s@a&o A H'+(2 #n7u&Box2"#n&'odu*% los da&os"3 3 #f s@a&o XY "" Hh%n ,!Fu+ 8a &u *od+go 7a'a (an+7ula' los da&os ."al+' A H'u% Els%

@o

1$$

E+11 5ali aci4n e a"os

+R%s A MsgBox2 "0a'%*% Fu% no %s*'+.+s&% nada6 M@%s%as sal+'N"6 32 B 46 ""al+'" 3 #f +R%s A 6 Hh%n ."al+' A H'u% End #f End #f 5oo7 Cn&+l ."al+' End "u.

A/ora* obligamos al usuario a in"ro ucir una ca ena e "e:"o* 6ue LnoM sea n>mero ni 1ec/a<
"u. @+( @+( @+( 1al+da'323 s@a&o !s "&'+ng ."al+' !s Bool%an +R%s !s #n&%g%' @o s@a&o A H'+(2 #n7u&Box2"#n&'odu*% los da&os"3 3 #f s@a&o XY "" Hh%n #f <o&2#s@a&%2s@a&o33 !nd <o&2#s<u(%'+*2s@a&o33 Hh%n ,!Fu+ 8a &u *od+go 7a'a (an+7ula' los da&os MsgBox "Es una *ad%na" 9 $h'2133 9 $h'2133 9 s@a&o ."al+' A H'u% Els% MsgBox "1alo' <> 8al+do" End #f Els% +R%s A MsgBox2 "0a'%*% Fu% no %s*'+.+s&% nada6 M@%s%as sal+'N"6 32 B 46 ""al+'" 3 #f +R%s A 6 Hh%n ."al+' A H'u% End #f End #f 5oo7 Cn&+l ."al+' End "u.

eue solo in"ro uzca n>meros<


"u. @+( @+( @+( 1al+da'423 s@a&o !s "&'+ng ."al+' !s Bool%an +R%s !s #n&%g%' @o s@a&o A H'+(2 #n7u&Box2"#n&'odu*% un nu(%'o"3 3 #f s@a&o XY "" Hh%n #f #s<u(%'+*2s@a&o3 Hh%n ,!Fu+ 8a &u *od+go 7a'a (an+7ula' los da&os MsgBox "Es un nu(%'o" 9 $h'2133 9 $h'2133 9 s@a&o ."al+' A H'u% Els% MsgBox "1alo' <> 8al+do" End #f Els% +R%s A MsgBox2 "0a'%*% Fu% no %s*'+.+s&% nada6 M@%s%as sal+'N"6 32 B 46 ""al+'" 3 #f +R%s A 6 Hh%n ."al+' A H'u% End #f End #f 5oo7 Cn&+l ."al+' End "u.

eue in"ro uzca una 1ec/a<


"u. 1al+da'523

A!ren ien o OOo Basic


@+( s@a&o !s "&'+ng @+( ."al+' !s Bool%an @+( +R%s !s #n&%g%' @o

1$1

s@a&o A H'+(2 #n7u&Box2"#n&'odu*% una f%*ha"3 3 #f s@a&o XY "" Hh%n #f #s@a&%2s@a&o3 Hh%n ,!Fu+ 8a &u *od+go 7a'a (an+7ula' los da&os MsgBox "Es una f%*ha" 9 $h'2133 9 $h'2133 9 s@a&o ."al+' A H'u% Els% MsgBox "1alo' <> 8al+do" End #f Els% +R%s A MsgBox2 "0a'%*% Fu% no *a7&u'as&% nada6 M@%s%as sal+'N"6 32 B 46 ""al+'" 3 #f +R%s A 6 Hh%n ."al+' A H'u% End #f End #f 5oo7 Cn&+l ."al+' End "u.

Un n>mero* con un rango e1ini o* igamos* en"re 5$ - 1$$<


"u. @+( @+( @+( 1al+da'623 s@a&o !s "&'+ng ."al+' !s Bool%an +R%s !s #n&%g%' @o s@a&o A H'+(2 #n7u&Box2"#n&'odu*% un nu(%'o"3 3 #f s@a&o XY "" Hh%n #f #s<u(%'+*2s@a&o3 !nd 1al2s@a&o3YA50 !nd 1al2s@a&o3XA100 Hh%n ,!Fu+ 8a &u *od+go 7a'a (an+7ula' los da&os MsgBox "Es un nu(%'o6 %n %l 'ango 50T100" 9 $h'2133 9 $h'2133 9 s@a&o ."al+' A H'u% Els% MsgBox "1alo' <> 8al+do" End #f Els% +R%s A MsgBox2 "0a'%*% Fu% no *a7&u'as&% nada6 M@%s%as sal+'N"6 32 B 46 ""al+'" 3 #f +R%s A 6 Hh%n ."al+' A H'u% End #f End #f 5oo7 Cn&+l ."al+' End "u.

Una 1ec/a 6ue no sea 1ec/a 1u"ura<


"u. @+( @+( @+( 1al+da'723 s@a&o !s "&'+ng ."al+' !s Bool%an +R%s !s #n&%g%' @o s@a&o A H'+(2 #n7u&Box2"#n&'odu*% una f%*ha"3 3 #f s@a&o XY "" Hh%n #f #s@a&%2s@a&o3 Hh%n #f $@a&%2s@a&o3 XA @a&%23 Hh%n ,!Fu+ 8a &u *od+go 7a'a (an+7ula' los da&os MsgBox "Es una f%*ha 8al+da" 9 $h'2133 9 $h'2133 9 s@a&o

1$#
."al+' A H'u% Els% MsgBox "Es una f%*ha fu&u'a" End #f Els% MsgBox "1alo' <> 8al+do" End #f Els%

E+11 5ali aci4n e a"os

+R%s A MsgBox2 "0a'%*% Fu% no *a7&u'as&% nada6 M@%s%as sal+'N"6 32 B 46 ""al+'" 3 #f +R%s A 6 Hh%n ."al+' A H'u% End #f End #f 5oo7 Cn&+l ."al+' End "u.

=l siguien"e e2em!lo es mu- iver"i o* le !e imos al usuario 6ue in"ro uzca solo vocales* !ero -a sabes como son los usuarios* seguro ca!"uran lo 6ue se les a la gana* as 6ue 1il"raremos su "e:"o* e2an o solo las vocales<
"u. @+( @+( @+( @+( @+( @+( @+( 1al+da'823 s@a&o !s "&'+ng ."al+' !s Bool%an +R%s !s #n&%g%' *o1 !s #n&%g%' s5%&'a !s "&'+ng sH(7 !s "&'+ng 7os !s #n&%g%' @o s@a&o A H'+(2 #n7u&Box2"#n&'odu*% solo 8o*al%s"3 3 #f s@a&o XY "" Hh%n #f <o&2#s@a&%2s@a&o33 !nd <o&2#s<u(%'+*2s@a&o33 Hh%n ,!Fu+ 8a &u *od+go 7a'a (an+7ula' los da&os Jo' *o1 A 1 Ho 5%n2s@a&o3 ,Ho(a(os una 7o' una *ada l%&'a *a7&u'ada s5%&'a A M+d2s@a&o6*o1613 ,!8%'+gua(os s+ %s una 8o*al (a?us*ula o (+nus*ula 7os A #n"&'216"a%+ou!E#>C"6s5%&'a3 ,"+ %n*u%n&'a la l%&'a %n la l+s&a d% 8o*al%s #n"&' &% ,d%8u%l8% la 7os+*+on6 *on Fu% s%a (a?o' a *%'o sa.%(os ,Fu% ha s+do %n*on&'ada #f 7os Y 0 Hh%n sH(7 A sH(7 9 s5%&'a End #f <%x& MsgBox sH(7 ."al+' A H'u% Els% MsgBox "1alo' no 8al+do" End #f Els% +R%s A MsgBox2 "0a'%*% Fu% no *a7&u'as&% nada6 M@%s%as sal+'N"6 32 B 46 ""al+'" 3 #f +R%s A 6 Hh%n ."al+' A H'u% End #f End #f 5oo7 Cn&+l ."al+' End "u.

A!ren ien o OOo Basic

1$?

No 6uiero 6ue se "e olvi e* la -(3ID(CI%/ e los a"os 6ue in"ro uce el usuario es Lmu- im!or"an"eM - si con2ugas es"o con el con"rol e errores* "e aseguro 6ue !o r;s minimizar el riesgo e 1allos en "us a!licaciones* sino un 1$$U* si en un !orcen"a2e bas"an"e al"o+ Si "ienes una vali aci4n in"eresan"e - 6ue es"e al nivel b;sico 6ue venimos mane2an o* !ue es envi;rmela !ara incluirla a6u o en su e1ec"o* si "ienes !roblemas con alguna vali aci4n* !lan"eala en las lis"as e correo - si es lo su1icien"emen"e ilus"ra"iva* "ambi3n la incluiremos a6u+ VV'eliz !rogramaci4nWW

).12

El IDE 7 Muc"o mFs que un editor

A es"as al"uras -a /abr;s no"a o la gran u"ili a el 9(=* "e colorea las !alabras e!en ien o e su con"e:"o - "e mues"ra mensa2es !reven"ivos o e error siem!re 6ue sea !osible* en es"e ca!i"ulo* veremos algunas o"ras carac"ers"icas el 9(= 6ue nos !ue en a-u ar a e!urar nues"ras macros* en"en ien o !or e!urar* las "3cnicas 6ue nos a-u an a encon"rar m;s 1;cilmen"e un error* sobre "o o* l4gico* 6ue son* a veces* los m;s com!lica os e encon"rar+ Para em!ezar emos un re!aso a nues"ro cen"ro e "raba2o* es ecir* al 9(= - sus i1eren"es !ar"es< 1+ #+ ?+ E+ 5+ F+ %+ G+ Barra e "i"ulo Barra e men>s Barras e /erramien"as 5en"ana e e ici4n 5en"ana e observa or 5en"ana e llama as Barra e es!lazamien"o e m4 ulos - i;logos Barra e es"a o

1$E

E+1# =l 9(= f Muc/o m;s 6ue un e i"or

Algunas e es"as -a "e ser;n mu- 1amiliares* o"ras son nuevas !ero las veremos en es"e ca!i"ulo+ .omo -a mencionamos* el 9(=* es solo o"ra a!licaci4n e O!enO11ice+org* 6ue nos !ermi"e crear - e i"ar nues"ras macros* la barra e "i"ulo - la e men>s es consis"en"e con las em;s a!licaciones 6ue in"egran la a!licaci4n* !or lo 6ue no las veremos a6u* )as barras e /erramien"as las veremos a con"inuaci4n< )a !rimer barra e /erramien"as se llama MacroBar* !or lo 6ue su!ongo 6ue en cas"ellano ser;* Barra e macros* -a 6ue el nombre no a!arece en su barra e "i"ulo* como si lo /ace en la ma-ora e las barras e /erramien"as<

=l !rimer con"rol 6ue es un cua ro e lis"a es!legable (con"rol .omboBo:) "e !ermi"e seleccionar el arc/ivo 6ue es"e abier"o - la biblio"eca 6ue 6uieras e i"ar<

A!ren ien o OOo Basic

1$5

Observa como la !rimer o!ci4n es To os* si seleccionas es"a o!ci4n* en la barra e es!lazamien"o e m4 ulos* "e mos"rara L"o osM los m4 ulos - i;logos e "o os los arc/ivos abier"os* as como el arc/ivo es!ecial Mis macros - los in"egra os en O!enO11ice+org* !or lo 6ue es"a o!ci4n "e !o ra llegar a mos"rar varias ecenas e m4 ulos e!en ien o e cuan"os arc/ivos "engas abier"os - e cuan"os m4 ulos "engas con c4 igo+

=l res"o e los bo"ones son los siguien"es< 1+ 9cono e com!ilar< Me gus"ara muc/o 6ue el c4 igo e nues"ras macros se !u iese com!ilar* 6ue es lo 6ue se su!one /ace es"e icono* !ero en mis !ruebas no veo ninguna i1erencia* si "u la vez o la sabes* com!;r"ela conmigo+ #+ 9cono e e2ecu"ar< =s"e icono e2ecu"a LsoloM la !rimer macro el m4 ulo ac"ivo* !ero -a vimos las "3cnicas !ara e2ecu"ar las em;s macros* e6uivale a !resionar la "ecla '5+ ?+ 9cono e e"ener macro< Solo es"a ac"ivo cuan o e2ecu"amos una macro* normalmen"e se usa en con2unci4n con los iconos E - 5+ E+ 9cono !asar al siguien"e< Permi"e e2ecu"ar lnea a lnea el c4 igo e nues"ra macro* mu- >"il !ara e!urar - encon"rar errores* normalmen"e se usa 2un"o con el LObserva orM !ara encon"rar errores* e6uivale a !resionar la "ecla 'G 5+ 9cono en"rar en el !roceso< @ealiza la misma acci4n el icono E* los iconos E 5* solo se e2ecu"an en la !rimer macro el mo ulo ac"ivo* !or lo 6ue !ara e!urar macros* es me2or usar L!un"os e ru!"uraM* "e as cuen"a 6ue lnea es la siguien"e a e2ecu"ar !or una 1lec/a amarilla en el margen iz6uier o el e i"or+

1$F

E+1# =l 9(= f Muc/o m;s 6ue un e i"or

F+ 9cono salir e !roceso< .uan o e2ecu"amos una macro lnea !or lnea* es"e icono nos !ermi"e con"inuar la e2ecuci4n e la macro normalmen"e* e6uivale a !resionar la "ecla '5+ %+ 9cono e ac"ivar0 esac"ivar !un"os e ru!"ura< Un !un"o e ru!"ura es una LseKalM 6ue le in ica al 9(= 6ue e"enga la e2ecuci4n en la linea in ica a !or un !un"o ro2o en el margen iz6uier o e nues"ro e i"or* con es"e icono ac"ivamos (mos"ramos) esac"ivamos (ocul"amos) los !un"os ro2os 6ue son !un"os e ru!"ura en la lnea ac"ual on e es"e el cursor e escri"ura* recuer a 6ue el cursor e escri"ura es la ra-a ver"ical negra e "o o e i"or e "e:"o* "ambi3n !ue es ac"ivar - esac"ivar !un"os e ru!"ura con la "ecla ', o an o un oble clic en la lnea 6ue 6uieras* !ero mu- im!or"an"e* en"ro el margen iz6uier o el e i"or+ Observa en la siguien"e imagen los !un"os ro2os+

G+ 9cono ges"ionar !un"os e ru!"ura< Nos !ermi"e a minis"rar los !un"os e ru!"ura e:is"en"es en nues"ro mo ulo ac"ual* es ecir* nos !ermi"e agregar* eliminar o esac"ivar !un"os e ru!"ura en un cua ro e ialogo+ .a a !un"o e ru!"ura es"ar; in ica o !or la lnea en on e se encuen"re - !o r;s seleccionar - esac"ivar el !un"o 6ue 6uieras* con lo cual el !un"o ro2o !asar; a ser un !un"o gris* "ambi3n !ue e eliminar el !un"o e in"erru!ci4n 6ue 6uieras "an solo seleccion;n olo - !resionan o el bo"4n =liminar* as mismo* !ue es agregar el 6ue 6uieras* "an solo in ican o el numero e lnea on e eseas es"ablecerlos - !resionar el bo"4n nuevo* !ero lo me2or es agregar los !un"os es e el e i"or* e:ac"amen"e en la lnea 6ue 6uieras+

A!ren ien o OOo Basic

1$%

,+ 9cono e /abili"ar ins!ecci4n< Permi"e agregar la variable selecciona a a la ven"ana e observa or !ara visualizar el valor e ic/a variable uran"e la e2ecuci4n e una macro* es"a ven"ana normalmen"e se usa e2ecu"an o la macro lnea a lnea ('G) o 2un"o con !un"os e ru!"ura !ara !o er observar el valor e las variables* m;s a elan"e veremos a e"alle es"a /erramien"a 1$+ 9cono e buscar !ar3n"esis< .on el cursor e escri"ura !osiciona o Lan"esM e un !ar3n"esis e a!er"ura o cierre* nos !ermi"e seleccionar "o o el "e:"o en"ro e ic/os !ar3n"esis e inclu-en o los !ar3n"esis* mu- >"il sobre "o o en 1unciones ani a as on e se !ier en los !ar3n"esis+ 11+ 9cono e inser"ar c4 igo Basic< Permi"e* a !ar"ir e un arc/ivo e "e:"o (normalmen"e con e:"ensi4n BAS) inser"ar el c4 igo Basic 6ue con"engo en el mo ulo ac"ual en la !osici4n el cursor e escri"ura ac"ual+ 1#+ 9cono e guar ar c4 igo Basic< Nos !ermi"e e:!or"ar a un arc/ivo e "e:"o con e:"ensi4n BAS el c4 igo selecciona o o "o o el mo ulo si no /a- na a selecciona o+

)a siguien"e barra e /erramien"as se llama =s";n ar* - es mu- similar a la ma-ora e las barras es";n ar e las em;s a!licaciones* "e !ermi"e abrir* guar ar* im!rimir* co!iar* !egar* e"c* !or lo 6ue no veremos a6u es"as o!ciones* salvo !or los "res iconos siguien"es solo is!onibles en el 9(=+

1+ 9cono ca"alogo e ob2e"os< Nos mues"ra un cua ro e ialogo 6ue nos !ermi"e navegar en 1orma e ;rbol en"re los arc/ivos abier"os - en"ro e sus biblio"ecas* m4 ulos - macros is!onibles* con un oble clic sobre la macro selecciona a nos lleva a ella o usan o el bo"4n Mos"rar (circulo ro2o en la imagen)<

1$G

E+1# =l 9(= f Muc/o m;s 6ue un e i"or

#+ 9cono e seleccionar macro< Nos mues"ra un cua ro e ialogo !ara a minis"rar nues"ras macros* nos !ermi"e "ambi3n navegar en"re los arc/ivos abier"os* sus biblio"ecas - sus m4 ulos* !or a/ora* !rinci!almen"e la /emos usa os !ara e2ecu"ar la macro 6ue 6ueramos* !ero "ambi3n !o emos e i"ar - eliminarlas* una o!ci4n muin"eresan"e - !o erosa es LAsignarM una macro* 6ue se ver; m;s a elan"e+

A!ren ien o OOo Basic

1$,

?+ 9cono seleccionar mo ulo< Nos mues"ra un cua ro e ialogo 6ue nos !ermi"e a minis"rar m4 ulos* i;logos - biblio"ecas* agregarlos - eliminarlos en"re o"ras o!ciones como agregar una con"raseKa a una biblio"eca+

Observa la llave al la o iz6uier o e mi&iblioteca 6ue nos in ica 6ue es"a biblio"eca "iene es"ableci a una con"raseKa !ara su visualizaci4n* la cual "e solici"ara si in"en"as e i"arla+

5eamos a/ora como nos !ue en a-u ar los !un"os e ru!"ura* la e2ecuci4n lnea a lnea* la ven"ana e observa or - la ven"ana e llama as a e!urar nues"ras macros+ Pue es usar cual6uier macro e las 6ue /a-amos esarrolla o en es"os a!un"es o cual6uiera 6ue "engas* lo im!or"an"e es seguir la secuencia correc"a e los !asos siguien"es* !or e2em!lo* el siguien"e

11$

E+1# =l 9(= f Muc/o m;s 6ue un e i"or

c4 igo* co!ialo en la !ar"e su!erior e cual6uier m4 ulo* es ecir* asegura"e e 6ue sea la L!rimerM macro e ic/o m4 ulo e c4 igo<
>7&+on Ex7l+*+& ,$ons&'u+(os un s%udoTRJ$6 %l RJ$ %s un da&o 7%'sonal ? un+*o %n M%x+*o ? d+go s%udo ,7o' Fu% no %s &an s+(7l% *o(o lo 7ongo aFu+6 7%'o nos s+'8% (u? .+%n d% %)%(7lo ,0'+(%'as dos l%&'as d%l a7%ll+do 7a&%'no ,0'+(%'a l%&'a d%l a7%ll+do (a&%'no ,0'+(%'a l%&'a d%l no(.'% ,!\o d% na*+(+%n&o d% dos d+g+&os ,M%s d% na*+(+%n&o d% dos d+g+&os ,@+a d% na*+(+%n&o d% dos d+g+&os "u. >.&%n%'RJ$123 @+( s<o(.'% !s "&'+ng @+( d<a*+(+%n&o !s @a&% @+( 7os1 !s B?&%6 7os2 !s B?&% @+( RJ$ !s "&'+ng ,1a(os a su7on%' Fu% *a7&u'a(os un no(.'% %s&anda' <o(.'% 0a&%'no Ma&%'no ,7o' %)%(7lo 1an%ssa Bau*h% $ha8+'a s<o(.'% A H'+(2 #n7u&Box2 "Es*'+.% &u no(.'% *o(7l%&o"6 "<o(.'%" 33 ,1a(os a su7on%' una f%*ha *o''%*&a6 7o' aho'a no ha'%(os 8%'+f+*a*+on ,>[> solo 7o' aho'a6 as+ Fu% 7'u%.a f%*has *o''%*&as d<a*+(+%n&o A $@a&%2 #n7u&Box2 "!ho'a &u f%*ha d% na*+(+%n&o"6 "J%*ha" 33 ,En*on&'a(os la 7os+*+on d%l 7'+(%' %s7a*+o 7os1 A #n"&'216s<o(.'%6" "3 ,En*on&'a(os la 7os+*+on d%l s%gundo %s7a*+o 7os2 A #n"&'27os1B16s<o(.'%6" "3 RJ$ A C$as%2 M+d2s<o(.'%67os1B1623 9 M+d2s<o(.'%67os2B1613 9 M+d2s<o(.'%61613 3 9 / R+gh&2$"&'2O%a'2d<a*+(+%n&o33623 9 Jo'(a&2Mon&h2d<a*+(+%n&o36"00" 3 9 / Jo'(a&2@a?2d<a*+(+%n&o36"00" 3 ,Mos&'a(os %l RJ$ *ons&'u+do MsgBox RJ$ End "u.

Tienes 6ue ser mu- observa or* !resiona la "ecla '5* !or su!ues"o nues"ra macro se e2ecu"ara e 1orma normal* ca!"ura los a"os solici"a os correc"amen"e - veri1ica 6ue el resul"a o sea el es!era o+ A/ora* !resiona 'G* no"a como a!arece una 1lec/a amarilla en el margen iz6uier o e nues"ro e i"or* em!ezan o !or la !rimer lnea e nues"ra macro* con"inua !resionan o 'G - no"a como la 1lec/a amarilla va avanzan o lnea !or lnea en nues"ro c4 igo* con"inua as /as"a "erminar e e2ecu"ar la macro+

A!ren ien o OOo Basic

111

5uelve a em!ezar !resionan o 'G* !ero a/ora* e"en"e e:ac"amen"e en la lnea siguien"e* 6ue si co!ias"e el c4 igo an"erior* "iene 6ue ser la lnea #G a!ro:ima amen"e+
RJ$ A C$as%2 M+d2s<o(.'%67os1B1623 9 M+d2s<o(.'%67os2B1613 9 M+d2s<o(.'%61613 3 9 / R+gh&2$"&'2O%a'2d<a*+(+%n&o33623 9 Jo'(a&2Mon&h2d<a*+(+%n&o36"00" 3 9 / Jo'(a&2@a?2d<a*+(+%n&o36"00" 3

Posiciona el cursor sobre ca a una e las variables sNombre* Nacimien"o* !os1* !os# - @'.* I6ue no"asJ* mu- bien* mu- bien* observa como el 9(= nos mues"ra el valor almacena os en ca a una e las variables en un !e6ueKo cua ro e "e:"o amarillo 6ue esa!arece en cuan"o movemos el cursor+ No es"a e m;s aclarar"e 6ue la imagen siguien"e es"a e i"a a !ara mos"rar"e el valor e "o as la variables+

Tambi3n observa 6ue* mien"ras es"as e2ecu"an o el c4 igo lnea !or lnea* en cual6uier momen"o !ue es con"inuarla e 1orma normal !resionan o '5 o e !lano e"ener la macro con el bo"4n (e"ener Macro o !resionan o ."rlRS/i1"Re+ .on 2us"a raz4n "e !regun"aras* Ies"o no es mu- !rac"ico cuan o "enemos ecenas e variablesJ O si* "en r;s raz4n* a/ora !ara ello* !ara ver el valor e las variables* usaremos la ven"ana el observa or e la siguien"e manera+ Selecciona una variable - !resiona el icono Lcabili"ar ins!ecci4nM o !resiona la "ecla '% 6ue "iene el mismo e1ec"o* re!i"e es"e !roceso con "o as las res"an"es variables - ve observan o como en la ven"ana el observa or se van lis"an o las variables+

11#

E+1# =l 9(= f Muc/o m;s 6ue un e i"or

A/ora* vuelve a e2ecu"ar la macro !aso a !aso* es ecir* lnea a lnea - ve observan o la ven"ana e ins!ecci4n* al llegar a la lnea on e cons"ruimos el @'.* "ienes 6ue ver algo mu- similar a<

Mira 6ue lin o* "enemos el valor e "o as nues"ras variables* a em;s* "e mues"ra el "i!o e variable 6ue es* !or su!ues"o si es"as variables cambian su valor en el "ranscurso e e2ecuci4n e nues"ra macro* es"os cambios los !o r;s ir analizan o en la ven"ana el observa or* /e a/ su im!or"ancia* una 1recuen"e 1uen"e e errores* es !recisamen"e 6ue en ocasiones al !rocesar los a"os "an r;!i o* !ue e ser 6ue una variable no "enga o no ob"enga los a"os 6ue necesi"amos+ O surge una nueva !regun"a* I"enemos 6ue e2ecu"ar nues"ro c4 igo lnea a lnea !ara !o er ver los valores e las variablesJ* I- si "enemos ecenas o cen"enas e lneas e c4 igoJ* mu- buena !regun"a* veo 6ue eres un alumno a"en"o* !ara es"os casos* en vez e e2ecu"ar nues"ro c4 igo lnea a lnea* usaremos !un"os e in"erru!ci4n* 6ue* como vimos m;s a"r;s* son seKales 6ue le e2amos al 9(= !ara 6ue se e"enga en la lnea in ica a+ Para agregarlos usamos el icono Lac"ivar0 esac"ivar !un"os e ru!"uraM o !resionamos la "ecla ',* !ero* Lmu- im!or"an"eM* !rimero !osicionamos el cursor sobre la lnea on e nos in"erese es"ablecer el !un"o e in"erru!ci4n+ Agrega un !un"o e in"erru!ci4n en la linea on e cons"ruimos el @'. e mo o 6ue "e 6ue e e la siguien"e manera<

A!ren ien o OOo Basic

11?

Observa como aun "enemos las variables en la ven"ana el observa or* a/ora* e2ecu"a la macro con '5 - observa como es!u3s e alimen"ar los a"os* el c4 igo se e"iene e:ac"amen"e en la lnea 6ue es"ablecimos+

A/ora* !ue es con"inuar e2ecu"an o lnea a lnea ('G) o con"inuar normalmen"e ('5)* !ue es es"ablecer "an"os !un"os e in"erru!ci4n como 6uieras o necesi"es+ )as variables 6ue agregues a la ven"ana el observa or - los !un"os e in"erru!ci4n 6ue es"ablezcas* solo es"ar;n is!onibles en "u sesi4n ac"ual* si cierras "u arc/ivo los !er er;s+ =n cual6uier momen"o !ue es 6ui"ar los !un"os e in"erru!ci4n con ', sobre la lnea on e es"a el !un"o e in"erru!ci4n o las variables e la ven"ana el observa or* solo selecciona la variable 6ue 6uieras 6ui"ar en la ven"ana el observa or - la eliminas e es"a con el icono 6ue es"a inme ia"amen"e encima e es"as+ Para "erminar es"e "ema "an iver"i o* veamos !ara 6ue sirve la ven"ana e llama as - veamos como la ven"ana e observa or "ambi3n nos !ue e mos"rar el valor e una ma"riz e a"os* !ara es"o* mo i1ica el c4 igo an"erior !ara ivi irlo en una subru"ina - en una 1unci4n* e mo o 6ue 6ue e e la siguien"e manera<
>7&+on Ex7l+*+& "u. @+( @+( @+( @+( >.&%n%'RJ$223 s<o(.'% !s "&'+ng d<a*+(+%n&o !s @a&% RJ$ !s "&'+ng (@a&os223 !s "&'+ng ,>.&%n%(os los da&os s<o(.'% A H'+(2 #n7u&Box2 "Es*'+.% &u no(.'% *o(7l%&o"6 "<o(.'%"6"1an%ssa Bau*h% $ha8+'a" 33 d<a*+(+%n&o A $@a&%2 #n7u&Box2 "!ho'a &u f%*ha d% na*+(+%n&o"6 "J%*ha"6 "15/01/74" 33 ,5os 7'o*%sa(os $all >.&%n%'#n+*+al%s2 s<o(.'%6 (@a&os23 3 RJ$ A [o+n2(@a&os236""3 RJ$ A RJ$ 9 J%*haRJ$2 d<a*+(+%n&o 3 ,Mos&'a(os %l '%sul&ado MsgBox RJ$ End "u. "u. >.&%n%'#n+*+al%s2B?1al <o(.'% !s "&'+ng6 (@a&os3 @+( 7os1 !s B?&%6 7os2 !s B?&%

11E

E+1# =l 9(= f Muc/o m;s 6ue un e i"or

7os1 A #n"&'216<o(.'%6" "3 7os2 A #n"&'27os1B16<o(.'%6" "3 (@a&os203AC$as%2M+d2<o(.'%67os1B16233 (@a&os213AC$as%2M+d2<o(.'%67os2B16133 (@a&os223AC$as%2M+d2<o(.'%616133 End "u. Jun*&+on J%*haRJ$2B?1al <a*+(+%n&o !s @a&%3 !s "&'+ng J%*haRJ$A R+gh&2$"&'2O%a'2<a*+(+%n&o33623 9 / Jo'(a&2Mon&h2<a*+(+%n&o36"00" 3 9 / Jo'(a&2@a?2<a*+(+%n&o36"00" 3 End Jun*&+on

=2ecu"a el c4 igo !rimero ('5) !ara veri1icar 6ue ob"enemos los resul"a os es!era os* es!u3s agrega la variable m(a"os a la ven"ana el observa or ('%) - e2ecu"a el c4 igo !aso a !aso ('G)* e"en"e en la !rimer lnea on e a!arece la variable sNombre* !ara "ener algo mu- similar a la siguien"e imagen<

Tal vez en la ven"ana el observa or "en r;s 6ue arle un clic al smbolo el signo m;s a la iz6uier a el nombre e la variable !ara 6ue "e es!liegue el con"eni o e la ma"riz* 6ue* en es"a caso* es"a vaca+ .on"inua e2ecu"an o !aso a !aso ('G) - e"en"e en<

A!ren ien o OOo Basic

115

@ei"ero* "ienes 6ue ser mu- observa or* no"a como al llegar a la lnea on e llamamos a la subru"ina* el c4 igo sal"a a ic/a subru"ina - mu- im!or"an"e* observa la ven"ana e llama as como "e mues"ra el nombre e la subru"ina - a em;s* los valores 6ue se le es";n !asan o* mu- >"il !ara saber si es"amos es"ablecien o correc"amen"e los valores+ .on"inua la e2ecuci4n !aso a !aso - e"en"e en<

Observa como a/ora la ma"riz -a "iene a"os - es"os se mues"ran en la ven"ana el observa or+ .on"inua !aso a !aso /as"a el inicio e la 1unci4n 'ec/a@'. - observa la ven"ana e llama as 6ue una vez m;s mues"ra la 1unci4n - sus valores !asa os<

Termina la e2ecuci4n e la macro ('5) - observa 6ue la !ila e llama as se vaca* as como el valor e las variable en la ven"ana el observa or+ O sin 6uerer 6uerien o imos un breve re!aso a varios "emas vis"os an"eriormen"e+ No se "e olvi e 6ue las "eclas '5 - 'G solo "ienen e1ec"o en la !rimer macro eclara a en el mo ulo ac"ivo* !ara e2ecu"ar !aso a !aso o"ras macros* es"ablece !rimero un !un"o e ru!"ura en la linea 6ue "e in"erese en"ro e ic/a macro - es!u3s e2ecu"as la macro e 1orma normal !ara 6ue se e"enga en el !un"o e ru!"ura es"ableci o* a !ar"ir e a/ -a !ue es usar 'G !ara con"inuar !aso a !aso+++ No me res"a m;s 6ue ecir"e* !rac"ica muc/o* "an"o como !ue as VV'eliz !rogramaci4nWW

11F

5 Traba2an o con O!enO11ice+org

! 5rabajando con %pen%22ice.or*

A mi 2uicio* en"en er como es"a cons"rui o O!enO11ice+org* es la i1erencia en"re a!rovec/ar "o o el !o"encial 6ue "iene OOo Basic o !er er"e en un laberin"o in1ran6ueable !or an ar buscan o Hsimili"u esH con Ho"rosH !rogramas+ Tal vez !ecan o e un e:cesivo re uccionismo* O!enO11ice+org es un )=&O* el 1amoso 2uego e cons"rucci4n con !iezas e !l;s"ico* 6ue si no sabes 6ue es* "e es"as !er ien o e un maravilloso 2uego+ .a a !ieza el )=&O es un !ieza com!le"a* !ero 6ue se !ue e embonar !er1ec"amen"e bien con miles e !iezas m;s !ara HarmarH - HcrearH nuevos com!onen"es* eso es O!enO11ice+org !recisamen"e* es"a ivi o en una 1ini"a - conoci a can"i a e !ar"es* a ca a una e es"as !ar"es* le !o emos llamar Hob2e"oH* !ero en el lengua2e e O!enO11ice+org se le enomina H servicioH* 6ue no se "e olvi e HservicioH* -a 6ue es"e sera el nombre 6ue usaremos e a6u en a elan"e* a su vez* es"os HserviciosH se organizan en Hm4 ulosH* !ero o2o* no con1un as es"os Hm4 ulosH* con los vis"os en el ca!i"ulo #* e /ec/o* es"a 1orma e organizaci4n no "iene ma-or relevancia !ara los 6ue !rogramamos en OO Basic* no as !ara los 6ue usan o"ros lengua2es con O!enO11ice+org (iava* .RR* e"c+)* as 6ue solo como conocimien"o recuer alo - concen"ra"e en los H serviciosH+ A su vez* es"os Hservicios/* !ue en con"ener o"ros Hservicios/* !or lo 6ue si sabes usar un Hservicio/ es"e es"a im!lemen"a o en o"ro com!onen"e* !ue es a!licar "us conocimien"os e es"e H servicio/ en el nuevo com!onen"e sin ning>n !roblema+ =n O!enO11ice+org* a "rav3s e OOo Basic* /a1orma e saber 6ue Hservicios/ im!lemen"a un com!onen"e* lo cual* !or su im!or"ancia - !or la 1al"a e ocumen"aci4n en es!aKol es lo 6ue "ra"aremos e a!ren er a /acer e la me2or 1orma* "ambi3n* !ara 6ue recuer es 6ue Hno /a- 6ue es"ar a ivinan oH na a* sabien o H!regun"arH lo correc"o - consul"an o el lugar correc"o* !o emos !ro1un izar 4!"imamen"e en las en"raKas e O!enO11ice+org* mi !ro!4si"o en es"e ca!i"ulo* es enseKar"e a H!regun"arleH a los H serviciosH la in1ormaci4n necesaria !ara !onerlos a "raba2ar+ /%5( M:M IM+%85(/5E Te sugiero am!liamen"e* no con"inuar con los siguien"es ca!"ulos* /as"a no /aber com!ren i o cabalmen"e es"e* as mismo* o- !or sen"a o 6ue no "ienes u as e lo vis"o e:!lica o en ca!"ulos an"eriores* se 6ue mis /erramien"as !e ag4gicas no son las me2ores* !ero es"o- en la me2or is!osici4n e a-u ar"e a resolver "us u as* as 6ue an a* si "ienes alguna* vuelve a leer el "ema* si aun 6ue a alguna* envame lo mas claramen"e !osible* 6ue es lo 6ue no 6ue a claro* !or su!ues"o* si "ienes alg>n a!or"e !ara a-u ar a "rans!aren"ar es"e "ema* no e2es e mencionarlo+

A!ren ien o OOo Basic

11%

!.1

Mis macros 7 un arc"i,o especial.

cas"a a/ora* la ma-ora e las macros 6ue /emos esarrolla o - !roba o* las /emos escri"o L en"roM e un ocumen"o e O!enO11ice+org* si /as segui o es"as no"as es e el inicio* !ro!usimos un arc/ivo e .alc* aun6ue mu- bien !u is"e /aber usa o un arc/ivo e Nri"er+ .omo se 6ue eres observa or* seguro /abr;s no"a o ca a vez 6ue /abras "u arc/ivo !ara e i"ar las macros o e2ecu"abas alguna* a!ar"e el arc/ivo 6ue es"uvieras usan o* el organiza or e macros "e mos"raba o bien* "o os los arc/ivos 6ue "ienes abier"os o solo el arc/ivo ac"ivo !ara e2ecu"ar una macro* veamos en 6ue casos "e mos"raba uno - en 6ue casos lo o"ro* es"a i1erencia es im!or"an"e !ara el esarrollo e los siguien"es "emas+ Para em!ezar a clari1icar es"o* crea os nuevos arc/ivos* uno e .alc - o"ro e Nri"er* guar arlos con el nombre 6ue 6uieras* agregales una macro e !rueba 6ue nos mues"re un mensa2e* !or e2em!lo<
>7&+on Ex7l+*+& "u. M%nsa)%/$al*23 MsgBox "Es&o? %n (+ a'*h+8o d% $al*" End "u. "u. M%nsa)%/U'+&%'23 MsgBox "Es&o? %n (+ a'*h+8o d% U'+&%'" End "u.

Toma no"a e 6ue son os macros en L osM arc/ivos i1eren"es+ A/ora* "ra"a e e2ecu"ar ca a macro es e el men> cerramien"as r Macros r =2ecu"ar macros+++* in"en"emos !rimero con la macro 6ue es"a en el arc/ivo e Nri"er* observa como solo nos mues"ra el arc/ivo e Nri"er - no el e .alc+

11G

5+1 Mis macros f un arc/ivo es!ecial+

A/ora la macro 6ue es"a en el arc/ivo e .alc - observa como solo nos mues"ra el arc/ivo e .alc - no el e Nri"er+

Por su!ues"o* !o emos L1orzarM 6ue nos mues"re "o os los arc/ivos abier"os* si* en vez e ir al men> Herramientas | Macros | "jecutar macros * o!"amos !or ir al men> Herramientas | Macros | Organizar macros | OpenOffice org !asic * 6ue nos mos"rar;<

A/ora si* observa como nos mues"ra "o os los arc/ivos abier"os - !o emos "an"o e i"ar las macros 6ue con"enga o e2ecu"arlas+ Para 6ue "engamos is!onibles nues"ras macros con cual6uier arc/ivo - !o er e2ecu"arlas es e Herramientas | Macros | "jecutar macros * !o emos o!"ar !or usar el arc/ivo es!ecial 6ue se llama Mis macros* 6ue !ue es ver a6u<

A!ren ien o OOo Basic

11,

(en"ro e el* !ue es crear "o as las biblio"ecas 6ue 6uieras - "o os los m4 ulos 6ue 6uieras* as como los i;logos 6ue a!ren eremos a crear - !rogramar m;s a elan"e+ A !ar"ir e a6u* 6ue a a "u cri"erio eci ir on e guar as "us macros* si en"ro e arc/ivos in ivi uales o en"ro e Mis macros+ =s"e arc/ivo se encuen"ra en el irec"orio el usuario en"ro e la car!e"a ocul"a e O!enO11ice+org* !or e2em!lo< 0/ome0USUA@9O0+o!eno11ice+org0?0user0basic+ =n es"e irec"orio !o r;s ver como car!e"as las biblio"ecas 6ue va-as agregan o - en"ro e ellas los m4 ulos crea os* !or su!ues"o* es mu- >"il res!al ar e vez en cuan o es"a car!e"a+

!.2

(si*nando macros

cas"a a/ora* /emos e2ecu"a o "o as nues"ras macros es e el 9(= o llam;n olas es e el men> /erramien"as* !ero "ambi3n !o emos asignar las macros !ara e2ecu"arlas* a men>s* barras e /erramien"as* combinaciones e "eclas e incluso asignarlas a sucesos e la a!licaci4n* !or e2em!lo* cuan o abrimos un arc/ivo* es"o* es sumamen"e >"il - !o eroso* veamos algunos e2em!los e como /acer es"o* como !rimer !aso* /a- 6ue escribir la macro 6ue nos in"eresa asignar* algo "an sencillo como mos"rar la 1ec/a - /ora ac"uales* claro* con un !oco e 1orma"o !ara 6ue sea vea bien<
"u. Mos&'a'J%*ha?Ho'a23 @+( sM%nsa)% !s "&'+ng sM%nsa)% A Jo'(a&2 <o^236 "dddd dd ada% (((( ada%l ???? " 9 $h'2133 9 / "? ason laas HH ahoa'aas *on (( a(+nu&oas" MsgBox sM%nsa)%6 646"Ho? %s"

1#$
End "u.

5+# Asignan o macros

A/ora* "ienes 6ue eci ir Lcuan oM o LcomoM 6uieres e2ecu"arla* veamos !rimero lo m;s sencillo* /agamos 6ue se e2ecu"e con una combinaci4n e "ecla o* !ara ello* es e cual6uier a!licaci4n e O!enO11ice+org* ve al men> 0er 1 Barra de herramientas 1 Personali2ar((( 6ue "e mos"rara el siguien"e cua ro e ialogo<

Asegura"e e 6ue es"e selecciona a la 1ic/a Tecla o (1)* as como mos"rar las .ombinaciones e "eclas e O!enO11ice+org (#)+ =l siguien"e !aso es 6ue esco2as la combinaci4n e "eclas 6ue 6uieres asignar a nues"ra macro* !ara ello* es!laza"e en el cua ro e lis"a .ombinaci4n e "eclas (?) - escoge la 6ue m;s "e gus"e* cui a"e e seleccionar una 6ue es"e libre* "e va a ar cuen"a las 6ue -a es";n en uso* !or 6ue elan"e e ellas "ienen la "area asigna a (E)* "ambi3n no"aras 6ue algunas "eclas* como !or e2em!lo la "ecla '1* es";n en gris esac"iva as* es"o es !or 6ue es"as "eclas no !ue es reasignarlas+ Pero observa 6ue "ienes una am!lia gama e o!ciones e on e escoger* !ara nues"ro e2em!lo* /emos selecciona o .T@) R Sc9'T R M (5)* el siguien"e !aso es seleccionar la macro 6ue eseamos e2ecu"ar con es"a combinaci4n e "eclas* !ara nues"ro e2em!lo* !rimero es!laza"e en el cua ro e lis"a drea (F) /as"a encon"rar la o!ci4n Macros e O!enO11ice+org* es!liega su con"eni o - seleccionar LuserM 6ue se re1iere al arc/ivo es!ecial LMis MacrosM* solo "e res"a seleccionar la biblio"eca - el mo ulo on e es"a la macro a asignar* !ara nues"ro e2em!lo se llama Mos"rar'ec/a-cora (%)+

A!ren ien o OOo Basic

1#1

Observa como "ienes o!ci4n e cargar combinaciones e "eclas guar a as* as como e guar ar las ac"uales - res"ablecer las !re e"ermina as* "e 6ue a e "area L2ugarM e:!erimen"ar con es"as o!ciones+ .omo ul"imo !aso* !resiona el bo"4n e coman o Mo i1icar (G) 6ue asigna 1inalmen"e la combinaci4n e "eclas (,) a la macro selecciona a (1$)+ Para "erminar* !resiona el bo"4n e coman o Ace!"ar+

1##

5+# Asignan o macros

A/ora* solo nos res"a !robar 6ue 1uncione* es e cual6uier ocumen"o* !resiona la combinaci4n e "eclas selecciona a (."rlRS/i1"RM) - si "o o es"a correc"o* "e "iene 6ue mos"rar<

.on un !oco e imaginaci4n !ue es crear "us accesos irec"os !ara !robar "o as las macros 6ue 6uieras e una 1orma sencilla+ A/ora veamos como asignar una macro a un even"o* a un suceso el sis"ema* !ara ello* vamos a crear una sencilla macro e e2em!lo<
"u. Mos&'a'M%nsa)%23 @+( sM%nsa)% !s "&'+ng sM%nsa)% A "<o &% ol8+d%s d% gua'da' &u do*u(%n&o" MsgBox sM%nsa)%6 646"$'%ando do*u(%n&o" End "u.

A!ren ien o OOo Basic

1#?

5e al men> /er | !arra de $erramientas | (ersonalizar * es"a vez* selecciona la 1ic/a =ven"os (1) - asegura"e e seleccionar O!enO11ice+org (#) !ara guar ar la asignaci4n 6ue /agamos+ Para nues"ro e2em!lo seleccionaremos el L e,entoM .rear ocumen"o (?) 6ue se e2ecu"a ca a vez 6ue creamos un nuevo ocumen"o+

A/ora* con el bo"4n e coman o Macro+++ (E)* "e es!legara un cua ro e ialogo 6ue -a conoces* solo "e res"a navegar en"ro el arc/ivo* la biblio"eca - el mo ulo 6ue con"iene la macro esea a* selecciona la macro* !resiona Ace!"ar - lis"o+

Observa como elan"e el Leven"oM 6ue a selecciona a la macro* solo "e res"a !resionar el bo"4n e coman o Ace!"ar - !robar la macro* crea "an"os nuevos ocumen"os como 6uieras+

1#E

5+# Asignan o macros

.on ca a nuevo ocumen"o crea o* e cual6uier a!licaci4n e OOo* "e "iene 6ue mos"rar el mensa2e<

Asignar macros a even"os no es un "ema menor* !ues !ue e ser "an sencillo como nues"ros e2em!los* conec"ar"e a una base e a"os o a una !;gina 7eb - muc/as cosas m;s* m;s a elan"e !ro1un izaremos en algunas e sus o!ciones+ Asignar una macro a un men> o a una barra e /erramien"as es "rivial* as 6ue "e 6ue a e "area in"en"ar /acerlo+

A!ren ien o OOo Basic

1#5

!.

Creando nuestro primer 4ser,icio1 ?objeto@.

Para crear* acce er - mani!ular un servicio* Lnecesi"asM asignarlo a una variable e ob2e"o* e la siguien"e manera+
@+( <o(.'%1a'+a.l% !s >.)%*&

= inicializarla !ara !o er usarla* !ara ello* usamos la 1unci4n create3noSer%ice+


"u. !**%d+%ndo!>7%n>ff+*%123 @+( a77>7%n>ff+*% !s >.)%*& a77>7%n>ff+*% A *'%a&%Cno"%'8+*%2 "*o(-sun-s&a'-f'a(%-@%s]&o7" 3 End "u.

=l servicio com+sun+s"ar+1rame+(ess"o! es usa o mu- 1recuen"emen"e* !ues nos !ermi"e acce er a L"o aM la a!licaci4n - sus com!onen"es* !or ello* e:is"e una !alabra clave 6ue nos a acceso inme ia"o a es"e LservicioM8 4StarDesNtop1 !or lo 6ue* la siguien"es os lneas son e6uivalen"es<
a77>7%n>ff+*% A *'%a&%Cno"%'8+*%2 "*o(-sun-s&a'-f'a(%-@%s]&o7" 3 a77>7%n>ff+*% A "&a'@%s]&o7

=2ecu"an o la macro an"erior* !or a/ora* no veras ning>n e1ec"o* !ero a6u em!ieza lo iver"i o e in"eresan"e* vamos a e:!lorar !or en"ro el O!enO11ice+org* mo i1ica la macro !ara 6ue 6ue e e la siguien"e manera<
>7&+on Ex7l+*+& "u. !**%d+%ndo!>7%n>ff+*%223 @+( a77>7%n>ff+*% !s >.)%*& @+( o!*&+8o !s >.)%*& ,#n+*+al+:a(os una 8a'+a.l% *on %l s%'8+*+o *o(-sun-s&a'-f'a(%-@%s]&o7 a77>7%n>ff+*% A "&a'@%s]&o7 ,>.&%n%(os una '%f%'%n*+a al *o(7on%n&% a*&+8o o!*&+8o A a77>7%n>ff+*%-$u''%n&$o(7on%n& ,Mos&'a(os %l &+7o d% *o(7on%n&% MsgBox o!*&+8o-#d%n&+f+%' End "u.

A/ora si* al e2ecu"ar "e "iene 6ue mos"rar el siguien"e mensa2e<

Pero* "al vez "e mues"re es"e o"ro<

1#F

5+? .rean o nues"ro !rimer LservicioM (ob2e"o)+

9ncluso "al vez el siguien"e<

IPor 6ueJ Por6ue e!en er; es e on e LllamesM (e2ecu"es) la macro* veri1calo* "al vez la e2ecu"as"e irec"amen"e es e el 9(=* o "al vez la llamas"e es e una /o2a e calculo o es e un arc/ivo e "e:"o+ =n el "ema an"erior vimos como llamar a una macro es e on e 6ueramos* aun6ue lo m;s !rac"ico !ara los siguien"es e2em!los es 6ue !rogrames "us macros en"ro e arc/ivo Mis macros* 6ue a a "u cri"erio+ Abre seis arc/ivos* uno !or ca a "i!o e ocumen"o 6ue !o emos mane2ar en O!enO11ice+org (/o2a e calculo* ocumen"o e "e:"o* !resen"aci4n* ibu2o* base e a"os 1ormula) no necesariamen"e "ienes 6ue guar arlos* !ero no es"ara e m;s !or 6ue los vamos a usar en re!e"i as ocasiones+ =2ecu"a la macro an"erior es e ca a uno e es"os ocumen"os+ To os e:ce!"o la base e a"os "e "ienen 6ue mos"rar el mensa2e correc"amen"e - en el caso e la base e a"os* "e "iene 6ue mos"rar el error siguien"e<

A!ren e"e mu- bien es"as os nuevas !alabras L!ro!ie a M - Lm3"o oM* las vas a usar e a6u en a elan"e - siem!re 6ue !rogrames en OOo Basic+ =n es"e caso* es una 4propiedad1 lo 6ue es"a mal* es ecir* la !ro!ie a Identi2ier* no la im!lemen"an las bases e a"os+ Sabien o es"o* !o ramos em!ezar a !ro!oner una macro gen3rica !ara saber 6ue "i!o e ocumen"o es el ac"ivo* !robemos con la siguien"e<
"u. !**%d+%ndo!>7%n>ff+*%323 @+( a77>7%n>ff+*% !s >.)%*& @+( o!*&+8o !s >.)%*& ,#n+*+al+:a(os una 8a'+a.l% *on %l s%'8+*+o *o(-sun-s&a'-f'a(%-@%s]&o7 a77>7%n>ff+*% A "&a'@%s]&o7 ,>.&%n%(os una '%f%'%n*+a al *o(7on%n&% a*&+8o o!*&+8o A a77>7%n>ff+*%-$u''%n&$o(7on%n& ,Mos&'a(os %l &+7o d% *o(7on%n&% "%l%*& $as% o!*&+8o-#d%n&+f+%' $as% "*o(-sun-s&a'-sh%%&-"7'%adsh%%&@o*u(%n&" MsgBox ""o? una ho)a d% *al*ulo" $as% "*o(-sun-s&a'-7'%s%n&a&+on-0'%s%n&a&+on@o*u(%n&" MsgBox ""o? una 7'%s%n&a*+on" $as% "*o(-sun-s&a'-d'a^+ng-@'a^+ng@o*u(%n&" MsgBox ""o? un d+.u)o"

A!ren ien o OOo Basic

1#%

$as% "*o(-sun-s&a'-fo'(ula-Jo'(ula0'o7%'&+%s" MsgBox ""o? una fo'(ula" $as% "*o(-sun-s&a'-&%x&-H%x&@o*u(%n&" MsgBox ""o? un do*u(%n&o d% &%x&o" End "%l%*& End "u.

=2ecu"a la macro an"erior es e ca a uno e los seis arc/ivos* e:ce!"o es e la base e a"os !ues "e ar; un error* claro* !ue es* si 6uieres* im!lemen"ar un con"rola or e errores !ero !or a/ora no lo /aremos* bus6uemos o"ra al"erna"iva* !or e2em!lo* !robemos a/ora la !ro!ie a Implementation/ame - veamos 6ue !asa<
"u. !**%d+%ndo!>7%n>ff+*%423 @+( o!*&+8o !s >.)%*& ,>.&%n%(os una '%f%'%n*+a al *o(7on%n&% a*&+8o o!*&+8o A "&a'@%s]&o7-$u''%n&$o(7on%n& ,Mos&'a(os %l &+7o d% *o(7on%n&% MsgBox o!*&+8o-#(7l%(%n&a&+on<a(% End "u.

=s"a vez si nos mues"ra un mensa2e en "o os los ocumen"os* !ero no"aras 6ue es"a !ro!ie a en algunos ocumen"os no es mu- clara* a6u el resumen e lo 6ue "en ras 6ue ob"ener en ca a caso< Aplicacin Nri"er .alc 9m!ress (ra7 Base Ma"/ 3ipo de documento (ocumen"o e "e:"o co2a e calculo Presen"aciones (ibu2o Base e a"os 'ormula Propiedad )mplementation!ame S7pTe:"(ocumen" ScMo elOb2 S p9m!ress(ocumen" S p9m!ress(ocumen" com+sun+s"ar"+com!+ ba+O(a"abase(ocumen" com+sun+s"ar"+com!+ma"/+'ormula(ocumen"

ITe 1i2as 6ue in"eresan"eJ* no"a el valor evuel"o en las /o2as e calculo - como las !resen"aciones - los ibu2os evuelven el mismo resul"a o* !or lo 6ue es"a !ro!ie a * a !esar e es"ar im!lemen"a a en "o os los "i!os e ocumen"os* no resul"a mu- i 4nea !ara i1erenciar a ca a uno+ IO si en vez e evolver un ca ena e "e:"o* le !regun"amos a ca a com!onen"e si son lo 6ue icen serJ* es ecir* !or e2em!lo* una /o2a e calculo im!lemen"a !ro!ie a es - m3"o os (servicios) !ara mani!ular /o2as e calculo* en es"e caso* es"e servicio se llama Hcom+sun+s"ar+s/ee"+S!rea s/ee"(ocumen"M* - ca a ocumen"o so!or"a un "i!o e servicio i1eren"e+ To os los ob2e"os a mi"en un m3"o o 6ue nos !ermi"e !regun"ar si ic/o ob2e"o so!or"a un servicio en es!ecial* es"e m3"o o se llama supportsSer,ice - /a- 6ue !asarle como argumen"o el nombre el servicio 6ue 6ueremos vali ar - nos evolver; ver a ero (True) o 1also ('alse) seg>n so!or"e o no el servicio* !or lo 6ue la sin"a:is com!e"a e es"e m3"o o es< 1a'+a.l% !s Bool%an A >.)%&o-su77o'&s"%'8+*%2 <o(.'%/d%l/"%'8+*+o !s "&'+ng) 5eamoslo "raba2an o en el siguien"e e2em!lo<

1#G
"u. !**%d+%ndo!>7%n>ff+*%523 @+( o!*&+8o !s >.)%*& @+( .#(7l%(%n&a"%'8+*+o !s Bool%an o!*&+8o A "&a'@%s]&o7-$u''%n&$o(7on%n&

5+? .rean o nues"ro !rimer LservicioM (ob2e"o)+

.#(7l%(%n&a"%'8+*+o A o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-sh%%&-"7'%adsh%%&@o*u(%n&"3 #f .#(7l%(%n&a"%'8+*+o Hh%n MsgBox ""o? una ho)a d% *al*ulo" Els% MsgBox "<> so? una ho)a d% *al*ulo" End #f End "u.

O !rueba es e "o os nues"ros ocumen"os 6ue 1unciona correc"amen"e !or lo 6ue -a !o emos im!lemen"ar una macro me2or !ara saber 6ue "i!o e ocumen"o "enemos ac"ivo* sim!lemen"e consul"an o si so!or"a su res!ec"ivo L ser%icio4<
"u. !**%d+%ndo!>7%n>ff+*%623 @+( o!*&+8o !s >.)%*& o!*&+8o A "&a'@%s]&o7-$u''%n&$o(7on%n& #f o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-sh%%&-"7'%adsh%%&@o*u(%n&"3 Hh%n MsgBox ""o? una ho)a d% *al*ulo" Els%#f o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-&%x&-H%x&@o*u(%n&"3 Hh%n MsgBox ""o? un do*u(%n&o d% &%x&o" Els%#f o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-7'%s%n&a&+on-0'%s%n&a&+on@o*u(%n&"3 Hh%n MsgBox ""o? una 7'%s%n&a*+on" Els%#f o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-d'a^+ng-@'a^+ng@o*u(%n&"3 Hh%n MsgBox ""o? un d+.u)o" Els%#f o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-sd.->ff+*%@a&a.as%@o*u(%n&"3 Hh%n MsgBox ""o? una .as% d% da&os" Els%#f o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-fo'(ula-Jo'(ula0'o7%'&+%s"3 Hh%n MsgBox ""o? una fo'(ula" Els%#f o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-s*'+7&-Bas+*#@E"3 Hh%n MsgBox ""o? %l %d+&o' d% *od+go #@E" Els% MsgBox "<> s% Fu% &+7o d% do*u(%n&o so?" End #f End "u.

A/ora si* -a !o emos iscriminar correc"amen"e los ocumen"os+ Saber si un ob2e"o im!lemen"a un e"ermina o servicio* es mu- im!or"an"e !ara minimizar el riesgo e errores - !ara consul"ar irec"amen"e las !ro!ie a es - m3"o os 6ue im!lemen"a ic/o servicio sin "ener 6ue es"ar La ivinan oM na a - !recisamen"e !ara no es"ar a ivinan o* e:is"e una !ro!ie a 6ue nos evuelve una ma"riz (arra-) con los servicios 6ue so!or"a un ob2e"o* es"a !ro!ie a se llama SupportedSer,ice/ames - su sin"a:is es< 5ariable As Arra- l Ob2e"o+Su!!or"e ServiceNames .omo siem!re* no /a- como los e2em!los<
"u. @+( @+( @+( !**%d+%ndo!>7%n>ff+*%723 o!*&+8o !s >.)%*& ("%'8+*+os23 !s "&'+ng *o1 !s B?&%

A!ren ien o OOo Basic

1#,

,>.&%n%(os una '%f%'%n*+a al *o(7on%n&% a*&+8o o!*&+8o A "&a'@%s]&o7-$u''%n&$o(7on%n& ,>.&%n%(os una (a&'+: *on los s%'8+*+os Fu% +(7l%(%n&a ("%'8+*+os23 A o!*&+8o-"u77o'&%d"%'8+*%<a(%s ,O (os&'a(os %l no(.'% d% *ada s%'8+*+o Jo' *o1 A 5Bound2 ("%'8+*+os23 3 Ho CBound2 ("%'8+*+os23 3 MsgBox ("%'8+*+os2 *o1 3 <%x& End "u.

O si e2ecu"as la macro an"erior es e ca a uno e nues"ros seis ocumen"os abier"os* "ienes 6ue ob"ener la siguien"e lis"a e servicios en ca a uno< Aplicacin 3ipo de documento Nri"er (ocumen"o e "e:"o Propiedad 4upported4ervice!ames com+sun+s"ar+ ocumen"+O11ice(ocumen" com+sun+s"ar+"e:"+&enericTe:"(ocumen" com+sun+s"ar+"e:"+Te:"(ocumen" com+sun+s"ar+s/ee"+S!rea s/ee"(ocumen" com+sun+s"ar+s/ee"+S!rea s/ee"(ocumen"Se""ings com+sun+s"ar+ ocumen"+O11ice(ocumen" com+sun+s"ar+ ra7ing+&eneric(ra7ing(ocumen" com+sun+s"ar+ ra7ing+(ra7ing(ocumen"'ac"orcom+sun+s"ar+!resen"a"ion+Presen"a"ion(ocumen" com+sun+s"ar+ com+sun+s"ar+ com+sun+s"ar+ com+sun+s"ar+ ocumen"+O11ice(ocumen" ra7ing+&eneric(ra7ing(ocumen" ra7ing+(ra7ing(ocumen"'ac"orra7ing+(ra7ing(ocumen"

.alc 9m!ress

co2a e calculo Presen"aciones

(ra7

(ibu2o

Base Ma"/

Base e a"os 'ormula

com+sun+s"ar+ ocumen"+O11ice(ocumen" com+sun+s"ar+s b+O11ice(a"abase(ocumen" com+sun+s"ar+ ocumen"+O11ice(ocumen" com+sun+s"ar+1ormula+'ormulaPro!er"ies

No"a como 9m!ress - (ra7 im!lemen"an casi los mismos servicios - observa como /a- un servicio (com+sun+s"ar"+ ocumen"+O11ice(ocumen")* 6ue* e:ce!"o en la /o2a e calculo* es com>n a "o os los ocumen"os* !ero no creas 6ue la /o2a e calculo no lo im!lemen"a* !o emos emos"rar 6ue lo im!lemen"a con el siguien"e e2em!lo 6ue "ienes 6ue e2ecu"ar es e cual6uier /o2a e calculo* en "o os los em;s ocumen"os "ambi3n "e 1uncionara* !ero recuer a 6ue solo 6ueremos com!robar si la /o2a e calculo im!lemen"a es"e servicio<
"u. !**%d+%ndo!>7%n>ff+*%823 @+( o!*&+8o !s >.)%*& @+( .#(7l%(%n&a"%'8+*+o !s Bool%an o!*&+8o A "&a'@%s]&o7-$u''%n&$o(7on%n& .#(7l%(%n&a"%'8+*+o A o!*&+8o-su77o'&s"%'8+*%2"*o(-sun-s&a'-do*u(%n&->ff+*%@o*u(%n&"3 #f .#(7l%(%n&a"%'8+*+o Hh%n MsgBox "1%'dad Fu% s+ %s&a +(7l%(%n&ado %l s%'8+*+o" Els% MsgBox "<> %s&a +(7l%(%n&ado %l s%'8+*+o" End #f

1?$

5+? .rean o nues"ro !rimer LservicioM (ob2e"o)+

End "u.

=s"e servicio com>n a "o os los ocumen"os* "ambi3n es mu- usa o e im!or"an"e como m;s a elan"e !o r;s com!robarlo+ Por a/ora* co!ia la siguien"e macro - !ruebala e nuevo con "o os los ocumen"os+
"u. @+( @+( @+( !**%d+%ndo!>7%n>ff+*%923 o!*&+8o !s >.)%*& ("%'8+*+os23 !s "&'+ng *o1 !s B?&% o!*&+8o A "&a'@%s]&o7-$u''%n&$o(7on%n& ("%'8+*+os23 A o!*&+8o-getSupporte Ser,i)eNames23 Jo' *o1 A 5Bound2 ("%'8+*+os23 3 Ho CBound2 ("%'8+*+os23 3 MsgBox ("%'8+*+os2 *o1 3 <%x& End "u.

No"aras 6ue "raba2a e:ac"amen"e igual 6ue la an"erior* !ero ve 6ue no /emos usa o la !ro!ie a SupportedSer,ice/ames* sino el m3"o o *etSupportedSer,ice/ames?@* i1erencia os !or el !re1i2o ge" - los !ar3n"esis* los os /acen lo mismo* !ero en OOo Basic* casi "o os los m3"o os "ienen su corres!on encia en una !ro!ie a * si "e es >"il* recuer a "us clases elemen"ales e es!aKol* los ob2e"os son como los sus"an"ivos* las !ro!ie a es son a 2e"ivos - los m3"o os son verbos* as mismo - mu- im!or"an"e* las !ro!ie a es siem!re son e un "i!o e a"o so!or"a o !or OOo Basic (s"ring* in"eger* arra-* e"c+)* !or lo 6ue "ienes 6ue "ener las mismas consi eraciones (- !recauciones) vis"as en varios "emas a"r;s* !rinci!almen"e cuan o vimos variables - 1unciones* as mismo los m3"o os* cuan o se les !asan argumen"os - cuan o evuelven un valor se ven a1ec"a os !or es"as consi eraciones* !or lo 6ue rei"ero* "en cui a o con los "i!os e a"os 6ue usas+ A lo largo e es"e ca!i"ulo* "e mos"rare* en la me i a e lo !osible* el uso como m3"o o - como !ro!ie a * m;s a elan"e me limi"are a usar m3"o os - "u usaras el 6ue m;s e agra e+ cas"a a/ora* /emos acce i o a un solo ocumen"o* !ero !o emos acce er a "o os los ocumen"os ac"ualmen"e abier"os en O!enO11ice+org* co!ia - !rueba la siguien"e macro<
>7&+on Ex7l+*+& "u. @+( @+( @+( $on&'olando/>7%n>ff+*%123 o@o*u(%n&os !s >.)%*& o@o*u(%n&o !s >.)%*& oEnu(%'a@o*u(%n&os !s >.)%*& ,!**%d%(os a &odos los do*u(%n&os a*&ual(%n&% a.+%'&os o@o*u(%n&os A "&a'@%s]&o7-g%&$o(7on%n&s23 ,Enu(%'a(os *ada uno oEnu(%'a@o*u(%n&os A o@o*u(%n&os-*'%a&%Enu(%'a&+on23 ,hasMo'%El%(%n&s d%8u%l8% 8%'dad%'o 2H'u%3 (+%n&'as ha?a %l%(%n&os @o Uh+l% oEnu(%'a@o*u(%n&os-hasMo'%El%(%n&s23 ,<os d%s7la:a(os al s+gu+%n&% %l%(%n&o ? lo as+gna(os o@o*u(%n&o A oEnu(%'a@o*u(%n&os-n%x&El%(%n&23 ,Mos&'a(os %l &+7o d% do*u(%n&o MsgBox ""o? un do*u(%n&o d% " 9 H+7o@o*u(%n&o2 o@o*u(%n&o 3 5oo7 End "u. Jun*&+on H+7o@o*u(%n&o2B?R%f @o*u(%n&o !s >.)%*&3 !s "&'+ng @+( s!7l+*a*+on !s "&'+ng

A!ren ien o OOo Basic

1?1

#f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-sh%%&-"7'%adsh%%&@o*u(%n&"3 Hh%n s!7l+*a*+on A "$al*" Els%#f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-&%x&-H%x&@o*u(%n&"3 Hh%n s!7l+*a*+on A "U'+&%'" Els%#f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-7'%s%n&a&+on-0'%s%n&a&+on@o*u(%n&"3 Hh%n s!7l+*a*+on A "#(7'%ss" Els%#f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-d'a^+ng-@'a^+ng@o*u(%n&"3 Hh%n s!7l+*a*+on A "@'a^" Els%#f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-sd.->ff+*%@a&a.as%@o*u(%n&"3 Hh%n s!7l+*a*+on A "Bas%" Els%#f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-fo'(ula-Jo'(ula0'o7%'&+%s"3 Hh%n s!7l+*a*+on A "Ma&h" Els%#f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-s*'+7&-Bas+*#@E"3 Hh%n s!7l+*a*+on A "Bas+*" Els% s!7l+*a*+on A "@%s*ono*+do" End #f H+7o@o*u(%n&o A s!7l+*a*+on End Jun*&+on

Toma no"a e como /emos conver"i o una macro usa a an"eriormen"e en una 1unci4n 6ue nos evuelve el "i!o e ocumen"o abier"o+ Muc/os ob2e"os en O!enO11ice+org* solo son accesibles crean o una Lenumeraci4nM* as 6ue la es"ruc"ura e la macro an"erior la !o ras usar con 1recuencia+ Una Lenumeraci4nM* es como un lis"a o e ob2e"os* se crean con el m3"o o crea"e=numera"ion()* el m3"o o +/asMore=lemen"s() nos sirve !ara saber si "o ava /aelemen"os - el m3"o o +ne:"=lemen"()* !ermi"e movernos al siguien"e elemen"o e la enumeraci4n+ =m!ecemos con c4 igo un !oco m;s iver"i o* la siguien"e varian"e e la macro an"erior* "e cerrara L"o osM los arc/ivos e .alc 6ue no "engan cambios !or guar ar* C:ID(D%* si e2ecu"as la siguien"e macro es e un arc/ivo e .alc !o ras cerrar"e el arc/ivo con resul"a os ines!era os* como icen en mi !ueblo -sobre a ver"encia no /a- engaKo-+
"u. @+( @+( @+( @+( $on&'olando/>7%n>ff+*%223 o@o*u(%n&os !s >.)%*& o@o*u(%n&o !s >.)%*& oEnu(%'a@o*u(%n&os !s >.)%*& *o1 !s #n&%g%' o@o*u(%n&os A "&a'@%s]&o7-g%&$o(7on%n&s23 oEnu(%'a@o*u(%n&os A o@o*u(%n&os-*'%a&%Enu(%'a&+on23 @o Uh+l% oEnu(%'a@o*u(%n&os-hasMo'%El%(%n&s23 o@o*u(%n&o A oEnu(%'a@o*u(%n&os-n%x&El%(%n&23 ,1%'+f+*a(os Fu% s%a un a'*h+8o d% $al* #f H+7o@o*u(%n&o2 o@o*u(%n&o 3 A "$al*" Hh%n ,"+ no ha s+do (od+f+*ado o los *a(.+os ?a %s&an gua'dados ,%l (%&odo +sMod+f+%d d%8ol8%'a Jals% #f <o& o@o*u(%n&o-+sMod+f+%d23 Hh%n ,%l (%&odo d+s7os% *+%''a %l a'*h+8o o@o*u(%n&o-d+s7os%23 *o1 A *o1 B 1 End +f End #f 5oo7 MsgBox ""% *%''a'on un &o&al d% " 9 $"&'2*o13 9 " a'*h+8os d% $al*" End "u.

Ten muc/o cui a o con el m3"o o dispose* "e cerrar; el arc/ivo sin !regun"ar"e na a* "enga o no "enga cambios guar a os* usalo con conocimien"o e causa+ Observa como usamos la !ro!ie a isMo i1ie ()* !ara saber si el ocumen"o /a si o mo i1ica o+

1?#

5+? .rean o nues"ro !rimer LservicioM (ob2e"o)+

)a 9n"er1az e Programaci4n e la A!licaci4n (AP9 !or sus siglas en ingles) !ro!orciona* ecenas incluso cen"enas e servicios con m3"o os - !ro!ie a es !ara con"rolar mani!ular O!enO11ice+org* la !ue es consul"ar en linea (!or a/ora solo en ingles) en"ro e la !;gina 777+o!eno11ice+org /""!<00a!i+o!eno11ice+org0 ocs0common0re10com0sun0s"ar0mo ule-i:+/"ml Tambi3n !ue es escargarla - es!u3s consul"arla 1uera e lnea !ara su acceso inme ia"a o si no "ienes cone:i4n !ermanen"e a 9n"erne"* en el A!3n ice B "e mues"ro como /acerlo+ Para una consul"a 4!"ima e es"a ocumen"aci4n* lo i eal es saber e 1orma an"ici!a a 6ue servicio* m3"o o o !ro!ie a es"amos buscan o* !ara ello* "o os los ob2e"os cuen"an con unas !ro!ie a es es!eciales 6ue nos an muc/a in1ormaci4n* veamos cuales son+

!. .1

+ropiedades especiales de depuracin

Oa vimos en el "ema an"erior como saber con el m3"o o L supportsSer,iceM si un ob2e"o so!or"a un e"ermina o servicio* !ero "iene el inconvenien"e e 6ue "enemos 6ue saber an"ici!a amen"e el nombre e ic/o servicio* lo cual a veces es un !oco com!lica o+ Tambi3n vimos el uso el m3"o o *etSupportedSer,ice/ames?@ 6ue nos evuelve una ma"riz con los nombres e los servicios 6ue im!lemen"a el ob2e"o+ Para ob"ener "o a la in1ormaci4n e un ob2e"o* es"e cuen"a con "res !ro!ie a es 6ue nos in1orman e "o as las !ro!ie a es* m3"o os e 4inter2aces1 6ue im!lemen"a ic/o ob2e"o* es"as !ro!ie a es son "res< 1+ (bgQSu!!or"e 9n"er1aces #+ (bgQPro!er"ies ?+ (bgQMe"/o s )as "res son e "i!o "e:"o (s"ring) - se usan e la siguien"e manera<
"u. $onsul&ando>.)%&os123 @+( s@a&os !s "&'+ng MsgBox "&a'@%s]&o7-@.g/0'o7%'&+%s MsgBox "&a'@%s]&o7-@.g/M%&hods MsgBox "&a'@%s]&o7-@.g/"u77o'&%d#n&%'fa*%s End "u.

No "e me con1un as con es"o e las 4inter2aces1* !ara nues"ros 1ines es !er1ec"amen"e vali o 6ue los llamemos LserviciosM* sim!lemen"e !iensa en las in"er1aces como una 1orma e organizar servicios* !ero en OOo Basic no "iene im!or"ancia !or 6ue acce emos irec"amen"e a las !ro!ie a es - m3"o os e los servicios+

A!ren ien o OOo Basic

1??

)a !e6ueKa macro an"erior* "e "iene 6ue mos"rar un cua ro !ro!ie a es el ob2e"o<

e mensa2e con las

Sus m3"o os<

1?E

5+? .rean o nues"ro !rimer LservicioM (ob2e"o)+

O sus in"er1aces (servicios)<

Observa el servicio seKala o con una 1lec/a* si vamos a su ocumen"aci4n* en lnea (/""!<00a!i+o!eno11ice+org0 ocs0common0re10com0sun0s"ar01rame0p.om!onen")oa er+/"ml) o local (1ile<000o!"0o!eno11ice0s s0 ocs0common0re10com0sun0s"ar01rame0p.om!onen")oa er+/"ml)* "e ar;s cuen"a 6ue solo "iene un m3"o o loadComponentFrom:83* !ero un m3"o o mu- im!or"an"e* !ues nos !ermi"e crear ocumen"os nuevos o abrir arc/ivos e:is"en"es* lo cual veremos al "erminar es"e "ema+ A/ora !robemos con los a"os el ocumen"o ac"ivo<
"u. $onsul&ando>.)%&os223 @+( s@a&os !s "&'+ng MsgBox "&a'@%s]&o7-g%&$u''%n&$o(7on%n&23-@.g/0'o7%'&+%s MsgBox "&a'@%s]&o7-g%&$u''%n&$o(7on%n&23-@.g/M%&hods MsgBox "&a'@%s]&o7-g%&$u''%n&$o(7on%n&23-@.g/"u77o'&%d#n&%'fa*%s End "u.

=s"a vez nos mues"ra muc/os m;s a"os* Iver a J* observa e 6ue 1orma "an sim!le !o emos ob"ener muc/a in1ormaci4n* en las !ro!ie a es* no"a 6ue se nos mues"ra el "i!o e valor 6ue !ue es ob"ener e las !ro!ie a es - 6ue ser; el mismo "i!o !ara es"ablecerla si la !ro!ie a es e escri"ura+ Por e2em!lo* si e2ecu"amos la macro an"erior es e una /o2a e calculo !o remos ver en"re sus !ro!ie a es las siguien"es< 1+ Sb:A@@AO Prin"er #+ Sb:ST@9N& )oca"ion ?+ Sb:OBi=.T S/ee"s Tenemos una !ro!ie a 6ue evuelve un arra- (1)* o"ra una ca ena (#+- s"ring) - !or ul"imo un ob2e"o (?+- ob2ec")+ A/ora* en los m3"o os "ambi3n nos mues"ra in1ormaci4n valiosa* !or e2em!lo siguien o en la su!osici4n e 6ue nos in1ormamos e una /o2a e calculo* "enemos< 1+ Sb:ST@9N& ge"U@) ( voi )

A!ren ien o OOo Basic

1?5

#+ Sb:5O9( s"oreAsU@) ( Sb:ST@9N&* Sb:A@@AO ) ?+ Sb:9NT=&=@ rese"Ac"ion)ocss ( voi ) =n es"e caso "enemos el m3"o o *et:rl 6ue evuelve una ca ena (s"ring) - no necesi"a argumen"os (1)* el m3"o o store(s:83 re6uiere una ca ena (s"ring) - un arra- como argumen"os (#)* !ero no evuelve ning>n valor - !or ul"imo el m3"o o reset(ction3ocNs* evuelve un en"ero (in"eger) - no necesi"a argumen"os (?)+ Por a/ora lo im!or"an"e es saber reconocer la sin"a:is e es"a in1ormaci4n !ara usarla en nues"ras macros+ Por ul"imo* cual6uiera e los servicios mos"ra os* mues"ra la in1ormaci4n necesaria !ara ir a la ocumen"aci4n el AP9 - saber 6ue o"ros servicios so!or"a* 6ue m3"o os - 6ue !ro!ie a es+ 1+ com+sun+s"ar+ a"a"rans1er+pTrans1erable #+ com+sun+s"ar+vie7+pPrin"able ?+ com+sun+s"ar+s/ee"+pS!rea s/ee"(ocumen" .reo 6ue con es"o 6ue a emos"ra o 6ue no /a- 6ue es"ar a ivinan o na a* solo /a- 6ue /acer las !regun"as - b>s6ue as correc"as+ Para "erminar es"e "ema* en"ro e las macros 6ue "rae O!enO11ice+org* e:is"en varias 6ue nos a-u an a e!urar nues"ras macros* !ara el "ema 6ue es"amos "ra"an o* e:is"e una en es!ecial 6ue "e escribe la in1ormaci4n e las "res !ro!ie a es vis"as en un nuevo ocumen"o e Nri"er* la macro se llama ;ritedb*In2o - solo /a- 6ue !asarle el ob2e"o el cual 6ueremos ob"ener su in1ormaci4n* veamoslo con un e2em!lo<
"u. $onsul&ando>.)%&os323 Bas+*5+.'a'+%s-5oad5+.'a'?2 "Hools" 3 $all U'+&%d.g#nfo2 "&a'@%s]&o7-g%&$u''%n&$o(7on%n&23 3 End "u.

Prueba la macro an"erior* llam;n ola es e i1eren"es ocumen"os* aun6ue la !ue es e2ecu"ar siem!re - cuan o la variable !asa a a!un"e Le1ec"ivamen"eM a una variable e ob2e"o+ .on unas !e6ueKas varian"es !o emos /acer 6ue en vez e un ocumen"o e Nri"er* nos escriba la in1ormaci4n en una /o2a e calculo* en el A!3n ice B "e mues"ro como /acerlo+

!.)

5rabajando con documentos


e O!enO11ice+org* crearlos -

=n on e veremos como mani!ular ocumen"os guar arlos+ =l "raba2o com>n a la ma-ora e los ocumen"os+ !.).1 Creando nue,os documentos

.omo -a i2imos* el m3"o o 6ue nos !ermi"e crear nuevos ocumen"os se llama loadComponentFrom:83 - es un m3"o o el servicio Lcom+sun+s"ar+1rame+p.om!onen")oa erM* veamos !rimero los e2em!los - es!u3s las e:!licaciones<
>7&+on Ex7l+*+&

1?F

5+E Traba2an o con ocumen"os

"u. @+( @+( @+(

$'%ando<u%8os@o*u(%n&os123 sRu&a !s "&'+ng (!'g23 o<u%8o@o*u(%n&o !s >.)%*& sRu&a A "7'+8a&%4fa*&o'?/s*al*" o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/d%faul&"6 06 (!'g23 3

End "u.

IOa la !robas"eJ* mu- 1;cil InoJ* creamos una nueva /o2a e calculo* - si* lo e uces bien* solo /a- 6ue /acer unos !e6ueKos cambios !ara crear un ocumen"o e "e:"o<
"u. @+( @+( @+( $'%ando<u%8os@o*u(%n&os223 sRu&a !s "&'+ng (!'g23 o<u%8o@o*u(%n&o !s >.)%*& sRu&a A "7'+8a&%4fa*&o'?/s^'+&%'" o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/d%faul&"6 06 (!'g23 3 End "u.

O los em;s "i!os e ocumen"os<


"u. @+( @+( @+( $'%ando<u%8os@o*u(%n&os323 sRu&a !s "&'+ng (!'g23 o<u%8o@o*u(%n&o !s >.)%*& sRu&a A "7'+8a&%4fa*&o'?/s+(7'%ss" o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/d%faul&"6 06 (!'g23 3 sRu&a A "7'+8a&%4fa*&o'?/sd'a^" o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/d%faul&"6 06 (!'g23 3 sRu&a A "7'+8a&%4fa*&o'?/s(a&h" o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/d%faul&"6 06 (!'g23 3 End "u.

IO una base e a"osJ* !robemos<


"u. @+( @+( @+( $'%ando<u%8os@o*u(%n&os423 sRu&a !s "&'+ng (!'g23 o<u%8o@o*u(%n&o !s >.)%*& sRu&a A "7'+8a&%4fa*&o'?/s.as%" o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/d%faul&"6 06 (!'g23 3 End "u.

Nos a un error Iver a J

A!ren ien o OOo Basic

1?%

No es"a so!or"a o+ Para saber !or 6ue nos a un error* in"en"a abrir una base e a"os nueva* observa como !rimero* si 6ueremos "raba2ar con ella* el asis"en"e nos LobligaM !rimero a guar arla con un nombre - es!u3s -a !o emos mani!ularla* es"o* solo !asa con las bases e a"os* e los em;s ocumen"os !o emos crear "an"os nuevos ocumen"os como 6ueramos sin "ener 6ue guar ar na a* en"onces Icomo creamos una nueva base e a"osJ* la res!ues"a es sencilla* el mismo mo o 6ue lo /acemos es e la in"er1az e usuario* es ecir* "enemos 6ue guar ar !rimero la base e a"os<
>7&+on Ex7l+*+& "u. @+( @+( @+( @+( $'%andoBas%@%@a&os123 oB@"%'8+*+o !s >.)%*& oB@<u%8a !s >.)%*& sRu&a !s "&'+ng (!'g23

,Ru&a ? no(.'% dond% Fu%da'a gua'dada la .as% d% da&os sRu&a A "/ho(%/(au/M+/Bas%/@a&os-od." ,$'%a(os %l s%'8+*+o Fu% nos 7%'(+&% (an+7ula' .as%s d% da&os oB@"%'8+*+o A *'%a&%Cno"%'8+*%2 "*o(-sun-s&a'-sd.-@a&a.as%$on&%x&" 3 ,$'%a(os una nu%8a +ns&an*+a d% una .as% d% da&os oB@<u%8a A oB@"%'8+*+o-*'%a&%#ns&an*%23 ,Es&a.l%*%(os %l &+7o d% .as% oB@<u%8a-CR5 A "sd.*4%(.%dd%d4hsFld." ,O la gua'da(os oB@<u%8a-@a&a.as%@o*u(%n&-s&o'%!sCR52 sRu&a6 (!'g23 3 End "u.

Toma en cuen"a os cosas mu- im!or"an"es en la macro an"erior* el nombre 6ue uses* si -a e:is"e* sim!lemen"e lo reem!lazara* no "e !regun"ara na a* as 6ue "en cui a o e no usar una ru"a o nombre e una base im!or"an"e 6ue "engas - segun o* la base e a"os as crea a* no 6ue ara Lregis"ra aM en O!enO11ice+org* con lo 6ue no "en r;s acceso es e o"ros !rogramas e la a!licaci4n* m;s a elan"e veremos como regis"rar una base e a"os !or c4 igo+

!.).2

8utas de arc"i,os y directorios e las ru"as e arc/ivos -

O!enO11ice+org* al ser mul"i!la"a1orma* /ace uso irec"orios* en el 1orma"o U@)* !or e2em!lo< 1ile<000/ome0usuario0 a"os0miarc/ivo+o s 1ile<000 <0 a"os0miarc/ivo+o s

Toma en cuen"a 6ue es"e 1orma"o /ace uso e los carac"eres $-,* a-z - A-k* cual6uier o"ro car;c"er ser; conver"i o - mos"ra o con su res!ec"ivo c4 igo* !or e2em!lo* los es!acios los reem!lazara con U#$+ Siem!re 6ue le !ases una ru"a e arc/ivo a cual6uier servicio e O!enO11ice+org* !rocura* casi como una regla* !asarle la ru"a en 1orma"o Url* !ara ello* OOo Basic cuen"a con os 1unciones mu- >"iles 6ue /acen el "raba2o .onver"ToUrl - .onver"'romUrl* veamos como se usan<
"u. Ru&as@%!'*h+8os123 @+( sRu&a !s "&'+ng ,Es&a.l%*%(os una 'u&a sRu&a A "/ho(%/(au/M+ a'*h+8o d% $al*-ods"

1?G
,O la (os&'a(os MsgBox sRu&a ,5a *on8%'&+(os al fo'(a&o CR5 sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% $al*-ods" 3 ,O 8%(os %l '%sul&ado MsgBox sRu&a ,R%g'%sa(os al fo'(a&o lo*al sRu&a A $on8%'&J'o(C'l2 sRu&a 3 ,O *o(7'o.a(os Fu% %s *o''%*&o MsgBox sRu&a End "u.

5+E Traba2an o con ocumen"os

Abre varios ocumen"os e:is"en"es - e2ecu"a la siguien"e macro es e ca a uno<


"u. @+( @+( @+( @+( @o*u(%n&o!*&+8oMos&'a'@a&os23 sRu&aCR5 !s "&'+ng sRu&a$o(7l%&a !s "&'+ng sRu&a !s "&'+ng s<o(.'% !s "&'+ng ,R%f%'%n*+a al do*u(%n&o a*&+8o sRu&aCR5 A Hh+s$o(7on%n&-g%&CR523 ,$on8%'&+(os la 'u&a CR5 %n fo'(a&o lo*al sRu&a$o(7l%&a A $on8%'&J'o(C'l2 sRu&aCR5 3 ,>.&%n%(os solo %l no(.'% d%l a'*h+8o s<o(.'% A J+l%<a(%>u&>f0a&h2 sRu&aCR5 3 ,>.&%n%(os %l d+'%*&o'+o dond% %s&a %l a'*h+8o sRu&a A @+'%*&o'?<a(%ou&of0a&h2sRu&a$o(7l%&a6 D%&0a&h"%7a'a&o'233 ,Mos&'a(os los '%sul&ados MsgBox sRu&a$o(7l%&a 9 $h'2133 9 $h'2133 9 s<o(.'% 9 $h'2133 9 $h'2133 9 sRu&a End "u.

=l ob2e"o 5"isComponent* es una !alabra clave es!ecial 6ue esigna al ocumen"o es e el cual llamamos a nues"ra macro* es buena !rac"ica e !rogramaci4n* com!robar siem!re a 6ue "i!o e ocumen"o es"a a!un"an o T/is.om!onen"* no es lo mismo si e2ecu"as una macro es e la in"er1az el usuario* a 6ue lo /agas es e el 9(=* - aun es e el 9(=* e!en er; si /aces re1erencia a el es e un arc/ivo cual6uiera o es e el arc/ivo es!ecial Mis Macros* as 6ue siem!re veri1ica 6ue el ob2e"o a!un"a o con T/is.om!onen"* sea el 6ue es!eras+ Observa 6ue /acemos uso e algunas 1unciones incor!ora as e O!enO11ice+org* es"as son< 'ileNameOu"O1Pa"/* 6ue "e evuelve e la ru"a !asa a solo el nombre el arc/ivo (irec"or-Nameou"o1Pa"/* 6ue "e regresa solo el irec"orio e la ru"a el arc/ivo !asa a+ =s"as o"ras >"iles 1unciones se encuen"ran en"ro e la biblio"eca Tools e O!enO11ice+org =n nues"ro siguien"e "ema* veremos la im!or"ancia e usar las ru"as e arc/ivos irec"orios en 1orma"o Url - recuer a 6ue en S+O+ )inu:* se "iene en cuen"a la i1erencia en"re ma->sculas - min>sculas+

!.).

(briendo, *uardando y cerrando documentos

A!ren ien o OOo Basic

1?,

Abrir arc/ivos e:is"en"es es sumamen"e sencillo* usamos el mismo m3"o o usa o !ara crear nuevos ocumen"os* !ero en el !ar;me"ro ru"a* le es!eci1icamos la ubicaci4n el arc/ivo a abrir e la siguien"e manera<
"u. @+( @+( @+( !.'+%ndo@o*u(%n&os123 sRu&a !s "&'+ng (!'g23 o@o*u(%n&o !s >.)%*& ,R%%(7la:a %s&a 'u&a 7o' la 'u&a d% &u a'*h+8o sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% $al*-ods" 3 o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (!'g23 3 End "u.

Si "u arc/ivo e:is"e* el c4 igo an"erior lo abrir;* Lsiem!reM u"iliza .onver"ToUrl cuan o uses ru"as e arc/ivos o irec"orios en 1unciones e O!enO11ice+org 6ue las re6uieran Si abres una !lan"illa* es"a se com!or"ara e 1orma normal* es ecir* "e abrir; una co!ia e ic/a !lan"illa<
sRu&a A $on8%'&HoC'l2 "/ho(%/(au/(+7lan&+lla-o&&" 3 o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (!'g23 3

Pero "ambi3n !o ras 6uerer abrir la !lan"illa !ara e i"arla* en es"e caso* le in icamos en las o!ciones e a!er"ura es"o* observa como se eclara la variable mO!ciones<
"u. @+( @+( @+( !.'+%ndo@o*u(%n&os323 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& (>7*+on%s203-<a(% A "!sH%(7la&%" (>7*+on%s203-1alu% A Jals% sRu&a A $on8%'&HoC'l2 "/ho(%/(au/(+0lan&+lla-o&s" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 End "u.

)a es"ruc"ura Hcom+sun+s"ar+beans+Pro!er"-5alueH es"a con1orma a !or un !ar e valores* un nombre - un valor - es mu- 1recuen"emen"e usa a cuan o se !rograma en OOo Basic* observa como la ma"riz e la variable mO!ciones la /emos inicializa o en $* es ecir* solo con"en r; un !ar e valores* !ero mu- bien !ue e "ener m;s o!ciones como veremos m;s a elan"e+ =n la macro an"erior le es"amos in ican o la !ro!ie a AsTem!la"e (6ue seria algo as como =s Plan"illa)* si el valor es 1also ('alse)* le es"amos in ican o 6ue 6ueremos abrir la !lan"illa !ara e i"arla* en caso con"rario (True) abrir; una co!ia e la !lan"illa+ )o in"eresan"e e es"a !ro!ie a es 6ue !er1ec"amen"e la !ue es a!licar a arc/ivos e:is"en"es* es ecir* arc/ivos 6ue LnoM necesariamen"e sean !lan"illas* con es"a !ro!ie a !o emos 1orzarlos a com!or"arse como !lan"illas* !or e2em!lo* !rueba el siguien"e c4 igo con alg>n arc/ivo e:is"en"e 6ue no sea !lan"illa<
"u. @+( @+( @+( !.'+%ndo@o*u(%n&os423 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& (>7*+on%s203-<a(% A "!sH%(7la&%" (>7*+on%s203-1alu% A H'u% sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% U'+&%'-od&" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3

1E$

5+E Traba2an o con ocumen"os

End "u.

Observa como el arc/ivo es un ocumen"o e "e:"o normal (O(T)* !ero con la !ro!ie a AsTem!la"e* 1orzamos su a!er"ura como una !lan"illa+ O"ras !ro!ie a es in"eresan"es son @ea Onl- (Solo )ec"ura) !ara abrir un arc/ivo como solo lec"ura - Pass7or (.on"raseKa) !ara abrir arc/ivos con con"raseKa<
"u. @+( @+( @+( !.'+%ndo@o*u(%n&os523 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& (>7*+on%s203-<a(% A "R%ad>nl?" (>7*+on%s203-1alu% A H'u% sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% U'+&%'-od&" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 End "u. "u. @+( @+( @+( !.'+%ndo@o*u(%n&os623 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& ,5a *on&'as%\a (=s s%gu'a (>7*+on%s203-<a(% A "0ass^o'd" (>7*+on%s203-1alu% A "a.'%&%" sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% @'a^-odg" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 End "u.

Por su!ues"o !ue es combinar cual6uier can"i a en"ren en con1lic"o<


"u. @+( @+( @+( !.'+%ndo@o*u(%n&os723 sRu&a !s "&'+ng (>7*+on%s213 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& (>7*+on%s203-<a(% A "R%ad>nl?" (>7*+on%s203-1alu% A H'u% (>7*+on%s213-<a(% A "0ass^o'd" (>7*+on%s213-1alu% A "a.'%&%"

e o!ciones siem!re - cuan o no

sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% @'a^-odg" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 End "u.

Prueba a !oner la con"raseKa incorrec"a - observa el mensa2e* !or su!ues"o* !o emos solici"arle al usuario la con"raseKa - no es"a em;s veri1icar 6ue el arc/ivo e:is"a<
"u. @+( @+( @+( @+( !.'+%ndo@o*u(%n&os823 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& s$on&'a !s "&'+ng s$on&'a A H'+(2 #n7u&Box2 "#n&'odu*% la *on&'as%\a d% a7%'&u'a" 3 3 (>7*+on%s203-<a(% A "0ass^o'd"

A!ren ien o OOo Basic


(>7*+on%s203-1alu% A s$on&'a

1E1

sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% @'a^-odg" 3 ,1%'+f+*a(os Fu% %x+s&a %l a'*h+8o #f 5%n2@+'2sRu&a33 Y 0 Hh%n o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 Els% MsgBox "El a'*h+8o no %x+s&%" End #f End "u.

Mien"ras un "i!o e arc/ivo sea so!or"a o !or O!enO11ice+org* lo !o r;s abrir con el m3"o o loa .om!onen"'romU@)* en el siguien"e e2em!lo* abrimos un arc/ivo "i!o (oc* un c"m un pls<
"u. @+( @+( @+( !.'+%ndo@o*u(%n&os923 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& sRu&a A $on8%'&HoC'l2 "/ho(%/(au/$a(7a(%n&os-do*" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 sRu&a A $on8%'&HoC'l2 "/ho(%/(au/R%na*+(+%n&o-h&(" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 sRu&a A $on8%'&HoC'l2 "/ho(%/(au/da&os-xls" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 End "u.

.uan o abres un arc/ivo !or c4 igo - es"e con"iene macros* "u !ue es es"ablecer si se abre con las macros ac"iva as* e 1orma !re e"ermina a lo abre con las macros esac"iva as* as 6ue solo nos res"a saber como abrirlo con las macros ac"iva as<
"u. @+( @+( @+( !.'+%ndo@o*u(%n&os1023 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& (>7*+on%s203-<a(% A "Ma*'oEx%*u&+onMod%" (>7*+on%s203-1alu% A 4 sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% $al*-ods" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 End "u.

O"ra o!ci4n in"eresan"e* es la 6ue nos !ermi"e abrir una !resen"aci4n e iniciarla inme ia"amen"e<
"u. @+( @+( @+( !.'+%ndo@o*u(%n&os1123 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& (>7*+on%s203-<a(% A ""&a'&0'%s%n&a&+on" (>7*+on%s203-1alu% A H'u% sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% #(7'%ss-od7" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 End "u.

1E#

5+E Traba2an o con ocumen"os

Por su!ues"o* la i ea general e abrir un arc/ivo es !ara ob"ener a"os e el o !ara mani!ularlo* -a sea un ocumen"o nuevo o uno e:is"en"e* veamos como guar ar los cambios realiza os - cerrar el arc/ivo<
"u. @+( @+( @+( !.'+%ndoDua'dando@o*u(%n&os123 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% $al*-ods" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 ,!PC# 8a &odo %l *od+go Fu% Fu+%'as 7a'a (an+7ula' %l a'*h+8o MsgBox "!'*h+8o a.+%'&o ? (od+f+*ado *o''%*&a(%n&%6 7'%s+on% !*%7&a' 7a'a gua'da' ? *%''a'" ,Dua'da(os los *a(.+os o@o*-s&o'%23 ,$%''a(os %l a'*h+8o o@o*-*los%2H'u%3 End "u.

=l c4 igo an"erior 1uncionara con un arc/ivo e:is"en"e* !ero con uno nuevo no* "e ar; un error* !or su!ues"o no me creas* com!ru3balo+ )os ocumen"os "ienen una !ro!ie a es 6ue no a-u an a saber si un ocumen"o -a es"a guar a o o no<
"u. @+( @+( @+( !.'+%ndoDua'dando@o*u(%n&os223 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& sRu&a A "7'+8a&%4fa*&o'?/s*al*" o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 MsgBox o@o*-has5o*a&+on23 sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% $al*-ods" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 MsgBox o@o*-has5o*a&+on23 End "u.

=l !rimer mensa2e ebe mos"rar"e 'also ('alse) - el segun o 5er a ero (True)* como ebe ser+ Tambi3n "enemos una !ro!ie a 6ue nos a-u a a saber si un ocumen"o /a si o mo i1ica o o no* e2ecu"a la siguien"e macro* llam;n ola es e i1eren"es ocumen"os* unos abrelos - mo i1icalos an"es e e2ecu"arla* o"ros* solo abrelos - e2ecu"ala !ara 6ue no"es la i1erencia<
"u. Es&aMod+f+*ado23 MsgBox Hh+s$o(7on%n&-+sMod+f+%d23 End "u.

O o"ra m;s 6ue nos in1orma si el ocumen"o es e solo lec"ura<


"u. !.'+%ndoDua'dando@o*u(%n&os323 @+( sRu&a !s "&'+ng @+( (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

A!ren ien o OOo Basic


@+( o@o* !s >.)%*&

1E?

sRu&a A "7'+8a&%4fa*&o'?/s*al*" o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 MsgBox o@o*-+sR%ad>nl?23 (>7*+on%s203-<a(% A "R%ad>nl?" (>7*+on%s203-1alu% A H'u% sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% $al*-ods" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 MsgBox o@o*-+sR%ad>nl?23 End "u.

Oa "e imaginaras 6ue >"il es saber* an"es e guar ar un arc/ivo* si es"e es e solo lec"ura* si /a si o mo i1ica o o si -a /a si o guar a o* an"es e ver "raba2an o 2un"as "o as es"as !ro!ie a es* veamos como guar ar un arc/ivo nuevo con el m3"o o s"oreAsUrl<
"u. @+( @+( @+( !.'+%ndoDua'dando@o*u(%n&os423 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& sRu&a A "7'+8a&%4fa*&o'?/s*al*" o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 ,Es&a.l%*%(os la 'u&a ? no(.'% dond% s% gua'da'a %l a'*h+8o sRu&a A $on8%'&HoC'l2 "/ho(%/(au/!'*h+8o d% $al*-ods" 3 ,Dua'da(os %l a'*h+8o o@o*-s&o'%!sCR52 sRu&a6 (>7*+on%s23 3 End "u.

Observa como re6uiere os !ar;me"ros* la ru"a el arc/ivo - una ma"riz e !ro!ie a es* algunas e las cuales veremos a con"inuaci4n+ Toma no"a e 6ue si el arc/ivo -a e:is"e lo reem!lazara sin avisar"e !or lo 6ue es buena !rac"ica e !rogramaci4n veri1icar es"o<
"u. @+( @+( @+( !.'+%ndoDua'dando@o*u(%n&os523 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& sRu&a A "7'+8a&%4fa*&o'?/s*al*" o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 sRu&a A $on8%'&HoC'l2 "/ho(%/(au/!'*h+8o d% $al*-ods" 3 #f 5%n2 @+'2 sRu&a 33 A 0 Hh%n ,Dua'da(os %l a'*h+8o o@o*-s&o'%!sCR52 sRu&a6 (>7*+on%s23 3 Els% MsgBox "El a'*h+8o ?a %x+s&%6 no s% ha gua'dado %l nu%8o a'*h+8o" End #f End "u.

Te 6ue a e "area im!lemen"ar la !regun"a al usuario !ara reem!lazar o no el arc/ivo+ 5eamos algunas !ro!ie a es in"eresan"es !ara guar ar arc/ivos* !or e2em!lo* guar ar con con"raseKa<
"u. !.'+%ndoDua'dando@o*u(%n&os623

1EE
@+( sRu&a !s "&'+ng @+( (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" @+( o@o* !s >.)%*&

5+E Traba2an o con ocumen"os

sRu&a A "7'+8a&%4fa*&o'?/s*al*" o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 ,$o(o 8%: no &%ngo (u*ha +(ag+na*+on (>7*+on%s203-<a(% A "0ass^o'd" (>7*+on%s203-1alu% A "a.'%&%" sRu&a A $on8%'&HoC'l2 "/ho(%/(au/!'*h+8o d% $al*-ods" 3 o@o*-s&o'%!sCR52 sRu&a6 (>7*+on%s23 3 End "u.

.omo sabes* O!enO11ice+org* so!or"a la im!or"aci4n0e:!or"aci4n 1orma"os e arc/ivos* veamos como guar ar* !or e2em!lo* en 1orma"o (O.<
"u. @+( @+( @+( !.'+%ndoDua'dando@o*u(%n&os723 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& sRu&a A "7'+8a&%4fa*&o'?/s^'+&%'" o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 ,Es&a.l%*%(os %l f+l&'o a do*u(%n&os &+7o @>$ (>7*+on%s203-<a(% A "J+l&%'<a(%" (>7*+on%s203-1alu% A "M" Uo'd 97" sRu&a A $on8%'&HoC'l2 "/ho(%/(au/!'*h+8o d% Uo'd-do*" 3 o@o*-s&o'%!sCR52 sRu&a6 (>7*+on%s23 3 End "u.

e m>l"i!les

=l m3"o o s"oreAsU@) "ambi3n lo !ue es usar !ara abrir un arc/ivo e:is"en"e guar arlo con o"ro nombre<
"u. @+( @+( @+( !.'+%ndoDua'dando@o*u(%n&os823 sRu&a !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" o@o* !s >.)%*& sRu&a A $on8%'&HoC'l2 "/ho(%/(au/M+ a'*h+8o d% $al*-ods" 3 o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 sRu&a A $on8%'&HoC'l2 "/ho(%/(au/<u%8o a'*h+8o $al*-ods" 3 o@o*-s&o'%!sCR52 sRu&a6 (>7*+on%s23 3 End "u.

Para "erminar es"a ca!i"ulo* vamos a /acer un !oco m;s in"erac"ivo la a!er"ura guar a o e arc/ivos* !ermi"amos 6ue el usuario esco2a la ru"a - el arc/ivo es e un cua ro e ialogo* !ara ello* usaremos el servicio com+sun+s"ar+ui+ ialogs+'ilePicser* 6ue nos !ermi"e /acer es"o* veamos como<
"u. @+( @+( @+( @+( @+( !.'+'!'*h+8o123 o@lg!.'+'!'*h+8o as >.)%*& (!'*h+8o23 !s "&'+ng (>7*+on%s23 sRu&a !s "&'+ng o@o* !s >.)%*& ,$'%a(os %l s%'8+*+o n%*%sa'+o o@lg!.'+'!'*h+8o A $'%a&%Cno"%'8+*% 2"*o(-sun-s&a'-u+-d+alogs-J+l%0+*]%'"3

A!ren ien o OOo Basic

1E5

,Es&a.l%*%(os %l &+&ulo d%l *uad'o d% d+alogo o@lg!.'+'!'*h+8o-s%&H+&l%2""%l%**+ona %l a'*h+8o a a.'+'"3 ,$on %l (%&odo -Ex%*u&%23 (os&'a(os %l *uad'o d% d+alogo ,"+ %l usua'+o 7'%s+ona !.'+' %l (%&odo d%8u%l8% 1 Fu% 7od%(os %8alua' *o(o 1%'dad%'o 2H'u%3 ,"+ 7'%s+ona $an*%la' d%8u%l8% 0 #f o@lg!.'+'!'*h+8o-Ex%*u&%23 Hh%n ,@% fo'(a 7'%d%&%'(+nada6 solo s% 7u%d% s%l%**+ona' un a'*h+8o ,7%'o d%8u%l8% una (a&'+: d% &odos (odos *on la 'u&a *o(7l%&a ,d%l a'*h+8o %n fo'(a&o CR5 (!'*h+8o23 A o@lg!.'+'!'*h+8o-g%&J+l%s23 ,El 7'+(%' %l%(%n&o d% la (a&'+: %s %l a'*h+8o s%l%**+onado sRu&a A (!'*h+8o203 ,O lo a.'+(os o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 Els% ,"+ %l usua'+o 7'%s+ona $an*%la' MsgBox "0'o*%so *an*%lado" End #f End "u.

Si 6uieres abrir m;s e un arc/ivo a la vez* usa<


"u. @+( @+( @+( @+( !.'+'!'*h+8o223 o@lg!.'+'!'*h+8o as >.)%*& (!'*h+8os23 !s "&'+ng (>7*+on%s23 *o1 !s #n&%g%' o@lg!.'+'!'*h+8o A $'%a&%Cno"%'8+*% 2"*o(-sun-s&a'-u+-d+alogs-J+l%0+*]%'"3 o@lg!.'+'!'*h+8o-s%&H+&l%2""%l%**+ona los a'*h+8os a a.'+'"3 ,Es&a.l%*%(os Fu% s% 7u%dan s%l%**+ona' (as d% un a'*h+8o o@lg!.'+'!'*h+8o-s%&Mul&+"%l%*&+onMod%2H'u%3 #f o@lg!.'+'!'*h+8o-Ex%*u&%23 Hh%n (!'*h+8os23 A o@lg!.'+'!'*h+8o-g%&"%l%*&%dJ+l%s23 ,Mos&'a(os los a'*h+8os s%l%**+onados Jo' *o1 A 5Bound2 (!'*h+8os23 3 Ho CBound2 (!'*h+8os23 3 MsgBox $on8%'&J'o(C'l2 (!'*h+8os2*o13 3 <%x& ,H% Fu%da d% &a'%a a.'+' &odos los a'*h+8os ,o@o* A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 sRu&a6 "/.lan]"6 06 (>7*+on%s23 3 Els% MsgBox "0'o*%so *an*%lado" End #f End "u.

A/ora* mos"ramos el cua ro e ialogo &uar ar .omo* !ara !ermi"ir al usuario seleccionar car!e"a - nombre e arc/ivo on e guar ar su arc/ivo<
"u. @+( @+( @+( @+( Dua'da'!'*h+8o123 o@lgDua'da'!'*h+8o as >.)%*& (@lg>7*+on%s23 (!'*h+8o23 !s "&'+ng (>7*+on%s23 ,Csa(os %l (+s(o s%'8+*+o 7a'a a.'+' a'*h+8os6 7u%s %s %l (+s(o *uad'o d% d+alogo o@lgDua'da'!'*h+8o A $'%a&%Cno"%'8+*% 2"*o(-sun-s&a'-u+-d+alogs-J+l%0+*]%'"3 ,Es&a.l%*%(os Fu% nos (u%s&'% %l *uad'o d% d+alogo Dua'da' $o(o *on las ,*as+llas d% 8%'+f+*a*+on !u&o%x&%ns+on ? gua'da' *on *on&'as%\a ,*o(-sun-s&a'-u+-d+alogs-H%(7la&%@%s*'+7&+on-J#5E"!1E/!CH>EEHE<"#></0!""U>R@ A 2 (@lg>7*+on%s23 A !''a?223 U+&h o@lgDua'da'!'*h+8o ,#n+*+a(os %l *uad'o d% d+alogo *on las o7*+on%s s%l%**+onadas -#n+&+al+:% 2 (@lg>7*+on%s23 3

1EF

5+E Traba2an o con ocumen"os

,!g'%a(os f+l&'os d% a'*h+8os -!77%ndJ+l&%'2 "!ll f+l%s 2 - 3"6 " - " 3 -!77%ndJ+l&%'2 "@o*u(%n&o d% H%x&o >@J 2-od&3"6 " -od&" 3 -!77%ndJ+l&%'2 "Ho)a d% *al*ulo >@J 2-ods3"6 " -ods" 3 End U+&h ,5o (os&'a(os #f o@lgDua'da'!'*h+8o-Ex%*u&%23 Hh%n (!'*h+8o23 A o@lgDua'da'!'*h+8o-g%&J+l%s23 ,"olo &% (u%s&'o la 'u&a ? no(.'% d% a'*h+8o s%l%**+onado ,"olo &% '%s&a gua'da' %l a'*h+8o MsgBox $on8%'&J'o(C'l2 (!'*h+8o203 3 Els% MsgBox "0'o*%so *an*%lado" End #f End "u.

!.).)

E'portando a +DF

=:!or"ar a P(' es e O!enO11ice+org es mu- sencillo* lo es "ambi3n con OOo Basic* !rueba la siguien"e macro es e i1eren"es ocumen"os* !or a/ora* asegura"e e 6ue los arc/ivos -a es"3n guar a os an"es e e:!or"ar* "e 6ue a e "area in"en"ar a a!"arla !ara arc/ivos nuevos<
"u. @+( @+( @+( d+( Ex7o'&a'0@J23 o@o* !s >.)%*& sH+7o@o* !s "&'+ng (>7*+on%s203 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%" sRu&a !s s&'+ng Bas+*5+.'a'+%s-5oad5+.'a'?2 "Hools" 3 ,R%f%'%n*+a al do*u(%n&o d%sd% dond% s% lla(a la (a*'o o@o* A Hh+s$o(7on%n& ,>.&%n%(os %l &+7o d% do*u(%n&o6 %s&a fun*+Kn ?a la usa(os sH+7o@o* A H+7o@o*u(%n&o2 o@o* 3 ,"olo s% 7u%d%n %x7o'&a' 27o' aho'a3 "%l%*& $as% sH+7o@o* ,los s+gu+%n&% do*u(%n&os $as% "$al*"6 "U'+&%'"6 "@'a^"6 "#(7'%ss"6 "Ma&h" ,Es&a.l%*%(os %l &+7os d% f+l&'o (>7*+on%s203-<a(% A "J+l&%'<a(%" ,$on&'u+(os %l f+l&'o *o''%*&o 0@J 7a'a *ada a7l+*a*+on (>7*+on%s203-1alu% A 5$as%2sH+7o@o*3 9 "/7df/Ex7o'&" ,$ons&'u+(os la 'u&a *o''%*&a6 usa(os %l (+s(o d+'%*&o'+o ,? no(.'% d%l a'*h+8o6 solo ag'%ga(os la %x&%ns+on 0@J sRu&a A D%&J+l%<a(%U+&hou&Ex&%ns+on2 o@o*-g%&C'l 3 9 "-7df" ,Dua'da(os %l a'*h+8o o@o*-s&o'%HoCR52 sRu&a6 (>7*+on%s23 3 $as% Els% MsgBox "!7l+*a*+on no so7o'&ada" End "%l%*& End "u.

)a 1unci4n &e"'ileNameNi"/ou"=:"ension viene in"egra a en las macros e O!enO11ice+org* e la ru"a !asa a* "e evuelve "o a la ru"a !ero sin la e:"ensi4n el arc/ivo*

A!ren ien o OOo Basic

1E%

observa como solo le agregamos la e:"ensi4n P('* "ambi3n observa 6ue es"a vez LnoM /emos usa o s"oreAsUrl* sino s"oreToUrl !ara e:!or"ar el arc/ivo+ Te /abr;s a o cuen"a e 6ue las varian"es !ue en ser inmensas* !ero creo 6ue "enemos los elemen"os !ara em!ezar a au"oma"izar nues"ras "areas iarias* en los siguien"es ca!"ulos* a/on aremos en las carac"ers"icas es!eci1icas e ca a "i!o e ocumen"o+

!.).!

5areas comunes en documentos e los ocumen"os e OOo* !or

5eamos algunas "areas comunes a la ma-ora e2em!lo* !ara saber el "i"ulo el ocumen"o ac"ivo* usamos<
"u. $on&'ola'!7l+*a*+on123 @+( o@o* !s >.)%*& @+( o$on&'olado' !s >.)%*& ,El do*u(%n&o d%sd% dond% s% lla(a %s&a (a*'o o@o* A Hh+s$o(7on%n& ,El *on&'ollado' d%l do*u(%n&o a*&ual o$on&'olado' A o@o*-g%&$u''%n&$on&'oll%' ,El &+&ulo MsgBox o$on&'olado'-g%&H+&l% End "u.

Para ac"ivar el ocumen"o 6ue 6uieras* se usa el m3"o o set5ocus e la siguien"e manera* en on e ac"ivamos uran"e un segun o - me io ca a ocumen"o e OOo abier"o+
"u. @+( @+( @+( @+( $on&'ola'!7l+*a*+on223 o@o*u(%n&os !s >.)%*& o@o*u(%n&o !s >.)%*& o1%n&ana !s >.)%*& oEnu(%'a@o*u(%n&os !s >.)%*&

,!**%d%(os a &odos los do*u(%n&os a*&ual(%n&% a.+%'&os o@o*u(%n&os A "&a'@%s]&o7-g%&$o(7on%n&s23 ,Enu(%'a(os *ada uno oEnu(%'a@o*u(%n&os A o@o*u(%n&os-*'%a&%Enu(%'a&+on23 ,hasMo'%El%(%n&s d%8u%l8% 8%'dad%'o 2H'u%3 (+%n&'as ha?a %l%(%n&os @o Uh+l% oEnu(%'a@o*u(%n&os-hasMo'%El%(%n&s23 ,<os d%s7la:a(os al s+gu+%n&% %l%(%n&o ? lo as+gna(os o@o*u(%n&o A oEnu(%'a@o*u(%n&os-n%x&El%(%n&23 ,>.&%n%(os a**%so a la 8%n&ana o1%n&ana A o@o*u(%n&o-g%&$u''%n&$on&'oll%'-g%&J'a(%-g%&$o(7on%n&U+ndo^23 ,5% %n8+a(os %l fo*o 7a'a a*&+8a'la o1%n&ana-s%&Jo*us23 ,Es7%'a(os 1-5 s%gundos 7a'a 7asa' al s+gu+%n&% do*u(%n&o Ua+& 1500 5oo7 End "u.

Una !osibili a in"eresan"e* es la e con"rolar la barra e es"a o e las a!licaciones* sobre "o o !or la o!ci4n e !o er mos"rar una barra e !rogreso* como en el siguien"e e2em!lo<
"u. $on&'ola'!7l+*a*+on323 @+( oBa''aEs&ado !s >.)%*& @+( *o1 !s #n&%g%'

1EG

5+E Traba2an o con ocumen"os

,R%f%'%n*+a a la .a''a d% %s&ado d%l do*u(%n&o a*&+8o oBa''aEs&ado A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-"&a&us#nd+*a&o' ,Es&a.l%*%(os %l &%x&o +n+*+al ? %l l+(+&% d% la .a''a d% 7'og'%so oBa''aEs&ado-s&a'&2 "$on&ando "6 10 3 Jo' *o1 A 1 Ho 10 ,Es&a.l%*%(os %l 8alo' d% la .a''a d% 7'og'%so oBa''aEs&ado-s%&1alu%2 *o1 3 ,Es7%'a(os un s%gundo Ua+& 1000 <%x& ,Es +(7o'&an&% f+nal+:a' la .a''a d% %s&ado 7a'a d%8ol8%'l% %l *on&'ol a la a7l+*a*+Kn oBa''aEs&ado-%nd23 End "u.

)a macro an"erior* 1uncionar; en "o as las a!licaciones* e:ce!"o en Base* !or lo 6ue "ienes 6ue vali ar en su caso si es necesario* "ambi3n !ue es cambiar el "e:"o uran"e el !rogreso !ara ar m;s in1ormaci4n al usuario* como en<
"u. $on&'ola'!7l+*a*+on423 @+( oBa''aEs&ado !s >.)%*& @+( *o1 !s #n&%g%' ,R%f%'%n*+a a la .a''a d% %s&ado d%l do*u(%n&o a*&+8o oBa''aEs&ado A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-"&a&us#nd+*a&o' ,Es&a.l%*%(os %l &%x&o +n+*+al ? %l l+(+&% d% la .a''a d% 7'og'%so oBa''aEs&ado-s&a'&2 "0'o*%sando 5Gn%as "6 10 3 Jo' *o1 A 1 Ho 10 ,Es&a.l%*%(os %l 8alo' d% la .a''a d% 7'og'%so oBa''aEs&ado-s%&1alu%2 *o1 3 ,O %l &%x&o oBa''aEs&ado-s%&H%x&2 "0'o*%sando la lGn%a4 " 9 *o1 3 ,Es7%'a(os un s%gundo Ua+& 1000 <%x& ,Es +(7o'&an&% f+nal+:a' la .a''a d% %s&ado 7a'a d%8ol8%'l% %l *on&'ol a la a7l+*a*+Kn oBa''aEs&ado-%nd23 End "u.

O"ra o!ci4n es cambiar el zoom e la vis"a el ocumen"o+


"u. @+( @+( d+( $on&'ola'!7l+*a*+on523 o@o* !s >.)%*& o@H !s >.)%*& (>7*203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

,!**%so al (a'*o d%l do*u(%n&o o@o* A Hh+s$o(7on%n&-$u''%n&$on&'oll%'-J'a(% ,El d%s7a*hado' d% +ns&'u**+on%s a n+8%l usua'+o o@H A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-f'a(%-@+s7a&*hH%l7%'"3 ,El (S&odo Fu% d%s%a(os %)%*u&a' (>7*203-<a(% A "`oo("l+d%'-$u''%n&`oo(" ,El 8alo' d%s%ado6 %n %s&% *aso 150e (>7*203-1alu% A 150 ,E)%*u&a(os la o'd%n o@H-%x%*u&%@+s7a&*h2o@o*6 "-uno4`oo("l+d%'"6 ""6 06 (>7*23 3 End "u.

A!ren ien o OOo Basic

1E,

)a o!ci4n an"erior* solo 1uncionar; en las a!licaciones 6ue so!or"en zoom8 Nri"er* .alc* 9m!ress - (ra7* Base - Ma"/ no lo im!lemen"an* !ero no "e ar; ning>n error si llamas a la macro es e es"as a!licaciones* sim!lemen"e ignorar; la ins"rucci4n+

15$

F Traba2an o con /o2as e calculo f .alc

= 5rabajando con "ojas de calculo 7 Calc


=n el ca!i"ulo an"erior a!ren is"e a crear* abrir - guar ar arc/ivos e .alc - o"ros "i!os e ocumen"os* en es"e* a!ren eremos m;s e"alles el mane2o e la /o2a e calculo con c4 igo OOo Basic 6ue se basan en el servicio< com+sun+s"ar+s/ee"+S!rea s/ee"(ocumen"* o!or sen"a o 6ue eres un usuario me io e /o2a e calculo* !ues si no sabes 6ue es un 1orma"o con icional* !or ci"ar solo un e2em!lo* "e ser; m;s com!lica o es"ablecerlo !or c4 igo* como a!ren eremos en es"e ca!"ulo* as 6ue "e invi"o a re!asar "us a!un"es e /o2a e calculo+

=.1

5rabajando con "ojas

Para acce er a "o as las /o2as e un ocumen"o e /o2a e calculo* usamos<


"u. Hodas5asHo)as123 @+( o@o* !s >.)%*& @+( oHo)as !s >.)%*& ,!**%so al do*u(%n&o d%sd% dond% s% lla(a a %s&a (a*'o o@o* A Hh+s$o(7on%n& ,<os as%gu'a(os d% Fu% s%a una ho)a d% *al*ulo #f o@o*-su77o'&s"%'8+*%2"*o(-sun-s&a'-sh%%&-"7'%adsh%%&@o*u(%n&"3 Hh%n ,R%f%'%n*+a a H>@!" las ho)as d%l do*u(%n&o oHo)as A o@o*-g%&"h%%&s23 ,Mos&'a(os *uan&as son MsgBox oHo)as-g%&$oun&23 Els% MsgBox "<o %s un do*u(%n&o d% ho)a d% *al*ulo" End #f End "u.

Asegura"e e llamar a la macro an"erior es e una /o2a e calculo* si es"as usan o el arc/ivo es!ecial Mis Macros* "e recomien o siem!re veri1icar 6ue T/is.om!onen"* a!un"a e1ec"ivamen"e a un ocumen"o e /o2a e calculo como se vio m;s arriba* e a/ora en a elan"e* ar3 !or /ec/o 6ue lo sabes - "u e"erminaras si /aces la vali aci4n o no+ Po emos acce er a los nombres e "o as las /o2as
"u. @+( @+( @+( @+( Hodas5asHo)as223 o@o* !s >.)%*& oHo)as !s >.)%*& (<o(.'%sHo)as23 !s "&'+ng sM%nsa)% !s "&'+ng Dlo.al"*o7%-Bas+*5+.'a'+%s-5oad5+.'a'?2 "Hools" 3 o@o* A Hh+s$o(7on%n& oHo)as A o@o*-g%&"h%%&s23 ,>.&%n%(os una (a&'+: *on los no(.'%s d% &odas las ho)as (<o(.'%sHo)as23 A oHo)as-g%&El%(%n&<a(%s23 ,$on&'u+(os %l (%nsa)% sM%nsa)% A "El a'*h+8o " 9 J+l%<a(%>u&>f0a&h2 o@o*-g%&5o*a&+on23 3 9 / $h'2133 9 "&+%n% las s+gu+%n&%s ho)as" 9 $h'2133 9 $h'2133 sM%nsa)% A sM%nsa)% 9 [o+n2 (<o(.'%sHo)as236 $h'2133 3

A!ren ien o OOo Basic

151

,5o (os&'a(os MsgBox sM%nsa)% End "u.

)a 1unci4n 'ileNameOu"O1Pa"/* viene incor!ora a en O!enO11ice+org - nos evuelve solo el nombre el arc/ivo e la ru"a !asa a+ Tambi3n !o emos mos"rar los nombres e las /o2as una a una<
"u. @+( @+( @+( @+( Hodas5asHo)as323 o@o* !s >.)%*& oHo)as !s >.)%*& (<o(.'%sHo)as23 !s "&'+ng *o1 !s #n&%g%' o@o* A Hh+s$o(7on%n& oHo)as A o@o*-g%&"h%%&s23 ,>.&%n%(os una (a&'+: *on los no(.'%s d% &odas las ho)as (<o(.'%sHo)as23 A oHo)as-g%&El%(%n&<a(%s23 Jo' *o1 A 5Bound2 (<o(.'%sHo)as23 3 Ho CBound2 (<o(.'%sHo)as23 3 MsgBox (<o(.'%sHo)as2*o13 <%x& End "u.

Po emos evolver solo la /o2a 6ue nos in"eresa !or su nombre<


"u. CnaHo)a123 @+( o@o* !s >.)%*& @+( oHo)a !s >.)%*& o@o* A Hh+s$o(7on%n& ,!**%d%(os a una ho)a 7o' su no(.'% oHo)a A o@o*-g%&"h%%&s23-g%&B?<a(%2"@a&os !gos&o"3 ,"olo *o(7'o.a(os Fu% %s la ho)a *o''%*&a MsgBox oHo)a-g%&<a(%23 End "u.

Pero si la /o2a no e:is"e* la macro an"erior "e ar; un error* el m3"o o /asB-Name es mu- >"il !ara saber si una /o2a e:is"e* lo cual es in is!ensable !ara acce er a ella<
"u. @+( @+( @+( @+( CnaHo)a223 o@o* !s >.)%*& oHo)as !s >.)%*& oHo)a !s >.)%*& s<o(.'%Ho)a !s "&'+ng o@o* A Hh+s$o(7on%n& oHo)as A o@o*-g%&"h%%&s23 s<o(.'%Ho)a A "@a&os !gos&o" ,$o(7'o.a(os Fu% la ho)a %x+s&a 7a'a 7od%' a**%d%' a %lla #f oHo)as-hasB?<a(%2 s<o(.'%Ho)a 3 &h%n ,!**%d%(os a una ho)a 7o' su no(.'% oHo)a A oHo)as-g%&B?<a(%2 s<o(.'%Ho)a 3 MsgBox oHo)a-g%&<a(%23 9 " T %x+s&% %n %l do*u(%n&o" Els% MsgBox "5a ho)a T" 9 s<o(.'%Ho)a 9 "T no %x+s&%"

15#
End #f End "u.

F+1 Traba2an o con /o2as

No"a 6ue el m3"o o /asB-Name es un m3"o o el con2un"o e las /o2as (ge"S/ee"s) - "e evolver; ver a ero (True) en caso e 6ue la /o2a e:is"a - 1also ('alse) en caso e 6ue no+ =s"e m3"o o no is"ingue en"re ma->sculas - min>sculas+ Po emos acce er a una /o2a !or su n ice* recuer a 6ue los n ices en O!enO11ice+org em!iezan en cero* en las /o2as* la numeraci4n em!ieza e iz6uier a a erec/a+
"u. @+( @+( @+( CnaHo)a323 o@o* !s >.)%*& oHo)as !s >.)%*& oHo)a !s >.)%*& o@o* A Hh+s$o(7on%n& oHo)as A o@o*-g%&"h%%&s23 ,!**%d%(os a la ho)a 7o' %l +nd+*% oHo)a A oHo)as-g%&B?#nd%x2 1 3 MsgBox oHo)a-g%&<a(%23 End "u.

(el mismo mo o 6ue !or el nombre* si "ra"as e acce er a una /o2a !or un n ice 6ue no e:is"a* "e ar; un error* lo !o emos com!robar asegur;n onos 6ue el numero e n ice a consul"ar siem!re es menor al "o"al e las /o2as<
"u. @+( @+( @+( @+( CnaHo)a423 o@o* !s >.)%*& oHo)as !s >.)%*& oHo)a !s >.)%*& +<u(%'oHo)a !s #n&%g%' o@o* A Hh+s$o(7on%n& oHo)as A o@o*-g%&"h%%&s23 +<u(%'oHo)a A 1 ,$o(7'o.a(os Fu% la ho)a %x+s&a #f +<u(%'oHo)a X oHo)as-g%&$oun&23 Hh%n ,!**%d%(os a la ho)a 7o' %l +nd+*% oHo)a A oHo)as-g%&B?#nd%x2 +<u(%'oHo)a 3 MsgBox oHo)a-g%&<a(%23 Els% MsgBox "<u(%'o d% ho)a no %x+s&%" End #f End "u.

Por lo 6ue !o emos acce er a ca a /o2a e un ocumen"o* "ambi3n !or su n ice<


"u. @+( @+( @+( @+( Hodas5asHo)as423 o@o* !s >.)%*& oHo)as !s >.)%*& oHo)a !s >.)%*& *o1 !s #n&%g%' o@o* A Hh+s$o(7on%n& oHo)as A o@o*-g%&"h%%&s23 ,<o&a Fu% %l l+(+&%6 %s %l &o&al d% ho)as (%nos uno6 7o' Fu% *o(+%n:a %n 0 Jo' *o1 A 0 Ho oHo)as-g%&$oun&23T1

A!ren ien o OOo Basic

15?

oHo)a A oHo)as-g%&B?#nd%x2 *o1 3 MsgBox oHo)a-g%&<a(%23 <%x& End "u.

Toma en cuen"a 6ue si mueves una /o2a e !osici4n en relaci4n con las em;s* su n ice cambiara* no as su nombre* !ero el nombre es susce!"ible e ser cambia o !or el usuario* as 6ue siem!re com!rueba 6ue e:is"a una /o2a an"es e in"en"ar acce er a ella+ O"ra o!ci4n es evolver la /o2a ac"iva<
0u.l+* "u. Ho)a!*&+8a23 @+( oHo)a !s >.)%*& ,Ha*%(os una '%f%'%n*+a a la ho)a a*&+8a oHo)a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 Msg.ox oHo)a-g%&<a(%23 End "u.

A/ora* -a !ue es crear"e "us >"iles 1unciones !ara "raba2ar con /o2as* !or e2em!lo* una 1unci4n 6ue nos evuelva 1also o ver a ero seg>n e:is"a o no el nombre e la /o2a !asa o como argumen"o* una !rimera a!ro:imaci4n !o ra ser<
>7&+on Ex7l+*+& "u. "a.%'"+Ex+s&%Ho)a23 MsgBox Ex+s&%Ho)a2 "Ho)a3" 3 End "u. ,"a.%' s+ una ho)a %x+s&% Jun*&+on Ex+s&%Ho)a2B?1al <o(.'%Ho)a !s "&'+ng3 !s Bool%an @+( oHo)as !s >.)%*& oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 Ex+s&%Ho)a A oHo)as-hasB?<a(%2<o(.'%Ho)a3 End Jun*&+on

Po emos /acerla incluso m;s gen3rica !as;n ole el ocumen"o com!robar la e:is"encia e la /o2a - com!roban o 6ue sea una /o2a e calculo<
>7&+on Ex7l+*+& "u. "a.%'"+Ex+s&%Ho)a223 MsgBox Ex+s&%Ho)a22 Hh+s$o(7on%n&6 "Ho)a3" 3 End "u. ,"a.%' s+ una ho)a %x+s&% Jun*&+on Ex+s&%Ho)a22@o*u(%n&o !s >.)%*&6 B?1al <o(.'%Ho)a !s "&'+ng3 !s Bool%an @+( oHo)as !s >.)%*& ,"+ no %s una ho)a d% *al*ulo d%8u%l8% falso 2Jals%3 #f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-sh%%&-"7'%adsh%%&@o*u(%n&"3 Hh%n oHo)as A @o*u(%n&o-g%&"h%%&s23 Ex+s&%Ho)a2 A oHo)as-hasB?<a(%2<o(.'%Ho)a3 End #f

on e se

esea

15E

F+1 Traba2an o con /o2as

End Jun*&+on

A/ora evolvemos la /o2a<


>7&+on Ex7l+*+& "u. @%8u%l8%R%f%'%n*+a!Ho)a123 d+( oHo)a !s >.)%*& oHo)a A @%8u%l8%Ho)a12 "@a&os" 3 #f #s<ull2oHo)a3 Hh%n MsgBox "5a ho)a no %x+s&%" Els% MsgBox oHo)a-g%&<a(%23 End #f End "u. ,"a.%' s+ %x+s&% la ho)a ? '%g'%sa'la6 s+ lla(as a %s&a fun*+on6 ,&+%n%s Fu% 8%'+f+*a' Fu% s% d%8ol8+o algo *on #s<ull Jun*&+on @%8u%l8%Ho)a12B?1al <o(.'%Ho)a !s "&'+ng3 !s >.)%*& @+( oHo)as !s >.)%*& oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 #f oHo)as-hasB?<a(%2<o(.'%Ho)a3 Hh%n @%8u%l8%Ho)a1 A oHo)as-g%&B?<a(%2<o(.'%Ho)a3 End #f End Jun*&+on

(e nuevo* si lo eseas* !ue es !asarle el ocumen"o el cual "e in"eresa evolver la /o2a* observa como com!robamos "ambi3n 6ue la /o2a e:is"a* es"o lo !ue es /acer irec"amen"e o usan o la 1unci4n crea a m;s arriba* 6ue a a "u cri"erio<
"u. @%8u%l8%R%f%'%n*+a!Ho)a223 d+( oHo)a !s >.)%*& oHo)a A @%8u%l8%Ho)a22 Hh+s$o(7on%n&6 "@a&os" 3 #f #s<ull2oHo)a3 Hh%n MsgBox "5a ho)a no %x+s&%" Els% MsgBox oHo)a-g%&<a(%23 End #f End "u. ,"a.%' s+ %x+s&% la ho)a ? '%g'%sa'la6 s+ lla(as a %s&a fun*+on6 ,&+%n%s Fu% 8%'+f+*a' Fu% s% d%8ol8+o algo *on #s<ull Jun*&+on @%8u%l8%Ho)a22@o*u(%n&o !s >.)%*&6 B?1al <o(.'%Ho)a !s "&'+ng3 !s >.)%*& @+( oHo)as !s >.)%*& #f @o*u(%n&o-su77o'&s"%'8+*%2"*o(-sun-s&a'-sh%%&-"7'%adsh%%&@o*u(%n&"3 Hh%n oHo)as A @o*u(%n&o-g%&"h%%&s23 #f oHo)as-hasB?<a(%2<o(.'%Ho)a3 Hh%n @%8u%l8%Ho)a2 A oHo)as-g%&B?<a(%2<o(.'%Ho)a3 End #f End #f End Jun*&+on

A!ren ien o OOo Basic

155

=.1.1

Insertando "ojas

Para inser"ar nuevas /o2as* usamos el m3"o o inser"Ne7B-Name(Nombre* Posicion)* en on e necesi"amos el nombre e la nueva /o2a a inser"ar - la !osici4n on e la 6ueremos* la siguien"e macro agrega una /o2a nueva al inicio e las em;s<
"u. #ns%'&a'<u%8aHo)a123 @+( oHo)as !s >.)%*& oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 oHo)as-+ns%'&<%^B?<a(%2"@a&os "%7"6 03 End "u.

=2ecu"a la macro an"erior os veces - no"aras 6ue "e ar; un error* !ues no !ue es "ener os /o2as con el mismo nombre* en"onces* "enemos 6ue veri1icar si la /o2a e:is"e o no<
"u. @+( @+( @+( #ns%'&a'<u%8aHo)a223 oHo)as !s >.)%*& oHo)a !s >.)%*& s<o(.'% !s "&'+ng ,"ol+*+&a(os un no(.'% 7a'a la nu%8a ho)a s<o(.'% A H'+(2#n7u&Box2"<o(.'% d% la nu%8a ho)a"33 ,1%'+f+*a(os Fu% no %s&% 8a*+o #f s<o(.'% XY "" Hh%n ,R%f%'%n*+a a &odas las ho)as oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,1%'+f+*a(os s+ ?a %x+s&% la ho)a #f <o& oHo)as-hasB?<a(%2s<o(.'%3 Hh%n ,"+ no %x+s&% la +ns%'&a(os %l +n+*+o oHo)as-+ns%'&<%^B?<a(%2s<o(.'%6 03 End #f ,R%f%'%n*+a a la nu%8a ho)a o a la %x+s&%n&% oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?<a(%2s<o(.'%3 ,5a a*&+8a(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%&!*&+8%"h%%&2oHo)a3 End #f End "u.

Observa 6ue si la /o2a -a e:is"e* solo /acemos una re1erencia a ella+ )a ul"ima linea !ara ac"ivar la /o2a no es necesaria !ara 6ue la mani!ules* solo en caso e 6ue 6uieras 6ue el usuario /aga o mani!ule algo en ella* si no* !ue es omi"irla+ =s sumamen"e 1recuen"e en !rograma ores noveles* 6uerer Lac"ivarM "o a /o2a 6ue se 6uiera mani!ular* es"o no es necesariamen"e as* e /ec/o* la ma-or !ar"e e las veces* con la re1erencia es su1icien"e+ Tambi3n !o emos agregar la /o2a al 1inal e "o as las em;s<
"u. @+( @+( @+( #ns%'&a'<u%8aHo)a323 oHo)as !s >.)%*& oHo)a !s >.)%*& s<o(.'% !s "&'+ng s<o(.'% A H'+(2#n7u&Box2"<o(.'% d% la nu%8a ho)a"33 #f s<o(.'% XY "" Hh%n oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 #f <o& oHo)as-hasB?<a(%2s<o(.'%3 Hh%n ,"+ no %x+s&% la +ns%'&a(os al f+nal oHo)as-+ns%'&<%^B?<a(%2 s<o(.'%6 oHo)as-g%&$oun&23 3 End #f

15F
oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?<a(%2s<o(.'%3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%&!*&+8%"h%%&2oHo)a3 End #f End "u.

F+1 Traba2an o con /o2as

Observa en"onces 6ue el argumen"o !osici4n !ue e "omar valores es e $ - /as"a el "o"al e /o2as evuel"o !or ge".oun"() !ero incluso si es ma-or a es"e valor* no "e ar; error - la inser"ara al 1inal e las em;s /o2as+ Si 6uieres inser"ar la /o2a an"es o es!u3s e la /o2a ac"iva* !rimero "ienes 6ue encon"rar el n ice e la /o2a ac"iva<
"u. @+( @+( d+( #nd+*%Ho)a!*&+8a23 *o1 !s #n&%g%' oHo)a!*&+8a !s >.)%*& oHo)a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 Jo' *o1 A 0 Ho Hh+s$o(7on%n&-g%&"h%%&s-g%&$oun&23 T 1 oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?#nd%x2*o13 #f oHo)a-g%&<a(%23 A oHo)a!*&+8a-g%&<a(%23 &h%n MsgBox "El +nd+*% d% la ho)a a*&+8a %s4 " 9 *o1 Ex+& Jo' End #f <%x& End "u.

eue !o emos conver"ir a una 1unci4n<


Jun*&+on Bus*a'#nd+*%Ho)a2B?1al <o(.'%Ho)a !s "&'+ng3 !s #n&%g%' @+( *o1 !s #n&%g%' d+( oHo)a !s >.)%*& Jo' *o1 A 0 Ho Hh+s$o(7on%n&-g%&"h%%&s-g%&$oun&23 T 1 oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?#nd%x2*o13 #f oHo)a-g%&<a(%23 A <o(.'%Ho)a &h%n Bus*a'#nd+*%Ho)a A *o1 Ex+& Jun*&+on End #f <%x& Bus*a'#nd+*%Ho)a A T1 End Jun*&+on

Observa 6ue si no la encuen"ra el valor evuel"o es -1* lo cual /a- 6ue evaluar en caso necesario+ Para inser"ar an"es e la /o2a ac"iva usamos<
"u. @+( @+( @+( @+( @+( #ns%'&a'<u%8aHo)a423 oHo)as !s >.)%*& oHo)a !s >.)%*& oHo)a!*&+8a !s >.)%*& s<o(.'% !s "&'+ng 7os !s #n&%g%' s<o(.'% A H'+(2#n7u&Box2"<o(.'% d% la nu%8a ho)a"33 #f s<o(.'% XY "" Hh%n oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 #f <o& oHo)as-hasB?<a(%2s<o(.'%3 Hh%n ,Bus*a(os %l +nd+*% d% la ho)a a*&+8a 7os A Bus*a'#nd+*%Ho)a2oHo)a!*&+8a-g%&<a(%233 oHo)as-+ns%'&<%^B?<a(%2 s<o(.'%6 7os 3 End #f

A!ren ien o OOo Basic

15%

oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?<a(%2s<o(.'%3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%&!*&+8%"h%%&2oHo)a3 End #f End "u.

Para inser"ar es!u3s 1unci4n Buscar9n iceco2a<

e la /o2a ac"iva* solo sumas uno al valor

evuel"o !or la

7os A Bus*a'#nd+*%Ho)a2oHo)a!*&+8a-g%&<a(%233 B 1

Po emos aven"urar una !rimera versi4n e una 1unci4n gen3rica !ara inser"ar una nueva /o2a e calculo on e 6uieras<
,$o(o fun*+on '%g'%sa(os la nu%8a ho)a +ns%'&ada o la %x+s&%n&% %n su *aso ,0os+*+on4 1 A #n+*+o , 2 A J+nal , 3 A !n&%s d% la ho)a a*&+8a , 4 A @%s7u%s d% la ho)a a*&+8a Jun*&+on g%&<u%8aHo)a2B?1al <o(.'%Ho)a !s "&'+ng6 B?1al 0os+*+on !s #n&%g%'3 !s >.)%*& @+( oHo)as !s >.)%*& @+( oHo)a!*&+8a !s >.)%*& @+( +0os !s #n&%g%' #f <o(.'%Ho)a XY "" Hh%n oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 "%l%*& $as% 0os+*+on $as% 1 4 +0os A 0 $as% 2 4 +0os A oHo)as-g%&$oun&23 $as% 3 4 +0os A oHo)a!*&+8a-g%&Rang%!dd'%ss23-"h%%& $as% 4 4 +0>s A oHo)a!*&+8a-g%&Rang%!dd'%ss23-"h%%& B 1 $as% Els% 4 +0os A 0 End "%l%*& #f <o& oHo)as-hasB?<a(%2<o(.'%Ho)a3 Hh%n oHo)as-+ns%'&<%^B?<a(%2<o(.'%Ho)a6 +0os3 End #f g%&<u%8aHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?<a(%2<o(.'%Ho)a3 End #f End Jun*&+on

No"a como es"amos ob"enien o el n ice e la /o2a ac"iva* con lo cual nos evi"amos "ener 6ue /acer un ciclo !or las /o2as el ocumen"o+ Pue es me2orar es"a 1unci4n !ara inser"ar la /o2a en cual6uier o"ro ocumen"o* as como ingeni;r"elas !ara !e irle al usuario el n>mero e /o2as nuevas 6ue 6uiera inser"ar e inser"arlas !or su!ues"o* esa* es "u "area+

=.1.2

&orrando "ojas

Para borrar /o2as* usamos el m3"o o removeB-Name(Nombre)* on e Nombre es el nombre e la /o2a 6ue 6ueremos borrar* no es"a e m;s recomen ar"e usar con cui a o el borra o e /o2as* aun6ue algo 6ue me gus"a muc/o e O!enO11ice+org* es 6ue muc/as e las acciones 6ue /acemos !or c4 igo* son susce!"ibles e es/acerse e 1orma normal con la barra e /erramien"as o con .T@)Rk* el borra o e /o2as es una e ellas* com!ru3balo<
"u. Bo''a'Ho)a123 @+( oHo)as !s >.)%*&

15G

F+1 Traba2an o con /o2as

oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,Bo''a(os la ho)a 7o' su no(.'% oHo)as-'%(o8%B?<a(%2 "Ho)a11" 3 End "u.

Por su!ues"o no !ue es borrar una /o2a 6ue no e:is"a* as 6ue veri1calo<
"u. Bo''a'Ho)a223 @+( oHo)as !s >.)%*& @+( s<o(.'% !s "&'+ng s<o(.'% A H'+(2 #n7u&Box2 "<o(.'% d% la ho)a a .o''a'" 33 #f s<o(.'% XY "" Hh%n oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 #f oHo)as-hasB?<a(%2 s<o(.'% 3 Hh%n oHo)as-'%(o8%B?<a(%2 s<o(.'% 3 Els% MsgBox "5a ho)a no %x+s&%" End #f End #f End "u.

Pue es borrar la /o2a ac"iva<


"u. Bo''a'Ho)a!*&+8a23 @+( oHo)as !s >.)%*& @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 oHo)as-'%(o8%B?<a(%2 oHo)a!*&+8a-g%&<a(%23 3 End "u.

=2ecu"a la macro an"erior /as"a 6ue no 6ue e ni una* claro* no "e e2ara !or 6ue un ocumen"o e /o2a e calculo !or lo menos ebe e "ener una /o2a* !ara evi"ar el error 6ue "e a al "ra"ar e borrar la ul"ima /o2a* vali a 6ue siem!re 6ue e m;s e una<
"u. Bo''a'Ho)a323 @+( oHo)as !s >.)%*& @+( s<o(.'% !s "&'+ng s<o(.'% A H'+(2 #n7u&Box2 "<o(.'% d% la ho)a a .o''a'" 33 #f s<o(.'% XY "" Hh%n oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 #f oHo)as-hasB?<a(%2 s<o(.'% 3 !nd oHo)as-g%&$oun&23Y1 Hh%n oHo)as-'%(o8%B?<a(%2 s<o(.'% 3 Els% MsgBox "5a ho)a no %x+s&% o solo Fu%da una" End #f End #f End "u.

=.1.

Mo,iendo "ojas

A!ren ien o OOo Basic

15,

Para mover /o2as usamos el m3"o o moveB-Name(Nombreco2a* PosicionNueva)* on e Nombreco2a "iene 6ue ser el nombre e una /o2a e:is"en"e<
"u. Mo8%'Ho)a123 @+( oHo)as !s >.)%*& oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,Mo8%(os la ho)a %s7%*+f+*ada al +n+*+o oHo)as-(o8%B?<a(%2 "Ho)a2"6 0 3 End "u.

A/ora* la movemos al 1inal<


"u. Mo8%'Ho)a223 @+( oHo)as !s >.)%*& oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,Mo8%(os la ho)a %s7%*+f+*ada al f+nal oHo)as-(o8%B?<a(%2 "Ho)a2"6 oHo)as-g%&$oun&23 3 End "u.

Si usas una versi4n an"erior a la ?+1* "en cui a o con mover "us /o2as Lno m;s all; e la ul"ima /o2aM* !ues "e !ue e !rovocar un error en "o a la a!licaci4n* es"e error (bug) se re!or"o en su momen"o (/""!<00777+o!eno11ice+org0issues0s/o7Qbug+cgiJi l,#E%%)* - /a si o arregla o a !ar"ir e es"a versi4n (?+1)* aun as* usa siem!re ge".oun"() !ara asegurar"e+ 5amos a /acer algo mu- iver"i o* como -a sabemos ob"ener los nombres e in ices e ca a /o2a* - a/ora /emos a!ren i o a mover /o2as* /agamos una macro 6ue nos or ene al1ab3"icamen"e nues"ras /o2as* !ara ello nos a!o-aremos en una 1unci4n 6ue or ena la ma"riz 6ue le !asemos<
"u. 0'u%.a>'d%na'123 @+( (@a&os23 Dlo.al"*o7%-Bas+*5+.'a'+%s-5oad5+.'a'?2 "Hools" 3 (@a&os23 A !''a?2"5"6"l"6"o"6"f"6"%"6"8"6"?"6"d"6"h"6"u"63 ,Mos&'a(os los da&os d%so'd%nados MsgBox [o+n2 (@a&os236 $h'2133 3 ,>'d%na(os los da&os (@a&os23 A Bu..l%"o'&5+s&2 (@a&os23 3 ,Mos&'a(os los da&os o'd%nados MsgBox [o+n2 (@a&os236 $h'2133 3 End "u.

)a 1unci4n BubbleSor")is"* viene incor!ora a a las macros e O!enO11ice+org - usa el m3"o o e burbu2a !ara or enar la lis"a !asa a* no es el algori"mo m;s e1icien"e* !ero en lis"as !e6ueKas - a a su sencillez e im!lemen"aci4n es !er1ec"amen"e v;li a !ara nues"ros 1ines* si 6uieres saber m;s e es"e algori"mo visi"a< /""!<00es+7isi!e ia+org07isi0Bubblesor" Tambi3n !ue es crear"e "u versi4n e es"e algori"mo* a6u es"a la ma* !ue es or enar e 1orma ascen en"e o escen en"e<
"u. 0'u%.a>'d%na'223 @+( (@a&os23 (@a&os23 A !''a?2"5"6"l"6"o"6"f"6"%"6"8"6"?"6"d"6"h"6"u"63 ,Mos&'a(os los da&os d%so'd%nados MsgBox [o+n2 (@a&os236 $h'2133 3

1F$

F+1 Traba2an o con /o2as

,>'d%na(os los da&os $all >'d%na'Bu'.u)a2 (@a&os236 1 3 ,Mos&'a(os los da&os o'd%nados MsgBox [o+n2 (@a&os236 $h'2133 3 End "u. , @a&os A (a&'+: d% da&os a o'd%na' , >'d%n A 1 as*%nd%&% , 2 d%s*%nd%n&% "u. >'d%na'Bu'.u)a2B?R%f @a&os23 !s 1a'+an&6 B?1al >'d%n !s #n&%g%'3 @+( <u(@a&os !s 5ong @+( *o1 !s 5ong6 *o2 !s 5ong <u(@a&os A CBound2@a&os3 Jo' *o1 A 1 Ho <u(@a&os Jo' *o2 A <u(@a&os Ho *o1 "&%7 T1 #f >'d%n A 1 Hh%n #f @a&os2*o23 X @a&os2*o2 T 13 Hh%n $all #n&%'*a(.+o @a&os2*o236 @a&os2*o2 T 13 End #f Els% #f <o& 2@a&os2*o23 X @a&os2*o2 T 133 Hh%n $all #n&%'*a(.+o @a&os2*o236 @a&os2*o2 T 13 End #f End #f <%x& *o2 <%x& *o1 End "u. ,Ma*'o 7a'a +n&%'*a(.+a' un 7a' d% 8alo'%s "u. #n&%'*a(.+o2B?R%f @a&o1 !s 1a'+an&6 B?R%f @a&o2 !s 1a'+an&3 @+( sH(7 !s 1a'+an& sH(7 A @a&o1 @a&o1 A @a&o2 @a&o2 A sH(7 End "u.

A/ora si* nues"ra macro !ara or enar /o2as en acci4n* !ue es usar la 1unci4n o macro 6ue !re1ieras !ara or enar la ma"riz e nombres ob"eni a* incluso* crear"e "u !ro!ia versi4n<
>7&+on Ex7l+*+& ,>'d%na(os las ho)as 7o' o'd%n alfa.%&+*o "u. >'d%na'Ho)as23 @+( oHo)as !s >.)%*& @+( (<o(.'%s23 !s 1a'+an& @+( aH(7 !s 1a'+an& @+( *o1 !s #n&%g%' @+( oHo)a !s >.)%*& ,R%f%'%n*+a a &odas las ho)as d%l do*u(%n&o oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,Ma&'+: *on los no(.'%s d% &odas las ho)as (<o(.'%s23 A oHo)as-g%&El%(%n&<a(%s23 ,>'d%na(os la (a&'+: $all >'d%na'Bu'.u)a2 (<o(.'%s236 1 3 ,R%*o''%(os la (a&'+: Jo' *o1 A 5Bound2 (<o(.'%s23 3 Ho CBound2 (<o(.'%s23 3

A!ren ien o OOo Basic

1F1

,El Gnd+*% %n la (a&'+:6 s%'a %l (+s(o d% la 7os+*+Kn oHo)as-(o8%B?<a(%2 (<o(.'%s2*o136 *o1 3 <%x& *o1 End "u.

=.1.)

Copiando "ojas

Para co!iar /o2as usamos el m3"o o co!-B-Name ( Nombreco2a* NombreNuevo* Posicion ) e la siguien"e manera<
"u. $o7+a'Ho)a123 @+( oHo)as !s >.)%*& oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,$o7+a(os la "ho)a2" *o(o "<u%8a Ho)a2" al +n+*+o oHo)as-*o7?B?<a(%2 "Ho)a2"6 "<u%8a Ho)a2"6 0 3 End "u.

Por su!ues"o el nombre e la /o2a a co!iar L ebeM e e:is"ir - el nombre nuevo e la /o2a Lno ebeM e:is"ir* lo me2or* es evaluarlo an"es<
"u. @+( @+( @+( $o7+a'Ho)a223 oHo)as !s >.)%*& s<o(.'% !s "&'+ng s<o(.'%<u%8o !s "&'+ng s<o(.'% A "@a&os" s<o(.'%<u%8o A "@a&os nu%8os" oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,"olo *o7+a la ho)a6 s+ la ho)a a *o7+a' %x+s&% ? %l no(.'% nu%8o no %x+s&% #f oHo)as-hasB?<a(%2s<o(.'%3 !nd 2<o& oHo)as-hasB?<a(%2s<o(.'%<u%8o33 Hh%n oHo)as-*o7?B?<a(%2 s<o(.'%6 s<o(.'%<u%8o6 oHo)as-g%&$oun&23 3 Els% MsgBox "<o s% *o7+o la ho)a" End #f End "u.

Po emos in"en"ar co!iar una /o2a - asegurarnos e 6ue el nombre no e:is"a* "oman o como base el nombre ac"ual e la /o2a* !or e2em!lo<
"u. @+( @+( @+( @+( @+( $o7+a'Ho)a!*&+8a23 oHo)as !s >.)%*& oHo)a !s >.)%*& s<o(.'% !s "&'+ng s<o(.'%2 !s "&'+ng *o1 !s 5ong ,R%f%'%n*+a a &odas las ho)a oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,<o(.'% d% la ho)a a*&+8a

1F#
s<o(.'% A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&<a(%23

F+1 Traba2an o con /o2as

,$on&ado' 7a'a *ons&'u+' %l nu%8o no(.'% *o1 A 1 ,El nu%8o no(.'% %s +gual (as un gu+on .a)o ? un nu(%'o s<o(.'%2 A s<o(.'% 9 "/" 9 Jo'(a&2*o13 ,Ha*% %l *+*lo (+%n&'as %l nu%8o no(.'% %x+s&a @o Uh+l% oHo)as-hasB?<a(%2 s<o(.'%2 3 ,"+ ?a %x+s&% +n*'%(%n&a(os %l *on&ado' *o1 A *o1 B 1 ,? *ons&'u+(os %l nu%8o no(.'% s<o(.'%2 A s<o(.'% 9 "/" 9 Jo'(a&2*o13 5oo7 ,"al% d%l *+*lo *uando %l nu%8o no(.'% no %x+s&a6 %n&on*%s ,7od%(os *o7+a' la ho)a al f+nal 2o dond% Fu+%'as3 oHo)as-*o7?B?<a(%2s<o(.'%6 s<o(.'%26 oHo)as-g%&$oun&233 ,R%f%'%n*+a a la nu%8a ho)a oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?<a(%2s<o(.'%23 ,O la a*&+8a(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%&!*&+8%"h%%&2oHo)a3 End "u.

Solo "e res"a !regun"arle al usuario cuan"as nuevas /o2as 6uiere e inser"ar ese n>mero e /o2as nuevas* !ero+++ esa es "u "area<

=.1.!

8enombrando "ojas

Para renombrar /o2as usamos el m3"o o se"Name* e la siguien"e manera<


"u. $a(.+a'<o(.'%Ho)a123 @+( oHo)as !s >.)%*& oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,$a(.+a(os %l no(.'% d% la ho)a VHolaW6 7o' V0'u%.aW oHo)as-g%&B?<a(%2"Hola"3-s%&<a(%2 "0'u%.a" 3 End "u.

Tambi3n !ue es usar el n ice !ara re1erir"e a la /o2a<


"u. $a(.+a'<o(.'%Ho)a223 @+( oHo)as !s >.)%*& oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 oHo)as-g%&B?#nd%x2 0 3-s%&<a(%2 "Das&os" 3 End "u.

=s recomen able vali ar 6ue la /o2a a renombrar e:is"a - 6ue el nuevo nombre no<

A!ren ien o OOo Basic


"u. @+( @+( @+( $a(.+a'<o(.'%Ho)a323 oHo)as !s >.)%*& s<o(.'%!*&ual !s "&'+ng s<o(.'%<u%8o !s "&'+ng s<o(.'%!*&ual A "R%su(%n" s<o(.'%<u%8o A "H%'(+nado" oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23

1F?

,1al+da(os Fu% la ho)a %x+s&a ? %l nu%8o no(.'% no #f oHo)as-hasB?<a(%2s<o(.'%!*&ual3 !nd 2<o& oHo)as-hasB?<a(%2s<o(.'%<u%8o33 Hh%n oHo)as-g%&B?<a(%2 s<o(.'%!*&ual 3-s%&<a(%2 s<o(.'%<u%8o 3 Els% MsgBox "<o s% '%no(.'o la ho)a" End #f End "u.

Solo !ara iver"irnos* cambiamos los nombres e las /o2as !or n>meros<
"u. $a(.+a'<o(.'%Ho)a423 @+( oHo)as !s >.)%*& @+( *o1 !s #n&%g%' oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 Jo' *o1 A 1 Ho oHo)as-g%&$oun&23 oHo)as-g%&B?#nd%x2 *o1T1 3-s%&<a(%2 *o1 3 <%x& End "u.

A/ora !or le"ras* el c4 igo siguien"e !o ra 1allar"e si "ienes m;s e #5 /o2as en "u ocumen"o* "u "area es ecirme I!or6u3J - corregirlo* en algunos casos* Lel cambio e nombre no "en r; e1ec"oM* "ambi3n* "e "oca averiguar I!or6u3J
"u. $a(.+a'<o(.'%Ho)a523 @+( oHo)as !s >.)%*& @+( *o1 !s #n&%g%' oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 Jo' *o1 A 1 Ho oHo)as-g%&$oun&23 oHo)as-g%&B?#nd%x2 *o1T1 3-s%&<a(%2 $h'2 *o1B64 3 3 <%x& End "u.

O los meses el aKo<


"u. @+( @+( @+( @+( $a(.+a'<o(.'%Ho)a623 oHo)as !s >.)%*& *o1 !s #n&%g%' 5+(+&% !s B?&% sM%s !s "&'+ng oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 ,0a'a Fu% solo *a(.+% las 7'+(%'as 12 #f oHo)as-g%&$oun&23 Y 12 Hh%n 5+(+&% A 12 Els% ,> las Fu% ha?a s+ son (%nos d% 12 5+(+&% A oHo)as-g%&$oun&23

1FE
End #f Jo' *o1 A 1 Ho 5+(+&% ,>.&%n%(os %l no(.'% d%l (%s sM%s A Jo'(a&2 @a&%"%'+al2O%a'2@a&%36*o1613 6"(((("3 oHo)as-g%&B?#nd%x2 *o1T1 3-s%&<a(%2 sM%s 3 <%x& End "u.

F+1 Traba2an o con /o2as

Te 6ue a e "area lograr com!le"ar los meses !ara 6ue sean los oce el aKo* es ecir* "ienes 6ue inser"ar los meses 6ue "e /agan 1al"a si el ocumen"o "iene menos e las /o2as necesarias* si "iene m;s e oce borra las sobran"es+

=.1.=

%cultando y mostrando "ojas

Mos"rar - ocul"ar /o2as es mu- sencillo* solo /a- 6ue es"ablecer su !ro!ie a is5isible en ver a ero (True) o 1also ('alse) seg>n se re6uiera e la siguien"e manera<
"u. >*ul&a'Ho)a123 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oHo)a!*&+8a-+s1+s+.l% A Jals% End "u.

)a macro an"erior "e ocul"ara la /o2a ac"iva* si la e2ecu"as varias veces "e ira ocul"an o "us /o2as /as"a 6ue solo 6ue e una* si solo /a- una no "e ar; error* !ero la e2ar; visible !or 6ue* como sabes* "iene 6ue /aber al menos una /o2a visible en un ocumen"o e .alc+ Tambi3n !ue es ocul"ar una /o2a !or me io e su n ice* como en<
"u. >*ul&a'Ho)a223 @+( oHo)a !s >.)%*& oHo)a A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x213 oHo)a-+s1+s+.l% A Jals% End "u.

Toma en cuen"a 6ue< el n ice e la /o2a L ebeM e:is"ir* sino "e ar; un error* as mismo* si ocul"as una /o2a* es"a no cambia e n ice !or lo 6ue !ue es usar el mismo !ara acce er a ella* aun6ue es"e ocul"a* la siguien"e macro al"erna en"re mos"rar - ocul"ar la !rimer /o2a el ocumen"o<
"u. >*ul&a'Ho)a323 @+( oHo)a !s >.)%*& oHo)a A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x203 oHo)a-+s1+s+.l% A <o& oHo)a-+s1+s+.l%

A!ren ien o OOo Basic

1F5

End "u.

.omo -a /abr;s in"ui o* !ara mos"rar una /o2a ocul"a sim!lemen"e /a- 6ue es"ablecer es"a !ro!ie a en ver a ero (True)
"u. >*ul&a'Ho)a423 @+( oHo)a !s >.)%*& oHo)a A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x213 oHo)a-+s1+s+.l% A H'u% End "u.

=l siguien"e c4 igo "e ocul"a "o as las /o2as* e:ce!"o la /o2a ac"iva<
"u. @+( @+( @+( >*ul&a'Ho)a523 oHo)a!*&+8a !s >.)%*& oHo)as !s >.)%*& *o1 !s 5ong oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oHo)as A Hh+s$o(7on%n&-g%&"h%%&s23 Jo' *o1 A 0 Ho oHo)as-g%&$oun&23 T 1 #f oHo)as-g%&B?#nd%x2*o13-g%&<a(% XY oHo)a!*&+8a-g%&<a(%23 Hh%n oHo)as-g%&B?#nd%x2*o13-+s1+s+.l% A Jals% End #f <%x& End "u.

Tu "area es /acer la 1unci4n inversa* mues"ra "o as las /o2as ocul"as+

=.1.A

+roteccin y desproteccin de "ojas

Para "erminar es"e ca!"ulo* veamos como !ro"eger una /o2a* es ecir* es"ablecer una con"raseKa !ara evi"ar mo i1icaciones a la misma* a em;s* recuer a 6ue !ara 6ue la !ro"ecci4n e cel as in ivi uales sea e1ec"iva* la /o2a ebe es"ar !ro"egi a+ Para !ro"eger una /o2a* usamos el m3"o o (rotect* !as;n ole como argumen"o* la con"raseKa 6ue 6ueremos es"ablecer* !or su!ues"o* !ue es !asarle una con"raseKa vaca* con lo 6ue la /o2a no es"ar; mu!ro"egi a 6ue igamos* !ero creeme* muc/os usuarios no saben es!ro"eger una /o2a* aun sin con"raseKa+
"u. 0'o&%g%'Ho)a123 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,0a'a Fu% 8%as Fu% s+ (% o*u''%n o&'as *on&'as%\as oHo)a!*&+8a-0'o&%*&2 "l%&(%+n" 3 End "u.

O !ara es!ro"eger* usamos el m3"o o un(rotect* si la /o2a "iene con"raseKa* /a6ue !as;rsela como argumen"o* si no es correc"a* el m3"o o no "e evolver; ning>n error como en la in"er1az el usuario 6ue "e avisa 6ue la con"raseKa es incorrec"a* !ara saber si "uvo 3:i"o o no la

1FF

F+1 Traba2an o con /o2as

es!ro"ecci4n* /a- 6ue veri1icar la !ro!ie a is(rotected* si es ver a era (True) la /o2a sigue !ro"egi a* si es 1alsa ('alse)* la /o2a es"a es!ro"egi a+
"u. 0'o&%g%'Ho)a223 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 #f oHo)a!*&+8a-+s0'o&%*&%d Hh%n MsgBox "5a ho)a %s&a 7'o&%g+da" ,#n&%n&a(os d%s7'o&%g%'la oHo)a!*&+8a-un0'o&%*&2 "l%&(%+n" 3 ,1%'+f+*a(os s+ &u8o %x+&o la d%s7'o&%**+Kn #f oHo)a!*&+8a-+s0'o&%*&%d Hh%n MsgBox "5a *on&'as%\a no %s *o''%*&a" Els% MsgBox "Ho)a d%s7'o&%g+da *o''%*&a(%n&%" End #f Els% MsgBox "5a ho)a <> %s&a 7'o&%g+da" End #f End "u.

Te 6ue a e "area mo i1icar la macro !ara solici"ar al usuario la con"raseKa* veri1icar si es correc"a o no - arle solo "res in"en"os !ara ingresarla+ ';cil* Iver a J+ .omo comen"arios 1inales* si in"en"as !ro"eger una /o2a 6ue -a "iene con"raseKa* no ob"en r;s ning>n error* !ero la /o2a !ermanecer; con la con"raseKa original* !ara cambiarla* !rimero "ienes 6ue es!ro"egerla es!u3s cambiarla+ .uan o !ro"eges una /o2a e in"en"as /acer mo i1icaciones a es"a* !or e2em!lo* escribir en una cel a* "am!oco re"ornar; ning>n error* !ero no ser; e1ec"iva la mo i1icaci4n* !rocura usar la !ro!ie a !ara saber si una /o2a es"a o no !ro"egi a ( is(rotected)* !ara ac"uar en consecuencia+

=.2

8e2erencia a ran*os

Seguro 6ue sabes* si eres usuario /abi"ual e una /o2a e calculo* 6ue el "raba2o con rangos es esencial en es"os ocumen"os* !or lo mismo* el "raba2o con rangos es e c4 igo OOo Basic es igualmen"e im!or"an"e* -a vimos como aseguramos 6ue es"amos "raba2an o en una /o2a e calculo* as 6ue e2o a "u cri"erio es"a vali aci4n+ =n la siguien"es secciones nos cen"raremos en a!ren er como /acer re1erencia a is"in"os "i!os e rangos !ara es!u3s !o er mani!ularlos* arles 1orma"o o /acer con ellos lo 6ue 6ueramos+

=.2.1

8e2erencia a celdas indi,iduales

Po emos acce er a las cel as e una /o2a e calculo e varias maneras* !rinci!almen"e !or su nombre o !or su !osici4n* !ero mu- im!or"an"e* !rimero "ienes 6ue acce er a la /o2a on e es";n las cel as 6ue "e in"eresa mani!ular* como acce er a /o2as es un "ema 6ue

A!ren ien o OOo Basic

1F%

-a /emos "ra"a o* !ero en ca a e2em!lo !o r;s no"ar 6ue re!asamos es"os conocimien"os* la 1orma m;s sim!le e /acer re1erencia a una cel a es !or su nombre<
"u. !**%so$%ldas123 @+( oHo)a!*&+8a !s >.)%*& @+( o$%lda !s >.)%*& ,R%f%'%n*+a a la ho)a a*&+8a oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a a la *%lda E5 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E5" 3 ,Mos&'a(os %l *on&%n+do d% la *%lda MsgBox o$%lda-g%&"&'+ng23 ,Mos&'a(os la ho)a6 *olu(na ? f+la *o''%s7ond+%n&% a %s&a *%lda MsgBox "Ho)a4 " 9 o$%lda-g%&$%ll!dd'%ss-"h%%& 9 $h'2133 9 / "$olu(na4 " 9 o$%lda-g%&$%ll!dd'%ss-$olu(n 9 $h'2133 9 / "J+la4 " 9 o$%lda-g%&$%ll!dd'%ss-Ro^ End "u.

Observa como com!robamos en la ul"ima linea* 6ue e1ec"ivamen"e /emos /ec/o re1erencia a la cel a 6ue nos in"eresa* es ecir a la cel a =5* 6ue en columna - 1ila es la E* !or 6ue recor amos 6ue los n>mero e columna - 1ila em!iezan en $* observa la es"ruc"ura ge".ellA ress* es"a* es mu- im!or"an"e !ues a muc/os m3"o os !ara mani!ular cel as* se les "ienen 6ue !asar es"ruc"uras como es"a* solo "iene "res !ro!ie a es* la /o2a (valor "i!o in"eger* es"e* "ambi3n em!ieza en $) on e es"a la cel a re1erencia a* la columna (long) - la 1ila (long) e es"a cel a+ A/ora acce emos a una cel a !or su !osici4n* recuer a 6ue los n ices e inicio es e c4 igo em!iezan en $* !or lo 6ue !ara /acer re1erencia a la cel a =5* "enemos 6ue !oner la columna E - 1ila E* el !rimer valor es !ara la columna - el segun o !ara la 1ila* no es"a e m;s comen"ar"e 6ue "engas cui a o e no es"ablecer una !osici4n 1uera e la /o2a* !ues "e ar; un error* !or e2em!lo* es"ablecer el valor e la columna en #5F o su!erior si "raba2os con la versi4n #+: e O!enO11ice+org* en la versi4n ?+: "enemos 1$#E columnas !ara "raba2ar* !or su!ues"o* si el valor e la 1ila - columna se la solici"as al usuario* L eberasM e vali ar 6ue los valores !ro!orciona os son correc"os+
"u. @+( @+( @+( @+( !**%so$%ldas223 oHo)a!*&+8a !s >.)%*& o$%lda !s >.)%*& $ol !s 5ong J+l !s 5ong oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,<os as%gu'a(os Fu% s%a un 8alo' *on 1al ? Fu% s%a 7os+&+8o *on !.s $ol A !.s21al2#n7u&Box2"@a(% la *olu(na"333 J+l A !.s21al2#n7u&Box2"@a(% la f+la"333 ,<os as%gu'a(os Fu% %s&%n d%n&'o d% los 'angos *o''%*&os #f $ol X oHo)a!*&+8a-$olu(ns-$oun& !nd J+l X oHo)a!*&+8a-Ro^s-$oun& Hh%n ,!**%d%(os a la *%lda o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 $ol6J+l 3 MsgBox o$%lda-g%&"&'+ng23 Els% MsgBox "1alo'%s d% *%lda +n*o''%*&os" End #f End "u.

1FG

F+# @e1erencia a rangos

=s 1recuen"e 6ue el acceso !or nombre a una cel a se use !ara es"ablecer valores !rees"ableci os* como ""ulos e cam!os !or e2em!lo* - el acceso !or !osici4n es mu- >"il !ara realizar ciclos* como el e2em!lo siguien"e 6ue inser"a el aKo como "i"ulo en la cel a A1 - los meses el aKo e la cel a A# a la A1?+
"u. @+( @+( @+( !**%so$%ldas323 oHo)a!*&+8a !s >.)%*& o$%lda !s >.)%*& *o1 !s #n&%g%' oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a a *%lda 7o' no(.'% o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!1" 3 o$%lda-s%&"&'+ng2 O%a'2@a&%3 3 Jo' *o1 A 1 Ho 12 ,R%f%'%n*+a a *%lda 7o' 7os+*+on o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 06*o1 3 o$%lda-s%&"&'+ng2 Jo'(a&2 @a&%"%'+al2O%a'2@a&%36*o1613 6"(((("3 3 <%x& End "u.

Observa 6ue /emos es"a o usan o el m3"o o ge"S"ring() !ara ob"ener el con"eni o e una cel a - se"S"ring(5alor As S"ring) !ara es"ablecerlo* m;s a elan"e veremos "o as las !osibili a es 6ue "enemos !ara in"ro ucir u ob"ener a"os e las cel as e nues"ra /o2a e calculo* as como sus i1erencias+

=.2.2

8e2erencia a un ran*o de celdas

Po emos acce er a un rango e cel as !or su nombre* usan o el mismo m3"o o usa o !ara acce er a una cel a<
"u. !**%soRango123 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a al 'ango !14E5 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14E5" 3 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRango3 End "u.

Para acce er a un rango e cel as !or su !osici4n* /a- 6ue usar un m3"o o i1eren"e< ge".ell@angeB-Posi"ion* 6ue re6uiere e cua"ro argumen"os+
"u. !**%soRango223 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23

A!ren ien o OOo Basic

1F,

,"%l%**+ona(os %l 'ango B14B10 oRango A oHo)a!*&+8a-g%&$%llRang%B?0os+&+on2 1606169 3 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRango3 End "u.

Observa 6ue a/ora usamos el m3"o o ge".ell@angeB-Posi"ion* los argumen"os !asa os a es"e m3"o o son cua"ro* la columna - 1ila on e em!ieza nues"ro rango - la columna 1ila on e "ermina* recuer a 6ue los n>meros e 1ila - columna em!iezan en $* algunos !iensan 6ue los os >l"imos argumen"os son el anc/o - al"o el rango a usar* no es as* es"os argumen"os "ambi3n son n>meros e n ices e columna - 1ila res!ec"ivamen"e - "ienes 6ue "ener la !recauci4n e es"ablecer los segun os iguales o mas gran es 6ue los !rimeros* sino* "e ar; un error en "iem!o e e2ecuci4n - !or su!ues"o sin sobre!asar el m;:imo e 1ilas - columnas e la /o2a e calculo+ Observa "ambi3n* como en la ul"ima lnea seleccionamos el rango re1erencia o+ O"ra !osibili a * es usar nombres e1ini os e rangos* es ecir* a6uellos 6ue es"ablecemos es e el L.ua ro e nombreM en la /o2a e calculo* -a sabes* ese cua ro e lis"a es!legable (combobo:) 6ue es"a al la o e la barra e 1ormulas* 6ue "ambi3n !ue es es"ablecer es e el men> 9nsertar | 2ombres | -efinir cu-a "eclas e acceso r;!i o son ."rlR'?+ =n el siguien"e e2em!lo* seleccionamos el rango e cel as llama o (a"os+ Toma no"a e 6ue si el rango no e:is"e en al /o2a es e on e se in"en"a re1erenciar* "e ar; un error+
"u. !**%soRango323 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,"%l%**+ona(os %l 'ango 7o' su no(.'% d%f+n+do oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "@a&os" 3 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRango3 End "u.

Por su!ues"o* si el nombre el rango no e:is"e* "e ar; un error en "iem!o e e2ecuci4n* es"e m3"o o no es sensible a ma->sculas o min>sculas+ Para /acer re1erencia a la /o2a correc"a on e e:is"a el rango con nombre* observa como ob"enemos la /o2a on e se encuen"ra+ Si el usuario es el 6ue !ro!orciona el nombre el rango* como siem!re* es me2or vali ar 6ue el rango e:is"a+
"u. @+( @+( @+( @+( !**%soRango423 oHo)a !s >.)%*& oRango !s >.)%*& oRangos0o'<o(.'% !s >.)%*& s<o(.'%Rango !s "&'+ng ,R%f%'%n*+a a &odos los 'angos *on no(.'% %n la ho)a d% *al*ulo oRangos0o'<o(.'% A Hh+s$o(7on%n&-<a(%dRang%s23 s<o(.'%Rango A H'+(2 #n7u&Box2 "Es*'+.% %l no(.'% d%l 'ango a s%l%**+ona'" 3 3 ,$o(7'o.a(os Fu% %l 'ango %x+s&a #f oRangos0o'<o(.'%-hasB?<a(%2 s<o(.'%Rango 3 Hh%n oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?#nd%x2oRangos0o'<o(.'%-g%&B?<a(%2s<o(.'%Rango3-g%&R%f%''%d$%lls-g%&Rang%!d d'%ss-"h%%&3 ,"%l%**+ona(os %l 'ango 7o' su no(.'% d%f+n+do oRango A oHo)a-g%&$%llRang%B?<a(%2 s<o(.'%Rango 3 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRango3

1%$
Els%

F+# @e1erencia a rangos

MsgBox "El 'ango " 9 s<o(.'%Rango 9 " no %x+s&% %n %l do*u(%n&o" End #f End "u.

No con1un as es"os nombres e rangos* con los 6ue !ue es es"ablecer en el men> -atos | -efinir rango * -a 6ue es"os >l"imos se re1ieren a rangos consi era os como una "abla e a"os* e /ec/o* !ue es "ener un mismo nombre !ara un rango e cel as - !ara un rango e a"os* !ero son os cosas i1eren"es* los segun os* los veremos m;s a elan"e+ (e los rangos e cel as* "ambi3n es !osible ob"ener in1ormaci4n* !ara ello se /ace uso e la es"ruc"ura .ell@angeA ress a "ravez el m3"o o ge"@angeA ress 6ue "e evuelve in1ormaci4n e< la /o2a on e es"a el rango* la columna - 1ila on e comienza - la columna - 1ila on e acaba+
"u. @+( @+( @+( @+( !**%soRango523 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o@+'$%lda !s >.)%*& sH(7 !s "&'+ng oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "<o(.'%s" 3 ,>.&%n%(os la +nfo'(a*+Kn d% la d+'%**+Kn o@+'$%lda A oRango-g%&Rang%!dd'%ss23 ,$ons&'u+(os %l &%x&o +nfo'(a&+8o sH(7 A "El 'ango %s&a %n la ho)a4 " 9 o@+'$%lda-"h%%& 9 $h'2133 9 / "$olu(na #n+*+o4 " 9 o@+'$%lda-"&a'&$olu(n 9 $h'2133 9 / "J+la #n+*+o4 " 9 o@+'$%lda-"&a'&Ro^ 9 $h'2133 9 / "$olu(na J+n4 " 9 o@+'$%lda-End$olu(n 9 $h'2133 9 / "J+la J+n4 " 9 o@+'$%lda-EndRo^ MsgBox sH(7 End "u.

=s"a es"ruc"ura "ambi3n es usa a !or varios m3"o os !ara mani!ular rangos 6ue veremos m;s a elan"e* !or lo 6ue es im!or"an"e 6ue la "engas !resen"e+

=.2.

8e2erencia a ,arios ran*os de celdas

.uan o en la in"er1az el usuario* /acemos la selecci4n e un rango - man"enemos !resiona a la "ecla ."rl - /acemos un segun a selecci4n e un rango - as sucesivamen"e* es"amos /ablan o e un con2un"o e rangos 6ue "iene sus carac"ers"icas !ar"iculares !ara su con"rol - mane2o+ Para seleccionar varios rangos es e c4 igo* !rimero ebemos crear el Lcon"ene orM e es"os rangos* veamos como<
"u. @+( @+( @+( @+( !**%so/!/Rangos123 oHo)a!*&+8a !s >.)%*& oRangos !s >.)%*& oRango !s >.)%*& o@+'Rango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,$'%a(os %l *on&%nd%' 7a'a los 'angos

A!ren ien o OOo Basic

1%1

oRangos A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-sh%%&-"h%%&$%llRang%s"3 ,$'%a(os la %s&'u*&u'a $%llRang%!dd'%ss n%*%sa'+a o@+'Rango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14B2" 3-g%&Rang%!dd'%ss23 ,O lo ag'%ga(os al *on&%n%do' d% 'angos oRangos-addRang%!dd'%ss2 o@+'Rango 6Jals% 3 ,!FuG solo ha*%(os '%f%'%n*+a al 'ango oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E14D2" 3 ,O lo ag'%ga(os al *on&%n%do' d% 'angos6 no&a *o(o &%n%(os Fu% usa' ,%l (S&odo g%&Rang%!dd'%ss 7a'a 7asa'l% %l a'gu(%n&o *o''%*&o oRangos-addRang%!dd'%ss2 oRango-g%&Rang%!dd'%ss23 6Jals% 3 ,!FuG ag'%ga(os un 'ango d+'%*&a(%n&% al *on&%n%do' ,&o(a %n *u%n&a Fu% s% 8an a*u(ulando oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "@44E5" 3-g%&Rang%!dd'%ss23 6Jals% 3 ,$o(7'o.a(os Fu% %s&=n *o''%*&os s%l%**+on=ndolos Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRangos3 End "u.

No "e con1un as* los "res lneas on e se agrega el rango con el m3"o o a @angeA ress() son iguales* lo 6ue cambia es la 1orma en 6ue /acemos re1erencia a la irecci4n el rango* si vas em!ezan o a !rogramar* "e recomien o ir esglosan o ca a lnea* con el "iem!o - la e:!eriencia* !o r;s concen"rar c4 igo e 1orma m;s na"ural* !or a/ora* usa "o as las lneas 6ue consi eres !er"inen"es !ara 6ue "u c4 igo lo en"ien as con solo verlo+ Por su!ues"o* "ambi3n e es"os rangos !o emos ob"ener in1ormaci4n* !or e2em!lo* los nombres e los rangos 6ue con"iene<
"u. !**%so/!/Rangos223 @+( oHo)a!*&+8a !s >.)%*& @+( oRangos !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,$'%a(os %l *on&%nd%' 7a'a los 'angos oRangos A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-sh%%&-"h%%&$%llRang%s"3 ,!g'%ga(os los 'angos Fu% Fu%'a(os oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 ,Mos&'a(os las d+'%**+on%s d% los 'angos MsgBox oRangos-g%&Rang%!dd'%ss%s!s"&'+ng23 End "u. "!14!2" 3-g%&Rang%!dd'%ss23 6Jals% 3 "B44B5" 3-g%&Rang%!dd'%ss23 6Jals% 3 "$74$8" 3-g%&Rang%!dd'%ss23 6Jals% 3 "@104@11" 3-g%&Rang%!dd'%ss23 6Jals% 3 "E134E14" 3-g%&Rang%!dd'%ss23 6Jals% 3

No"a como los rangos es una ca ena larga e las irecciones e los rangos se!ara os !or un L 8 M* si lo 6uieres me2or !resen"able* reem!laza los !un"os - comas !or un sal"o e lnea con el siguien"e c4 igo+
,5o un+*o Fu% ha*%(os %s '%%(7la:a' los f 7o' sal&os d% l+n%a sH(7 A [o+n2 "7l+&2oRangos-g%&Rang%!dd'%ss%s!s"&'+ng236"f"36$h'21333 ,Mos&'a(os %l '%sul&ado MsgBox sH(7

)os rangos "ambi3n se !ue en remover e la colecci4n+++


"u. !**%so/!/Rangos423 @+( oHo)a!*&+8a !s >.)%*&

1%#
@+( oRangos !s >.)%*&

F+# @e1erencia a rangos

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,$'%a(os %l *on&%nd%' 7a'a los 'angos oRangos A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-sh%%&-"h%%&$%llRang%s"3 ,!g'%ga(os los 'angos Fu% Fu%'a(os oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 ,$o(7'o.a(os Fu% %s&Sn los 'angos MsgBox oRangos-g%&Rang%!dd'%ss%s!s"&'+ng23 ,R%(o8%(os %l 'ango d%s%ado oRangos-'%(o8%Rang%!dd'%ss2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "@104@11" 3-g%&Rang%!dd'%ss23 3 ,1ol8%(os a 8%'+f+*a' Fu% s% ha?a '%(o8+do MsgBox oRangos-g%&Rang%!dd'%ss%s!s"&'+ng23 End "u. "!14!2" 3-g%&Rang%!dd'%ss23 6Jals% 3 "B44B5" 3-g%&Rang%!dd'%ss23 6Jals% 3 "$74$8" 3-g%&Rang%!dd'%ss23 6Jals% 3 "@104@11" 3-g%&Rang%!dd'%ss23 6Jals% 3

.ui a o* si el rango 6ue 6uieres remover no e:is"e en la colecci4n* "e ar; un error en "iem!o e e2ecuci4n* lo me2or es vali ar an"es 6ue e:is"e+++
,1al+da(os Fu% %l 'ango a '%(o8%' %x+s&a %n la *ol%**+Kn #f oRangos-hasB?<a(%2"Ho)a1-@104@11"3 Hh%n ,R%(o8%(os %l 'ango d%s%ado oRangos-'%(o8%Rang%!dd'%ss2oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "@104@11" 3-g%&Rang%!dd'%ss233 End #f

=l c4 igo an"erior "iene un !roblema 6ue "al vez "e !ue a causar un !e6ueKo inconvenien"e* cuan o consul"amos con /asB-Name si el rango e:is"e* observa 6ue le !asamos el nombre el rango como "e:"o (Hco2a1+(1$<(11H) - 6ue inclu-e el nombre e la /o2a on e es"a el rango* !ero observa como al m3"o o remove@angeA ress* le !asamos un ob2e"o (oco2aAc"iva) 6ue no necesariamen"e "iene 6ue corres!on er con el nombre e /o2a (co2a1)* e "area "e 6ue a garan"izar 6ue se corres!on e uno con el o"ro* es ecir* 6ue el ob2e"o 6ue a!un"a a la /o2a* e1ec"ivamen"e corres!on a en nombre con el rango !asa o+

=.2.)

8e2erencia a 2ilas y columnas

)as 1ilas - columnas e una /o2a e calculo siguen sien o rangos e cel as* lo >nico 6ue las carac"eriza* en 1unci4n e /acer re1erencia a ellas* es 6ue abarcan la "o"ali a e cel as 6ue con"ienen* como en+
"u. !**%so$olu(na123 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a a la *olu(na ! oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14!65536" 3 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRango3

A!ren ien o OOo Basic


End "u.

1%?

No"a como "omamos e la 1ila 1 - /as"a la F55?F 6ue es el n>mero "o"al e 1ilas con 6ue !or a/ora cuen"an las /o2as e calculo e .alc* si la columna com!le"a "ienen un nombre* "ambi3n es !osible acce er !or me io e es"e nombre<
"u. !**%so$olu(na223 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a a la *olu(na ! Fu% s% no(.'o 7'%8+a(%n&% oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "$la8%s" 3 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRango3 End "u.

Po emos /acer lo mismo con las 1ilas<


"u. !**%soJ+las123 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a a la f+la 10 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!104#110" 3 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRango3 End "u. "u. !**%soJ+las223 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a a la f+la 15 Fu% s% no(.'o 7'%8+a(%n&% oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "R%g+s&'os" 3 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRango3 End "u.

OOo Basic cuen"a con m3"o os es!ec1icos !ara mani!ular 1ilas - columnas* !ero !ro!iamen"e /ablan o* al acce er !or me io e es"os m3"o os* e2an e ser rangos e cel as !asan a ser ob2e"os ScTable@o7sOb2 - ScTable.olumnsOb2 res!ec"ivamen"e como lo emos"ramos a con"inuaci4n<
"u. !**%so$olu(na323 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a al 'ango !14E1 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14E1" 3 ,Mos&'a(os %l &+7o d% o.)%&o

1%E
MsgBox oRango-g%&#(7l%(%n&a&+on<a(%23 ,R%no(.'a(os %l o.)%&o oRango a**%d+%ndo a sus *olu(nas oRango A oRango-g%&$olu(ns23 ,1%'+f+*a(os %l &+7o d% o.)%&o MsgBox oRango-g%&#(7l%(%n&a&+on<a(%23 End "u.

F+# @e1erencia a rangos

Tra"a e seleccionar el rango "al - como 6ue a al 1inal el c4 igo - veras 6ue "e a un error* "ambi3n* "ra"a e acce er a la in1ormaci4n e e!uraci4n como se vio en ca!"ulos an"eriores - no"a como im!lemen"an m3"o os - !ro!ie a es i1eren"es+ =s el mismo caso !ara las 1ilas<
"u. !**%soJ+las323 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a al 'ango !14!10 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14!10" 3 ,Mos&'a(os %l &+7o d% o.)%&o MsgBox oRango-g%&#(7l%(%n&a&+on<a(%23 ,R%no(.'a(os %l o.)%&o oRango a**%d+%ndo a sus f+las oRango A oRango-g%&Ro^s23 ,1%'+f+*a(os %l &+7o d% o.)%&o MsgBox oRango-g%&#(7l%(%n&a&+on<a(%23 End "u.

Por lo an"erior* la recomen aci4n es 6ue man"engas "u re1erencia original al rango uses una segun a variable si necesi"as acce er a las 1ilas o columnas com!le"as como "e mues"ro en el siguien"e e2em!lo<
"u. @+( @+( @+( @+( !**%soJ+las$olu(nas123 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& oJ+l !s >.)%*& o$ol !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a al 'ango $54E10 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "$54E10" 3 ,Mos&'a(os %l &+7o d% o.)%&o MsgBox oRango-g%&#(7l%(%n&a&+on<a(%23 ,$'%a(os una nu%8a '%f%'%n*+a a las f+las ? *olu(nas o$ol A oRango-g%&$olu(ns23 oJ+l A oRango-g%&Ro^s23 ,1%'+f+*a(os %l &+7o d% o.)%&o MsgBox o$ol-g%&#(7l%(%n&a&+on<a(%23 9 " T " 9 oJ+l-g%&#(7l%(%n&a&+on<a(%23 End "u.

)os m3"o os ge".olumns - ge"@o7s* siem!re (aun6ue en el rango e:is"a solo una 1ila o columna) "e evolver; un con2un"o e .olumnas - 'ilas* !ara !o er "ener acceso a los m3"o os - !ro!ie a es is!onibles en los rangos* as como !ara !o er /acer selecciones* "enemos 6ue acce er a ca a 1ila o columna e 1orma in ivi ual o cons"ruir un con"ene or e rangos !ara acce er a varias 1ilas o columnas* veamos los os casos< Para seleccionar la !rimer columna el rango

A!ren ien o OOo Basic


"u. @+( @+( @+( !**%soJ+las$olu(nas223 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o$ol !s >.)%*&

1%5

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a al 'ango $54E10 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "$54E10" 3 ,$'%a(os una nu%8a '%f%'%n*+a a la 7'+(%' *olu(na d%l 'ango la $ o$ol A oRango-g%&$olu(ns23-g%&B?#nd%x203 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2o$ol3 End "u.

Para seleccionar la !rimer 1ila el rango


"u. @+( @+( @+( !**%soJ+las$olu(nas323 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& oJ+l !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a al 'ango $54E10 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "$54E10" 3 ,$'%a(os una nu%8a '%f%'%n*+a a la s%gunda f+la d%l 'ango la 6 oJ+l A oRango-g%&Ro^s23-g%&B?#nd%x213 ,O lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oJ+l3 End "u.

Por su!ues"o* !o emos seleccionar una 1ila - una columna al mismo "iem!o
"u. !**%soJ+las$olu(nas423 @+( oHo)a!*&+8a !s >.)%*& @+( oRangos !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,$'%a(os %l *on&%nd%' 7a'a los 'angos oRangos A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-sh%%&-"h%%&$%llRang%s"3 ,!g'%ga(os la *olu(na E ? la f+la 10 al *on&%n%do' oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&$olu(ns23-g%&B?#nd%x243-g%&Rang%!dd'%ss236Jals% 3 oRangos-addRang%!dd'%ss2 oHo)a!*&+8a-g%&Ro^s23-g%&B?#nd%x293-g%&Rang%!dd'%ss236Jals% 3 ,$o(7'o.a(os Fu% %s&an *o''%*&os s%l%**+onandolos Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2oRangos3 End "u.

.omo -a no"as"e* !o emos acce er irec"amen"e a la 1ila o columna 6ue 6ueramos e cual6uier /o2a !or me io e la colecci4n e es"as (ge".olumns - ge"@o7s) - !or me io el n ice (ge"B-9n e:) a la 1ila o columna esea a<
oHo)a!*&+8a-g%&$olu(ns23-g%&B?#nd%x243 oHo)a!*&+8a-g%&Ro^s23-g%&B?#nd%x293 ,$olu(na E ,J+la 10

1%F

F+# @e1erencia a rangos

Por a/ora /emos vis"o como /acer re1erencia a i1eren"es "i!os e rangos* en ca!"ulos !os"eriores* veremos como mani!ular es"os rangos* mover* inser"ar* co!iar* e"c+* !ara "erminar es"e "ema e /acer re1erencia a rangos* veamos uno mu- im!or"an"e* la selecci4n ac"ual+

=.2.!

8e2erencia a la seleccin actual

Traba2ar con la selecci4n ac"ual* es ecir* con lo 6ue el usuario "enga selecciona o al momen"o e llamar a una macro* es una ac"ivi a mu- com>n* - "ambi3n* mu- !ro!ensa a errores (-a sabes como son los usuarios)* "ra"aremos e man"ener el con"rol e la selecci4n* siem!re 6ue sea !osible+ Para acce er a la selecci4n ac"ual en"ro e nues"ra /o2a e calculo usamos el m3"o o ge".urren"Selec"ion() e la siguien"e manera<
"u. "%l%**+on!*&ual123 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 MsgBox o"%l-g%&#(7l%(%n&a&+on<a(%23 End "u.

Pero cui a o* nues"ra selecci4n !ue en ser muc/as cosas* vuelve a e2ecu"ar la macro an"erior* "enien o ca a vez* selecciona o los siguien"es elemen"os< 1+ Una cel a #+ Un rango e cel as ?+ 5arios rangos e cel as E+ Un ob2e"o e ibu2o (ebes e ob"ener* si lo /icis"e en el mismo or en 6ue -o* la siguien"e lis"a e mensa2es< 1+ Sc.ellOb2 #+ Sc.ell@angeOb2 ?+ Sc.ell@angesOb2 E+ com+sun+s"ar+ ra7ing+Sv:S/a!e.ollec"ion Observa la i1erencia en"re una sola cel a (1) - un rango (# - ?)* - no"a "ambi3n la i1erencia en un rango (#) - varios (?)* es"o es mu- im!or"an"e !ara ac"uar en consecuencia !or 6ue son ob2e"os i1eren"es - !or lo "an"o im!lemen"an m3"o os - !ro!ie a es i1eren"es* !or e2em!lo* vamos a "ra"ar e ver el con"eni o e una cel a* e2ecu"a la macro siguien"e* "enien o selecciona o ca a uno e los "res !rimeros rangos menciona os+
"u. "%l%**+on!*&ual223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 MsgBox o"%l-g%&"&'+ng23 End "u.

Si seleccionas"e una sola cel a - es"a con"ena algo* la macro an"erior "e "iene 6ue mos"rar ese con"eni o* en las os siguien"es selecciones* e un rango - varios rangos* "e "uvo 6ue /aber a o el error LPro!ie a o m3"o o no encon"ra oM* !or 6ue e1ec"ivamen"e* el m3"o o

A!ren ien o OOo Basic

1%%

ge"S"ring() solo es"a im!lemen"a o en cel as in ivi uales* !or ello es mu- im!or"an"e iscriminar la selecci4n 6ue /a-a /ec/o el usuario* !rimer in"en"o<
"u. "%l%**+on!*&ual323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 "%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)" MsgBox "Mu? .+%n s%l%**+onas&% solo una *%lda" $as% ""*$%llRang%>.)" MsgBox "H% 7asas&% un 7o*o" $as% ""*$%llRang%s>.)" MsgBox "<o &+%n%s '%(%d+o" $as% Els% MsgBox "<o s% n+ Fu% s%l%**+onas&%" End "%l%*& End "u.

A/ora -a sabemos 6ue es lo 6ue el usuario selecciono* !ero e!en er; e 6ue 6ueramos /acer con la selecci4n !ara ac"uar en consecuencia* !or e2em!lo* su!ongamos 6ue nues"ra macro re6uiere 6ue el usuario seleccione una - solo una cel a* !o emos solo in1ormarle como en el siguien"e e2em!lo<
"u. "%l%**+on!*&ual423 @+( o"%l !s >.)%*& @+( o$%lda !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 "%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)" o$%lda A o"%l MsgBox o$%lda-g%&"&'+ng23 $as% Els% MsgBox ""% '%Fu+%'% s%l%**+ona' solo C<! *%lda" End "%l%*& End "u.

O !o emos "omar solo la !rimer cel a el rango o e los rangos 6ue /a-a selecciona o como en<
"u. "%l%**+on!*&ual523 @+( o"%l !s >.)%*& @+( o$%lda !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 "%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)" o$%lda A o"%l $as% ""*$%llRang%>.)" ,"+ %s un solo 'ango6 a**%d%(os a la 7'+(%' *%lda o$%lda A o"%l-g%&$%llB?0os+&+on2 060 3 $as% ""*$%llRang%s>.)" ,"+ son 8a'+os 'angos6 7'+(%'o a**%d%(os al 7'+(%' 'ango ,*on g%&B?#nd%x203 ? d%s7u%s a la 7'+(%' *%lda o$%lda A o"%l-g%&B?#nd%x203-g%&$%llB?0os+&+on2 060 3 $as% Els% MsgBox ""% '%Fu+%'% s%l%**+ona' una *%lda" End "%l%*&

1%G
#f <o& #s<ull2o$%lda3 Hh%n MsgBox o$%lda-g%&"&'+ng23 End #f End "u.

F+# @e1erencia a rangos

No"a 6ue aun "enemos 6ue evaluar 6ue o.el a* a!un"e a un rango v;li o* recuer a 6ue en la in"er1az el usuario* !ue e /aber m;s elemen"os seleccionables* como recomen aci4n mal3vola* nunca con1es en el usuario* siem!re v;li a sus a"os+ =s im!or"an"e 6ue recuer es 6ue en el caso e un rango* la !rimer cel a siem!re ser; la su!erior iz6uier a* - en un gru!o e rangos* el rango $ "ambi3n siem!re ser; el 6ue es"e m;s arriba - a la iz6uier a* no im!or"a si 1ue el ul"imo rango en ser selecciona o+ Tambi3n* recuer a 6ue la !osici4n $*$ en relaci4n con la /o2a siem!re se re1iere a la cel a A1* !ero en relaci4n al rango selecciona o* !ue e ser cual6uier o"ra+ =n algunos casos* "al vez sea vali o cual6uiera e los "res "i!os e rangos* es ecir* 6ue el m3"o o a usar es"a im!lemen"a o en los "res* !or e2em!lo<
"u. "%l%**+on!*&ual623 @+( o"%l !s >.)%*& @+( oRango !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 "%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)"6 ""*$%llRang%>.)"6 ""*$%llRang%s>.)" oRango A o"%l $as% Els% MsgBox ""% '%Fu+%'% s%l%**+ona' un 'ango" End "%l%*& #f <o& #s<ull2oRango3 Hh%n ,Bo''a(os %l *on&%n+do d% las *%ldas oRango-*l%a'$on&%n&s2313 End #f End "u.

=l m3"o o clear.on"en"s* es"a im!lemen"a o en los "res "i!os e rangos* !or ello !o emos llamarlo sin !roblemas* m;s a elan"e veremos a e"alle es"e m3"o o+ )o 6ue /e 6ueri o ilus"rar"e* es 6ue* e!en ien o e "us necesi a es* "ienes 6ue iscriminar una u o"ra cosa* !ero siem!re* - iscul!a la nece a * siem!re v;li a los a"os+

=.2.=

%bteniendo in2ormacin de ran*os

=n iversas ocasiones* es necesario saber on e es"amos ubica os* es ecir* en 6ue /o2a* 1ila - columna* los rangos cuen"as con m3"o os - es"ruc"uras con es"a in1ormaci4n* algunas e ellas -a las /emos usa o* "ambi3n* muc/os m3"o os e mani!ulaci4n e rangos* re6uieren se les !asen las es"ruc"uras correc"as e la irecci4n e los rangos* !or ello es im!or"an"e saber cuales son - como es";n es"ruc"ura as* veamos cuales son<
"u. @+( @+( @+( @+( #nfoRangos123 o"%l !s >.)%*& o@+' !s >.)%*& sH(7 !s "&'+ng *o1 !s #n&%g%' o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23

A!ren ien o OOo Basic

1%,

"%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)" ,>.&%n%(os la d+'%**+on d% la *%lda o@+' A o"%l-g%&$%ll!dd'%ss23 ,Mos&'a(os sus da&os6 o.s%'8a *o(o ha*%(os uso d%l Gnd+*% d% la ho)a ,o@+'-"h%%& 7a'a o.&%n%' %l no(.'% d% la ho)a MsgBox "Ho)a4 " 9 Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x2o@+'-"h%%&3-g%&<a(%23 9 $h'2133 9 "$olu(na4 " 9 o@+'-$olu(n 9 $h'2133 9 "J+la4 " 9 o@+'-Ro^ $as% ""*$%llRang%>.)" ,"+ %s un solo 'ango6 o.&%n%(os sus da&os o@+' A o"%l-g%&Rang%!dd'%ss23 ,$ons&'u+(os %l &%x&o +nfo'(a&+8o sH(7 A "El 'ango %s&a %n la ho)a4 " 9 o@+'-"h%%& 9 $h'2133 9 / "$olu(na #n+*+o4 " 9 o@+'-"&a'&$olu(n 9 $h'2133 9 / "J+la #n+*+o4 " 9 o@+'-"&a'&Ro^ 9 $h'2133 9 / "$olu(na J+n4 " 9 o@+'-End$olu(n 9 $h'2133 9 / "J+la J+n4 " 9 o@+'-EndRo^ MsgBox sH(7 $as% ""*$%llRang%s>.)" ,"+ son 8a'+os 'angos6 7od%(os o.&%n%' los da&os d% *ada 'ango Jo' *o1 A 0 Ho o"%l-g%&$oun&23T1 o@+' A o"%l-g%&B?#nd%x2*o13-g%&Rang%!dd'%ss23 sH(7 A "El 'ango " 9 *o1 9 " %s&a %n la ho)a4 " 9 o@+'-"h%%& 9 $h'2133 9 / "$olu(na #n+*+o4 " 9 o@+'-"&a'&$olu(n 9 $h'2133 9 / "J+la #n+*+o4 " 9 o@+'-"&a'&Ro^ 9 $h'2133 9 / "$olu(na J+n4 " 9 o@+'-End$olu(n 9 $h'2133 9 / "J+la J+n4 " 9 o@+'-EndRo^ MsgBox sH(7 <%x& ,> 7od%(os a**%d%' a las d+'%**+on%s d% &odos los 'angos sH(7 A [o+n2 "7l+&2o"%l-g%&Rang%!dd'%ss%s!s"&'+ng236"f"36$h'21333 ,Mos&'a(os %l '%sul&ado MsgBox sH(7 $as% Els% MsgBox ""% '%Fu+%'% s%l%**+ona' un 'ango d% *%ldas" End "%l%*& End "u.

Observa 6ue si es una sola cel a se "iene 6ue usar ge".ellA ress 6ue ob"iene* la /o2a on e es"a la cel a* la columna - 1ila* no se "e olvi e 6ue "o o em!ieza en $* cuan o es un rango e cel as se usa ge"@angeA ress* 6ue con"iene* la /o2a !or n ice on e es"a el rango* la columna - 1ila on e em!ieza - la columna - 1ila on e "ermina* rei"ero* "o o es e $+ Observa como en el caso e varios rangos* !o emos acce er a ca a uno* !ero es"os si cuen"an con una !ro!ie a e "e:"o (ge"@angeA ressesAsS"ring) 6ue irec"amen"e nos evuelve las irecciones e los rangos en un 1orma"o en"en ible LcasiM !or cual6uier usuario* !or e2em!lo L(a"os+A#<=5M+ No /e encon"ra o* esconozco su e:is"e* una !ro!ie a o m3"o o similar !ara los casos e una cel a - un rango* !ero !o emos crearnos nues"ra !ro!ia 1unci4n 6ue lo /aga !or noso"ros<
"u. #nfoRangos223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Csa(os nu%s&'a fun*+Kn 7%'sonal+:ada MsgBox @+'%**+onRango2o"%l3 End "u. ,Pu% l+nda Fu%do %s&a fun*+on Jun*&+on @+'%**+onRango2Rango !s >.)%*&3 !s "&'+ng

1G$
@+( o"J! !s >.)%*& @+( o@+' !s >.)%*& @+( (@a&os

F+# @e1erencia a rangos

,<os a7o?a(os %n la fun*+on d% $al* @#RE$$#>< 2!@@RE""3 o"J! A *'%a&%Cno"%'8+*%2 "*o(-sun-s&a'-sh%%&-Jun*&+on!**%ss" 3 ,1al+da(os %l &+7o d% 'ango 7asado "%l%*& $as% Rango-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)" ,"+ %s una sola *%lda usa(os g%&$%ll!dd'%ss o@+' A Rango-g%&$%ll!dd'%ss ,$ons&'u+(os la (a&'+: d% da&os 7a'a la fun*+Kn (@a&os A !''a?2 o@+'-Ro^B16 o@+'-$olu(nB1646Rango-g%&"7'%adsh%%&-g%&<a(%23 3 @+'%**+onRango A o"J!-*allJun*&+on2"!@@RE"""6(@a&os233 $as% ""*$%llRang%>.)" ,"+ %s un 'ango d% *%ldas usa(os g%&Rang%!dd'%ss o@+' A Rango-g%&Rang%!dd'%ss23 ,>.&%n%(os la *%lda su7%'+o' +:Fu+%'da d%l 'ango (@a&os A!''a?2o@+'-"&a'&Ro^B16o@+'-"&a'&$olu(nB1646Rango-g%&"7'%adsh%%&-g%&<a(%233 @+'%**+onRango A o"J!-*allJun*&+on2"!@@RE"""6(@a&os233 9 "4" ,!ho'a la *%lda *%lda +nf%'+o' d%'%*ha d%l 'ango (@a&os A !''a?2 o@+'-EndRo^B16 o@+'-End$olu(nB16 4 3 @+'%**+onRango A @+'%**+onRango 9 o"J!-*allJun*&+on2"!@@RE"""6(@a&os233 $as% ""*$%llRang%s>.)" ,Es&a ?a la 8+(os @+'%**+onRango A [o+n2 "7l+&2Rango-g%&Rang%!dd'%ss%s!s"&'+ng236"f"36$h'21333 End "%l%*& End Jun*&+on

)a 1unci4n (9@=..9ON e .alc* nos evuelve en 1orma"o e "e:"o* la re1erencia a la cel a* in ic;n ole la 1ila* columna* si 6ueremos la re1erencia absolu"a o rela"iva - la /o2a* si usamos las 1unciones e .alc es e OOo Basic* el nombre e es"as "enemos 6ue in icarlas en ingles - !asarle los argumen"os e la 1unci4n en 1orma e ma"riz e a"os* es mu- im!or"an"e !asarle* mnimo* los argumen"os re6ueri os - es"os* eben es"ar en el 1orma"o (s"ring* in"eger* e"c+) 6ue Les!eraM la 1unci4n* sino* "al - como suce e en la /o2a e calculo* la 1unci4n "e re"ornara un error+ Una segun a versi4n e es"a 1unci4n* !ue e ser la siguien"e* no"a 6ue no /acemos uso e ninguna 1unci4n e /o2a e calculo* sino 6ue ob"enemos los a"os solo con !ro!ie a es el rango* !ue es usar in is"in"amen"e cual6uiera e las os<
Jun*&+on @+'%**+onRango22Rango !s >.)%*&3 !s "&'+ng @+( sH(7 !s "&'+ng "%l%*& $as% Rango-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)" sH(7 A Rango-g%&"7'%adsh%%&-g%&<a(%23 9 "-" 9 / Rango-g%&$olu(ns23-g%&B?#nd%x203-g%&<a(%23 9 / Rango-g%&$%ll!dd'%ss-Ro^ B 1 $as% ""*$%llRang%>.)" sH(7 A Rango-g%&"7'%adsh%%&-g%&<a(%23 9 "-" 9 / Rango-g%&$olu(ns23-g%&B?#nd%x203-g%&<a(%23 9 / Rango-g%&Rang%!dd'%ss-"&a'&Ro^ B 1 9 "4" 9 / Rango-g%&$olu(ns23-g%&B?#nd%x2Rango-g%&$olu(ns23-g%&$oun&23T 13-g%&<a(%23 9 / Rango-g%&Rang%!dd'%ss-EndRo^ B 1 $as% ""*$%llRang%s>.)" sH(7 A [o+n2 "7l+&2Rango-g%&Rang%!dd'%ss%s!s"&'+ng236"f"36$h'2133 3 End "%l%*& @+'%**+onRango2 A sH(7 End Jun*&+on

A!ren ien o OOo Basic

1G1

Por ul"imo* !o emos saber el n>mero e 1ilas - columnas 6ue "iene un rango usan o los m3"o os ge"@o7s - ge".olumns res!ec"ivamen"e* es"os m3"o os solo es";n is!onibles cuan o el rango es una sola cel a - un rango* cuan o son varios rangos "ienes 6ue ingeniar"eles 6ue no es com!lica o+
"u. #nfoRangos323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 "%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)"6""*$%llRang%>.)" MsgBox "J+las A " 9 o"%l-g%&Ro^s23-g%&$oun&23 9 $h'2133 9 / "$olu(nas A " 9 o"%l-g%&$olu(ns23-g%&$oun&23 End "%l%*& End "u.

)os rangos* "ambi3n* cuen"an con una !ro!ie a 6ue nos evuelve la irecci4n el rango selecciona o* se llama Absolu"eName - el resul"a o como su nombre lo in ica es con las re1erencias absolu"as+
"u. #nfoRangos423 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 MsgBox o"%l-!.solu&%<a(% End "u.

=.2.A

5rabajando con Cursores

Un cursor* es un ob2e"o 6ue nos !ermi"e movernos !or la /o2a en"era o en"ro e un rango es!eci1ica o sin a1ec"ar o mo i1icar al rango a !ar"ir el cual se crea+ )o m;s usual es crearlo a !ar"ir e un rango !ara es!lazarse en"ro e el* !ero a em;s "iene m3"o os mu- >"iles !ara e:!an ir !or e2em!lo a la regi4n ac"ual* 6ue como sabes* es el rango e cel as Lcon a"osM elimi"a o !or 1ilas - columnas en blanco* la regi4n ac"ual es un conce!"o sumamen"e* >"il !o eroso cuan o se !rograma* !or ello le aremos un !oco e 3n1asis* su!ongamos la siguien"e "abla e a"os<

1G#

F+# @e1erencia a rangos

Observa 6ue el cursor es"a en la cel a (G - 6ue la regi4n ac"ual e es"e rango e a"os es B#<'11* a/ora* e2ecu"a la siguien"e macro on e obligamos al usuario a seleccionar solo una cel a* lo cual sabes* no necesariamen"e es as - solo es !ara 1ines i ;c"icos* no"a 6ue usaremos una 1unci4n crea a en "ema an"erior 6ue se llama (ireccion@ango* !ero muim!or"an"e* cuan o le !asemos como argumen"o una cel a* es"a "raba2ara bien* !ero cuan o in"en"emos !asarle un cursor* al ser un ob2e"o i1eren"e* "e evolver; una ca ena vaca* !ara solucionar es"o* "enemos 6ue agregar el "i!o e ob2e"o HSc.ell.ursorOb2H* busca - corrige la siguien"e lnea en ic/a 1unci4n !ersonaliza a+
$as% ""*$%llRang%>.)"6 ""*$%ll$u'so'>.)"

Observa 6ue a/ora evaluara si es un rango e cel as o un cursor* a/ora si* e2ecu"a la siguien"e macro<
"u. $u'so'%s123 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& ,0a'&+(os d% la s%l%**+on o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,"olo s+ %s una sola *%lda #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,Mos&'a(os la d+'%**+on d% la *%lda s%l%**+onada MsgBox @+'%**+onRango2 o"%l 3 ,$'%a(os un *u'so' a 7a'&+' d% %s&a *%lda o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 ,1%'+f+*a(os Fu% a7un&%n a la (+s(a *%lda MsgBox @+'%**+onRango2 o$u'so' 3 ,<os (o8%(os al +n+*+o d% la '%g+on a*&ual o$u'so'-go&o"&a'&23 MsgBox @+'%**+onRango2 o$u'so' 3 ,<os (o8%(os al f+nal o$u'so'-go&oEnd23 MsgBox @+'%**+onRango2 o$u'so' 3 ,Ex7and+s(o %l *u'so' a &oda la '%g+on a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 MsgBox @+'%**+onRango2 o$u'so' 3 ,Mos&'a(os d% nu%8o la d+'%**+on d% la *%lda s%l%**+onada ,o.s%'8a Fu% %s&a no s% a (o8+do MsgBox @+'%**+onRango2 o"%l 3 Els%

A!ren ien o OOo Basic

1G?

MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

)os cursores* al com!ar"ir la ma-ora e los servicios e las cel as - los rangos* /ere an la ma-ora e sus m3"o os - !ro!ie a es* !ero sus m3"o os !ar"iculares son lo 6ue los /acen es!eciales e in"eresan"es+ Una !regun"a recurren"e en las lis"as e correo* es Icomo encuen"ro la siguien"e 1ila libreJ* con un cursor* es"o es mu- sencillo<
"u. $u'so'%s223 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& ,0a'&+(os d% la s%l%**+on o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,"olo s+ %s una sola *%lda #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,$'%a(os un *u'so' a 7a'&+' d% %s&a *%lda o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 ,<os (o8%(os al f+nal o$u'so'-go&oEnd23 ,5a s+gu+%n&% f+la l+.'%6 s%'a %s&a f+la (as 1 MsgBox o$u'so'-g%&Rang%!dd'%ss23-EndRo^ B 1 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Por su!ues"o* algo mu- !rac"ico es "ener una 1unci4n !ersonaliza a 6ue nos encuen"re la siguien"e 1ila libre* algo como<
Jun*&+on J+la5+.'%2 Rango !s >.)%*&3 !s 5ong @+( o$u'so' !s >.)%*& o$u'so' A Rango-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 Rango 3 o$u'so'-go&oEnd23 J+la5+.'% A o$u'so'-g%&Rang%!dd'%ss23-EndRo^ B 1 End Jun*&+on

O 6ue usamos e una 1orma mu- sencilla<


"u. $u'so'%s323 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& ,0a'&+(os d% la s%l%**+on o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,"olo fun*+ona *on *%ldas +nd+8+dual%s o 'angos d% *%ldas "%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)"6 ""*$%llRang%>.)" MsgBox "5a s+gu+%n&% f+la l+.'% %s la4 " 9 J+la5+.'%2 o"%l 3 End "%l%*& End "u.

O"ros m3"o os con 6ue cuen"an los cursores son<


"u. $u'so'%s423 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*&

1GE
o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 ,<os (o8%(os a la s+gu+%n&% *%lda o$u'so'-go&o<%x&23 MsgBox @+'%**+onRango2 o$u'so' 3 ,<os (o8%(os a la *%lda an&%'+o' o$u'so'-go&o0'%8+ous23 MsgBox @+'%**+onRango2 o$u'so' 3 ,<os (o8%(os dos *olu(nas a la d%'%*ha ? &'%s f+las a.a)o o$u'so'-go&o>ffs%&22633 MsgBox @+'%**+onRango2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

F+# @e1erencia a rangos

=s"os m3"o os /a- 6ue usarlos con cui a o* !ues !ue es Lsalir"eM el rango on e es"as "raba2an o - -a no !o r;s mover"e con o"ros m3"o os como go"oS"ar" o go"o=n * !or e2em!lo* si "e mueves al 1inal e un rango (go"o=n ) - es!u3s "e es!lazas con go"oO11se"(?*?)* o sea "res columnas a la erec/a - "res 1ilas aba2o* "e sal r;s el rango - -a no !o r;s regresar al inicio (go"oS"ar")* usa es"os m3"o os con !recauci4n+
"u. $u'so'%s523 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-go&o"&a'&23 ,Ho(a no&a d% %s&a d+'%**+on MsgBox @+'%**+onRango2 o$u'so' 3 o$u'so'-go&oEnd23 MsgBox @+'%**+onRango2 o$u'so' 3 ,<os (o8%(os &'%s *olu(nas a la d%'%*ha ? &'%s f+las a.a)o o$u'so'-go&o>ffs%&23633 MsgBox @+'%**+onRango2 o$u'so' 3 ,#n&%n&a(os '%g'%sa' al +n+*+o6 no&a *o(o <> %s la ,(+s(a d% la 7'+(%' l+n%a o$u'so'-go&o"&a'&23 MsgBox @+'%**+onRango2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Observa a"en"amen"e la siguien"e imagen* no"a en la barra e 1ormulas 6ue la 1ormula mos"ra a es"a encerra a en unas llaves* como sabes* es"as llaves nos in ican 6ue ic/a 1ormula 1orma !ar"e e una 1ormula ma"ricial* como no es el "ema e es"e libro las 1ormulas ma"riciales no en"raremos en e"alle alguno* !ero como sabes* es"as se in"ro ucen con la

A!ren ien o OOo Basic

1G5

combinaci4n e "eclas .T@)RSc9'TR=NT=@ - 6ue -a crea a* no !ue es mo i1icar solo una cel a e ic/as ma"rices* sino "ienes 6ue /acerlo con "o a la ma"riz+

.on un cursor* !o emos saber cual es el rango e una 1ormula ma"ricial* como lo emos"ramos en el siguien"e e2em!lo* !roba o en los a"os mos"ra os en la imagen an"erior<
"u. $u'so'%s623 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&!''a?23 MsgBox @+'%**+onRango2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

=n la siguien"e imagen* observa las cel as combina as* cuan o es"ablecemos el cursor en cel as combina as - "ra"amos e ob"ener ic/a irecci4n* solo "e evolver; la cel a su!erior iz6uier a e ic/o rango* !ero con un cursor !o emos saber el rango com!le"o e es"as cel as combina as<

"u. $u'so'%s723 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 ,$o(7'o.a(os Fu% solo d%8u%l8% una *%lda MsgBox @+'%**+onRango2 o"%l 3 ,Ex7and+(os %l *u'so' a &odas las *%ldas *o(.+nadas o$u'so'-*olla7s%HoM%'g%d!'%a23 MsgBox @+'%**+onRango2 o$u'so' 3

1GF

F+# @e1erencia a rangos

Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Po emos e:!an ir nues"ro cursor !ara 6ue abar6ue "o as las columnas e nues"ra regi4n ac"ual<
"u. $u'so'%s823 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 ,Ex7and+(os %l *u'so' a la '%g+on a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 MsgBox @+'%**+onRango2 o$u'so' 3 ,O lu%go a &odas las *olu(nas o$u'so'-%x7andHoEn&+'%$olu(ns23 MsgBox @+'%**+onRango2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

9n"uir;s 6ue "ambi3n es !osible /acerlo en las 1ilas<


,Ex7and+(os %l *u'so' a la '%g+on a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 MsgBox @+'%**+onRango2 o$u'so' 3 ,O lu%go a &odas las *olu(nas o$u'so'-%x7andHoEn&+'%Ro^s23 MsgBox @+'%**+onRango2 o$u'so' 3

Ten cui a o cuan o uses los os m3"o os an"eriores* si los e2ecu"as uno e"r;s e o"ro* "en r;s un cursor con "u /o2a com!le"a* 6ue no escar"es usar un a* lo im!or"an"e es saber 6ue es"as /acien o siem!re<
"u. $u'so'%s1023 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 ,Ex7and+(os %l *u'so' a la '%g+on a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 MsgBox @+'%**+onRango2 o$u'so' 3 ,O lu%go a &odas las f+las o$u'so'-%x7andHoEn&+'%Ro^s23 MsgBox @+'%**+onRango2 o$u'so' 3 ,<o&a *o(o d%8u%l8% la ho)a %n&%'a o$u'so'-%x7andHoEn&+'%$olu(ns23

A!ren ien o OOo Basic

1G%

MsgBox @+'%**+onRango2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Tambi3n !ue es am!liar "u cursor el n>mero e columnas - 1ilas 6ue necesi"es* "oma en cuen"a 6ue la cel a su!erior iz6uier a no cambia<
"u. $u'so'%s1123 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 ,Ex7and+(os %l *u'so' a la '%g+on a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 MsgBox @+'%**+onRango2 o$u'so' 3 ,O lu%go *a(.+a(os %l *u'so' a 2 *olu(nas ? 5 f+las o$u'so'-*olla7s%Ho"+:%2 265 3 MsgBox @+'%**+onRango2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

No"a 6ue es"amos Lcambian oM el "amaKo el cursor* si lo 6ue 6uieres realmen"e es e:!an irlo* "ienes 6ue sumarle el anc/o - al"o e la regi4n ac"ual* como en el siguien"e e2em!lo<
"u. $u'so'%s1223 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 ,Ex7and+(os %l *u'so' a la '%g+on a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 MsgBox @+'%**+onRango2 o$u'so' 3 ,O lu%go a(7l+a(os %l *u'so' 1 *olu(na ? 5 f+las o$u'so'-*olla7s%Ho"+:%2 o$u'so'-g%&$olu(ns23-g%&$oun&23 B 16 o$u'so'-g%&Ro^s23-g%&$oun&23 B 5 3 MsgBox @+'%**+onRango2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

No"a como /emos usa o algunos m3"o os vis"os en el "ema an"erior ( ge".olumns()+ge".oun" )* como -a lo mencionamos* es"o es !osible !or 6ue los cursores com!ar"en la ma-ora e los servicios con los rangos+ .asi !ara 1inalizar* veamos os m3"o os m;s e los cursores+
"u. $u'so'%s1323

1GG
@+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3

F+# @e1erencia a rangos

,1a(os al +n+*+o d%l a'%a usada6 %l a'gu(%n&o Jals%6 %8+&a Fu% s% ,%x7anda la s%l%**+Kn d%l 'ango o$u'so'-go&o"&a'&>fCs%d!'%a2 Jals% 3 MsgBox @+'%**+onRango2 o$u'so' 3 ,!ho'a 8a(os al f+nal o$u'so'-go&oEnd>fCs%d!'%a2 Jals% 3 MsgBox @+'%**+onRango2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

=n una /o2a e calculo* el L;rea e usuarioM* es a6uel rango Le1ec"ivamen"eM usa o* es mu- in;mico !ues varia e acuer o a su uso - eliminaci4n* en una /o2a nueva el inicio - el 1inal e es"a ;rea siem!re ser; el mismo* la cel a A1* si "ienes LunaM sola cel a usa a* es"a* ser; el inicio - el 1in e "u ;rea e usuario* la cosa cambia en cuan"o "ienes os o m;s cel as usa as* la regla es< el inicio e "u ;rea e usuario ser; la cel a (Lcon a"osM) 6ue es"e m;s cercana al e:"remo su!erior iz6uier o e la /o2a - el 1inal ser; la cel a (Lcon a"osM) 6ue es"e m;s cercana al e:"remo in1erior erec/o e ic/a /o2a* - igo 6ue es in;mica* !or 6ue si eliminas a"os o cel as* es"a ;rea se ira a2us"an o con1orme a es"os cambios+ A/ora si* !ara "erminar* un cursor* "ambi3n lo !ue es usar !ara es"ablecer una selecci4n* como en el e2em!lo siguien"e on e seleccionamos la regi4n ac"ual el rango<
"u. $u'so'%s1423 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&23-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o$u'so' 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

.on lo cual observamos 6ue es"os cursores con bas"an"e vers;"iles+++

=.2.E

Selecciones especiales

)os rangos* cuen"an con unos m3"o os bas"an"e in"eresan"es (- >"iles) !ara /acer algunas selecciones es!eciales* !or e2em!lo* !o emos seleccionar las cel as vacas e un rango como en<

A!ren ien o OOo Basic

1G,

"u. "%l%**+on%sEs7%*+al%s123 @+( o"%l !s >.)%*& @+( o"%lEs7 !s >.)%*& ,!**%d%(os a la s%l%**+Kn a*&ual o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,R%*u7%'a(os las *%ldas 8a*Gas o"%lEs7 A o"%l-Fu%'?E(7&?$%lls23 ,O las s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End "u.

.omo /emos vis"o a lo largo e es"as no"as* no es siem!re necesario 6ue selecciones* !ue es mani!ular el rango ob"eni o sin 6ue es"o sea necesario* si una cel a "iene aun6ue sea solo un es!acio o alg>n car;c"er es!ecial no visible ("abula ores* sal"os e !;gina)* es"a* -a no ser; vaca - no la ob"en r;s !or es"e m3"o o+ Un !un"o im!or"an"e* es 6ue es"e m3"o o siem!re re"orna un con2un"o e rangos ( ScCellRangesObj)* los cuales "ienes 6ue mani!ular como -a lo /emos a!ren i o+ Tambi3n !o emos seleccionar cel as e acuer o a su con"eni o* en el siguien"e e2em!lo seleccionamos las cel as con "e:"o<
"u. "%l%**+on%sEs7%*+al%s223 @+( o"%l !s >.)%*& @+( o"%lEs7 !s >.)%*& ,!**%d%(os a la s%l%**+on a*&ual o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,R%*u7%'a(os las *%ldas *on &%x&o o"%lEs7 A o"%l-Fu%'?$on&%n&$%lls2 4 3 ,O las s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End "u.

A/ora* las cel as con 1ormulas<


"u. "%l%**+on%sEs7%*+al%s323 @+( o"%l !s >.)%*& @+( o"%lEs7 !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,R%*u7%'a(os las *%ldas *on fo'(ulas o"%lEs7 A o"%l-Fu%'?$on&%n&$%lls2 *o(-sun-s&a'-sh%%&-$%llJlags-J>RMC5! 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End "u.

)os valores !osibles !ara el argumen"o e es"e m3"o o son los siguien"es* valores 6ue "ambi3n se usan !ara borrar a"os como se ve en el "ema F+E+?+Borran o a"os
Constante com+sun+s"ar+s/ee"+.ell'lags+5A)U= com+sun+s"ar+s/ee"+.ell'lags+(AT=T9M= com+sun+s"ar+s/ee"+.ell'lags+ST@9N& com+sun+s"ar+s/ee"+.ell'lags+ANNOTAT9ON com+sun+s"ar+s/ee"+.ell'lags+'O@MU)A 0alor 1 # E G 1F

1,$ Constante com+sun+s"ar+s/ee"+.ell'lags+cA@(ATT@ com+sun+s"ar+s/ee"+.ell'lags+STO)=S com+sun+s"ar+s/ee"+.ell'lags+OBi=.T com+sun+s"ar+s/ee"+.ell'lags+=(9TATT@ com+sun+s"ar+s/ee"+.ell'lags+'O@MATT=(

F+# @e1erencia a rangos 0alor ?# FE 1#G #5F 51#

Pue es usar e 1orma in is"in"a el valor num3rico o su cons"an"e como se ve en los os e2em!los an"eriores - "ambi3n sumar los valores !ara "ener m>l"i!les combinaciones* como en el e2em!lo siguien"e on e seleccionamos las cel as con "e:"o - valores<
"u. "%l%**+on%sEs7%*+al%s423 @+( o"%l !s >.)%*& @+( o"%lEs7 !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,R%*u7%'a(os las *%ldas *on &%x&o ? 8alo'%s o"%lEs7 A o"%l-Fu%'?$on&%n&$%lls2 5 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End "u.

.omo -a se menciono* es"os m3"o os siem!re evuelven un con2un"o e rangos (ScCellRangesObj)* !or lo 6ue es mu- sencillo saber si /a- o no resul"a os* en el siguien"e e2em!lo* -a no seleccionamos* !ero in1ormamos si /ubo o no cel as con el cri"erio es!eci1ica o* !ara es"e e2em!lo* las cel as 6ue "engan no"as* observa 6ue usamos una 1unci4n !ersonaliza a (-ireccionRango6)* 6ue -a /emos usa o an"eriormen"e<
"u. "%l%**+on%sEs7%*+al%s523 @+( o"%l !s >.)%*& @+( o"%lEs7 !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,R%*u7%'a(os las *%ldas *on no&as o"%lEs7 A o"%l-Fu%'?$on&%n&$%lls2 8 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o ha? *%ldas *on no&as" Els% ,Mos&'a(os la d+'%**+Kn d% los 'angos %n*on&'ados MsgBox @+'%**+onRango22 o"%lEs7 3 End #f End "u.

Oa vimos como seleccionar 1ormulas* !ero "ambi3n !o emos seleccionar 1ormulas* e acuer o su resul"a o* !or e2em!lo* seleccionemos las cel as 6ue con"engan error<
"u. "%l%**+on%sEs7%*+al%s623 @+( o"%l !s >.)%*& @+( o"%lEs7 !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,R%*u7%'a(os las *%ldas *on fo'(ulas *u?o '%sul&ado s%a %''o' o"%lEs7 A o"%l-Fu%'?Jo'(ula$%lls2 4 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o ha? *%ldas *on %''o'%s" Els% MsgBox @+'%**+onRango22 o"%lEs7 3

A!ren ien o OOo Basic


End #f End "u.

1,1

=l argumen"o e es"e m3"o o* solo ace!"a los "res valores siguien"e<


Constante com+sun+s"ar+s/ee"+'ormula@esul"+5A)U= com+sun+s"ar+s/ee"+'ormula@esul"+ST@9N& com+sun+s"ar+s/ee"+'ormula@esul"+=@@O@ 0alor 1 # E

)os cuales* !o emos combinar<


"u. "%l%**+on%sEs7%*+al%s723 @+( o"%l !s >.)%*& @+( o"%lEs7 !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,R%*u7%'a(os las *%ldas *on fo'(ulas *u?o '%sul&ado s%a &%x&o o 8alo' o"%lEs7 A o"%l-Fu%'?Jo'(ula$%lls2 3 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o ha? *%ldas *on &%x&o o 8alo'" Els% MsgBox @+'%**+onRango22 o"%lEs7 3 End #f End "u.

)os siguien"e m3"o os re6uieren una a"enci4n es!ecial* su!ongamos la siguien"e lis"a e a"os<
( 1 2 ) ! = A E G 1I ? 5 ? 1 1 E 1 5 5 ? & ? # 1 1 5 1 ? 1 ? # C 5 1 # ? 5 E 1 1 ? E D ? # 5 E 5 1 1 5 # 5 E E E 5 5 E ? 5 ? ? 1

Selecciona el rango A1<A1$ - e2ecu"a la siguien"e macro<


"u. @+( @+( @+( @+( "%l%**+on%sEs7%*+al%s823 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o"%lEs7 !s >.)%*& o$%lda !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,El 'ango a %8alua' oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14!10"3 ,5a *%lda d% *o(7a'a*+Kn

1,#
o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3 ,Bus*a(os las *%ldas d+f%'%n&%s 7o' *olu(na o"%lEs7 A oRango-Fu%'?$olu(n@+ff%'%n*%s2 o$%lda-g%&$%ll!dd'%ss 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o s% %n*on&'a'on *%ldas" Els% ,5as s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End #f End "u.

F+# @e1erencia a rangos

eue "e "iene 6ue seleccionar<

Observa como seleccion4 las cel as con un valor i1eren"e al e la cel a e com!araci4n* es mu- im!or"an"e en"en er 6ue* e la cel a e com!araci4n* 4Onicamente toma la 2ila1 e la irecci4n !ara la com!araci4n* in"en"a !asarle a es"a misma macro la cel a .1* observa el resul"a o* es!u3s !asale la cel a .# - observa el resul"a o+ .on el siguien"e e2em!lo* creo* 6ue a bas"an"e claro como "raba2a es"e m3"o o* observa el rango !asa o - la cel a e com!araci4n* el valor com!ara o* es el valor e la 1ila res!ec"iva !ara ca a columna<
"u. @+( @+( @+( @+( "%l%**+on%sEs7%*+al%s923 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o"%lEs7 !s >.)%*& o$%lda !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14$10"3 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"B10"3 o"%lEs7 A oRango-Fu%'?$olu(n@+ff%'%n*%s2 o$%lda-g%&$%ll!dd'%ss 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o s% %n*on&'a'on *%ldas" Els% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End #f End "u.

eue nos evuelve<

A!ren ien o OOo Basic

1,?

Por ul"imo* e2ecu"a la macro* llaman o al rango com!le"o e !ruebas* con la cel a e com!araci4n 6ue 6uieras* como en<
"u. @+( @+( @+( @+( "%l%**+on%sEs7%*+al%s1023 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o"%lEs7 !s >.)%*& o$%lda !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14E10"3 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!3"3 o"%lEs7 A oRango-Fu%'?$olu(n@+ff%'%n*%s2 o$%lda-g%&$%ll!dd'%ss 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o s% %n*on&'a'on *%ldas" Els% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End #f End "u.

O com!rueba 6ue es correc"o el resul"a o+ =l mismo "i!o e com!araci4n lo !o emos /acer !ero !or 1ilas* como en el siguien"e e2em!lo* usan o la misma "abla e a"os<
"u. @+( @+( @+( @+( "%l%**+on%sEs7%*+al%s1123 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o"%lEs7 !s >.)%*& o$%lda !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!104E10"3 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"$10"3 ,Bus*a(os las *%ldas d+f%'%n&%s 7o' f+las o"%lEs7 A oRango-Fu%'?Ro^@+ff%'%n*%s2 o$%lda-g%&$%ll!dd'%ss 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o s% %n*on&'a'on *%ldas" Els% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End #f End "u.

O el resul"a o<

1,E

F+# @e1erencia a rangos

)a l4gica es e:ac"amen"e la misma e /acerlo !or columnas* solo 6ue a/ora* 4solo toma la columna1 e la cel a e com!araci4n* as 6ue solo /agamos un e2em!lo m;s con el rango com!le"o e a"os<
"u. @+( @+( @+( @+( "%l%**+on%sEs7%*+al%s1223 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o"%lEs7 !s >.)%*& o$%lda !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14E10"3 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"@1"3 ,Bus*a(os las *%ldas d+f%'%n&%s 7o' f+las o"%lEs7 A oRango-Fu%'?Ro^@+ff%'%n*%s2 o$%lda-g%&$%ll!dd'%ss 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o s% %n*on&'a'on *%ldas" Els% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End #f End "u.

eue nos selecciona<

)o in"eresan"e e es"os m3"o os* es 6ue los valores e las cel as* no "ienen 6ue ser necesariamen"e "e:"o* !ue e ser cual6uier "i!o e a"o* inclu-en o 1ormulas* en cu-o caso* se "omar; el "i!o e resul"a o e es"a+

A!ren ien o OOo Basic

1,5

=l siguien"e m3"o o nos sirve !ara saber el rango e cel as comunes a os rangos* observa la siguien"e imagen* la macro e e2em!lo* nos "iene 6ue seleccionar el rango en ver e<

"u. @+( @+( @+( @+(

"%l%**+on%sEs7%*+al%s1323 oHo)a!*&+8a !s >.)%*& oRango1 !s >.)%*& oRango2 !s >.)%*& o"%lEs7 !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango1 A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"B24#11"3 oRango2 A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"D84<17"3 ,Bus*a(os las *%ldas *o(un%s o"%lEs7 A oRango1-Fu%'?#n&%'s%*&+on2 oRango2-g%&Rang%!dd'%ss 3 #f o"%lEs7-g%&$oun& A 0 Hh%n MsgBox "<o ha? nada %n *o(;n" Els% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 o"%lEs7 3 End #f End "u.

Para "erminar es"e "ema* veamos un m3"o o mu- in"eresan"e* nos !ermi"e seleccionar* el rango invoca o* solo las cel as visibles+ Observa la siguien"e imagen<

1,F

F+# @e1erencia a rangos

No"a* en los encabeza os e 1ila* 6ue "enemos muc/as 1ilas ocul"as* con la siguien"e macro* mos"ramos la irecci4n e los rangos visibles<
"u. @+( @+( @+( "%l%**+on%sEs7%*+al%s1423 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o1+s+.l%s !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14D243"3 ,Bus*a(os las *%ldas 8+s+.l%s o1+s+.l%s A oRango-Fu%'?1+s+.l%$%lls23 #f o1+s+.l%s-g%&$oun& A 0 Hh%n MsgBox "<o ha? *%ldas o*ul&as" Els% ,Mos&'a(os la d+'%**+Kn d% los 'angos 8+s+.l%s MsgBox @+'%**+onRango22 o1+s+.l%s 3 End #f End "u.

.uan o /aces un 1il"ro au"om;"ico o es!ecial - cuan o calculas sub"o"ales e in"en"as /acer o!eraciones e co!ia o* la co!ia resul"an"e* solo con"en r; las cel as visibles* cuan o agru!as u ocul"as 1ilas o columnas manualmen"e* la co!ia incluir; aun las cel as ocul"as* !ero con es"e m3"o o siem!re ob"en r;s las cel as visibles* 6ue* en con2un"o con los conocimien"os el siguien"e ca!i"ulo* !ue es /acer "u !ro!ia versi4n e co!ia o+

A!ren ien o OOo Basic

1,%

=.

Manipulando ran*os

=n el ca!i"ulo an"erior a!ren imos a re1erenciar cual6uier rango 6ue nos in"erese* a/ora* a!ren eremos a mani!ular es"os rangos* !rinci!almen"e* a moverlos* inser"arlos* eliminarlos - co!iarlos+

=. .1

Mo,iendo ran*os

Para mover un rango* usamos el m3"o o move@ange e las /o2as e calculo* es"e m3"o o re6uiere e os argumen"os* la cel a su!erior iz6uier a (.ellA ress) es"ino on e se mover; el rango origen (.ell@angeA ress) co2a+move@ange( (es"ino As .ellA ress* Origen As .ell@angeA ress )

=l siguien"e e2em!lo mueve el rango A1<B5 e la /o2a ac"iva* a la cel a (1$ e la misma /o2a<
"u. @+( @+( @+( Mo8%'Rangos123 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,Rango a (o8%' o>'+g%n A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14B5" 3 ,$%lda d%s&+no o@%s&+no A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "@10" 3 ,Mo8%(os %l 'ango oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 End "u.

Toma en cuen"a 6ue el rango origen L"ieneM 6ue ser un rango e cel as* 6ue la cel a es"ino L"ieneM 6ue ser una cel a in ivi ual* 6ue los a"os el rango origen se borran - los a"os el rango es"ino son Lreempla9ados sin pre*untarteM !or los a"os origen - mu- im!or"an"e* si el rango con"iene 1ormulas* es"as* Lno se actuali9an a la nue,a posicin M aun - cuan o las re1erencias sean rela"ivas* "ambi3n* el rango origen cambia !ara a a!"arse al rango es"ino* es ecir* la re1erencia a ic/o rango se ac"ualizara au"om;"icamen"e como lo !ue es com!robar si mues"ras la irecci4n el rango origen* an"es - es!u3s e moverse<
MsgBox @+'%**+onRango2 o>'+g%n 3 ,Mo8%(os %l 'ango oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 MsgBox @+'%**+onRango2 o>'+g%n 3

@ecuer a 6ue la 1unci4n (ireccion@ango* es !ersonaliza a - la /emos usa o en los >l"imos "emas vis"os+ Si 6uieres mover solo una cel a* !rueba la siguien"e macro<

1,G
"u. @+( @+( @+( Mo8%'Rangos223 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,<o&a *o(o ha*%(os la '%f%'%n*+a 7a'a Fu% s%a un 'ango o>'+g%n A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "B24B2" 3 ,Es&a &+%n% Fu% s%gu+' s+%ndo una sola *%lda o@%s&+no A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E5" 3

F+? Mani!ulan o rangos

,Mo8%(os %l 'ango oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 End "u.

Por su!ues"o !o emos vali ar 6ue !or lo menos el origen - el es"ino sean e1ec"ivamen"e los argumen"os 6ue necesi"a es"e m3"o o<
"u. @+( @+( @+( Mo8%'Rangos323 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o>'+g%n A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "$5" 3 o@%s&+no A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "J15" 3 ,1al+da(os Fu% los 'angos s%an *o''%*&os #f o>'+g%n-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" !nd o@%s&+no-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Els% MsgBox "5os 'angos no son *o''%*&os" End #f End "u.

=s"a vali aci4n es m;s >"il cuan o "omamos el rango a mover a !ar"ir e la selecci4n ac"ual el usuario* !ara 6ue 1uncione el siguien"e c4 igo* "ienes 6ue seleccionar m;s e una cel a es ecir* un rango e cel as* !or su!ues"o* "e 6ue a e "area /acer 6ue 1uncione* aun - con solo seleccionar una cel a+
"u. @+( @+( @+( Mo8%'Rangos423 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,1al+da(os Fu% los 'angos s%an *o''%*&os #f o>'+g%n-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" Hh%n ,@%)a(os una *olu(na ? una f+la %n .lan*o o@%s&+no A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o>'+g%n-g%&Rang%!dd'%ss23-End$olu(n B 26 o>'+g%n-g%&Rang%!dd'%ss23-EndRo^ B 2 3 oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Els% MsgBox "El 'ango >'+g%n no %s *o''%*&o" End #f End "u.

No"a como solo vali amos el origen* !or 6ue el es"ino lo cons"ruimos a !ar"ir el es"e* observa 6ue cuan o mueves un rango* la selecci4n ac"ual no cambia* se 6ue a en el rango

A!ren ien o OOo Basic

1,,

origen* si seleccionamos el rango cuan o se /a movi o* !o remos ir movien o el rango* "an"as veces como llames a la macro* mo i1ica la macro an"erior !ara 6ue 6ue e as<
"u. @+( @+( @+( Mo8%'Rangos523 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o>'+g%n-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" Hh%n o@%s&+no A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o>'+g%n-g%&Rang%!dd'%ss23-End$olu(n B 26 o>'+g%n-g%&Rang%!dd'%ss23-EndRo^ B 2 3 oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 ,"%l%**+ona(os %l nu%8o o'+g%n Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o>'+g%n 3 Els% MsgBox "El 'ango >'+g%n no %s *o''%*&o" End #f End "u.

O llamala (e2ecu"ala) varias veces* no"aras como se va movien o el rango* !ero cui a o* !ue e !asar 6ue en alg>n momen"o "e un error* Icuan oJ* mu- bien* cuan o el rango es"ino 6ue e 1uera e la /o2a e calculo* !or lo 6ue "enemos 6ue evaluar "ambi3n 6ue es"o no suce a<
"u. @+( @+( @+( @+( Mo8%'Rangos623 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& l5+(+&%$ol !s 5ong

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o>'+g%n-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" Hh%n ,Da'an&+:a(os Fu% no so.'% 7as% %l (ax+(o d% *olu(nas %n la ho)a d% *al*ulo l5+(+&%$ol A o>'+g%n-g%&Rang%!dd'%ss23-End$olu(n B 2 B o>'+g%n-g%&$olu(ns23-g%&$oun&23 #f l5+(+&%$ol XA oHo)a!*&+8a-g%&$olu(ns23-g%&$oun&23 Hh%n o@%s&+no A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o>'+g%n-g%&Rang%!dd'%ss23-End$olu(n B 26 o>'+g%n-g%&Rang%!dd'%ss23-EndRo^ B 2 3 oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o>'+g%n 3 Els% MsgBox ""% ll%go al l+(+&% d% la ho)a" End #f Els% MsgBox "5os 'angos no son *o''%*&os" End #f End "u.

No"a 6ue con oco2aAc"iva+ge".olumns()+ge".oun"()* ob"enemos el "o"al e columnas e la /o2a ac"iva* no im!or"a si es"a "iene #5F como en O!eno11ice+org #+: o 1$#E como en O!eno11ice+org ?+:* con lo 6ue es"e c4 igo 1uncionara en las os versiones* e /ec/o* en cual6uier versi4n 6ue im!lemen"e es"as !ro!ie a es* - si* claro 6ue "ienes 6ue evaluar "ambi3n 6ue no !ases el limi"e e 1ilas* !ero esa* es "u "area+ cas"a a/ora /emos movi o rangos en"ro e la misma /o2a* !ero e 1orma musencilla !o emos mover rangos en"re /o2as* solo /a- 6ue es"ablecer el es"ino correc"amen"e - el m3"o o se encargar; el res"o<
"u. Mo8%'Rangos723

#$$
@+( @+( @+( @+( oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& l5+(+&%$ol !s 5ong

F+? Mani!ulan o rangos

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o>'+g%n-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" Hh%n o@%s&+no A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 06 0 3 oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o>'+g%n 3 Els% MsgBox "El 'ango >'+g%n no %s *o''%*&o" End #f End "u.

Observa como el origen lo es"ablecemos en la /o2a ac"iva* !ero el es"ino lo re1erenciamos a la !rimer /o2a el ocumen"o* claro 6ue !ue es /acerlo a cual6uier o"ra* !or n ice o !or nombre como -a lo /emos a!ren i o+ No"a 6ue el m3"o o move@ange* lo llamamos es e la /o2a ac"iva* !ero "ambi3n lo !ue es llamar es e cual6uier /o2a* lo im!or"an"e es 6ue los argumen"os* es ecir* el origen - es"ino es"3n correc"os* observa en el siguien"e e2em!lo* como llamamos al m3"o o move@ange es e la /o2a el rango es"ino<
"u. @+( @+( @+( @+( Mo8%'Rangos823 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& l5+(+&%$ol !s 5ong

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o>'+g%n-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" Hh%n o@%s&+no A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 06 0 3 o@%s&+no-g%&"7'%ad"h%%&23-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o>'+g%n 3 Els% MsgBox "El 'ango >'+g%n no %s *o''%*&o" End #f End "u.

Tambi3n !o emos mover una columna com!le"a* recuer a 6ue una columna no es m;s 6ue un rango e cel as<
"u. @+( @+( @+( Mo8%'Rangos923 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,R%f%'%n*+a(os *o(o o'+g%n la *olu(na E o>'+g%n A oHo)a!*&+8a-g%&$olu(ns23-g%&B?#nd%x243 ,$o(o d%s&+no una *olu(na a la d%'%*ha o@%s&+no A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o>'+g%n-g%&Rang%!dd'%ss23-End$olu(n B 16 0 3 oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o>'+g%n 3 End "u.

O -a encarrera os* movemos 1ilas "ambi3n<

A!ren ien o OOo Basic


"u. @+( @+( @+( Mo8%'Rangos1023 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*&

#$1

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,R%f%'%n*+a(os *o(o o'+g%n la f+la 5 o>'+g%n A oHo)a!*&+8a-g%&Ro^s23-g%&B?#nd%x243 ,$o(o d%s&+no la f+la 10 o@%s&+no A oHo)a!*&+8a-g%&$%llB?0os+&+on2 06 9 3 oHo)a!*&+8a-(o8%Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o>'+g%n 3 End "u.

.uan o muevas columnas - 1ilas com!le"as* "en en cuen"a las mismas consi eraciones vis"as en los em;s e2em!los* e las cuales las !rinci!ales son 6ue los a"os se mueven el origen al es"ino sin !regun"ar* es ecir* no /a- ninguna con1irmaci4n e sobreescri"ura en caso e 6ue el es"ino no es"e vaco* !or lo 6ue "u "ienes 6ue im!lemen"ar es"a vali aci4n - "ener cui a o e no salirse e los limi"es e la /o2a e calculo+

=. .2

Insertando ran*os

=n la in"er1az el usuario* cuan o inser"amos un rango* recor aras 6ue .alc* nos mues"ra un cua ro e ialogo !regun";n onos como es!lazar las em;s cel as* es"a misma consi eraci4n /a- 6ue "ener cuan o lo /acemos !or c4 igo* veamos como<

co2a+inser".ells( .el as As .ell@angeA

ress* Mo o As .ell9nser"Mo e)

"u. #ns%'&a'Rangos123 @+( oHo)a!*&+8a !s >.)%*& @+( o"%l !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,#ns%'&a(os un 'ango d% *%ldas +gual a la s%l%**+Kn a*&ual ,? (o8%(os las *%ldas ha*+a a.a)o oHo)a!*&+8a-+ns%'&$%lls2o"%l-g%&Rang%!dd'%ss236 *o(-sun-s&a'-sh%%&-$%ll#ns%'&Mod%-@>U<3 End "u.

#$#

F+? Mani!ulan o rangos

=l rango a inser"ar no "iene !or 6ue ser a !ar"ir e la selecci4n ac"ual* !ue es crear una es"ruc"ura .ell@angeA ress vaca el "amaKo 6ue 6uieras como en el siguien"e e2em!lo<
"u. #ns%'&a'Rangos223 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,$'%a(os una %s&'u*&u'a 8a*Ga d% d+'%**+Kn d% un 'ango oRango A $'%a&%Cno"&'u*&2 "*o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss" 3 ,Es&a.l%*%(os los 8alo'%s d%l 'ango6 &'%s f+las 7o' &'%s *olu(nas U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss23-"h%%& -"&a'&$olu(n A 1 -"&a'&Ro^ A 1 -End$olu(n A 3 -EndRo^ A 3 End U+&h ,#ns%'&a(os ? d%s7la:a(os ha*+a la d%'%*ha oHo)a!*&+8a-+ns%'&$%lls2oRango6 *o(-sun-s&a'-sh%%&-$%ll#ns%'&Mod%-R#DHH3 End "u.

=s mu- im!or"an"e 6ue es"ablezcas la !ro!ie a S/ee" (/o2a) e es"a es"ruc"ura* si no lo /aces* el valor !re e"ermina o es $* con lo 6ue el rango inser"a o Lsiem!reM lo /ar; en la !rimer /o2a el ocumen"o+ =n es"e segun o e2em!lo /emos es!laza o las cel as a la erec/a* las em;s o!ciones e es"e m3"o o son inser"ar 1ilas com!le"as o columnas com!le"as* en la siguien"e "abla resumimos los cua"ro valores !osibles !ara es"e m3"o o< Constante com+sun+s"ar+s/ee"+.ell9nser"Mo e+(ONN com+sun+s"ar+s/ee"+.ell9nser"Mo e+@9&cT com+sun+s"ar+s/ee"+.ell9nser"Mo e+@ONS com+sun+s"ar+s/ee"+.ell9nser"Mo e+.O)UMNS 1 # ? E 0alor

Pue es usar in is"in"amen"e la cons"an"e o el valor e es"a como en el siguien"e e2em!lo on e inser"amos 1ilas com!le"as<
"u. #ns%'&a'Rangos323 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A $'%a&%Cno"&'u*&2 "*o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss" 3 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss23-"h%%& -"&a'&$olu(n A 1 -"&a'&Ro^ A 1 -End$olu(n A 3 -EndRo^ A 3 End U+&h ,#ns%'&a(os f+las *o(7l%&as oHo)a!*&+8a-+ns%'&$%lls2 oRango6 3 3

A!ren ien o OOo Basic


End "u.

#$?

.uan o 6uieras inser"ar 1ilas o columnas com!le"as* !ue es usar los m3"o os vis"os /as"a a/ora o* !ue es usar los m3"o os es!ec1icos el con2un"o e 1ilas - columnas como en el siguien"e e2em!lo on e inser"amos # columnas a !ar"ir e la columna =<
"u. #ns%'&a'Rangos423 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,#ns%'&a(os 2 *olu(nas a 7a'&+' d% la *olu(na E oHo)a!*&+8a-g%&$olu(ns23-+ns%'&B?#nd%x2 46 2 3 End "u.

No"a 6ue a/ora usamos el m3"o o inser"B-9n e:* 6ue es es!eci1ico el con2un"o e columnas* !or ello !rimero llama os a ge".olumns()* el !rimer argumen"o e es"e m3"o o es el n ice e la columna on e comenzara la inserci4n - el segun o es el n>mero e columnas 6ue eseamos inser"ar+ =l m3"o o !ara inser"ar 1ilas es e:ac"amen"e igual* e:ce!"o !or 6ue lo llamamos es e el con2un"o e 1ilas (ge"@o7s) como en<
"u. #ns%'&a'Rangos523 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,#ns%'&a(os 5 f+las a 7a'&+' d% la f+la 3 oHo)a!*&+8a-g%&Ro^s23-+ns%'&B?#nd%x2 26 5 3 End "u.

Para "erminar es"e "ema* recuer a 6ue no !ue es es!lazar cel as 1uera el rango e la /o2a e calculo* !or lo 6ue "ienes 6ue evaluar 6ue "engas su1icien"e es!acio !ara la inserci4n* e lo con"rario* "e ar; un error en "iem!o e e2ecuci4n+

=. .

Eliminando ran*os

=liminar rangos* es la o!eraci4n inversa a inser"arlos* en es"e caso* "enemos 6ue eci ir 6ue /acer con las cel as a -acen"es al rango* es ecir* como se es!lazar;n* en nues"ro !rimer e2em!lo* movemos las cel as /acia arriba<

co2a+remove@ange( .el as As .ell@angeA

ress* Mo o As .ell(ele"eMo e)

#$E

F+? Mani!ulan o rangos

"u. Bo''a'Rangos123 @+( oHo)a!*&+8a !s >.)%*& @+( o"%l !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Bo''a(os la s%l%**+Kn a*&ual ? (o8%(os las *%ldas ha*+a a''+.a oHo)a!*&+8a-'%(o8%Rang%2 o"%l-g%&Rang%!dd'%ss236 *o(-sun-s&a'-sh%%&-$%ll@%l%&%Mod%-C0 3 End "u.

.uan o se /ace cual6uier o!eraci4n e borra o o eliminaci4n* es una buena !rac"ica e !rogramaci4n 6ue con1irmes es"a acci4n con el usuario* sobre "o o* con a6uellas acciones 6ue no es !osible es/acer* es casi una regla 6ue lo /agas+ =n el siguien"e e2em!lo* es!lazamos /acia la iz6uier a* es!u3s e con1irmar la eliminaci4n<
"u. @+( @+( @+( Bo''a'Rangos223 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& +R%s !s #n&%g%' oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A $'%a&%Cno"&'u*&2 "*o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss" 3 ,Es&a.l%*%(os %l 'ango E84J21 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E84J21" 3 ,$onf+'(a(os la %l+(+na*+on +R%s A MsgBox2 "Es&as s%gu'o d% .o''a' %l 'ango"6 4 B 326 "Bo''a' 'ango" 3 ,"olo .o''a(os s+ %l usua'+o '%s7ond+o "# #f +R%s A 6 Hh%n ,Bo''a(os %l 'ango ? (o8%(os las *%ldas ha*+a la +:Fu+%'da oHo)a!*&+8a-'%(o8%Rang%2 oRango-g%&Rang%!dd'%ss6 *o(-sun-s&a'-sh%%&-$%ll@%l%&%Mod%-5EJH 3 End #f End "u.

=n la siguien"e "abla !ue es ver las !osibili a es e es"e m3"o o* as como sus valores 6ue !ue es usar en vez e ellas+ Constante com+sun+s"ar+s/ee"+.ell(ele"eMo e+UP com+sun+s"ar+s/ee"+.ell(ele"eMo e+)='T com+sun+s"ar+s/ee"+.ell(ele"eMo e+@ONS com+sun+s"ar+s/ee"+.ell(ele"eMo e+.O)UMNS 1 # ? E 0alor

Po emos borrar columnas com!le"as* en el siguien"e e2em!lo usamos el valor e la cons"an"e en vez e es"a* -a no !e imos con1irmaci4n* !ero "e recomien o siem!re /acerla+
"u. @+( @+( @+( Bo''a'Rangos323 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& +R%s !s #n&%g%' oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23

A!ren ien o OOo Basic

#$5

oRango A $'%a&%Cno"&'u*&2 "*o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss" 3 ,Es&a.l%*%(os %l 'ango B24@2 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "B24@2" 3 ,Bo''a(os las *olu(nas *o(7l%&as oHo)a!*&+8a-'%(o8%Rang%2 oRango-g%&Rang%!dd'%ss6 4 3 End "u.

Al igual 6ue con la inserci4n* !ara la eliminaci4n e 1ilas - columnas com!le"as* se cuen"a con m3"o os al"erna"ivos accesibles es e el con2un"o e 1ilas (ge"@o7s) - columnas (ge".olumns)* veamos como<
"u. Bo''a'Rangos423 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,Bo''a(os 3 f+las a 7a'&+' d% la f+la 10 oHo)a!*&+8a-g%&Ro^s23-'%(o8%B?#nd%x2 96 3 3 ,Bo''a(os 2 *olu(nas a 7a'&+' d% la ! oHo)a!*&+8a-g%&$olu(ns23-'%(o8%B?#nd%x2 06 2 3 End "u.

No se "e olvi e siem!re con1irmar las eliminaciones+

=. .)

Copiando ran*os

.o!iar rangos es mu- similar a moverlos* se usan los mismos argumen"os* un rango origen - una cel a es"ino* claro* cambia el m3"o o usa o* al igual 6ue cuan o movemos* el es"ino ser; reem!laza o con el origen sin ning>n "i!o e con1irmaci4n* !ero como -a sabes im!lemen"arla* no "ienes !roblemas con ello* Iver a J co2a+co!-@ange( (es"ino As .ellA
"u. @+( @+( @+( $o7+a'Rangos123 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*&

ress* Origen As .ell@angeA

ress)

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,Rango a *o7+a' o>'+g%n A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14B3" 3 ,$%lda d%s&+no o@%s&+no A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "@10" 3 ,$o7+a(os %l 'ango oHo)a!*&+8a-*o7?Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 End "u.

#$F

F+? Mani!ulan o rangos

A i1erencia e cuan o movemos* el origen !ermanece "al cual - a6u si* si el rango con"iene 1ormulas* las re1erencias rela"ivas se a2us"ar;n au"om;"icamen"e a la nueva !osici4n* a em;s e 6ue el rango origen !ermanece con la re1erencia original<
"u. @+( @+( @+( $o7+a'Rangos223 oHo)a!*&+8a !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 o>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 o@%s&+no A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o>'+g%n-g%&Rang%!dd'%ss23-End$olu(n B 16 o>'+g%n-g%&Rang%!dd'%ss23-EndRo^ B 1 3 oHo)a!*&+8a-*o7?Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o>'+g%n 3 End "u.

Para co!iar en una /o2a i1eren"e* solo "ienes 6ue es"ablecer el es"ino correc"amen"e en ic/a /o2a* el siguien"e e2em!lo* co!iamos el rango B#<(5 e la ul"ima /o2a el ocumen"o a la cel a A1 e la !rimera<
"u. @+( @+( @+( @+( 3 oHo)a@%s&+no A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x2 0 3 ,Rango a *o7+a' o>'+g%n A oHo)a>'+g%n-g%&$%llRang%B?<a(%2 "B24@5" 3 ,$%lda d%s&+no o@%s&+no A oHo)a@%s&+no-g%&$%llRang%B?<a(%2 "!1" 3 ,$o7+a(os %l 'ango oHo)a@%s&+no-*o7?Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o@%s&+no 3 End "u. $o7+a'Rangos323 oHo)a>'+g%n !s >.)%*& oHo)a@%s&+no !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& oHo)a>'+g%n A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x2 Hh+s$o(7on%n&-g%&"h%%&s23-g%&$oun&23 T 1

Pue es co!iar columnas o 1ilas com!le"as<


"u. @+( @+( @+( @+( $o7+a'Rangos423 oHo)a>'+g%n !s >.)%*& oHo)a@%s&+no !s >.)%*& o>'+g%n !s >.)%*& o@%s&+no !s >.)%*& ,0'+(%' ho)a oHo)a>'+g%n A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x2 0 3 ,Rango a *o7+a' *olu(na B o>'+g%n A oHo)a>'+g%n-g%&$olu(ns23-g%&B?#nd%x2 1 3 ,"%gunda Ho)a oHo)a@%s&+no A Hh+s$o(7on%n&-g%&"h%%&s23-g%&B?#nd%x2 1 3 o@%s&+no A oHo)a@%s&+no-g%&$%llRang%B?<a(%2 "E1" 3

A!ren ien o OOo Basic

#$%

oHo)a@%s&+no-*o7?Rang%2 o@%s&+no-g%&$%ll!dd'%ss236 o>'+g%n-g%&Rang%!dd'%ss23 3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-s%l%*&2 o@%s&+no 3 End "u.

cagamos algo mu- in"eresan"e* como sabemos* cuan o co!iamos un rango e cel as - es"e rango "iene 1ilas o columnas ocul"as manualmen"e o !or es"ar agru!a as* la co!ia resul"an"e* con"en r; aun* las 1ilas - columnas ocul"as* con el m3"o o !ara seleccionar solo las cel as visibles (,uer)/isibleCells) a!ren i o en el ca!i"ulo an"erior - el m3"o o !ara co!iar rangos* !o emos in"en"ar /acer nues"ra versi4n e una /erramien"a 6ue llamaremos L.o!iar solo visiblesM* I"e !areceJ+ An"es e 6ue sigas le-en o* "e invi"o a 6ue in"en"es resolverlo !or "i mismo !rimero* es!u3s c/eca mi versi4n - com!;ralas* claro* solo con 1ines i ;c"icos !ues"o 6ue es"amos a!ren ien o<
"u. @+( @+( @+( @+( @+( @+( @+( @+( @+( $o7+a'"olo1+s+.l%s123 o"%l !s >.)%*& o$u'so' !s >.)%*& o1+s+.l%s !s >.)%*& oHo)a>'+g%n !s >.)%*& oHo)a@%s&+no !s >.)%*& oRango>'+g%n !s >.)%*& o$%lda@%s&+no !s <%^ *o(-sun-s&a'-&a.l%-$%ll!dd'%ss *o1 !s 5ong (@+'

oHo)a>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,R%f%'%n*+a a la s%l%**+Kn a*&ual o"%l A Hh+s$o(7on%n&-g%&*u''%n&"%l%*&+on23 ,"+ %s una sola *%lda '%g'%sa(os la '%g+Kn a*&ual #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n o$u'so' A o"%l-g%&"7'%ad"h%%&-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 ,O las *%ldas 8+s+.l%s o1+s+.l%s A o$u'so'-Fu%'?1+s+.l%$%lls23 Els%#f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%s>.)" Hh%n o1+s+.l%s A o"%l End #f ,s+ no ha? *%ldas 8+s+.l%s #f #s<ull2 o1+s+.l%s 3 Hh%n MsgBox "<o ha? *%ldas o*ul&as" Els% ,!g'%ga(os una nu%8a ho)a oHo)a@%s&+no A g%&<u%8aHo)a2 Hh+s$o(7on%n&6 oHo)a>'+g%n 3 ,>.&%n%(os una (a&'+: *on las d+'%**+on%s d% &odos los 'angos (@+' A o1+s+.l%s-g%&Rang%!dd'%ss%s23 ,#&%'a(os %n *ada d+'%**+Kn Jo' *o1 A 5Bound2(@+'3 Ho CBound2(@+'3 oRango>'+g%n A (@+'2 *o1 3 ,5a *%lda d%s&+no &%nd'a la (+s(a d+'%**+Kn d%l 'ango 7%'o %n la ho)a d%s&+no o$%lda@%s&+no-"h%%& A oHo)a@%s&+no-g%&Rang%!dd'%ss-"h%%& o$%lda@%s&+no-$olu(n A oRango>'+g%n-"&a'&$olu(n o$%lda@%s&+no-Ro^ A oRango>'+g%n-"&a'&Ro^ ,$o7+a(os %l 'ango oHo)a@%s&+no-*o7?Rang%2 o$%lda@%s&+no6 oRango>'+g%n 3 <%x& *o1 ,"%l%**+ona(os la nu%8a ho)a *on los da&os *o7+ados Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%&!*&+8%"h%%&2 oHo)a@%s&+no 3 MsgBox "Rangos *o7+ados" End #f End "u.

#$G

F+? Mani!ulan o rangos

,@%8u%l8% una nu%8a ho)a %n @o*u(%n&o6 a la d%'%*ha d%l a'gu(%n&o Ho)a Jun*&+on g%&<u%8aHo)a2 @o*u(%n&o !s >.)%*&6 Ho)a !s >.)%*& 3 !s >.)%*& @+( oHo)as !s >.)%*& @+( *o1 !s #n&%g%' @+( s<o(.'% !s "&'+ng oHo)as A @o*u(%n&o-g%&"h%%&s23 s<o(.'% A "Rangos $o7+ados" @o Uh+l% oHo)as-hasB?<a(%2 s<o(.'% 3 *o1 A *o1 B 1 s<o(.'% A s<o(.'% 9 " " 9 Jo'(a&2*o13 5oo7 oHo)as-+ns%'&<%^B?<a(%2 s<o(.'%6 Ho)a-g%&Rang%!dd'%ss-"h%%&B1 3 g%&<u%8aHo)a A @o*u(%n&o-g%&"h%%&s-g%&B?<a(%2 s<o(.'% 3 End Jun*&+on

Seguro 6ue -a vis"e 6ue no "raba2a mu- bien 6ue igamos* claro* no es na a !rac"ico 6ue use la misma irecci4n el origen en el es"ino !ues los a"os 6ue an "o os is!ersos+ 5amos a me2orarla* e nuevo* in"en"a corregirla "u - es!u3s con"inuas<
"u. @+( @+( @+( @+( @+( @+( @+( @+( @+( @+( $o7+a'"olo1+s+.l%s223 o"%l !s >.)%*& o$u'so' !s >.)%*& o1+s+.l%s !s >.)%*& oHo)a>'+g%n !s >.)%*& oHo)a@%s&+no !s >.)%*& oRango>'+g%n !s >.)%*& oRango!n&%'+o' !s >.)%*& o$%lda@%s&+no !s <%^ *o(-sun-s&a'-&a.l%-$%ll!dd'%ss *o1 !s 5ong6 J+l !s 5ong6 $ol !s 5ong (@+'

oHo)a>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&*u''%n&"%l%*&+on23 "%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(% $as% ""*$%ll>.)" o$u'so' A o"%l-g%&"7'%ad"h%%&-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 o1+s+.l%s A o$u'so'-Fu%'?1+s+.l%$%lls23 $as% ""*$%llRang%>.)"6 ""*$%llRang%s>.)" o1+s+.l%s A o"%l-Fu%'?1+s+.l%$%lls23 End "%l%*& #f #s<ull2 o1+s+.l%s 3 Hh%n MsgBox "<o ha? *%ldas o*ul&as o no %s un 'ango d% *%ldas" Els% J+l A 0 $ol A 0 oHo)a@%s&+no A g%&<u%8aHo)a2 Hh+s$o(7on%n&6 oHo)a>'+g%n 3 (@+' A o1+s+.l%s-g%&Rang%!dd'%ss%s23 ,$o7+a(os %l 7'+(%' 'ango oRango>'+g%n A (@+'2 0 3 o$%lda@%s&+no-"h%%& A oHo)a@%s&+no-g%&Rang%!dd'%ss-"h%%& ,En la *%lda !1 o$%lda@%s&+no-$olu(n A 0 o$%lda@%s&+no-Ro^ A 0 oHo)a@%s&+no-*o7?Rang%2 o$%lda@%s&+no6 oRango>'+g%n 3 ,"+ &%n%(os (=s 'angos #f o1+s+.l%s-g%&$oun&23 Y 1 &h%n Jo' *o1 A 1 Ho CBound2(@+'3 oRango>'+g%n A (@+'2 *o1 3 oRango!n&%'+o' A (@+'2 *o1T1 3 ,1a(os su(ando *ada an*ho ? al&o d% *ada 'ango6 solo *uando *a(.+%n #f oRango!n&%'+o'-"&a'&$olu(n A oRango>'+g%n-"&a'&$olu(n Hh%n

A!ren ien o OOo Basic

#$,

o$%lda@%s&+no-Ro^ A o$%lda@%s&+no-Ro^ B oRango!n&%'+o'-EndRo^ T oRango!n&%'+o'-"&a'&Ro^ B 1 Els% o$%lda@%s&+no-$olu(n A $ol B oRango!n&%'+o'-End$olu(n T oRango!n&%'+o'-"&a'&$olu(n B 1 o$%lda@%s&+no-Ro^ A J+l $ol A o$%lda@%s&+no-$olu(n End #f oHo)a@%s&+no-*o7?Rang%2 o$%lda@%s&+no6 oRango>'+g%n 3 <%x& *o1 End #f Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%&!*&+8%"h%%&2 oHo)a@%s&+no 3 End #f End "u.

A/ora si* "raba2a muc/o me2or* !ero* "o ava "iene un L!e6ueKoM e"alle* /a- un caso !ar"icular on e el rango no con"enga cel as ocul"as - nues"ra macro no lo in1orme* - igo 6ue es un e"alle !or 6ue no "e ar; ning>n error - seguir; 1uncionan o* !ue es consi erar evaluarlo o e2arla as* !ero eso si* "u "area es encon"rar es"e caso !ar"icular+ Tambi3n* !o ras me2orar es"a macro !ara 6ue co!ie solo a"os o resul"a os e 1ormulas* es"o lo !o r;s /acer cuan o a 6uieras los conocimien"os el !r4:imo ca!i"ulo+

=.)

Manipulando datos

Oa vamos llegan o a "emas m;s in"eresan"es - iver"i os* on e veremos con em!ezar a in"erac"uar con las cel as e nues"ra /o2a e calculo+ Para el me2or a!rovec/amien"o e es"e ca!i"ulo* "ienes 6ue "ener !resen"e los i1eren"es "i!os e a"os 6ue so!or"a .alc+

=.).1

%bteniendo datos

)a 1orma m;s sim!le - irec"a e ob"ener el con"eni o e una cel a* es usan o el m3"o o ge"S"ring* 6ue "e evuelve el con"eni o e la cel a* "al - como se ve en la in"er1az el usuario* es ecir* si el con"eni o e la cel a es "e:"o* "e lo mues"ra "al cual* si con"iene una 1ormula* "e mos"rara el resul"a o e ic/a 1ormula - si es 1ec/a - "iene 1orma"o* "e la evolver; como se ve en !an"alla<
"u. @a&os123 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,Mos&'a(os %l *on&%n+do d% la *%lda MsgBox o"%l-g%&"&'+ng23 Els% MsgBox ""%l%**+ona solo una *%lda" End #f

#1$
End "u.

F+E Mani!ulan o a"os

Si lo 6ue eseas es evolver el valor e la cel a* se usa el m3"o o ge"5alue* si la cel a con"iene "e:"o* es"e m3"o o "e evolver; $* si "iene un valor* ic/o valor* si la cel a con"iene una 1ormula* e!en er; el "i!o e resul"a o e es"a 1ormula* si es "e:"o e nuevo "e evolver; $* si es un valor* es"e valor* si "iene un error e nuevo ser; $* si la cel a con"iene una 1ec/a* "e evolver; el n>mero e serie e es"a 1ec/a<
"u. @a&os223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,Mos&'a(os %l 8alo' d% la *%lda MsgBox o"%l-g%&1alu%23 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Tambi3n !ue es ob"ener la 1ormula 6ue "enga la cel a con el m3"o o ge"'ormula* si la cel a con"iene "e:"o* "e evolver; es"e "e:"o* si es un valor* ese valor* e una 1ec/a "e evuelve el n>mero e serie - si es 1ormula* "e evuelve ic/a 1ormula* inclu-en o el signo e igual (l) con 6ue em!ieza "o a 1ormula aun - cuan o la 1ormula "enga como resul"a o un erro* "ambi3n* "oma en cuen"a 6ue si la 1ormula evuel"a con"iene alguna 1unci4n incor!ora a e .alc* como SUMA* BUS.A@5* e"c* es"e m3"o o "e evolver; el nombre e es"a 1unci4n en ingles* SUM* 5)OOtUP* e"c+
"u. @a&os323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,Mos&'a(os la fo'(ula d% la *%lda MsgBox o"%l-g%&Jo'(ula23 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Si eseas ob"ener la 1ormula "al - como se ve en la barra e 1ormulas* en"onces usa la !ro!ie a 'ormula)ocal* 6ue se com!or"a e 1orma mu- similar a ge"S"ring* e:ce!"o en las 1ormulas* on e "e las evuelve como a!arecen en la barra e 1ormulas* como en<
"u. @a&os423 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,Mos&'a(os la fo'(ula lo*al d% la *%lda MsgBox o"%l-Jo'(ula5o*al Els% MsgBox ""%l%**+ona solo una *%lda" End #f

A!ren ien o OOo Basic


End "u.

#11

Si 6uieres ver las i1erencias* ca!"ura valores en varias cel as* "e:"o* n>meros* 1ec/as - 1ormulas* - !rueba la siguien"e macro* "oma en cuen"a 6ue es"os m3"o os solo los !ue es usar en cel as in ivi uales* !or ello /acemos la vali aci4n* en una e las 1ormulas usa la 1unci4n lA)=ATO@9O()* veras claramen"e las i1erencias en"res es"os m3"o os+
"u. @a&os5() @+( o"%l !s >.)%*& @+( sH(7 !s "&'+ng o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,Mos&'a(os las d+f%'%n*+as %n&'% los (%&odos sH(7 A "g%&"&'+ng 4 " 9 o"%l-g%&"&'+ng 9 $h'2133 sH(7 A sH(7 9 "g%&1alu% 4 " 9 o"%l-g%&1alu% 9 $h'2133 sH(7 A sH(7 9 "g%&Jo'(ula 4 " 9 o"%l-g%&Jo'(ula 9 $h'2133 sH(7 A sH(7 9 "Jo'(ula5o*al 4 " 9 o"%l-Jo'(ula5o*al ,Mos&'a(os %l '%sul&ado MsgBox sH(7 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Tambi3n !ue es ob"ener el "i!o e con"eni o e la cel a con ge"T-!e* 6ue "e evolver; un en"ero e!en ien o el con"eni o e la cel a* vaca ($)* valor (1)* "e:"o (#) o 1ormula (?)* e nuevo* es"e m3"o o solo es"a is!onible es una sola cel a<
"u. @a&os6() @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 MsgBox o"%l-g%&H?7%23 End "u.

Si la cel a con"iene una 1ormula - es"a evuelve un error* !ue es saber 6ue error es con el m3"o o ge"=rror* si la cel a no con"iene una 1ormula* es"e m3"o o siem!re "e evolver; $+
"u. @a&os723 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 MsgBox o"%l-g%&E''o'23 End "u.

=l error ivisi4n en"re cero* evuelve el error 5?#* es"ablece es"e error en una 1ormula cual6uiera !ara 6ue lo com!ruebes* "ambi3n !ue es !robar con el error e cuan o a una 1ormula le 1al"an argumen"os* normalmen"e a el error 511+ Po ramos aven"urar una !rimera 1orma e usar el m3"o o correc"o* e acuer o al con"eni o e la cel a<
"u. @a&os823 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23

#1#
"%l%*& $as% o"%l-g%&H?7%23 $as% 0 MsgBox "5a *%lda %s&a 8a*+a" $as% 1 MsgBox o"%l-g%&1alu%23 $as% 2 MsgBox o"%l-g%&"&'+ng23 $as% 3 #f o"%l-g%&E''o'23 A 0 Hh%n MsgBox o"%l-Jo'(ula5o*al Els% MsgBox o"%l-g%&E''o'23 End #f End "%l%*& End "u.

F+E Mani!ulan o a"os

O si se convier"e en 1unci4n<
Jun*&+on $on&%n+do$%lda2$%lda !s >.)%*&3 @+( &(7 "%l%*& $as% $%lda-g%&H?7%23 $as% 0 4 &(7 A "5a *%lda %s&a 8a*+a" $as% 1 4 &(7 A $%lda-g%&1alu%23 $as% 2 4 &(7 A $%lda-g%&"&'+ng23 $as% 3 #f $%lda-g%&E''o'23 A 0 Hh%n &(7 A $%lda-Jo'(ula5o*al Els% &(7 A $%lda-g%&E''o'23 End #f End "%l%*& $on&%n+do$%lda A &(7 End Jun*&+on

Toma en cuen"a 6ue una cel a "e !ue e evolver 5?# - es"ar correc"o* es ecir 6ue sea !or e2em!lo el n>mero e alguna calle o ser el valor e alguna acci4n - seguir sien o correc"o o ser el error 5?# - como in1ormaci4n* seguir sien o correc"o* as 6ue no "omes la 1unci4n an"erior como e1ini"iva* sino "an solo como una gua !ara lo 6ue realmen"e necesi"es+ A/ora solo nos res"a !o er llamarla es e la cel a<
"u. @a&os923 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 MsgBox $on&%n+do$%lda 2 o"%l 3 End "u.

O con un !oco e ingenio es e cual6uier rango e cel as<


"u. @a&os1023 @+( o"%l !s >.)%*& @+( f+l !s 5ong6 *ol !s 5ong o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 "%l%*& $as% o"%l-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)" MsgBox $on&%n+do$%lda 2 o"%l 3 $as% ""*$%llRang%>.)"

A!ren ien o OOo Basic

#1?
Jo' f+l A 0 Ho o"%l-g%&Ro^s23-g%&$oun&23 T 1 Jo' *ol A 0 Ho o"%l-g%&$olu(ns23-g%&$oun&23 T 1 MsgBox $on&%n+do$%lda 2 o"%l-g%&$%llB?0os+&+on2*ol6f+l3 3 <%x& *ol <%x& f+l

End "%l%*& End "u.

Toma en cuen"a 6ue ge".ellB-Posi"ion* ob"iene una re1erencia a una sola cel a* es"a* es en 4re2erencia1 a la selecci4n original* "e 6ue a e "area* ob"ener lo mismo !ero con relaci4n a la /o2a com!le"a* "e o- os !is"as* usa el mismo m3"o o (ge".ellB-Posi"ion)* !ero "oma como base e in1ormaci4n !ara los ciclos* la 6ue "e evuelve el m3"o o ge"@angeA ress+ =n "o os lo casos an"eriores* los m3"o os usa os solo 1uncionan cuan o /acemos re1erencia a una sola cel a* si 6uieres ob"ener el con"eni o e un rango e cel as* usaremos el m3"o o ge"(a"a* 6ue "e evuelve una ma"riz e ma"rices con el con"eni o e las cel as* !ero cui a o* ge"(a"a solo "e evuelve las cel as con valores* a em;s* en las cel as vacas evuelve un valor un "an"o Le:"raKoM* !ue es veri1icarlo con el siguien"e e2em!lo* !rocura seleccionar un rango !e6ueKo !or 6ue "e mos"rar; el valor e ca a cel a<
"u. @+( @+( @+( @+( @a&os1123 o"%l !s >.)%*& (@a&os (H(7 *o1 !s 5ong6 *o2 !s 5ong o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" Hh%n ,>.&%n%(os ">5> 1!5>RE" (@a&os A o"%l-g%&@a&a23 Jo' *o1 A 5Bound2(@a&os3 &o CBound2(@a&os3 ,!s+gna(os la (a&'+: +n&%'na a una &%(7o'al (H(7 A (@a&os2*o13 Jo' *o2 A 5Bound2(H(73 &o CBound2(H(73 MsgBox (H(72*o23 <%x& <%x& End #f End "u.

Si 6uieres ob"ener el con"eni o sea cual sea* usa la misma es"ruc"ura* !ero en vez e usar ge"(a"a* usa ge"(a"aArra- como en<
"u. @+( @+( @+( @+( @a&os1223 o"%l !s >.)%*& (@a&os (H(7 *o1 !s 5ong6 *o2 !s 5ong o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" Hh%n ,>.&%n%(os &odo los da&os (@a&os A o"%l-g%&@a&a!''a?23 Jo' *o1 A 5Bound2(@a&os3 &o CBound2(@a&os3 (H(7 A (@a&os2*o13 Jo' *o2 A 5Bound2(H(73 &o CBound2(H(73 MsgBox (H(72*o23

#1E
<%x& <%x& End #f End "u.

F+E Mani!ulan o a"os

O si lo 6ue 6uieres es el con"eni o e las cel as* como si /ubieses usa o en ca a una el m3"o o ge"'ormula* usas ge"'ormulaArra-<
"u. @+( @+( @+( @+( @a&os1323 o"%l !s >.)%*& (@a&os (H(7 *o1 !s 5ong6 *o2 !s 5ong o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%llRang%>.)" Hh%n ,>.&%n%(os &odo los da&os *o(o s+ s% usa'a g%&Jo'(ula 7%'o %n &odo %l 'ango (@a&os A o"%l-g%&Jo'(ula!''a?23 Jo' *o1 A 5Bound2(@a&os3 &o CBound2(@a&os3 (H(7 A (@a&os2*o13 Jo' *o2 A 5Bound2(H(73 &o CBound2(H(73 MsgBox (H(72*o23 <%x& <%x& End #f End "u.

(e la combinaci4n e los m3"o os vis"os en es"e "ema* !ue es acce er a cual6uier in1ormaci4n e una cel a o un rango e cel as* veamos a/ora como in"ro ucir in1ormaci4n+

=.).2

Introduciendo datos

)os m3"o os !ara in"ro ucir a"os en cel as* son m;s o menos los mismos 6ue !ara ob"enerlos* !ero en vez e ob"enerlos (ge") los es"ablecemos (se")+ Para el caso e ca enas e "e:"o* usamos se"S"ring* "oma en cuen"a 6ue es"e m3"o o reem!lazar; el con"eni o e la cel a sin !regun"ar"e na a+
"u. #n&'odu*+'123 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,#ns%'&a(os una *ad%na %n la *%lda o"%l-s%&"&'+ng2 "<ad+% %s&a (=s 7%'d+do Fu% Fu+%n no sa.% a dond% 8a" 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Para valores usamos se"5alue* el mismo mo o 6ue se"S"ring* sim!lemen"e reem!lazar; el con"eni o e la cel a sin consul"ar"e+

A!ren ien o OOo Basic


"u. #n&'odu*+'223 @+( o"%l !s >.)%*&

#15

o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,#ns%'&a(os un 8alo' %n la *%lda o"%l-s%&1alu%2 34 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Oa lo /abr;s in"ui o* !ara las 1ormulas !o emos usar se"'ormula* la 1ormula ebe es"ar como una ca ena e "e:"o - ebe ser una 1ormula v;li a+
"u. #n&'odu*+'323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,#ns%'&a(os una fo'(ula o"%l-s%&Jo'(ula2 "A!1B!5" 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

Si in"ro uces una 1ormula no v;li a* es"e m3"o o no "e ar; ning>n error* !ero si lo ob"en r;s en la in"er1az el usuario* como en el siguien"e e2em!lo<
"u. #n&'odu*+'423 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,#ns%'&a(os una fo'(ula no 8al+da o"%l-s%&Jo'(ula2 "A$2T$3B" 3 End #f End "u.

Si /ace uso e 1unciones incor!ora as e O!enO11ice+org* "ienes 6ue usar el nombre en ingles e la 1unci4n a usar* "ambi3n* los argumen"os eben es"ar correc"amen"e es"ableci os* as como los "i!os e es"os !ara 6ue no "e evuelva ning>n error+
"u. #n&'odu*+'523 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,#ns%'&a(os una fo'(ula *on fun*+on o"%l-s%&Jo'(ula2 "A"CM2!14!103" 3 End #f End "u.

#1F

F+E Mani!ulan o a"os

Si !re1ieres usar los nombres e las 1unciones en es!aKol* en vez e es"e m3"o o* usa la !ro!ie a 'ormula)ocal* el siguien"e e2em!lo /ace lo mismo 6ue el an"erior<
"u. #n&'odu*+'623 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(%23 A ""*$%ll>.)" Hh%n ,#ns%'&a(os una fo'(ula *on fun*+Kn o"%l-Jo'(ula5o*al A "A"CM!2!14!103" End #f End "u.

=n el A!en ice .* "e mues"ro una lis"a e e6uivalencias e las ?%5 1ormulas 6ue incor!ora .alc* en"re es!aKol e ingles* as* !ue es usar el m3"o o 6ue 6uieras+ .uan o 6ueramos in"ro ucir valores en rangos e cel as* /a- 6ue "ener la !recauci4n e es"ablecer el rango es"ino* Le:ac"amen"eM el mismo anc/o - al"o e la ma"riz origen* e lo con"rario "e ar; un error en "iem!o e e2ecuci4n+
"u. @+( @+( @+( #n&'odu*+'723 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& (@a&os243 (@a&os203 (@a&os213 (@a&os223 (@a&os233 (@a&os243 A A A A A !''a?2162633 !''a?2465663 !''a?2768693 !''a?2106116123 !''a?2136146153

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,El 'ango dond% s% +ns%'&a'an los 8alo'%s6 "d%.%" ,s%' d%l (+s(o &a(a\o %n an*ho ? al&o d% la (a&'+: oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14$5"3 ,#ns%'&a(os la (a&'+: *o(7l%&a oRango-s%&@a&a2 (@a&os 3 End "u.

Tambi3n* "oma no"a e 6ue con el m3"o o se"(a"a* solo !ue es in"ro ucir valores* si la ma"riz lleva alguna ca ena e "e:"o* es"e m3"o o la reem!lazara !or $* !ara valores - ca enas* ebes usar se"(a"aArra-<
"u. @+( @+( @+( #n&'odu*+'823 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& (@a&os243 (@a&os203 (@a&os213 (@a&os223 (@a&os233 (@a&os243 A A A A A !''a?2"<o"6"<o(.'%"6"H%l"3 !''a?216"Dlo'+a"6123456783 !''a?216"0aola"6234567893 !''a?236"5+d+a"6345678913 !''a?246"5+:%&&%"6876543213

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,El 'ango dond% s% +ns%'&a'an los 8alo'%s6 "d%.%" ,s%' d%l (+s(o &a(a\o %n an*ho ? al&o d% la (a&'+: oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14$5"3 ,#ns%'&a(os la (a&'+: *o(7l%&a oRango-s%&@a&a!''a?2 (@a&os 3

A!ren ien o OOo Basic

#1%

End "u.

Si "us a"os a in"ro ucir inclu-en 1ormulas* es me2or 6ue uses se"'ormulaArra-<
"u. @+( @+( @+( #n&'odu*+'923 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& (@a&os243 (@a&os203 (@a&os213 (@a&os223 (@a&os233 (@a&os243 A A A A A !''a?2"<o"6"<o(.'%"6"H%l"3 !''a?216"Dlo'+a"6"AR!<@23"3 !''a?216"0aola"6"A!3"3 !''a?236"5+d+a"6"A"CM2!24!43"3 !''a?246"5+:%&&%"6"AR!<@23"3

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14$5"3 ,#ns%'&a(os la (a&'+: *o(7l%&a oRango-s%&Jo'(ula!''a?2 (@a&os 3 End "u.

=.).

&orrando datos

Para borrar a"os e cel as usamos el m3"o o clear.on"en"s* es"e m3"o o re6uiere un en"ero in ic;n ole el "i!o e con"eni o 6ue eseamos borrar* !or e2em!lo valores (1)* "e:"os (E) o 1ormulas (1F)* es"e m3"o o es"a !resen"e en los "res "i!os e rangos vis"os* !or lo 6ue solo "ienes 6ue asegurar"e 6ue e1ec"ivamen"e sea un rango e cel as+ =n el siguien"e e2em!lo* se borran solo las cel as con valores* "e:"os - 1ormulas* e "res rangos i1eren"es+
"u. Bo''ando123 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14$5"3 ,Bo''a(os solo los 8alo'%s oRango-*l%a'$on&%n&s2 1 3 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"@24E10"3 ,Bo''a(os solo los &%x&o oRango-*l%a'$on&%n&s2 4 3 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"D14I100"3 ,Bo''a(os solo las fo'(ulas oRango-*l%a'$on&%n&s2 16 3 End "u.

Pue es sumar los valores e los "i!os a borrar* en el siguien"e e2em!lo* se borra los "e:"os - las 1ormulas el rango selecciona o<
"u. Bo''ando223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23

#1G

F+E Mani!ulan o a"os

,Bo''a(os los &%x&os 243 B fo'(ulas 2163 o"%l-*l%a'$on&%n&s2 20 3 End "u.

)os valores !ermi"i os !ara es"e m3"o o* es";n con iciona os !or las cons"an"es el gru!o com+sun+s"ar+s/ee"+.ell'lags* cu-os valores se lis"an en la siguien"e "abla< Constante com+sun+s"ar+s/ee"+.ell'lags+5A)U= com+sun+s"ar+s/ee"+.ell'lags+(AT=T9M= com+sun+s"ar+s/ee"+.ell'lags+ST@9N& com+sun+s"ar+s/ee"+.ell'lags+ANNOTAT9ON com+sun+s"ar+s/ee"+.ell'lags+'O@MU)A com+sun+s"ar+s/ee"+.ell'lags+cA@(ATT@ com+sun+s"ar+s/ee"+.ell'lags+STO)=S com+sun+s"ar+s/ee"+.ell'lags+OBi=.T com+sun+s"ar+s/ee"+.ell'lags+=(9TATT@ com+sun+s"ar+s/ee"+.ell'lags+'O@MATT=( 0alor 1 # E G 1F ?# FE 1#G #5F 51#

Pue es usar e 1orma in is"in"a las cons"an"es o los valores e es"as* as como cual6uier combinaci4n e es"as+ =l siguien"e e2em!lo borra L"o oM* "e e2a la selecci4n como nueva+
"u. Bo''ando323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Bo''a(os &odo o"%l-*l%a'$on&%n&s2 1023 3 End "u.

=.).)

3lenando series de datos

)lenar series es un m3"o o mu- iver"i o e in"ro ucir a"os en nues"ra /o2a e calculo* e:is"en os 1ormas e /acerlo* en general la 1orma au"om;"ica 1uncionara* si se es"ablecen correc"amen"e los valores iniciales* observa la siguien"e imagen* en la cel a A1 "enemos solo un valor - en la columna . como 6ueremos 6ue 6ue e nues"ra serie+

A!ren ien o OOo Basic

#1,

=l c4 igo !ara lograr es"o es el siguien"e* observa 6ue sencillo<


"u. 5l%nando"%'+%s123 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14!15"3 ,5l%na(os ha*+a a.a)o oRango-f+ll!u&o2 06 1 3 End "u.

=l m3"o o 1illAu"o* solo re6uiere os argumen"os* el !rimero es !ara in icarle la irecci4n el llena o en nues"ro e2em!lo* aba2o (TOQBOTTOM l $) - un en"ero 6ue le in ica* cuan"as cel as el rango "omara como LguasM !ara e"erminar el algori"mo e llena o+ =n la siguien"e "abla es";n las cua"ro !osibili a es el argumen"o L irecci4nM e es"e m3"o o+ Constante com+sun+s"ar+s/ee"+'ill(irec"ion+TOQBOTTOM com+sun+s"ar+s/ee"+'ill(irec"ion+TOQ@9&cT com+sun+s"ar+s/ee"+'ill(irec"ion+TOQTOP com+sun+s"ar+s/ee"+'ill(irec"ion+TOQ)='T Si 6uisi3ramos llenar el rango con n>meros !ares* lo /aramos as<
"u. 5l%nando"%'+%s223 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!14!15"3 ,Es&a.l%*%(os los 8alo'%s gu+as oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-s%&1alu%2 2 3 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!2"3-s%&1alu%2 4 3 ,5l%na(os ha*+a a.a)o6 no&a Fu% aho'a &o(a(os dos *%ldas *o(o gu+as

0alor $ 1 # ?

##$
oRango-f+ll!u&o2 06 2 3 End "u.

F+E Mani!ulan o a"os

Por su!ues"o no solo con n>meros es !osible* el siguien"e c4 igo es"ablece el rango A1<)1 con los meses el aKo+
"u. 5l%nando"%'+%s323 @+( oHo)a!*&+8a !s >.)%*& @+( oRango !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1451"3 ,Es&a.l%*%(os %l 8alo' gu+a oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-s%&"&'+ng2 "%n%'o" 3 ,5l%na(os a la d%'%*ha oRango-f+ll!u&o2 16 1 3 End "u.

=s"o es !osible !or 6ue es"a lis"a viene e 1orma !re e"ermina a en O!enO11ice+org* es"a - o"ras lis"as* las !ue es !ersonalizar en el men> Herramientas | Opciones * en"ro e la rama O!enO11ice+org .alc* subrama Or enar lis"as+ (on e m;s me gus"a el llena o e series* es en la 1orma "rans!aren"e e co!iar o llenar un rango con una 1ormula esea a* !or e2em!lo* observa la siguien"e imagen

=l 1in es es"ablecer la 1ormula !ara calcular la e a e ca a !ersona* !ara 1ines i ;c"icos aremos !or buena la e a * solo res"an o el aKo ac"ual e la e nacimien"o* observa 6ue los a"os "erminan en la 1ila 1$$1 !ero eso no im!or"a* !ue en "erminar en la 1$$$ o la 6ue sea !ues es"o lo e"erminaremos !or c4 igo* e la siguien"e 1orma<
"u. @+( @+( @+( 5l%nando"%'+%s423 oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& o$u'so' !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3

A!ren ien o OOo Basic

##1

,Es&a.l%*%(os la 7'+(%' fo'(ula oHo)a!*&+8a-g%&$%llRang%B?<a(%2"@2"3-s%&Jo'(ula2 "AOE!R2<>U233T$2" 3 ,$'%a(os un *u'so' a 7a'&+' d% la 7'+(%' *%lda o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 oRango 3 ,Ex7and+(os a la '%g+on a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 ,$ons&'u+(os %l 'ango a ll%na' oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "@24@" 9 $"&'2o$u'so'-g%&Ro^s23-g%&$oun&233 3 ,5l%na(os ha*+a a.a)o oRango-f+ll!u&o2 06 1 3 End "u.

Para es"ablecer la 1ormula* como -a lo vimos* !ue es usar "ambi3n la !ro!ie a es 'ormula)ocal* nues"ra 1ormula e e2em!lo 6ue ara as<
oHo)a!*&+8a-g%&$%llRang%B?<a(%2"@2"3-Jo'(ula5o*al A "A!_>2!H>R!233T$2"

Observa como ob"enemos la ul"ima 1ila el rango usa o con la a-u a el cursor - el m3"o o o.ursor+ge"@o7s()+ge".oun"()* - con una sola lnea m;s* llenamos "o o el rango+ =n el A!en ice .* "e mues"ro una lis"a e e6uivalencias e las ?%5 1ormulas 6ue incor!ora .alc* en"re es!aKol e ingles* as !ue es usar el m3"o o 6ue 6uieras+

=.).!

&uscar y reempla9ar

)a b>s6ue a - reem!lazo en O!enO11ice+org es una /erramien"a mu- !o erosa* si bien "iene "an"as varian"es como las 6ue !ue es ver en8 "ditar | !uscar ) reemplazar * nos limi"aremos a las o!ciones m;s comunes - generales* 6ue ;n o"e e "area la inves"igaci4n el res"o+ Usaremos !ara nues"ras !ruebas la siguien"e "abla e a"os* 6ue* no es res"ric"iva* !ue es usar la 6ue gus"es* !ero es"a !e6ueKa nos !ermi"e com!robar r;!i amen"e los resul"a os !ara com!robar 6ue 1unciona correc"amen"e* es!u3s* !ue es usar lis"a os el "amaKo 6ue 6uieras los recursos e "u e6ui!o "e lo !ermi"an<
/P 1 # ? E 5 F % G , 1$ 11 1# /ombre e gar gloria an"onio li ia !aola vanessa lize""e e gar gloria an"onio li ia !aola (<o 1,%5 1,%F 1,F5 1,FF 1,%E 1,%F 1,%5 1,F, 1,%1 1,F, 1,%? 1,%5 Edad ?? ?# E? E# ?E ?# ?? ?, ?% ?, ?5 ??

###
1? 1E 15 1F 1% 1G vanessa lize""e e gar gloria an"onio li ia 1,%5 1,F% 1,%5 1,F5 1,F% 1,G$ ?? E1 ?? E? E1 #G

F+E Mani!ulan o a"os

=n las b>s6ue as* se usa un L escri!"or e b>s6ue aM 6ue no es o"ra cosa 6ue una es"ruc"ura on e le in icamos las carac"ers"icas e la b>s6ue a - lo 6ue es"amos buscan o - un lugar !ara buscar* 6ue es el rango on e 6ueremos /acer la b>s6ue a* !or su!ues"o !ue es buscar en "o a la /o2a* incluso en "o as las /o2as* la 1orma m;s sencilla e una b>s6ue a es la siguien"e<
"u. @+( @+( @+( @+( Bus*a'123 oHo)a!*&+8a !s >.)%*& oBus*a'En !s >.)%*& oEn*on&'ado !s >.)%*& o"@ !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 ,Es&a.l%*%(os %l 'ango dond% .us*a'%(os oBus*a'En A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14@19" 3 ,$'%a(os %l d%s*'+7&o' d% .usFu%da o"@ A oHo)a!*&+8a-*'%a&%"%a'*h@%s*'+7&o' ,Es&a.l%*%(os lo Fu% %s&a(os .us*ando o"@-s%&"%a'*h"&'+ng2 "33" 3 ,R%al+:a(os la .usFu%da d% H>@!" las *o+n*+d%n*+as oEn*on&'ado A oBus*a'En-f+nd!ll2 o"@ 3 ,"+ no ha? *o+n*+d%n*+as oEn*on&'ado A <ull #f <o& #s<ull2 oEn*on&'ado 3 Hh%n ,"+ %n*u%n&'a algo lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 oEn*on&'ado 3 Els% MsgBox "<o s% %n*on&'a'on *o+n*+d%n*+as" End #f End "u.

O nues"ra !rimera b>s6ue a nos evuelve el mensa2e LNo se encon"raron coinci enciasM* I!or6ue* si a!aren"emen"e si "enemos valores ?? en nues"ros a"osJ* la res!ues"a es 6ue la b>s6ue a !re e"ermina a se /ace buscan o en"ro e las 1ormulas* - "o os los ?? 6ue ves en la lis"a son el Lresul"a oM e una 1ormula* ic/a 1ormula es< lAuO(AcO@A())-.#* a/ora* es"ablece el valor busca o en LaM - realiza la b>s6ue a T o(".set(earc2(tring= UaU ?.

A!ren ien o OOo Basic

##?

A/ora nos !asa al rev3s* evolvemos emasia os resul"a os* Iver a J* la raz4n es la misma* la b>s6ue a !re e"ermina a se /ace !or 1ormulas* observa 6ue selecciono "o as las cel as e la columna B 6ue "ienen la le"ra LaM - "o as las cel as e la columna . - (* la 1ormula e la columna ( -a la vimos - con"iene la le"ra busca a* la 1ormula e la columna . es< lA)=ATO@9O+=NT@=(1,F581,G$)* como vez* "ambi3n "ienen la le"ra LaM en"re su "e:"o* !or ello* la b>s6ue a "e evuelve "o o* lo cual es correc"o* la b>s6ue a es"a bien* lo 6ue "enemos 6ue /acer es iscriminar un !oco m;s con los cri"erios e b>s6ue a* no necesariamen"e "iene 6ue ser m;s res"ric"iva* sino acor e a lo 6ue Les"as buscan oM* - claro* lo 6ue es!eras evolver* regresemos a nues"ro !rimer e2em!lo - agreguemos una !ro!ie a a la b>s6ue a* a/ora* le iremos 6ue bus6ue !or valores* !ara 6ue bus6ue en el Lresul"a oM e las 1ormulas* no L en"roM e las 1ormulas* es"o lo logramos con la !ro!ie a < searc/T-!e+
"u. @+( @+( @+( @+( Bus*a'323 oHo)a!*&+8a !s >.)%*& oBus*a'En !s >.)%*& oEn*on&'ado !s >.)%*& o"@ !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oBus*a'En A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14@19" 3 ,$'%a(os %l d%s*'+7&o' d% .usFu%da o"@ A oHo)a!*&+8a-*'%a&%"%a'*h@%s*'+7&o' ,Bus*a(os 7o' 8alo'%s o"@-s%a'*hH?7% A 1 ,Es&a.l%*%(os lo Fu% %s&a(os .us*ando o"@-s%&"%a'*h"&'+ng2 "33" 3 ,R%al+:a(os la .usFu%da d% H>@!" las *o+n*+d%n*+as oEn*on&'ado A oBus*a'En-f+nd!ll2 o"@ 3 ,"+ no ha? *o+n*+d%n*+as oEn*on&'ado A <ull #f <o& #s<ull2 oEn*on&'ado 3 Hh%n ,"+ %n*u%n&'a algo lo s%l%**+ona(os Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 oEn*on&'ado 3 Els% MsgBox "<o s% %n*on&'a'on *o+n*+d%n*+as" End #f End "u.

##E

F+E Mani!ulan o a"os

Muc/o me2or Iver a J* a/ora si* solo las cel as con el valor ?? son selecciona as* !rueba a es"ablecer la b>s6ue a con la le"ra LaM o cual6uiera 6ue "u 6uieras - observa los resul"a os* es mu- im!or"an"e 6ue se!as 6ue el resul"a o es una colecci4n e rangos* aun* cuan o - solo "e evuelva un solo rango* es"e* 1ormar; !ar"e e ic/a colecci4n* en el "ema @e1erencia a varios rangos* "ra"amos como mane2ar es"e "i!o e rangos+ .omo siguien"e !rueba* es"ablece la b>s6ue a en oS(+se"Searc/S"ring( HliH ) -

observa el resul"a o< No"a 6ue las b>s6ue as las !ue e /acer en !ar"es el "e:"o* !ero !o emos res"ringirla a !alabras com!le"as con la !ro!ie a searc/Nor s* como en<
"u. @+( @+( @+( @+( Bus*a'323 oHo)a!*&+8a !s >.)%*& oBus*a'En !s >.)%*& oEn*on&'ado !s >.)%*& o"@ !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oBus*a'En A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14@19" 3 o"@ A oHo)a!*&+8a-*'%a&%"%a'*h@%s*'+7&o' o"@-s%a'*hH?7% A 1 ,Bus*a(os 7o' 7ala.'as *o(7l%&as o"@-s%a'*hUo'ds A H'u% o"@-s%&"%a'*h"&'+ng2 "l+" 3 oEn*on&'ado A oBus*a'En-f+nd!ll2 o"@ 3 #f <o& #s<ull2 oEn*on&'ado 3 Hh%n Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 oEn*on&'ado 3 Els% MsgBox "<o s% %n*on&'a'on *o+n*+d%n*+as" End #f End "u.

)a b>s6ue a an"erior "e "iene 6ue evolver HNo se encon"raron coinci enciasH* !or 6ue no /a- !alabras com!le"as 6ue sean LliM* !rueba a reem!lazar la ca ena busca a !or el nombre 6ue m;s e gus"e e los e:is"en"es en nues"ra lis"a* !or e2em!lo Llize""eM - ob"en remos<

A!ren ien o OOo Basic

##5

Por 6ue es"amos /acien o la b>s6ue a !or !alabras com!le"as+ Po emos /acerla aun m;s res"ric"iva* si es"ablecemos 6ue is"inga en"re ma->sculas - min>sculas con la !ro!ie a Searc/.aseSensi"ive e la siguien"e manera<
"u. @+( @+( @+( @+( Bus*a'423 oHo)a!*&+8a !s >.)%*& oBus*a'En !s >.)%*& oEn*on&'ado !s >.)%*& o"@ !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oBus*a'En A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14@19" 3 o"@ A oHo)a!*&+8a-*'%a&%"%a'*h@%s*'+7&o' o"@-s%a'*hH?7% A 1 o"@-s%a'*hUo'ds A Jals% ,@+s&+ngu+(os (a?us*ulas d% (+nus*ulas o"@-"%a'*h$as%"%ns+&+8% A H'u% o"@-s%&"%a'*h"&'+ng2 "!" 3 oEn*on&'ado A oBus*a'En-f+nd!ll2 o"@ 3 #f <o& #s<ull2 oEn*on&'ado 3 Hh%n Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-s%l%*&2 oEn*on&'ado 3 Els% MsgBox "<o s% %n*on&'a'on *o+n*+d%n*+as" End #f End "u.

Observa 6ue /emos vuel"o a es"ablecer searc/Nor s en 'alse !ara 6ue encuen"re !ar"es e las !alabras+ =n la b>s6ue a an"erior* >nicamen"e "e "iene 6ue regresar la cel a .1 6ue con"iene la !alabra LAKoM+ 9ncluso* !ue es realizar b>s6ue as en"ro e las no"as e las cel as si es"ableces la !ro!ie a searc/T-!e l #+ =l reem!lazo es la con"inuaci4n e la b>s6ue a* es ecir* !ara !ara reem!lazar algo* !rimero se "iene 6ue buscar* veamos un e2em!lo sencillo - es!u3s la e:!licaci4n* con"inuamos /acien o uso e nues"ra "abla usa a en la b>s6ue a+
"u. @+( @+( @+( R%%(7la:a'123 oHo)a!*&+8a !s >.)%*& oBus*a'En !s >.)%*& lR%%(7la:ados !s 5ong

##F
@+( oR@ !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oBus*a'En A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14@19" 3 ,$'%a(os %l d%s*'+7&o' d% '%%(7la:o oR@ A oHo)a!*&+8a-*'%a&%R%7la*%@%s*'+7&o' ,H%x&o a .us*a' oR@-s%&"%a'*h"&'+ng2 "Aa\o" 3 ,R%%(7la:ado 7o' oR@-s%&R%7la*%"&'+ng2 "A(%s" 3 ,El (%&odo d%8u%l8% %l nu(%'o d% '%%(7la:os Fu% &u8+%'on %x+&o lR%%(7la:ados A oBus*a'En-'%7la*%!ll2 oR@ 3 #f lR%%(7la:ados A 0 Hh%n MsgBox "<o s% %n*on&'a'on *o+n*+d%n*+as" Els% MsgBox ""% '%al+:a'on " 9 lR%%(7la:ados 9 " '%%(7la:os" End #f End "u.

F+E Mani!ulan o a"os

Observa 6ue a/ora* en ves e un escri!"or e b>s6ue a (crea"eSearc/(escri!"or)* creamos un escri!"or e reem!lazo (crea"e@e!lace(escri!"or)* es"ablecemos el valor busca o (se"Searc/S"ring) - el valor !or el 6ue se reem!lazara (se"@e!laceS"ring)* es"e m3"o o (re!laceAll) evuelve un en"ero largo (long) con el n>mero "o"al e reem!lazos 6ue "uvieron 3:i"o* si es cero no encon"r4 coinci encias+ =n la columna ( e nues"ros a"os e e2em!lo* "enamos la 1ormula lAuO(AcO@A())-.#* es!u3s e e2ecu"ar la macro an"erior* eberamos "ener en es"a columna la 1ormula lM=S(AcO@A())-.#* como lo !o emos com!robar en la siguien"e imagen<

A/ora* reem!lazaremos !alabras com!le"as* con el siguien"e c4 igo* mi amigo = gar no me reclamar; na a si lo cambio !or Nisole* e /ec/o me 1elici"ar;<
"u. @+( @+( @+( @+( R%%(7la:a'223 oHo)a!*&+8a !s >.)%*& oBus*a'En !s >.)%*& lR%%(7la:ados !s 5ong oR@ !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'23-g%&!*&+8%"h%%&23 oBus*a'En A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!14@19" 3 oR@ A oHo)a!*&+8a-*'%a&%R%7la*%@%s*'+7&o' oR@-s%&"%a'*h"&'+ng2 "%dga'" 3 oR@-s%&R%7la*%"&'+ng2 "n+]ol%" 3 ,5% +nd+*a(os Fu% .usFu% 7ala.'as *o(7l%&as oR@-s%a'*hUo'ds A H'u% lR%%(7la:ados A oBus*a'En-'%7la*%!ll2 oR@ 3 #f lR%%(7la:ados A 0 Hh%n MsgBox "<o s% %n*on&'a'on *o+n*+d%n*+as"

A!ren ien o OOo Basic


Els%

##%

MsgBox ""% '%al+:a'on " 9 lR%%(7la:ados 9 " '%%(7la:os" End #f End "u.

A veces* es convenien"e /acer !rimero una b>s6ue a - com!robar 6ue es"a correc"a !ara es!u3s /acer el reem!lazo* si "us b>s6ue as es";n bien es"ableci as* LcasiM !ue es es"ar seguro e 6ue el reem!lazo lo es"ar;+

=.).=

5rabajando con notas

)as no"as* en las cel as e una /o2a e calculo* son mu- 1;ciles e mane2ar* en el siguien"e e2em!lo* inser"amos una nueva no"a en la cel a =%<
"u. @+( @+( @+( <o&as123 oHo)a!*&+8a !s >.)%*& o<o&as !s >.)%*& o@+'$%lda !s <%^ *o(-sun-s&a'-&a.l%-$%ll!dd'%ss

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,>.&%n%(os la *ol%**+Kn d% no&as d% la ho)a a*&+8a o<o&as A oHo)a!*&+8a-g%&!nno&a&+ons23 ,5a *%lda dond% +ns%'&a'%(os la no&a o@+'$%lda-$olu(n A 4 o@+'$%lda-Ro^ A 6 ,#ns%'&a(os la no&a o<o&as-+ns%'&<%^2 o@+'$%lda6 "0'%su7u%s&o a7'o.ado" 3 End "u.

Para saber cuan"as no"as /a- en la /o2a ac"iva<


"u. <o&as223 @+( oHo)a!*&+8a !s >.)%*& @+( o<o&as !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,>.&%n%(os la *ol%**+Kn d% no&as d% la ho)a a*&+8a o<o&as A oHo)a!*&+8a-g%&!nno&a&+ons23 ,Mos&'a(os %l &o&al d% no&as %n la ho)a MsgBox o<o&as-g%&$oun&23 End "u.

Para mos"rar la irecci4n e ca a una e las cel as con no"as - su con"eni o<
"u. @+( @+( @+( @+( <o&as323 oHo)a!*&+8a !s >.)%*& o<o&as !s >.)%*& o<o&a !s >.)%*& *o1 !s 5ong

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o<o&as A oHo)a!*&+8a-g%&!nno&a&+ons23 #f o<o&as-g%&$oun&23 Y 0 Hh%n Jo' *o1 A 0 Ho o<o&as-g%&$oun& T 1

##G

F+E Mani!ulan o a"os

,>.&%n%(os una no&a o<o&a A o<o&as-g%&B?#nd%x2 *o1 3 ,Mos&'a(os su 7os+*+Kn ? su *on&%n+do MsgBox @+'%**+on$%lda2 o<o&a-g%&0os+&+on 3 9 "4 " 9 o<o&a-g%&"&'+ng23 <%x& *o1 Els% MsgBox "<o ha? no&as %n %s&a ho)a" End #f End "u. Jun*&+on @+'%**+on$%lda2 @+'$%lda !s >.)%*& 3 !s "&'+ng @+( o"J! !s >.)%*& @+( (@a&os ,<os a7o?a(os %n la fun*+Kn d% $al* @#RE$$#>< 2!@@RE""3 o"J! A *'%a&%Cno"%'8+*%2 "*o(-sun-s&a'-sh%%&-Jun*&+on!**%ss" 3 ,$ons&'u+(os la (a&'+: d% da&os 7a'a la fun*+Kn (@a&os A !''a?2 @+'$%lda-Ro^B16 @+'$%lda-$olu(nB16 4 3 @+'%**+on$%lda A o"J!-*allJun*&+on2"!@@RE"""6(@a&os233 End Jun*&+on

Pue es acce er a una cel a !rimero - es!u3s a su no"a !ara mo i1icarla<


"u. @+( @+( @+( <o&as423 oHo)a!*&+8a !s >.)%*& o$%lda !s >.)%*& o<o&a !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3 ,!**%d%(os a la no&a d% la *%lda o<o&a A o$%lda-g%&!nno&a&+on ,5% *a(.+a(os su *on&%n+do o<o&a-s%&"&'+ng2 "$a(.+o d% &%x&o %n no&a" 3 End "u.

Si la cel a re1erencia a no "iene una no"a* el cambio no se ver; re1le2a o en la in"er1az el usuario* !or lo 6ue "ienes 6ue asegurar"e 6ue la cel a con"ienen una no"a* !ue es usar la longi"u el con"eni o e la no"a !ara saberlo<
"u. @+( @+( @+( <o&as523 oHo)a!*&+8a !s >.)%*& o$%lda !s >.)%*& o<o&a !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3 ,!**%d%(os a la no&a d% la *%lda o<o&a A o$%lda-g%&!nno&a&+on #f 5%n2 o<o&a-g%&"&'+ng23 3 A 0 Hh%n MsgBox "5a *%lda <> &+%n% no&a" Els% MsgBox "5a *%lda &+%n% no&a" End #f End "u.

Tambi3n !ue e recorrer el con2un"o e no"as - com!arar la irecci4n<

A!ren ien o OOo Basic


"u. @+( @+( @+( @+( @+( <o&as623 oHo)a!*&+8a !s >.)%*& o$%lda !s >.)%*& o<o&as !s >.)%*& o<o&a !s >.)%*& *o1 !s 5ong

##,

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"E7"3 o<o&as A oHo)a!*&+8a-g%&!nno&a&+ons23 #f o<o&as-g%&$oun&23 Y 0 Hh%n Jo' *o1 A 0 Ho o<o&as-g%&$oun& T 1 o<o&a A o<o&as-g%&B?#nd%x2 *o1 3 ,$o(7a'a(os las d+'%**+on%s #f o<o&a-g%&0os+&+on-$olu(n A o$%lda-g%&$%ll!dd'%ss-$olu(n !nd o<o&a-g%&0os+&+on-Ro^ A o$%lda-g%&$%ll!dd'%ss-Ro^ Hh%n MsgBox "5a *%lda &+%n% no&a" Ex+& "u. End #f <%x& *o1 MsgBox "5a *%lda <> &+%n% no&a" Els% MsgBox "<o ha? no&as %n %s&a ho)a" End #f End "u.

Po emos /acer visible una no"a<


"u. @+( @+( @+( <o&as723 oHo)a!*&+8a !s >.)%*& o$%lda !s >.)%*& o<o&a !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"E7"3 o<o&a A o$%lda-g%&!nno&a&+on ,5a ha*%(os 8+s+.l% o<o&a-s%&#s1+s+.l%2 Jals% 3 End "u.

(e nuevo* si la cel a no "iene no"a* el c4 igo an"erior no /ar; na a* "am!oco "e ar; ning>n error* el siguien"e e2em!lo "e in"ercambia la visibili a e las no"as e la /o2a* es ecir* si es"a ocul"a la mues"ra - si es"a visible la ocul"a<
"u. @+( @+( @+( @+( <o&as823 oHo)a!*&+8a !s >.)%*& o<o&as !s >.)%*& o<o&a !s >.)%*& *o1 !s 5ong

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o<o&as A oHo)a!*&+8a-g%&!nno&a&+ons23 #f o<o&as-g%&$oun&23 Y 0 Hh%n Jo' *o1 A 0 Ho o<o&as-g%&$oun& T 1 o<o&a A o<o&as-g%&B?#nd%x2 *o1 3 ,#n&%'*a(.+a(os su 8+s+.+l+dad o<o&a-s%&#s1+s+.l%2 <o& o<o&a-g%&#s1+s+.l% 3 <%x& *o1 Els% MsgBox "<o ha? no&as %n %s&a ho)a" End #f

#?$
End "u.

F+E Mani!ulan o a"os

No"a como /acemos el in"ercambio* !o emos saber si la no"a e la cel a es visible (get+s/isible)* es"a !ro!ie a nos evuelve 1also (5alse) o ver a ero (.rue) seg>n es"e o no visible la no"a* con el o!era or e negaci4n (No") inver"imos es"e valor - !or consiguien"e la visibili a + Para borrar una no"a* es !reciso saber el n ice e es"a* !or lo 6ue /a- 6ue i"erar en"re el con2un"o e no"as<
"u. @+( @+( @+( @+( @+( <o&as923 oHo)a!*&+8a !s >.)%*& o$%lda !s >.)%*& o<o&as !s >.)%*& o<o&a !s >.)%*& *o1 !s 5ong

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3 o<o&as A oHo)a!*&+8a-g%&!nno&a&+ons23 #f o<o&as-g%&$oun&23 Y 0 Hh%n Jo' *o1 A 0 Ho o<o&as-g%&$oun& T 1 o<o&a A o<o&as-g%&B?#nd%x2 *o1 3 ,$o(7a'a(os las d+'%**+on%s #f o<o&a-g%&0os+&+on-$olu(n A o$%lda-g%&$%ll!dd'%ss-$olu(n !nd o<o&a-g%&0os+&+on-Ro^ A o$%lda-g%&$%ll!dd'%ss-Ro^ Hh%n ,Bo''a(os la no&a 7o' su Gnd+*% o<o&as-'%(o8%B?#nd%x2 *o1 3 Ex+& "u. End #f <%x& *o1 MsgBox "5a *%lda <> &+%n% no&a" Els% MsgBox "<o ha? no&as %n %s&a ho)a" End #f End "u.

Tambi3n es !osible acce er a la au"o1orma (S$ape) e la no"a !ara mani!ularla<


"u. @+( @+( @+( @+( @+( <o&as1023 oHo)a!*&+8a !s >.)%*& o$%lda !s >.)%*& o<o&a !s >.)%*& oJo'(a !s >.)%*& oHa( !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o$%lda A oHo)a!*&+8a-g%&$%llRang%B?<a(%2"E7"3 ,!**%d%(os a la no&a o<o&a A o$%lda-g%&!nno&a&+on ,5a ha*%(os 8+s+.l% o<o&a-s%&#s1+s+.l%2 H'u% 3 ,!**%d%(os a la fo'(a oJo'(a A o<o&a-g%&!nno&a&+on"ha7% ,>.&%n%(os %l &a(a\o a*&ual oHa( A oJo'(a-g%&"+:% ,5o du7l+*a(os oHa(-U+d&h A oHa(-U+d&h 2 oHa(-H%+gh& A oHa(-H%+gh& 2 ,Es&a.l%*%(os %l nu%8o &a(a\o oJo'(a-s%&"+:%2 oHa( 3

A!ren ien o OOo Basic

#?1

,$a(.+a(os %l *olo' d% fondo d% fo'(a al%a&o'+a oJo'(a-J+ll$olo' A RDB2Rnd23 2556Rnd23 2556Rnd23 2553 End "u.

=s"a au"o1orma* "iene ecenas e !ro!ie a es !ara mani!ularse* !or lo 6ue volveremos a ellas en el ca!"ulo corres!on ien"e a au"o1ormas+ Por a/ora* "ienes "o os los elemen"os !ara mani!ular las no"as e cel as a "u an"o2o+ (e "area* crea una macro 6ue nos /aga un in1orme* en una /o2a nueva* e "o as las no"as e:is"en"es en la /o2a ac"iva* nos "iene 6ue evolver la irecci4n com!le"a - su con"eni o* IvaleJ+

=.!

Dando 2ormato

No se si es"ar;s e acuer o conmigo* !ero a veces* an o 1orma"o a los a"os se consume una gran can"i a e "iem!o - -a sabes* uno 6ue es bas"an"e 1lo2o es"a encan"a o 6ue se /aga e 1orma au"om;"ica* veamos las o!ciones m;s comunes e 1orma"o !or c4 igo+ =n la ma-ora e los e2em!los "ra"aremos e "raba2ar sobre la selecci4n* !ero no se "e olvi e 6ue siem!re es bueno com!robar 6ue es"as "raba2an o en una /o2a e calculo* as como en un rango e cel as cuan o sea necesario* es ecir* casi siem!re+

=.!.1 subra-a o<


"u. Jo'(a&o$%ldas123 @+( o"%l !s >.)%*&

Formato de celdas

Primero las carac"ers"icas m;s usuales* "i!o e 1uen"e* "amaKo* negri"as* cursiva -

o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 U+&h o"%l ,H+7o d% l%&'a -$ha'Jon&<a(% A "5+.%'a&+on "ans" ,Ha(a\o d% l%&'a -$ha'H%+gh& A 20 ,<%g'+&as -$ha'U%+gh& A 150 ,$u's+8a o +&al+*a -$ha'0os&u'% A 2 ,"u.'a?ado -$ha'Cnd%'l+n% A 1 End U+&h End "u.

Para saber la lis"a com!le"a e 1uen"es (./ar'on"Name) 6ue "ienes is!onibles en O!enO11ice+org* usa las macros is!onibles en< )is"ar 1uen"es en un arc/ivo e .alc

#?#

F+5 (an o 1orma"o

=l "amaKo e la 1uen"e (./arceig/") se es"ablece en !un"os* recor an o 6ue un !un"o es igual a 10%# e !ulga a* a!ro:ima amen"e $+?5#G mm+ =l es"ilo negri"as se es"ablece !or cual6uiera e las siguien"e cons"an"es* e las cuales* e:ce!"o los e:"remos* no /a- muc/as varian"es en"re ellas< Constante com+sun+s"ar+a7"+'on"Neig/"+(ONTtNON com+sun+s"ar+a7"+'on"Neig/"+Tc9N com+sun+s"ar+a7"+'on"Neig/"+U)T@A)9&cT com+sun+s"ar+a7"+'on"Neig/"+)9&cT com+sun+s"ar+a7"+'on"Neig/"+S=M9)9&cT com+sun+s"ar+a7"+'on"Neig/"+NO@MA) com+sun+s"ar+a7"+'on"Neig/"+S=M9BO)( com+sun+s"ar+a7"+'on"Neig/"+BO)( com+sun+s"ar+a7"+'on"Neig/"+U)T@ABO)( com+sun+s"ar+a7"+'on"Neig/"+B)A.t 0alor $ 5$ F$ %5 ,$ 1$$ 11$ 15$ 1%5 #$$

Al es"ilo cursiva o i";lica le corres!on en las siguien"e cons"an"es< Constante com+sun+s"ar+a7"+'on"Slan"+NON= com+sun+s"ar+a7"+'on"Slan"+OB)9eU= com+sun+s"ar+a7"+'on"Slan"+9TA)9. com+sun+s"ar+a7"+'on"Slan"+(ONTtNON com+sun+s"ar+a7"+'on"Slan"+@=5=@S=QOB)9eU= com+sun+s"ar+a7"+'on"Slan"+@=5=@S=Q9TA)9. =l "i!o e subra-a o es"a e"ermina o !or las cons"an"es< Constante com+sun+s"ar+a7"+'on"Un erline+NON= com+sun+s"ar+a7"+'on"Un erline+S9N&)= com+sun+s"ar+a7"+'on"Un erline+(OUB)= com+sun+s"ar+a7"+'on"Un erline+(OTT=( com+sun+s"ar+a7"+'on"Un erline+(ONTtNON com+sun+s"ar+a7"+'on"Un erline+(ASc com+sun+s"ar+a7"+'on"Un erline+)ON&(ASc com+sun+s"ar+a7"+'on"Un erline+(ASc(OT 0alor $ 1 # ? E 5 F % 0alor $ 1 # ? E 5

A!ren ien o OOo Basic

#??

Constante com+sun+s"ar+a7"+'on"Un erline+(ASc(OT(OT com+sun+s"ar+a7"+'on"Un erline+SMA))NA5= com+sun+s"ar+a7"+'on"Un erline+NA5= com+sun+s"ar+a7"+'on"Un erline+(OUB)=NA5= com+sun+s"ar+a7"+'on"Un erline+BO)( com+sun+s"ar+a7"+'on"Un erline+BO)((OTT=( com+sun+s"ar+a7"+'on"Un erline+BO)((ASc com+sun+s"ar+a7"+'on"Un erline+BO)()ON&(ASc com+sun+s"ar+a7"+'on"Un erline+BO)((ASc(OT com+sun+s"ar+a7"+'on"Un erline+BO)((ASc(OT(OT com+sun+s"ar+a7"+'on"Un erline+BO)(NA5=

0alor G , 1$ 11 1# 1? 1E 15 1F 1% 1G

@ecuer a 6ue !ue es usar "an"o las cons"an"es como el valor e es"as* seg>n "u gus"o - cri"erio+ Algunos e los valores e es"as cons"an"es* los !ue es es"ablecer !ero no veras ning>n e1ec"o a!aren"e+ Algunas o"ras o!ciones e 1orma"o e 1uen"e son<
"u. Jo'(a&o$%ldas223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 U+&h o"%l ,Es7a*+os s+n su.'a?a' -$ha'Uo'dMod% A H'u% ,Ha*hado d% fu%n&% -$ha'$'oss%d>u& A H'u% ,$on&o'no d% fu%n&% -$ha'$on&ou'%d A H'u% End U+&h End "u.

.uan o se subra-a la 1uen"e - la !ro!ie a ./arNor Mo e se es"ablece en ver a era (True)* "e e2a los es!acios en"re !alabras sin subra-ar+ )as o"ras os !ro!ie a es creo 6ue son bas"an"e au"oe:!lica"ivas+ A/ora* veamos algo mu- iver"i o* el color* es"ablezcamos el color e la 1uen"e - el subra-a o e es"a<
"u. Jo'(a&o$%ldas323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 U+&h o"%l ,$olo' d% la fu%n&% a:ul -$ha'$olo' A RDB2 0606255 3 ,Es&+lo d% su.'a?ado -$ha'Cnd%'l+n% A 1 ,$olo' d% su.'a?ado 'o)o -$ha'Cnd%'l+n%$olo' A RDB2255606063

#?E
,"+ s% (u%s&'a %l *olo' -$ha'Cnd%'l+n%Has$olo' A H'u% End U+&h End "u.

F+5 (an o 1orma"o

.on la !ro!ie a ./ar.olor - la a-u a e la 1unci4n @&B* es"ablecemos el color e la 1uen"e* !ara el subra-a o* !rimero es"ablecemos el es"ilo (./arUn erline)* es!u3s el color e es"e (./arUn erline.olor) - !or ul"imo es"ablecemos si 6ueremos 6ue se mues"re el color (./arUn erlinecas.olor)* si es"a !ro!ie a se es"ablece en 1also (1alse)* el color el subra-a o ser; el mismo color 6ue el e la 1uen"e+ .on la siguien"e macro* a ca a cel a el rango selecciona o se le es"ablecer; un color e 1uen"e - e subra-a o alea"orio+
"u. @+( @+( @+( Jo'(a&o$%ldas423 o"%l !s >.)%*& *ol !s 5ong f+l !s 5ong o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n U+&h o"%l Jo' *ol A 0 Ho o"%l-g%&$olu(ns-g%&$oun& T 1 Jo' f+l A 0 Ho o"%l-g%&Ro^s-g%&$oun& T 1 U+&h -g%&$%llB?0os+&+on2 *ol6 f+l 3 -$ha'$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 -$ha'Cnd%'l+n% A 1 -$ha'Cnd%'l+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 2553 -$ha'Cnd%'l+n%Has$olo' A H'u% End U+&h <%x& <%x& End U+&h End #f End "u.

)a alineaci4n el con"eni o e la cel a* se es"ablece con las !ro!ie a es 5er"ius"i1!ara el sen"i o ver"ical - coriius"i1- !ara el sen"i o /orizon"al e la siguien"e 1orma<
"u. Jo'(a&o$%ldas523 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,!l+n%a(os %n (%d+o 8%'&+*al(%n&% o"%l-1%'&[us&+f? A 2 ,!l+n%a(os *%n&'ado ho'+:on&al(%n&% o"%l-Ho'+[us&+f? A 2 End "u.

)os valores !osibles !ara ca a !ro!ie a son< Propiedad 0ert5ustify com+sun+s"ar+"able+.ell5er"ius"i1-+STAN(A@( com+sun+s"ar+"able+.ell5er"ius"i1-+TOP com+sun+s"ar+"able+.ell5er"ius"i1-+.=NT=@ 0alor $ 1 #

A!ren ien o OOo Basic

#?5

Propiedad 0ert5ustify com+sun+s"ar+"able+.ell5er"ius"i1-+BOTTOM

0alor ?

Propiedad 6ori5ustify com+sun+s"ar+"able+.ellcoriius"i1-+STAN(A@( com+sun+s"ar+"able+.ellcoriius"i1-+)='T com+sun+s"ar+"able+.ellcoriius"i1-+.=NT=@ com+sun+s"ar+"able+.ellcoriius"i1-+@9&cT com+sun+s"ar+"able+.ellcoriius"i1-+B)O.t com+sun+s"ar+"able+.ellcoriius"i1-+@=P=AT

0alor $ 1 # ? E 5

.on la combinaci4n e es"os valores* "enemos muc/as !osibili a es e alineaci4n e una cel a+ )a cons"an"e com+sun+s"ar+"able+.ellcoriius"i1-+@=P=AT* es mu- in"eresan"e !or 6ue "e re!i"e el valor e la cel a /as"a llenar el anc/o e ella* !rueba a es"ablecer es"a !ro!ie a en una cel a cu-o con"eni o sea un !un"o !ara 6ue no"es su com!or"amien"o+ Si 6ueremos a2us"ar el "e:"o au"om;"icamen"e en la cel a* usamos<
"u. Jo'(a&o$%ldas623 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,!)us&% d% &%x&o o"%l-#sH%x&U'a77%d A H'u% End "u.

Si 6ueremos re ucir el "e:"o /as"a 6ue 6ue!a en la cel a* usamos<


"u. Jo'(a&o$%ldas723 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,R%du**+on d% &%x&o o"%l-"h'+n]HoJ+& AH'u% End "u.

Si 6ueremos cambiar la orien"aci4n el "e:"o<


"u. Jo'(a&o$%ldas823 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,>'+%n&a*+on 8%'&+*al d%l &%x&o o"%l->'+%n&a&+on A 3 End "u.

)os valores !ara es"a !ro!ie a son<

#?F

F+5 (an o 1orma"o

Propiedad Orientation com+sun+s"ar+"able+.ellOrien"a"ion+STAN(A@( com+sun+s"ar+"able+.ellOrien"a"ion+TOPBOTTOM com+sun+s"ar+"able+.ellOrien"a"ion+BOTTOMTOP com+sun+s"ar+"able+.ellOrien"a"ion+STA.t=( O !o emos es"ablecer el ;ngulo e ro"aci4n<
"u. Jo'(a&o$%ldas923 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 o"%l-Ro&a&%!ngl% A 9000 End "u.

0alor $ 1 # ?

=l valor el ;ngulo es"a a o en cen"3simas e ;ngulo* es ecir* en el e2em!lo an"erior es"ablecemos el ;ngulo en ,$v (,$$$) !ara 1G$v !o emos 1G$$$ - as sucesivamen"e+ Toma en cuen"a 6ue algunas e las !ro!ie a es vis"as /as"a a/ora* se au"oe:clu-en mu"uamen"e* !or lo 6ue "ienes 6ue asegurar"e 6ue no se con"ra!onen* e los os e2em!los siguien"e* solo el segun o es correc"o<
"u. Jo'(a&o$%ldas1023 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 o"%l-Ho'+[us&+f? A 2 o"%l-#sH%x&U'a77%d A H'u% ,Ha(a\o d% sang'+a o"%l-0a'a#nd%n& A 1000 End "u. "u. Jo'(a&o$%ldas1123 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 o"%l-Ho'+[us&+f? A 1 o"%l-#sH%x&U'a77%d A H'u% ,Ha(a\o d% sang'+a o"%l-0a'a#nd%n& A 1000 End "u.

Tambi3n !o emos es"ablecer el color e 1on o e las cel as<


"u. Jo'(a&o$%ldas1223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,$olo' d%l fondo d% la *%lda 2g'+s3 o"%l-$%llBa*]$olo' A RDB2200620062003 End "u.

)a siguien"e macro "e colorea ca a cel a e la selecci4n* "an"o la 1uen"e como el 1on o e la cel a e un color alea"orio<

A!ren ien o OOo Basic


"u. @+( @+( @+( Jo'(a&o$%ldas1323 o"%l !s >.)%*& *ol !s 5ong f+l !s 5ong

#?%

o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n U+&h o"%l Jo' *ol A 0 Ho o"%l-g%&$olu(ns-g%&$oun& T 1 Jo' f+l A 0 Ho o"%l-g%&Ro^s-g%&$oun& T 1 U+&h -g%&$%llB?0os+&+on2 *ol6 f+l 3 -$ha'$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 -$%llBa*]$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 End U+&h <%x& <%x& End U+&h End #f End "u.

)os bor es e las cel as "ienen muc/as !osibili a es* veamos algunas<
"u. Jo'(a&o$%ldas1423 @+( o"%l !s >.)%*& @+( oBo'd%5+n%a !s <%^ *o(-sun-s&a'-&a.l%-Bo'd%'5+n% o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Es&a.l%*%(os las *a'a*&%'+s&+*as d% la l+n%a U+&h oBo'd%5+n%a ,El *olo' 2'o)o3 -$olo' A RDB225560603 ,El an*ho d% la l+n%a %x&%'+o' -#nn%'5+n%U+d&h A 50 ,El an*ho d% la l+n%a +n&%'+o' ->u&%'5+n%U+d&h A 50 ,5a d+s&an*+a %n&'% las l+n%as -5+n%@+s&an*% A 20 End U+&h ,Es&a.l%*%(os los .o'd%s U+&h o"%l -Ho7Bo'd%' A oBo'd%5+n%a -Bo&&o(Bo'd%' A oBo'd%5+n%a -5%f&Bo'd%' A oBo'd%5+n%a -R+gh&Bo'd%' A oBo'd%5+n%a End U+&h End "u.

,"u7%'+o' ,#nf%'+o' ,#:Fu+%'do ,@%'%*ho

=l anc/o e las lineas - la is"ancia en"re ellas es"a a a en cen"3simas e milme"ros* si es"ablecemos solo una e las os lneas* veras una linea sim!le+ Si eseas es"ablecer "ambi3n las lneas iagonales* usa la !ro!ie a (iagonalT)B@ !ara la lnea 6ue va es e la es6uina su!erior iz6uier a a la in1erior erec/a - (iagonalB)T@ !ara la 6ue va e la es6uina in1erior iz6uier a a la su!erior erec/a* "ienes 6ue es"ablecerles la misma es"ruc"ura e lnea (com+sun+s"ar+"able+Bor er)ine) vis"a en los e2em!los+ =l c4 igo an"erior "e es"ablecer; el bor e e ca a cel a el rango selecciona o* si 6uieres es"ablecer el bor e e solo los e:"remos el rango* "iene 6ue usar la es"ruc"ura TableBor er<
"u. Jo'(a&o$%ldas1523 @+( o"%l !s >.)%*&

#?G
@+( oBo'd%5+n%a !s <%^ *o(-sun-s&a'-&a.l%-Bo'd%'5+n% @+( oBo'd%Ha.la !s <%^ *o(-sun-s&a'-&a.l%-Ha.l%Bo'd%' o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Es&a.l%*%(os las *a'a*&%'Gs&+*as d% la l+n%a U+&h oBo'd%5+n%a ,El *olo' 2a:ul3 -$olo' A RDB206062553 ,El an*ho d% la l+n%a +n&%'+o' ->u&%'5+n%U+d&h A 75 End U+&h ,Es&a.l%*%(os las *a'a*&%'Gs&+*as d% la &a.la U+&h oBo'd%Ha.la -Ho75+n% A oBo'd%5+n%a -#sHo75+n%1al+d A H'u% -Bo&&o(5+n% A oBo'd%5+n%a -#sBo&&o(5+n%1al+d A H'u% -5%f&5+n% A oBo'd%5+n%a -#s5%f&5+n%1al+d A H'u% -R+gh&5+n% A oBo'd%5+n%a -#sR+gh&5+n%1al+d A H'u% End U+&h ,Es&a.l%*%(os los .o'd%s o"%l-Ha.l%Bo'd%' A oBo'd%Ha.la End "u.

F+5 (an o 1orma"o

,"u7%'+o' ,#nf%'+o' ,#:Fu+%'do ,@%'%*ho

)as !ro!ie a es 9sTo!)ine5ali * 9sBo""om)ine5ali * 9s)e1")ine5ali 9s@ig/")ine5ali * "ienes 6ue es"ablecerlas en ver a ero ("rue) si 6uieres 6ue se vea la lnea+ Para es"ablecer los margenes e la cel a* usamos<
"u. Jo'(a&o$%ldas1623 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,0a'a %s&a.l%*%' los (a'g%n%s d% la *%lda U+&h o"%l -0a'aHo7Ma'g+n A 500 ,!''+.a -0a'aBo&&o(Ma'g+n A 500 ,!.a)o -0a'a5%f&Ma'g+n A 800 ,#:Fu+%'da -0a'aR+gh&Ma'g+n A 800 ,@%'%*ha End U+&h End "u.

Para ar un 1orma"o !re e"ermina o a la cel a* usamos la !ro!ie a Numer'orma"* la cual es necesario es"ablecer como un en"ero largo (long) corres!on ien"e a la clave el 1orma"o 6ue nos in"erese* !or e2em!lo<
"u. Jo'(a&o$%ldas1723 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Es&a.l%*%(os la s%l%**+on %n %l fo'(a&o Es&anda' o"%l-<u(.%'Jo'(a& A 0 End "u.

A!ren ien o OOo Basic

#?,

=l numero e clave no es secuencial* !or lo 6ue "enemos 6ue saber e an"emano la clave el 1orma"o 6ue nos in"eresa* !ara ello* usa la macro 6ue "e mues"ro en8 )is"ar 1orma"os en un arc/ivo e .alc+ A/ora* veamos como combinar - se!arar cel as+ Para ello* usamos el m3"o o mer,e* con el argumen"o ver a ero ("rue)* como en el siguien"e e2em!lo<
"u. Jo'(a&o$%ldas1823 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,$o(.+na(os las *%ldas s%l%**+onadas o"%l-(%'g%2 H'u% 3 End "u.

=s"e m3"o o solo es"a !resen"e en un rango e cel as* no en una colecci4n e rangos as 6ue vali alo cuan o lo uses+ Si es"ableces el argumen"o en 1also (1alse)* se!arara las cel as e la selecci4n+ =s"e m3"o o es sencillo !ero ebes e "omar en cuen"a algunas consi eraciones+ Si seleccionas un rango -a combina o* 2un"o con un ;rea 6ue no* es"e m3"o o no /ar; na a* claro* !or c4 igo es"o- /ablan o* !ero /as la !rueba en la in"er1az el usuario* es ecir* manualmen"e - observa 6ue !asa* a/ora* "ra"emos e emularlo con c4 igo+++
"u. Jo'(a&o$%ldas1923 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,"%7a'a(os las *%ldas s%l%**+onadas o"%l-(%'g%2 Jals% 3 ,5as *o(.+na(os o"%l-(%'g%2 H'u% 3 End "u.

Si se !ue e* Iver a J* !rimero las se!aramos - es!u3s las combinamos+ )a siguien"e consi eraci4n 6ue ebes "omar en cuen"a* es saber 6ue !asa cuan o las cel as se combinan* !ara ello* /aremos unas !ruebas -a no con la selecci4n sino con rangos con nombre* la macro siguien"e "e al"ernara en"re combinar - se!arar la el rango selecciona o* no"a como consul"amos la !ro!ie a ge"9sMerge !ara saber si el rango es"a combina o+
"u. Jo'(a&o$%ldas2023 @+( oRango !s >.)%*& @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "B24@10" 3 ,#n8%'&+(os la *o(.+na*+on oRango-(%'g%2 <o& oRango-g%&#sM%'g%d 3 End "u.

A/ora* en la siguien"e macro* "ienes 6ue !oner muc/a a"enci4n* no"a el rango 6ue es"amos combinan o* las cel as en las cuales veri1icamos si es";n combina as* el valor 6ue nos evuelve el consul"ar su !ro!ie a ge"9sMerge - observa /as"a cuan o nos 1unciona el m3"o o !ara se!arar las cel as+
"u. Jo'(a&o$%ldas2123 @+( oRango !s >.)%*&

#E$
@+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E154H20" 3 oRango-(%'g%2 H'u% 3 ,<o&a Fu% la *%lda D19 fo'(a 7a'&% d%l 'ango *o(.+ando ,*onsul&a(os la 7'o7+%dad ? &'a&a(os d% s%7a'a' Msg.ox oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "D19" 3-g%&#sM%'g%d23 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "D19" 3-(%'g%2 Jals% 3 Msg.ox oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "J17" 3-g%&#sM%'g%d23 ,H'a&a(os d% s%7a'a' las *%ldas oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "D19" 3-(%'g%2 Jals% 3 Msg.ox oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E16" 3-g%&#sM%'g%d23 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "D19" 3-(%'g%2 Jals% 3 ,!ho'a s+6 nos d+*% Fu% %s&a *o(.+nada ? ,f+nal(%n&% log'a(os s%7a'a'las Msg.ox oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E15" 3-g%&#sM%'g%d23 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E15" 3-(%'g%2 Jals% 3 End "u.

F+5 (an o 1orma"o

I)o no"as"eJ* cuan o se combinan cel as* "o as* e:ce!"o la e la es6uina su!erior iz6uier a el rango* se marcan como LnoM combina as* en"onces* eso nos obliga a buscar encon"rar es"a cel a a !ar"ir e o"ra cuan o in"en"emos se!arar cel as* !ara /acer es"o* nos au:iliaremos e un cursor cu-o uso -a lo /emos vis"o+
"u. @+( @+( @+( Jo'(a&o$%ldas2223 oRango !s >.)%*& oHo)a!*&+8a !s >.)%*& o$u'so' !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E154H20" 3 oRango-(%'g%2 H'u% 3 ,1%'+f+*a(os Fu% %s&% *o(.+nada MsgBox oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "E15" 3-g%&#sM%'g%d23 ,$'%a(os un *u'so' a 7a'&+' d% una *%lda Fu% no s%a la d% ,la %sFu+na su7%'+o +:Fu+%'da o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "D19" 3 3 ,Ex7and+(os %l *u'so' al a'%a *o(.+nada o$u'so'-*olla7s%HoM%'g%d!'%a23 ,"%7a'a(os las *%ldas o$u'so'-(%'g%2 Jals% 3 End "u.

=s"a vez* a !ar"ir e o"ra cel a* e:!an imos el cursor a la regi4n combina a !u imos se!arar 1;cilmen"e+ Toma en cuen"a 6ue !asa con las cel as 6ue "ienen con"eni o cuan o se combinan* veri1icalo en la in"er1az el usuario - "ra"a e an"ici!ar es"e caso+ .omo ul"imo "ema e es"e ca!i"ulo* veamos como !ro"eger - es!ro"eger cel as* recuer a 6ue es"a !ro"ecci4n solo es e1ec"iva si la /o2a e calculo es"a !ro"egi a
"u. 0'o&%g%'$%ldas123 @+( oRango !s >.)%*& @+( oHo)a!*&+8a !s >.)%*&

A!ren ien o OOo Basic

#E1

@+( o0$ !s <%^ "*o(-sun-s&a'-u&+l-$%ll0'o&%*&+on" oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "[274530" 3 U+&h o0$ ,@%&%'(+na s+ la *%lda %s&a .loFu%ada 7a'a (od+f+*a's% -#s5o*]%d A H'u% ,@%&%'(+na s+ s% o*ul&an las fo'(ulas6 solo 8%'as %l '%sul&ado -#sJo'(ulaH+dd%n A H'u% ,@%&%'(+na s+ s% o*ul&a %l *on&%n+do d% las *%ldas -#sH+dd%n A H'u% ,0a'a o*ul&a' solo 7a'a la +(7'%s+Kn -#s0'+n&H+dd%n A H'u% End U+&h oRango-$%ll0'o&%*&+on A o0$ oHo)a!*&+8a-0'o&%*&2""3 End "u.

Para es!ro"eger las cel as* es su1icien"e con es!ro"eger la /o2a* e "o os mo os !ue es es/abili"ar las o!ciones e !ro"ecci4n con solo es"ablecer las o!ciones e !ro"ecci4n en 1also ('alse)* !or su!ues"o* no siem!re "ienen 6ue es"ar "o as selecciona as* "u e"erminaras el nivel e acceso en ca a uno e "us !ro-ec"o* !or e2em!lo<
"u. @+( @+( @+( 0'o&%g%'$%ldas223 oRango !s >.)%*& oHo)a!*&+8a !s >.)%*& o0$ !s <%^ "*o(-sun-s&a'-u&+l-$%ll0'o&%*&+on"

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "[274530" 3 ,@%s7'o&%g%(os la ho)a oHo)a!*&+8a-un0'o&%*&2""3 U+&h o0$ ,@%&%'(+na s+ la *%lda %s&a .loFu%ada 7a'a (od+f+*a's% -#s5o*]%d A H'u% ,@%&%'(+na s+ s% o*ul&an las fo'(ulas6 solo 8%'as %l '%sul&ado -#sJo'(ulaH+dd%n A H'u% ,@%&%'(+na s+ s% o*ul&a %l *on&%n+do d% las *%ldas -#sH+dd%n A H'u% ,0a'a o*ul&a' solo 7a'a la +(7'%s+Kn -#s0'+n&H+dd%n A H'u% End U+&h oRango-$%ll0'o&%*&+on A o0$ End "u.

=.!.2

Formato de 2ilas y columnas

Para es"ablecer la al"ura e las 1ilas* usamos la !ro!ie a ceig/"* el valor se es"ablece en cen"3simas e milme"ros* !or lo 6ue !ara "ener una 1ila e $+5$ cm le asignamos un valor e 5$$ como en el siguien"e e2em!lo<
"u. Jo'(a&oJ+las123 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Es&a.l%*%(os %l al&o d% las f+las s%l%**+onadas

#E#
o"%l-g%&Ro^s-H%+gh& A 500 End "u.

F+5 (an o 1orma"o

.uan o "ra"as e es"ablecer la al"ura e las 1ilas en cero ($)* si bien no "e ar; ning>n error* "am!oco veras ning>n cambio* aun* es"ablecien o el valor en la uni a veras 6ue la 1ila sigue sien o no"able+ Si lo 6ue eseas es ocul"arla* es me2or usar la !ro!ie a corres!on ien"e* !ara es"e caso* 9s5isible* como en<
"u. Jo'(a&oJ+las223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,>*ul&a(os las f+las s%l%**+onadas o"%l-g%&Ro^s-#s1+s+.l% A Jals% End "u.

=s"a !ro!ie a se es"ablece en 1also (1alse) !ara ocul"ar la 1ila - en ver a ero ("rue) !ara mos"rarla* el siguien"e e2em!lo "e al"ernara en ocul"ar - mos"rar con1orme la e2ecu"es<
"u. Jo'(a&oJ+las323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,!l&%'na(os %n&'% 8+s+.l% ? o*ul&a o"%l-g%&Ro^s-#s1+s+.l% A <o& o"%l-g%&Ro^s-#s1+s+.l% End "u.

)as 1ilas* a 6uieren una !ro!ie a !ar"icular cuan o se les a!lica un 1il"ro* es"a !ro!ie a se llama 9s'il"ere * - "e evolver; ver a ero ("rue)* cuan o la 1ila consul"a a es"e ocul"a como consecuencia e un 1il"ro* "oma no"a e 6ue LsoloM cuan o es"e ocul"a !or un 1il"ro* si "u la ocul"as con 9s5isible* es"a !ro!ie a (9s'il"ere ) seguir; sien o 1alsa (1alse)* !rueba a /acer un 1il"ro en "u /o2a ac"iva - !rocura 6ue la 1ila consul"a a (ge"B-9n e:(9n ice)) es"e 1il"ra a+
"u. Jo'(a&oJ+las423 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,$onsul&a(os s+ la f+la 3 %s&a f+l&'ada MsgBox oHo)a!*&+8a-g%&Ro^s-g%&B?+nd%x223-#sJ+l&%'%d End "u.

Tambi3n !o emos es"ablecer el al"o o!"imo e las 1ilas con la !ro!ie a O!"imalceig/"* ebe es"ar en ver a ero ("rue) !ara 6ue "enga e1ec"o+
"u. Jo'(a&oJ+las523 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Es&a.l%*%(os %l al&o o7&+(o d% las f+las s%l%**+onadas o"%l-g%&Ro^s->7&+(alH%+gh& A H'u% End "u.

A!ren ien o OOo Basic

#E?

A las 1ilas "ambi3n es !osible cambiarles el color e 1on o* es"o nos !ermi"e es"ablecer el color e "o a la 1ila+
"u. Jo'(a&oJ+las623 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Es&a.l%*%(os %l *olo' d% fondo d% las *%ldas d% la f+la *o(7l%&a o"%l-g%&Ro^s-$%llBa*]$olo' A RDB2200620062003 End "u.

)a siguien"e macro "e cambiara el color e las 1ilas im!ares e la selecci4n+


"u. Jo'(a&oJ+las723 @+( o"%l !s >.)%*& @+( *o1 !s 5ong o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 Jo' *o1 A 0 Ho o"%l-g%&Ro^s-g%&$oun&23 T 1 "&%7 2 ,Es&a.l%*%(os un *olo' al%a&o'+o 7a'a las f+las +(7a'%s d% la s%l%**+on o"%l-g%&Ro^s-g%&B?#nd%x2 *o1 3-$%llBa*]$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 <%x& End "u.

A las columnas "ambi3n les !o emos es"ablecer el anc/o+


"u. Jo'(a&o$olu(nas123 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,Es&a.l%*%(os %l an*ho d% las *olu(nas s%l%**+onadas o"%l-g%&$olu(ns-U+d&h A 1000 End "u.

O ocul"arlas+
"u. Jo'(a&o$olu(nas223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,>*ul&a(os las *olu(nas s%l%**+onadas o"%l-g%&$olu(ns-#s1+s+.l% A Jals% End "u.

A2us"ar al con"eni o+
"u. Jo'(a&o$olu(nas323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,!)us&a(os al *on&%n+do o"%l-g%&$olu(ns->7&+(alU+d&h A H'u% End "u.

)as columnas no "ienen una !ro!ie a 9s'il"ere * !or 6ue como sabes* no /a- 1il"ros /orizon"ales* !ero con un !oco e ingenio - usan o la !ro!ie a 9s5isible* !ue es crear"e "u

#EE

F+5 (an o 1orma"o

versi4n e 1il"ros /orizon"ales+ Tam!oco !ue es usar la !ro!ie a .ellBacs.olor !ara es"ablecer el color e 1on o* !ero "ambi3n !o emos im!lemen"ar nues"ras versi4n* a6u una !rimera a!ro:imaci4n+
"u. Jo'(a&o$olu(nas423 @+( o"%l !s >.)%*& @+( o$u'so' !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,<os a7o?a(os %n un *u'so' o$u'so' A o"%l-g%&"7'%ad"h%%&-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-%x7andHoEn&+'%$olu(ns23 o$u'so'-$%llBa*]$olo' A RDB2210621062103 End "u.

)a siguien"e macro* es"ablecer; el anc/o e las columnas en 1 cm* es!u3s el al"o e las 1ilas "ambi3n en 1 - colorear; al"erna amen"e 1ilas - columnas !ara /acer un lin o mosaico+
"u. @+( @+( @+( Jo'(a&oJ+las$olu(nas123 o"%l !s >.)%*& o$u'so' !s >.)%*& *o1 !s 5ong o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 o"%l-g%&Ro^s-H%+gh& A 1000 o"%l-g%&$olu(ns-U+d&h A 1000 Jo' *o1 A 0 Ho o"%l-g%&Ro^s-g%&$oun&23 T 1 "&%7 2 o"%l-g%&Ro^s-g%&B?#nd%x2 *o1 3-$%llBa*]$olo' A RDB2 23062306230 3 <%x& Jo' *o1 A 0 Ho o"%l-g%&$olu(ns-g%&$oun&23 T 1 "&%7 2 o$u'so' A o"%l-g%&"7'%ad"h%%&-*'%a&%$u'so'B?Rang%2 o"%l-g%&$%llB?0os+&+on2*o1603 3 o$u'so'-%x7andHoEn&+'%$olu(ns23 o$u'so'-$%llBa*]$olo' A RDB2230623062303 <%x& End "u.

)as 1ilas - columnas cuen"an con algunas !ro!ie a es involucra as en la im!resi4n e los ocumen"os* !or lo 6ue se ver;n en el ca!i"ulo corres!on ien"e a im!resi4n+

=.!.

Estilos y auto2ormato

.omo buen usuario e O!enO11ice+org 6ue somos* sabemos 6ue una e sus carac"ers"icas m;s ricas es"a en sus Les"ilosM* es ecir* en la !osibili a e agru!ar ba2o un nombre* una serie e carac"ers"icas e 1orma"o - 6ue !o emos a!licar con un solo clic+ (en"ro e las /o2as e c;lculo* "enemos os es"ilos !er1ec"amen"e e1ini os* los es"ilos e cel a 6ue veremos en es"e ca!i"ulo - los es"ilos e !;gina 6ue se ver;n en el siguien"e+ Para ver los es"ilos e cel a ac"uales* usamos la siguien"e macro<
"u. @+( @+( @+( @+( Es&+los123 o@o* !s >.)%*& oEs&+los !s >.)%*& oEs&+los$%lda !s >.)%*& o"%l !s >.)%*&

A!ren ien o OOo Basic

#E5

,!**%d%(os al do*u(%n&o a*&ual o@o* A Hh+s$o(7on%n& ,!**%d%(os a &odos los %s&+los oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 ,!**%d%(os a los %s&+los d% *%lda oEs&+los$%lda A oEs&+los-g%&B?<a(%2"$%ll"&?l%s"3 ,Mos&'a(os sus no(.'%s MsgBox [o+n2 oEs&+los$%lda-g%&El%(%n&<a(%s236 $h'2133 3 End "u.

Si no "ienes ning>n es"ilo e cel a !ersonaliza o* crea uno con el 1orma"o 6ue 6uieras ("ecla '11)* vuelve a correr la macro - "ienes 6ue ver lis"a o el nuevo es"ilo+

=n nues"ro e2em!lo* /emos agrega o un nuevo es"ilo e cel a 6ue se llama L(omingosM* los es"ilos e cel a* los !o emos es"ablecer a una cel a* un rango e cel as* un gru!o e rangos e una 1orma sumamen"e sencilla* veamos como<
"u. Es&+los223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,!7l+*a(os %l %s&+lo d% *%lda @o(+ngos a la s%l%**+Kn a*&ual o"%l-$%ll"&?l% A "@o(+ngos" End "u.

5eamos la i1erencia en"re a!licar 1orma"o irec"o a las cel as - usar un es"ilo* en la siguien"e macro* 1orma"eamos la selecci4n con las carac"ers"icas in ica a en ca a lnea<
"u. Es&+los323 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 U+&h o"%l

#EF
,H+7o d% l%&'a -$ha'Jon&<a(% A "<+(.us "ans 5" ,Ha(a\o d% l%&'a -$ha'H%+gh& A 15 ,<%g'+&as -$ha'U%+gh& A 150 ,$u's+8a o +&al+*a -$ha'0os&u'% A 2 ,!l+n%a(os %n (%d+o 8%'&+*al(%n&% -1%'&[us&+f? A 2 ,!l+n%a(os *%n&'ado ho'+:on&al(%n&% -Ho'+[us&+f? A 2 ,$olo' d% fondo d% la *%lda -$%llBa*]$olo' A RDB2204620462043 ,$olo' d% la fu%n&% -$ha'$olo' A RDB206062553 End U+&h End "u.

F+5 (an o 1orma"o

A/ora* crea un es"ilo con es"as mismas carac"ers"icas* !ara nues"ro e2em!lo le llamaremos L@esal"a o1M - !roce amos a a!licar a la selecci4n<
"u. Es&+los423 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 o"%l-$%ll"&?l% A "R%sal&ado1" End "u.

No !ue e ser m;s 1;cil* !ero (siem!re /a- un !ero)* si el es"ilo e cel a no e:is"e* el c4 igo no "e ar; ning>n error* sim!lemen"e no /ar; na a* el nombre el es"ilo* ebe es"ar escri"o "al cual se io e al"a inclu-en o* ma->sculas - min>sculas* "ambi3n* como suce e en la in"er1az el usuario* cuan o se borra un es"ilo e cel a !ersonaliza o* 6ue son los >nicos 6ue !ue es eliminar* las cel as 6ue "engan es"e es"ilo* !asar;n a "ener el es"ilo e cel a !re e"ermina o* !or ello* es recomen able* veri1icar 6ue el es"ilo e:is"a - en caso e 6ue no e:is"a* crearlo* al crearlo* es recomen able veri1icar 6ue no e:is"a -a el nombre !ro!ues"o* !ues si in"en"as agregar un nombre -a e:is"en"e* "e ar; un error en "iem!o e e2ecuci4n+ 5eamos un e2em!lo<
"u. @+( @+( @+( @+( @+( Es&+los523 o@o* !s >.)%*& o"%l !s >.)%*& oEs&+los !s >.)%*& oEs&+los$%lda !s >.)%*& oEs&+lo<u%8o !s >.)%*&

,!**%d%(os al do*u(%n&o a*&ual o@o* A Hh+s$o(7on%n& ,!**%d%(os a la s%l%**+Kn o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,!**%d%(os a &odos los %s&+los oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 ,!**%d%(os a los %s&+los d% *%lda oEs&+los$%lda A oEs&+los-g%&B?<a(%2"$%ll"&?l%s"3 ,1%'+f+*a(os Fu% %l %s&+lo %x+s&a #f oEs&+los$%lda-hasB?<a(%2 "R%sal&ado1" 3 Hh%n o"%l-$%ll"&?l% A "R%sal&ado1" Els% ,"+ no %x+s&% lo *'%a(os oEs&+lo<u%8o A o@o*-*'%a&%#ns&an*%2 "*o(-sun-s&a'-s&?l%-$%ll"&?l%" 3 ,5o ag'%ga(os a la *ol%**+Kn d% %s&+los oEs&+los$%lda-+ns%'&B?<a(%2 "R%sal&ado1"6 oEs&+lo<u%8o 3

A!ren ien o OOo Basic


,Es&a.l%*%(os su fo'(a&o U+&h oEs&+lo<u%8o -$ha'Jon&<a(% A "<+(.us "ans 5" -$ha'H%+gh& A 15 -$ha'U%+gh& A 150 -$ha'0os&u'% A 2 -1%'&[us&+f? A 2 -Ho'+[us&+f? A 2 -$%llBa*]$olo' A RDB2204620462043 -$ha'$olo' A RDB206062553 End U+&h ,O lo a7l+*a(os o"%l-$%ll"&?l% A "R%sal&ado1" End #f End "u.

#E%

Para borrar un es"ilo* usamos el m3"o o removeB-Name e la siguien"e manera* recor an o 6ue al borrar el es"ilo* L"o asM* las cel as 6ue "engan ic/o es"ilo* regresaran al es"ilo !re e"ermina o* !er i3n ose "o o el 1orma"o+
"u. @+( @+( @+( @+( Es&+los623 o@o* !s >.)%*& oEs&+los !s >.)%*& oEs&+los$%lda !s >.)%*& oEs&+lo<u%8o !s >.)%*&

,!**%d%(os al do*u(%n&o a*&ual o@o* A Hh+s$o(7on%n& ,!**%d%(os a &odos los %s&+los oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 ,!**%d%(os a los %s&+los d% *%lda oEs&+los$%lda A oEs&+los-g%&B?<a(%2"$%ll"&?l%s"3 ,1%'+f+*a(os Fu% %l %s&+lo %x+s&a #f oEs&+los$%lda-hasB?<a(%2 "@o(+ngos" 3 Hh%n #f MsgBox2"MEs&as s%gu'o d% .o''a' %l %s&+loN"6366"Bo''a %s&+lo"3 A 6 &h%n ,Pu+&a(os %l %s&+lo oEs&+los$%lda-'%(o8%B?<a(%2 "@o(+ngos" 3 MsgBox "Es&+lo d% *%lda .o''ado" Els% MsgBox "<> s% .o''o n+ng;n %s&+lo" End #f Els% MsgBox "El %s&+lo no %x+s&%" End #f End "u.

=l mane2o e au"o1orma"o* es mu- similar al e es"ilos* la i1erencia* es 6ue el au"o1orma"o siem!re se a!lica a un rango e cel as* mnimo* e "res columnas !or "res 1ilas* es"e servicio es"a is!onible "an"o en /o2as e calculo como en "ablas e Nri"er* !ara ver los au"o1orma"os is!onibles usamos<
"u. !u&ofo'(a&o123 @+( o!u&oJo'(a&os !s >.)%*& o!u&oJo'(a&os A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sh%%&-Ha.l%!u&oJo'(a&s"3 ,Mos&'a(os sus no(.'%s MsgBox [o+n2 o!u&oJo'(a&os-g%&El%(%n&<a(%s236 $h'2133 3 End "u.

Para a!licar un au"o1orma"o se usa el m3"o o au"o'orma" e la siguien"e manera<

#EG
"u. !u&ofo'(a&o223 @+( o"%l !s >.)%*& o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 o"%l-au&oJo'(a&2"1%'d%"3 End "u.

F+5 (an o 1orma"o

Toma en cuen"a 6ue el rango selecciona o* L ebeM ser un ob2e"o Sc.ell@angeOb2* es ecir* un rango e cel as* si bien* !or c4 igo* !o r;s a!licarlo a una sola cel a !ero "e 1orma"ear; un mnimo e "res 1ila !or "res columnas* si seleccionas varios rangos e cel as* "e ar; un error !ues ese ob2e"o no im!lemen"a el m3"o o au"o'orma"* lo me2or* como siem!re* es vali ar 6ue la selecci4n es correc"a* si usas es"a "3cnica+ =l nombre el au"o1orma"o* como en los es"ilos* ebe ser e:ac"amen"e como se llamo al crearlo* !ero a i1erencia e los es"ilos* si escribes mal el nombre* "e ar; un error en "iem!o e e2ecuci4n* !or ello* es me2or vali ar 6ue e:is"a* an"es e usarlo* como en el siguien"e e2em!lo<
"u. @+( @+( @+( !u&ofo'(a&o323 o!u&oJo'(a&os !s >.)%*& o"%l !s >.)%*& s<o(.'%!J !s "&'+ng

s<o(.'%!J A "1%'d%Ro)o" o!u&oJo'(a&os A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sh%%&-Ha.l%!u&oJo'(a&s"3 ,8%'+f+*a(os Fu% %x+s&a %l au&ofo'(a&o #f o!u&oJo'(a&os-hasB?<a(%2 s<o(.'%!J 3 Hh%n o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,<os as%gu'a(os Fu% la s%l%**+on s%a un 'ango d% *%ldas #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n ,d% (+n+(o &'%s f+las 7o' &'%s *olu(nas #f o"%l-g%&$olu(ns-g%&$oun& Y 2 !nd o"%l-g%&Ro^s-g%&$oun& Y 2 Hh%n o"%l-au&oJo'(a&2 s<o(.'%!J 3 Els% MsgBox "El 'ango d%.% s%' d% (+n+(o6 3 *olu(nas 7o' 3 f+las" End #f Els% MsgBox "<o %s un 'ango d% *%ldas" End #f Els% MsgBox "El au&ofo'(a&o no %x+s&%" End #f End "u.

Para eliminar un au"o1orma"o* usamos el m3"o o removeB-Name como en<


"u. !u&ofo'(a&o423 @+( o!u&oJo'(a&os !s >.)%*& o!u&oJo'(a&os A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sh%%&-Ha.l%!u&oJo'(a&s"3 ,1%'+f+*a(os Fu% %x+s&a #f o!u&oJo'(a&os-hasB?<a(%2 "1%'d%Ro)o" 3 Hh%n #f MsgBox2"MEs&as s%gu'o d% .o''a' %l au&ofo'(a&oN"6366"Bo''a au&ofo'(a&o"3 A 6 Hh%n ,Pu+&a(os %l au&ofo'(a&o o!u&oJo'(a&os-'%(o8%B?<a(%2 "1%'d%Ro)o" 3 MsgBox "!u&ofo'(a&o .o''ado" Els% MsgBox "<> s% .o''o nada" End #f Els% MsgBox "El au&ofo'(a&o no %x+s&%" End #f

A!ren ien o OOo Basic


End "u.

#E,

A i1erencia e los es"ilos e cel a* cuan o borras un au"o1orma"o* las cel as es"ableci as con es"e* !ermanecen con ic/o 1orma"o* lo >nico es 6ue el au"o1orma"o borra o* -a no es"ar; is!onible !ara usarse* !or lo 6ue "enemos 6ue crearlo e nuevo+ Para crear un au"o1orma"o* !rimero /a- 6ue saber (- en"en er) como es"a es"ruc"ura o* observa la siguien"e "abla<
1a Columna Encabe9ado 1a Fila 1a Fila de datos 2a Fila de datos +ie de 5abla :ltima Fila 1a Columna de datos 2a Columna de datos :ltima Columna

$ E G 1#

1 5 , 1?

# F 1$ 1E

? % 11 15

Un au"o1orma"o* no es m;s 6ue una colecci4n e 1orma"os e cel as in ivi uales* ca a cruce e columna - 1ila re!resen"a un es"ilo e cel a* 6ue* como !o r;s no"ar* "enemos 1F es"ilos i1eren"es 6ue !o emos es"ablecer+ .omo -a lo mencionamos* el ;rea mnima !ara usar un au"o1orma"o* es e ? : ? cel as* si "u rango "iene m;s ;rea* el 1orma"o e las columnas e a"os se ira u!lican o - al"ernan o* lo mismo !asar; con las 1ilas en el sen"i o ver"ical+ Observa la siguien"e imagen* en la !ar"e su!erior* es";n nues"ros a"os sin 1orma"o (L!elonesM icen en mi !ueblo)* - en la !ar"e in1erior* como es 6ue 6ueremos 6ue 6ue e* como !o r;s no"ar* so- una nuli a !ara el iseKo* as 6ue no "e !ongas mu- es"ric"o+

Para crear el au"o1orma"o an"erior* usamos la siguien"e macro* "e recuer o 6ue el 1orma"o e ca a cel a (cam!o) el au"o1orma"o* "iene las mismas carac"ers"icas e 1orma"o e las cel as vis"as an"eriormen"e (aun6ue no es !osible a!licar "o os los 1orma"os !resen"es normalmen"e en cel as)* !or lo 6ue no comen"ar3 esa !ar"e* vamos a 1orma"ear 1F cel as* as 6ue

#5$

F+5 (an o 1orma"o

ser; una macro un !oco m;s larga e las 6ue /emos veni o !roban o* !ero mu- sencilla !or 6ue se re!i"e bas"an"e el c4 igo* veamos<
"u. @+( @+( @+( @+( @+( @+( @+( $'%a'!u&oJo'(a&o23 o!u&oJo'(a&os !s >.)%*& o<u%8o!J !s >.)%*& s<o(.'%!J !s "&'+ng o@o* !s >.)%*& o"%l !s >.)%*& oBo'd%5+n%a !s <%^ *o(-sun-s&a'-&a.l%-Bo'd%'5+n% oBo'd%Ha.la !s <%^ *o(-sun-s&a'-&a.l%-Ha.l%Bo'd%'

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 o<u%8o!J A o@o*-*'%a&%#ns&an*%2"*o(-sun-s&a'-sh%%&-Ha.l%!u&oJo'(a&"3 o!u&oJo'(a&os A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sh%%&-Ha.l%!u&oJo'(a&s"3 s<o(.'%!J A "M+Jo'(a&o<u%8o" ,1%'+f+*a(os Fu% no %x+s&a #f <o& o!u&oJo'(a&os-hasB?<a(%2 s<o(.'%!J 3 Hh%n ,5o ag'%ga(os a la *ol%**+Kn d% !u&oJo'(a&os o!u&oJo'(a&os-+ns%'&B?<a(%2 s<o(.'%!J6 o<u%8o!J 3 ,5% da(os fo'(a&o a *ada *%lda U+&h oBo'd%5+n%a -$olo' A 255 ->u&%'5+n%U+d&h A 60 End U+&h U+&h oBo'd%Ha.la -Ho75+n% A oBo'd%5+n%a -#sHo75+n%1al+d A H'u% -Bo&&o(5+n% A oBo'd%5+n%a -#sBo&&o(5+n%1al+d A H'u% -5%f&5+n% A oBo'd%5+n%a -#s5%f&5+n%1al+d A H'u% -R+gh&5+n% A oBo'd%5+n%a -#sR+gh&5+n%1al+d A H'u% End U+&h ,$%lda 0 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 26 2 3 ,$%lda 1 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 26 2 3 ,$%lda 2 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 26 2 3 ,$%lda 3 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 26 2 3 ,$%lda 4 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 36 2 3 ,$%lda 5 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1006 06 2 3 ,$%lda 6 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1006 06 2 3 ,$%lda 7 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 06 2 3 ,$%lda 8 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 36 2 3 ,$%lda 9 o<u%8o!J-g%&B?#nd%x2036 167116806 167772156 "5+.%'a&+on "ans"6 136 o<u%8o!J-g%&B?#nd%x2136 167116806 167772156 "5+.%'a&+on "ans"6 136 o<u%8o!J-g%&B?#nd%x2236 167116806 167772156 "5+.%'a&+on "ans"6 136 o<u%8o!J-g%&B?#nd%x2336 167116806 167772156 "5+.%'a&+on "ans"6 136 o<u%8o!J-g%&B?#nd%x2436 134217726 26215936 "5+.%'a&+on "ans"6 126 o<u%8o!J-g%&B?#nd%x2536 134217726 06 "5+.%'a&+on "ans"6 106 o<u%8o!J-g%&B?#nd%x2636 134217726 06 "5+.%'a&+on "ans"6 106 o<u%8o!J-g%&B?#nd%x2736 26215936 167772156 "5+.%'a&+on "ans"6 126 o<u%8o!J-g%&B?#nd%x2836 134217726 26215936 "5+.%'a&+on "ans"6 126

A!ren ien o OOo Basic


$all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 06 2 3 ,$%lda 10 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 06 2 3 ,$%lda 11 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 06 2 3 ,$%lda 12 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 36 2 3 ,$%lda 13 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 06 2 3 ,$%lda 14 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 06 2 3 ,$%lda 15 $all Jo'(a&%a'$a(7o!J2 oBo'd%Ha.la6 1506 06 2 3

#51
o<u%8o!J-g%&B?#nd%x2936 167640576 06 "5+.%'a&+on "ans"6 106 o<u%8o!J-g%&B?#nd%x21036 167640576 06 "5+.%'a&+on "ans"6 106 o<u%8o!J-g%&B?#nd%x21136 26215936 167772156 "5+.%'a&+on "ans"6 126 o<u%8o!J-g%&B?#nd%x21236 26215936 167772156 "5+.%'a&+on "ans"6 126 o<u%8o!J-g%&B?#nd%x21336 26215936 167772156 "5+.%'a&+on "ans"6 126 o<u%8o!J-g%&B?#nd%x21436 26215936 167772156 "5+.%'a&+on "ans"6 126 o<u%8o!J-g%&B?#nd%x21536 134217726 06 "5+.%'a&+on "ans"6 106

,@% fo'(a 7'%d%&%'(+nada +n*lu+(os &odos las o7*+on%s U+&h o<u%8o!J -#n*lud%<u(.%'Jo'(a& A H'u% -#n*lud%Ba*]g'ound A H'u% -#n*lud%Bo'd%' A H'u% -#n*lud%Jon& A H'u% -#n*lud%[us&+f? A H'u% -#n*lud%<u(.%'Jo'(a& A H'u% -#n*lud%U+d&h!ndH%+gh& A H'u% End U+&h ,"olo lo a7l+*a(os s+ la s%l%**+Kn %s un 'ango d% *%ldas #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o"%l-au&oJo'(a&2 s<o(.'%!J 3 End #f Els% ,"+ %x+s&% %l fo'(a&o lo a7l+*anos #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o"%l-au&oJo'(a&2 s<o(.'%!J 3 End #f End #f End "u. ,0u%d%s ag'%ga' &odas las 7'o7+%dad%s Fu% *ons+d%'%s "u. Jo'(a&%a'$a(7o!J2$a(7o !s >.)%*&6 $olo'Jondo !s 5ong6 $olo'Ju%n&% !s 5ong6 Ju%n&% !s "&'+ng6 Ha(Ju%n&% !s #n&%g%'6 Bo'd%s !s >.)%*&6 <%g'+&as !s #n&%g%'6 H[ !s B?&%6 1[ !s B?&%3 U+&h $a(7o -$%llBa*]$olo' A $olo'Jondo -$ha'$olo' A $olo'Ju%n&% -$ha'Jon&<a(% A Ju%n&% -$ha'H%+gh& A Ha(Ju%n&% -Ha.l%Bo'd%' A Bo'd%s -$ha'U%+gh& A <%g'+&as -Ho'+[us&+f? A H[ -1%'&[us&+f? A 1[ End U+&h End "u.

)a macro an"erior "iene unas !e6ueKas i1erencias con la imagen mos"ra a al inicio e ella* "u "area es no"ar las i1erencias* as mismo* "iene una !e6ueKa e1iciencia 6ue "ambi3n

#5#

F+5 (an o 1orma"o

"ienes 6ue encon"rar* no es"a i1cil* solo "ienes 6ue ser un !oco observa or+ Observa 6ue /acemos uso e una subru"ina (macro) e a!o-o !ara arle 1orma"o a ca a cam!o el au"o1orma"o* solo es"o- consi eran o las !ro!ie a es m;s re!resen"a"ivas* !or su!ues"o* !ue es com!lemen"arla con "o as las 6ue necesi"es !ues es"os cam!os "ienen m;s e cuaren"a !ro!ie a es+

=.!.)

Formato de pF*ina

=l 1orma"o e !;gina* siem!re "iene 6ue es"ablecerse !or me io e un es"ilo e !;gina* es"e* en con2un"o con o"ra serie e !ro!ie a es e la /o2a on e es"3s "raba2an o* "e ar; con"rol com!le"o sobre el 1orma"o e !;gina+ )a siguien"e macro "e mues"ra en un cua ro e mensa2e* la lis"a e 1orma"os e !;gina e:is"en"es en el ocumen"o es e el cual se e2ecu"a<
"u. @+( @+( @+( Jo'(a&o0ag+na123 o@o* !s >.)%*& oEs&+los !s >.)%*& oEs&+los0ag+na !s >.)%*&

,!**%d%(os al do*u(%n&o a*&ual o@o* A Hh+s$o(7on%n& ,!**%d%(os a &odos los %s&+los oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 ,!**%d%(os a los %s&+los d% 7=g+na oEs&+los0ag+na A oEs&+los-g%&B?<a(%2"0ag%"&?l%s"3 ,Mos&'a(os sus no(.'%s MsgBox [o+n2 oEs&+los0ag+na-g%&El%(%n&<a(%s236 $h'2133 3 End "u.

5eri1ica 6ue e1ec"ivamen"e sean los es"ilos 6ue "ienes* ve a "u /o2a - !resiona la "ecla '11 !ara abrir el cua ro e ialogo L"stilo ) 5ormatoM* selecciona los es"ilos e !;gina* la lis"a ebera ser igual a la 6ue "e evuelve la macro an"erior+

Para saber 6ue es"ilo e !;gina "enemos en nues"ra /o2a ac"iva* usamos<
"u. @+( @+( @+( @+( Jo'(a&o0ag+na223 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oEs&+los !s >.)%*& oEs&+los0ag+na !s >.)%*&

A!ren ien o OOo Basic

#5?

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,1%'+f+*a(os %l no(.'% d%l %s&+lo a*&ual MsgBox oHo)a!*&+8a-0ag%"&?l% End "u.

Para a!licar el es"ilo e !;gina 6ue 6uieras* usamos la siguien"e macro<


"u. @+( @+( @+( @+( @+( Jo'(a&o0ag+na323 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oEs&+los !s >.)%*& oEs&+los0ag+na !s >.)%*& sEs&+lo !s "&'+ng

sEs&+lo A "R%7o'&" o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 oEs&+los0ag+na A oEs&+los-g%&B?<a(%2"0ag%"&?l%s"3 ,1%'+f+*a(os Fu% %l no(.'% d%l %s&+lo %x+s&a #f oEs&+los0ag+na-hasB?<a(%2 sEs&+lo 3 Hh%n ,"+ %x+s&% lo a7l+*a(os oHo)a!*&+8a-0ag%"&?l%2 sEs&+lo 3 Els% MsgBox "<o s% a7l+*o n+ng;n %s&+lo d% 7=g+na" End #f End "u.

.on el siguien"e e2em!lo* mos"ramos algunas !ro!ie a es el es"ilo e !;gina !re e"ermina o+
"u. @+( @+( @+( @+( @+( @+( Jo'(a&o0ag+na423 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oEs&+los !s >.)%*& oEs&+los0ag+na !s >.)%*& sEs&+lo !s "&'+ng oE0 !s >.)%*&

sEs&+lo A "@%faul&" o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 oEs&+los0ag+na A oEs&+los-g%&B?<a(%2"0ag%"&?l%s"3 #f oEs&+los0ag+na-hasB?<a(%2 sEs&+lo 3 Hh%n oE0 A oEs&+los0ag+na-g%&B?<a(%2 sEs&+lo 3 ,!n*ho ? al&o d% la 7=g+na MsgBox oE0-U+d&h 9 " T " 9 oE0-H%+gh& ,Ma'g%n su7%'+o' % +nf%'+o' MsgBox oE0-Ho7Ma'g+n 9 " T " 9 oE0-Bo&&o(Ma'g+n ,Ma'g%n +:Fu+%'do ? d%'%*ho MsgBox oE0-5%f&Ma'g+n 9 " T " 9 oE0-R+gh&Ma'g+n End #f End "u.

Para borrar un es"ilo* usamos el m3"o o remo%e!)2ame e la siguien"e manera<


"u. Jo'(a&o0ag+na523 @+( o@o* !s >.)%*&

#5E
@+( @+( @+( @+( oHo)a!*&+8a !s >.)%*& oEs&+los !s >.)%*& oEs&+los0ag+na !s >.)%*& sEs&+lo !s "&'+ng

F+5 (an o 1orma"o

sEs&+lo A "1+d%o&%*a" o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 oEs&+los0ag+na A oEs&+los-g%&B?<a(%2"0ag%"&?l%s"3 #f oEs&+los0ag+na-hasB?<a(%2 sEs&+lo 3 Hh%n #f MsgBox2"MEs&as s%gu'o d% .o''a' %l %s&+lo d% 7=g+naN"6 363 A 6 Hh%n ,Bo''a(os %l %s&+lo oEs&+los0ag+na-'%(o8%B?<a(%2 sEs&+lo 3 MsgBox "Es&+lo .o''ado" Els% MsgBox "El %s&+lo no s% .o''o" End #f Els% MsgBox "<o %x+s&% %l %s&+lo d% 7=g+na" End #f End "u.

Ten cui a o con la macro an"erior* en"ro e la in"er1az el usuario* los es"ilos @e!or"e (@e!or") - Pre e"ermina o ((e1aul") no se !ue en borrar* !ero !or c4 igo si 6ue se !ue e* si llegas a borrar L"o osM los es"ilos* -a no !o r;s /ace uso el men> 5ormato | (gina* si no me crees - "e gus"a e:!erimen"ar como a mi* borra "o os los es"ilos !ara veri1icarlo* !ero* aun6ue los borres* las /o2as nuevas* al es"ar basa as en la !lan"illa !re e"ermina a* "en r;n e nuevo los es"ilos !re e"ermina os* claro* si los borras e la !lan"illa* si 6ue "e 6ue ar;s sin es"ilos* no obs"an"e* !ue es volver a crearlos* como en el siguien"e e2em!lo<
"u. @+( @+( @+( @+( @+( @+( Jo'(a&o0ag+na623 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oEs&+los !s >.)%*& oEs&+los0ag+na !s >.)%*& sEs&+lo !s "&'+ng oE0 !s >.)%*&

sEs&+lo A "1+d%o&%*a" o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 oEs&+los0ag+na A oEs&+los-g%&B?<a(%2"0ag%"&?l%s"3 #f oEs&+los0ag+na-hasB?<a(%2 sEs&+lo 3 Hh%n oHo)a!*&+8a-0ag%"&?l%2 sEs&+lo 3 Els% ,$'%a(os un nu%8o %s&+lo oE0 A o@o*-*'%a&%#ns&an*%2 "*o(-sun-s&a'-s&?l%-0ag%"&?l%" 3 ,5o ag'%ga(os a la *ol%**+Kn d% %s&+los oEs&+los0ag+na-+ns%'&B?<a(%2 sEs&+lo6 oE0 3 ,5% da(os fo'(a&o U+&h oE7 -U+d&h A 27940 ,!n*ho -H%+gh& A 21590 ,!l&o -Ho7Ma'g+n A 2000 ,Ma'g%n su7%'+o' -Bo&&o(Ma'g+n A 2000 ,Ma'g%n +nf%'+o' -5%f&Ma'g+n A 1000 ,Ma'g%n +:Fu+%'do -R+gh&Ma'g+n A 1000 ,Ma'g%n d%'%*ho -#s5ands*a7% A H'u% ,>'+%n&a*+Kn d% la 7=g+na 2ho'+:on&al3 -$%n&%'Ho'+:on&all? A H'u% ,$%n&'ado ho'+:on&al d%l *on&%n+do -"*al%Ho0ag%sE A 1 ,Cna 7=g+na d% an*ho -"*al%Ho0ag%sO A 0 ,5as Fu% salgan d% al&o

A!ren ien o OOo Basic


End U+&h End #f End "u.

#55

Observa las carac"ers"icas in ica as en"ro e la misma macro* como icen en mi !ueblo -ni es";n "o as las 6ue son* ni son "o as las 6ue es";n-+ )as carac"ers"icas es"ableci as son las mismas el men> 5ormato | (gina * 6ue* como !o r;s no"ar* son bas"an"es* veamos las m;s comunes+

=l anc/o (Ni "/) - al"o (ceig/") e la !;gina* se re1iere al "amaKo el !a!el* /a- 6ue es"ablecerlos en cen"3simas e milme"ro* es ecir* ca a 1$$ uni a es es igual a 1 milme"ro* es"as !ro!ie a es* "ienes 6ue usarlas correc"amen"e en combinaci4n con la !ro!ie a Orien"aci4n (9s)an sca!e)* es ecir* si es"ableces es"a !ro!ie a en ver a ero (True) es ecir /orizon"al* en"onces el anc/o ebe ser ma-or 6ue el al"o* si la es"ableces en 1also ('alse) es ecir ver"ical* el al"o ebe ser ma-or !ara 6ue lo veas correc"amen"e+ =n el siguien"e e2em!lo* la !rimer 1orma es correc"a* la segun a no<
U+&h oE7 -U+d&h A 27940 -H%+gh& A 21590 -#s5ands*a7% A H'u% End U+&h U+&h oE7 -U+d&h A 27940 -H%+gh& A 21590 -#s5ands*a7% A Jals% End U+&h ,!n*ho ,!l&o ,>'+%n&a*+Kn d% la 7=g+na 2ho'+:on&al3

,!n*ho ,!l&o ,>'+%n&a*+Kn d% la 7=g+na 28%'&+*al3

)os margenes "ambi3n es";n en cen"3simas e milme"ros - se ven a1ec"a os !or el iseKo e !;gina (PageS"-le)a-ou")* es ecir* si es"ableces las !;ginas erec/a e iz6uier a igual

#5F

F+5 (an o 1orma"o

o si las re1le2as* es"e valor es"a e"ermina o !or la enumeraci4n PageS"-le)a-ou"* cu-os !osibles valores son los siguien"es<
Propiedad Pa,e4tyleLayout com+sun+s"ar+s"-le+PageS"-le)a-ou"+A)) com+sun+s"ar+s"-le+PageS"-le)a-ou"+)='T com+sun+s"ar+s"-le+PageS"-le)a-ou"+@9&cT com+sun+s"ar+s"-le+PageS"-le)a-ou"+M9@@O@=(

0alor
$ 1 # ?

0alor en )nterfa2
(erec/a e iz6uier a Solo iz6uier a Solo erec/a @e1le2a o

Pue es es"ablecer el valor o la cons"an"e como en el siguien"e e2em!lo<


oE0-0ag%"&?l%5a?ou& A 0 oE0-0ag%"&?l%5a?ou& A *o(-sun-s&a'-s&?l%-0ag%"&?l%5a?ou&-M#RR>RE@

=l 'orma"o* se re1iere al es"ilo e numeraci4n 6ue se usar; cuan o se es"ablece la numeraci4n e !;ginas en el encabeza o o en el !ie e !;gina* sus valores van el $ al 5 - se corres!on en al or en mos"ra o en la in"er1az el usuario<

oE0-<u(.%'+ngH?7% A 4

=n Orien"aci4n e la /o2a* lo correc"a seria* cen"ra o el con"eni o* !ues eso es lo 6ue realmen"e /acen es"as !ro!ie a es* !ara el sen"i o /orizon"al (.en"ercorizon"all-) - ver"ical (.en"er5er"icall-)* son valores booleanos+
oE0-$%n&%'Ho'+:on&all? A H'u% oE0-$%n&%'1%'&+*all? A Jals%

=n la 1ic/a Bor e* "enemos<

A!ren ien o OOo Basic

#5%

Para es"ablecer el bor e e la !;gina* usamos al es"ruc"ura !order0ine* -a vis"a en o"ros ca!"ulos* en el siguien"e e2em!lo* es"ablecemos el bor e e ca a la o e un color i1eren"e<
@+( oBo'd%5+n%a !s <%^ *o(-sun-s&a'-&a.l%-Bo'd%'5+n% U+&h oBo'd%5+n%a -$olo' A RDB220060603 -#nn%'5+n%U+d&h A 100 ,5Gn%a +n&%'+o' ->u&%'5+n%U+d&h A 50 ,5Gn%a %x&%'+o' -5+n%@+s&an*% A 100 ,@+s&an*+a %n&'% lGn%as End U+&h oE0-Ho7Bo'd%' A oBo'd%5+n%a oBo'd%5+n%a-$olo' A RDB206200603 oE0-Bo&&o(Bo'd%' A oBo'd%5+n%a oBo'd%5+n%a-$olo' A RDB206062003 oE0-5%f&Bo'd%' A oBo'd%5+n%a oBo'd%5+n%a-$olo' A RDB2200620062003 oE0-R+gh&Bo'd%' A oBo'd%5+n%a

Si 6uieres ver solo una lnea* es"ablece solo una e las lneas* -a sea la in"erior (9nner)ineNi "/) o la e:"erior (Ou"er)ineNi "/) - no es"ablezcas la is"ancia en"re ellas ()ine(is"ance)* e nuevo* las uni a es son cen"3simas e milme"ros+ )a o!ci4n -istancia al te*to* se re1iere a la is"ancia en"re los bor es - el con"eni o* si 6uieres la mis"a is"ancia !ara los cua"ro bor es* como si es"uviera ac"iva a la casilla e veri1icaci4n Sincronizar* usa la !ro!ie a !order-istance* si 6uieres un is"ancia i1eren"e !ara ca a la o* usa las siguien"es !ro!ie a es<
,0a'a s+n*'on+:a' &odos los .o'd%s a -5 (( oE0-Bo'd%'@+s&an*% A 500 ,0a'a %s&a.l%*%' *ada .o'd% d+f%'%n&% oE0-Ho7Bo'd%'@+s&an*% A 500 oE0-Bo&&o(Bo'd%'@+s&an*% A 1000 oE0-5%f&Bo'd%'@+s&an*% A 1500 oE0-R+gh&Bo'd%'@+s&an*% A 2000

#5G

F+5 (an o 1orma"o

)a sombra se es"ablece con la !ro!ie a S/a o7'orma"* 6ue es una es"ruc"ura com+sun+s"ar+"able+S/a o7'orma"* con las siguien"e !ro!ie a es<
U+&h o"o(.'a -5o*a&+on A 4 -"hado^U+d&h A 1000 -#sH'ans7a'%n& A Jals% -$olo' A RDB2180618061803 End U+&h oE7-"hado^Jo'(a& A o"o(.'a ,@ond% %s&a la so(.'a ,!n*ho d% la so(.'a ,"+ %s &'ans7a'%n&% ,$olo'

)a !ro!ie a )oca"ion* es"a e"ermina a !or la siguien"e enumeraci4n<


Propiedad 4hado7Location com+sun+s"ar+"able+S/a o7)oca"ion+NON= com+sun+s"ar+"able+S/a o7)oca"ion+TOPQ)='T com+sun+s"ar+"able+S/a o7)oca"ion+TOPQ@9&cT com+sun+s"ar+"able+S/a o7)oca"ion+BOTTOMQ)='T com+sun+s"ar+"able+S/a o7)oca"ion+BOTTOMQ@9&cT

0alor
$ 1 # ? E

0alor en )nterfa2
Ninguna Arriba a la iz6uier a Arriba a la erec/a Aba2o a la iz6uier a Aba2o a la erec/a

Si es"ableces la !ro!ie a sombra no se vera+

e "rans!arencia (9sTrans!aren") en ver a ero (True)* la

)a siguien"e 1ic/a se llama 'on o* veamos su !ro!ie a 6ue es mu- sencilla<

oE0-Ba*]$olo' A RDB2200622062403

Tambi3n !o emos es"ablecer una imagen e 1on o* a6u !ue es ver a mi novia Marion .o"illar <

A!ren ien o OOo Basic

#5,

)a ru"a e la imagen la es"ablecemos con !ac7Grap$ic3R0* es im!or"an"e 6ue le !ases la ru"a en 1orma"o U@)* - !or su!ues"o 6ue la imagen e:is"a* si no* no "e ar; un error !ero no "e mos"rar; na a* cui a muc/o el "amaKo e las im;genes inser"a as en ocumen"os* si se usara solo en !an"alla* 6ue es lo usual* no re6uieres ni un gran "amaKo ni una gran resoluci4n+
,Es&a.l%*%(os la 'u&a d% la +(ag%n oE0-Ba*]D'a7h+*CR5 A $on8%'&HoCR52 "/ho(%/(au/(a'+on-)7g" 3 ,O la 7os+*+Kn dond% la Fu%'%(os oE0-Ba*]D'a7h+*5o*a&+on A 5

)a !osici4n (Bacs&ra!/ic)oca"ion) !ue e "omar valores e 1 a 11* e acuer o a la siguien"e imagen* en la o!ci4n drea* "e cubrir; la /o2a com!le"a con la imagen+

Nos sal"amos el encabeza o - !ie e !;gina 6ue !or su com!le2i a veremos al 1inal* - veamos la ul"ima 1ic/a8 co2a* 6ue "iene las siguien"es !ro!ie a es<

#F$

F+5 (an o 1orma"o

=l or en e im!resi4n (Or en e !;gina) lo es"ablecemos con la !ro!ie a 8 (rint-o8n5irst* valor booleano 6ue e6uivale a<

5er a ero (True) l (e arriba /acia aba2o* es!u3s /acia la erec/a 'also ('alse) l (e iz6uier a a erec/a - /acia aba2o

oE0-0'+n&@o^nJ+'s& A H'u%

=l valor e (rimer n9m& de pgina* es"a re!resen"a o !or la !ro!ie a 5irst(age2umber* valor "i!o en"ero (in"eger) 6ue es"ablece un inicio e numeraci4n e !;gina i1eren"e e uno+ Ten cui a o si lo usas en con2un"o con el "o"al e /o2as* !ues "e !ue e ar resul"a os algo e:"raKos* como mos"rar"e co2a 5 e ?+
oE0-J+'s&0ag%<u(.%' A 8

)as siguien"es !ro!ie a es solo e"erminan 6ue o!ciones se im!rimir;n - cuales no* en ca a lnea "e mues"ro su e6uivalencia en la in"er1az el usuario<
U+&h oE0 -0'+n&!nno&a&+ons A Jals% -0'+n&$ha'&s A H'u% -0'+n&@'a^+ng A H'u% -0'+n&Jo'(ulas A Jals% -0'+n&D'+d A Jals% -0'+n&H%ad%'s A Jals% -0'+n&>.)%*&s A H'u% -0'+n&`%'o1alu%s A H'u% End U+&h ,#(7'+(+' ,#(7'+(+' ,#(7'+(+' ,#(7'+(+' ,#(7'+(+' ,#(7'+(+' ,#(7'+(+' ,#(7'+(+' las no&as d% *%ldas los D'=f+*os los >.)%&os d% d+.u)o las fo'(ulas6 %n 8%: d%l '%sul&ado la *uad'G*ula d% las *%ldas %n*a.%:ados d% f+las ? *olu(nas >.)%&os % +(=g%n%s los 8alo'%s *%'o

)a escala e im!resi4n nos !ue e resolver mu- 1;cilmen"e !roblemas e im!resi4n* la !rimera o!ci4n es aumen"ar o isminuirla seg>n nues"ras necesi a es con la !ro!ie a (ageScale* un valor "i!o en"ero (in"eger) en"re 1$ - E$$* si lo es"ableces 1uera e es"os limi"es* se a2us"ar; al valor mnimo o m;:imo m;s cercano* "oma en cuen"a 6ue es"e !orcen"a2e e cambio* solo es visible en la vis"a !reliminar - a la /ora e im!rimir* en "u in"er1az e usuario no veras ning>n cambio e "amaKo+

A!ren ien o OOo Basic

#F1

oE0-0ag%"*al% A 80

,!)us&a(os al 80e d% %s*ala

)a segun a o!ci4n es a2us"ar a un e"ermina o n>mero e !;ginas* "ienes 6ue consi erar un a2us"e 4!"imo en"re can"i a e a"os - es"e valor* !ues si "ienes muc/os a"os es"ableces un valor e !;ginas mu- !e6ueKo* el 1ac"or e escala se re ucir; "an"o 6ue los a"os no ser;n legibles+
,!)us&a(os a &'%s 7=g+nas d% +(7'%s+Kn oE0-"*al%Ho0ag%s A 3

Por ul"imo la 6ue m;s me gus"a* !ue es es"ablecer un e"ermina o n>mero e !;ginas e anc/o !or o"ro e al"o* !or e2em!lo<
,Es&a.l%*%(os la +(7'%s+Kn %n &'%s d% an*ho 7o' dos d% al&o oE7-"*al%Ho0ag%sE A 3 oE7-"*al%Ho0ag%sO A 2

Pero es"as !ro!ie a es* son mu- >"iles en eso gran es lis"a os e a"os* mucomunes on e "ienes muc/as 1ilas - un e"ermina o n>mero e columnas 6ue caben en el anc/o e una /o2a* -a sea ver"ical u /orizon"al* si es"ableces el anc/o en 1 - el al"o en $* es"amos 1orzan o a usar e:ac"amen"e una e anc/o !or las LnecesariasM e al"o+
,Es&a.l%*%(os la +(7'%s+Kn %n una d% an*ho 7o' las Fu% salgan d% al&o oE7-"*al%Ho0ag%sE A 1 oE7-"*al%Ho0ag%sO A 0

A/ora si* -a casi !ara "erminar* veamos como mo i1icar el encabeza o - el !ie e !;gina e nues"ro es"ilo e !;gina+ )o !rimero 6ue /a- 6ue /acer* es ac"ivarlos o esac"ivarlos seg>n nues"ras necesi a es<

#F#

F+5 (an o 1orma"o

.omo son mu- similares las o!ciones e encabeza o - !ie e !;gina* "e ir3 mos"ran o sus !ro!ie a es* una 2un"o a o"ra+ Para ac"ivarlos o esac"ivarlos usamos<
,!*&+8a(os %l %n*a.%:ado oE7-H%ad%'>n A H'u% ,? d%sa*&+8a(os %l 7+% d% 7=g+na oE7-Joo&%'>n A Jals%

)a o!ci4n Contenido a la iz,uierda:derec$a igual * nos !ermi"e* si es"a esac"iva a* es"ablecer las o!ciones e encabeza o o !ie e !;gina* e 1orma i1eren"e !ara las !;ginas !ares e im!ares e nues"ra im!resi4n* es"a o!ci4n* 2un"o con la e -ise;o de pgina vis"a an"eriormen"e* nos !ermi"en con1igurar nues"ra im!resi4n como si e un libro se "ra"ar;+ Para ac"ivarla o esac"ivarla usamos<
,5o d%sa*&+8a(os %n %l %n*a.%:ado oE0-H%ad%'#s"ha'%d A Jals% ,5o a*&+8a(os %n %l 7+% d% 7=g+na oE0-Joo&%'#s"ha'%d A H'u%

(es!u3s "enemos las o!ciones !ara es"ablecer los margenes en cen"3simas e milme"ros* es"e margen es is"in"o e in e!en ien"e el margen e la !;gina+
,Es&a.l%*%(os los (a'g%n%s d%l %n*a.%:ado %n 3 *( oE0-H%ad%'R+gh&Ma'g+n A 3000 oE0-H%ad%'5%f&Ma'g+n A 3000 ,Es&a.l%*%(os los (a'g%n%s d%l 7+% d% 7=g+na %n 2 *( oE0-Joo&%'R+gh&Ma'g+n A 2000 oE0-Joo&%'5%f&Ma'g+n A 2000

)a !ro!ie a "spacio* se re1iere a la is"ancia en"re en el encabeza o o !ie e !;gina - el con"eni o el ocumen"o<
,!)us&a(os la d+s&an*+a d%l %n*a.%:ado al *u%'7o d%l do*u(%n&o oE0-H%ad%'Bod?@+s&an*% A 500 ,!)us&a(os la d+s&an*+a d%l 7+% d% 7=g+na al *u%'7o d%l do*u(%n&o oE0-Joo&%'Bod?@+s&an*% A 1000

)a !ro!ie a Altura* es la al"ura el encabeza o o !ie e !;gina* es ecir* el es!acio is!onible !ara in"ro ucir in1ormaci4n* !ero "oma en cuen"a 6ue en"ro e es"e valor* es"a consi era a la is"ancia en"re el encabeza o o !ie e !;gina - el cuer!o el ocumen"o* !or lo 6ue si 6uieres una is"ancia absolu"a* ebes e sumarle ic/o valor* como en<
,!)us&a(os la al&u'a d%l %n*a.%:ado su(ando %l %s7a*+o al *u%'7o oE0-H%ad%'H%+gh& A 2000 B oE0-H%ad%'Bod?@+s&an*% ,O d%l 7+% d% 7=g+na oE0-Joo&%'H%+gh& A 1000 B oE0-Joo&%'Bod?@+s&an*%

)a !ro!ie a Ajuste dinmico de la altura* nos !ermi"e a a!"ar la al"ura al con"eni o el encabeza o o !ie e !;gina* si es"a ac"iva a* la me i a in"ro uci a en la !ro!ie a an"erior no ser; "oma a en cuen"a* es"a !ro!ie a es mu- >"il si es"ablecemos !or c4 igo el con"eni o e los encabeza os o !ies e !;gina+ Para ac"ivarla o esac"ivarla* usamos<
,Es&a.l%*%(os la al&u'a d+n=(+*a 7a'a %l %n*a.%:ado oE0-H%ad%'@?na(+* A H'u% ,5a d%sa*&+8a(os 7a'a %l 7+% d% 7=g+na

A!ren ien o OOo Basic


oE0-Joo&%'@?na(+* A Jals%

#F?

9gual 6ue en el es"ilo e la !;gina* en el encabeza o como en el !ie e !;gina* "enemos las o!ciones e es"ablecer* un bor e* una sombra* un color e 1on o o una imagen* la 1orma es la misma* lo 6ue cambia* es a a las !ro!ie a es a 6ue se es"ablecen es"as<
,$onf+gu'a(os %l &+7o d% .o'd% U+&h oBo'd%5+n%a -$olo' A RDB206150603 -#nn%'5+n%U+d&h A 0 ,5Gn%a +n&%'+o' ->u&%'5+n%U+d&h A 80 ,5Gn%a %x&%'+o' End U+&h ,Es&a.l%*%(os %l (+s(o 7a'a &odos oE0-H%ad%'Ho7Bo'd%' A oBo'd%5+n%a oE0-H%ad%'Bo&&o(Bo'd%' A oBo'd%5+n%a oE0-H%ad%'5%f&Bo'd%' A oBo'd%5+n%a oE0-H%ad%'R+gh&Bo'd%' A oBo'd%5+n%a ,$a(.+a(os %l *olo' 7a'a %l .o'd% d%l 7+% d% 7=g+na U+&h oBo'd%5+n%a -$olo' A RDB21506150603 End U+&h ,Es&a.l%*%(os %l (+s(o 7a'a &odos oE0-Joo&%'Ho7Bo'd%' A oBo'd%5+n%a oE0-Joo&%'Bo&&o(Bo'd%' A oBo'd%5+n%a oE0-Joo&%'5%f&Bo'd%' A oBo'd%5+n%a oE0-Joo&%'R+gh&Bo'd%' A oBo'd%5+n%a

Para la sombra a!lica igual 6ue en es"ilo e !;gina<


,$onf+gu'a(os la so(.'a U+&h o"o(.'a -5o*a&+on A 4 -"hado^U+d&h A 500 -$olo' A RDB2150616061703 End U+&h ,0a'a %l %n*a.%:ado oE0-H%ad%'"hado^Jo'(a& A o"o(.'a ,0a'a %l 7+% d% 7=g+na oE0-Joo&%'"hado^Jo'(a& A o"o(.'a ,@ond% %s&a la so(.'a ,!n*ho d% la so(.'a ,$olo'

O el color e 1on o+
,Es&a.l%*%(os %l *olo' d% fondo d%l %n*a.%:ado d% fo'(a al%a&o'+a oE0-H%ad%'Ba*]$olo' A RDB 2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,#gual 7a'a %l 7+% d% 7=g+na oE0-Joo&%'Ba*]$olo' A RDB 2 Rnd23 2556Rnd23 2556Rnd23 255 3

Para agregar una imagen* usamos<


,Es&a.l%*%(os la 'u&a d% la +(ag%n oE0-H%ad%'Ba*]D'a7h+*CR5 A $on8%'&HoCR52 "/ho(%/(au/a''+.a-)7g" 3 ,O la 7os+*+Kn dond% la Fu%'%(os oE0-H%ad%'Ba*]D'a7h+*5o*a&+on A 10 ,!ho'a %n %l 7+% d% 7=g+na oE0-Joo&%'Ba*]D'a7h+*CR5 A $on8%'&HoCR52 "/ho(%/(au/a.a)o-)7g" 3 ,O la 7os+*+Kn dond% la Fu%'%(os oE0-Joo&%'Ba*]D'a7h+*5o*a&+on A 10

Para 6ui"ar una imagen agrega a* "ienes 6ue es"ablecer es"a !ro!ie a en vaca+

#FE
oE0-H%ad%'Ba*]D'a7h+*CR5 A ""

F+5 (an o 1orma"o

=l con"eni o 6ue !ue e llevar el encabeza o o el !ie e !;gina* es mu- rico* !ue es es"ablecer* e 1orma in e!en ien"e* el "i!o e le"ra - su es"ilo e las "res ;reas is!onibles* como se ilus"ra en la siguien"e imagen<

5eamos como con"rolar el con"eni o e es"as secciones+ )o !rimero 6ue "enemos 6ue "ener !resen"e* es la o!ci4n vis"a an"eriormen"e8 Contenido a la iz,uierda:derec$a igual& si es"a !ro!ie a es"a selecciona a* en"onces solo "enemos 6ue mo i1icar el con"eni o e un la o* !ero si es"a esac"iva a* en"onces "enemos 6ue es"ablecer* "an"o el encabeza o o !ie e !;gina* "an"o e las !;ginas !ares como e las im!ares* es"as !ro!ie a es son<

@ig/"Pagecea er.on"en" )e1"Pagecea er.on"en" @ig/"Page'oo"er.on"en" )e1"Page'oo"er.on"en"

Para el encabeza o e las !;ginas erec/as Para el encabeza o e las !;ginas iz6uier as Para el !ie e !;gina e las !;ginas erec/as Para el !ie e !;gina e las !;ginas iz6uier as

Para nues"ro e2em!lo* a o 6ue son las mismas o!ciones !ara uno - o"ro* aremos !or /ec/o 6ue las !ro!ie a es (cea er9sS/are - 'oo"er9sS/are ) es";n selecciona as* e es"e mo o* solo mo i1icamos las !ro!ie a es e las !;ginas erec/as* 6ue ser;n iguales a las e la iz6uier a* !ero no "e con1un as* aun mani!ulan o solo las e las !;ginas erec/as* "enemos acceso a las "res secciones mos"ra as en la imagen an"erior* veamos como<
,Mos&'a(os %l *on&%n+do d% la +:Fu+%'da d%l %n*a.%:ado MsgBox oE0-R+gh&0ag%H%ad%'$on&%n&-5%f&H%x&-"&'+ng ,@%l *%n&'o MsgBox oE0-R+gh&0ag%H%ad%'$on&%n&-$%n&%'H%x&-"&'+ng ,O d% la d%'%*ha MsgBox oE0-R+gh&0ag%H%ad%'$on&%n&-R+gh&H%x&-"&'+ng

5amos a cambiar el "e:"o e mos"ra o en el e2em!lo an"erior e las seis secciones acce ibles* "res !ara el encabeza o - "res !ara el !ie e !;gina* e la siguien"e manera<

A!ren ien o OOo Basic


"u. @+( @+( @+( @+( @+( @+( @+( Jo'(a&o0ag+na823 o@o* !s >.)%*& oEs&+los !s >.)%*& oEs&+los0ag+na !s >.)%*& sEs&+lo !s "&'+ng oE0 !s >.)%*& o$on&%n+do !s >.)%*& oH%x&o !s >.)%*&

#F5

sEs&+lo A "1+d%o&%*a" o@o* A Hh+s$o(7on%n& oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 oEs&+los0ag+na A oEs&+los-g%&B?<a(%2"0ag%"&?l%s"3 #f oEs&+los0ag+na-hasB?<a(%2 sEs&+lo 3 Hh%n oE0 A oEs&+los0ag+na-g%&B?<a(%2 sEs&+lo 3 oE0-H%ad%'>n A H'u% oE0-Joo&%'>n A H'u% ,!**%d%(os al *on&%n+do d%l %n*a.%:ado o$on&%n+do A oE0-R+gh&0ag%H%ad%'$on&%n&23 ,!**%d%(os a la 7a'&% +:Fu+%'da oH%x&o A o$on&%n+do-5%f&H%x&23 ,$a(.+a(os %l &%x&o oH%x&o-"&'+ng A "Es&a %s la +:Fu+%'da" 9 $h'2133 9 "%n %l %n*a.%:ado" ,O %l *olo' oH%x&o-H%x&-$ha'$olo' A RDB225560603 ,R%as+gna(os %l *on&%n+do 7a'a 8%' los *a(.+os oE0-R+gh&0ag%H%ad%'$on&%n& A o$on&%n+do ,5o (+s(o 7a'a %l *%n&'o d%l %n*a.%:ado oH%x&o A o$on&%n+do-$%n&%'H%x&23 oH%x&o-"&'+ng A "Es&% %s %l *%n&'o" 9 $h'2133 9 "%n %l %n*a.%:ado" oH%x&o-H%x&-$ha'$olo' A RDB206255603 oE0-R+gh&0ag%H%ad%'$on&%n& A o$on&%n+do ,O la d%'%*ha oH%x&o A o$on&%n+do-R+gh&H%x&23 oH%x&o-"&'+ng A "Es&a %s la d%'%*ha" 9 $h'2133 9 "%n %l %n*a.%:ado" oH%x&o-H%x&-$ha'$olo' A RDB206062553 oE0-R+gh&0ag%H%ad%'$on&%n& A o$on&%n+do ,!ho'a (od+f+*a(os %l 7+% d% 7=g+na o$on&%n+do A oE0-R+gh&0ag%Joo&%'$on&%n&23 oH%x&o A o$on&%n+do-5%f&H%x&23 oH%x&o-"&'+ng A "Es&a %s la +:Fu+%'da" 9 $h'2133 9 "%n %l 7+% d% 7=g+na" oH%x&o-H%x&-$ha'$olo' A RDB206062553 oE0-R+gh&0ag%Joo&%'$on&%n& A o$on&%n+do oH%x&o A o$on&%n+do-$%n&%'H%x&23 oH%x&o-"&'+ng A "Es&% %s %l *%n&'o" 9 $h'2133 9 "%n %l 7+% d% 7=g+na" oH%x&o-H%x&-$ha'$olo' A RDB206255603 oE0-R+gh&0ag%Joo&%'$on&%n& A o$on&%n+do oH%x&o A o$on&%n+do-R+gh&H%x&23 oH%x&o-"&'+ng A "Es&a %s la d%'%*ha" 9 $h'2133 9 "%n %l 7+% d% 7=g+na" oH%x&o-H%x&-$ha'$olo' A RDB225560603 oE0-R+gh&0ag%Joo&%'$on&%n& A o$on&%n+do End #f End "u.

.omo sabes* /a- una serie e cam!os !re e"ermina os 6ue !o emos incluir en cual6uier ;rea e un encabeza o o e un !ie e !;gina* cam!os como* la 1ec/a* la /ora* el n>mero e !;gina - el "o"al e !;ginas* veamos como inser"arlos+

#FF
"u. @+( @+( @+( @+( @+( @+( @+( @+( @+( Jo'(a&o0ag+na923 o@o* !s >.)%*& oEs&+los !s >.)%*& oEs&+los0ag+na !s >.)%*& sEs&+lo !s "&'+ng oE0 !s >.)%*& o$on&%n+do !s >.)%*& oH%x&o !s >.)%*& o$u'so' !s >.)%*& o$a(7o !s >.)%*&

F+5 (an o 1orma"o

sEs&+lo A "1+d%o&%*a" o@o* A Hh+s$o(7on%n& oEs&+los A o@o*-g%&"&?l%Ja(+l+%s23 oEs&+los0ag+na A oEs&+los-g%&B?<a(%2"0ag%"&?l%s"3 #f oEs&+los0ag+na-hasB?<a(%2 sEs&+lo 3 Hh%n oE0 A oEs&+los0ag+na-g%&B?<a(%2 sEs&+lo 3 oE0-H%ad%'>n A H'u% oE0-Joo&%'>n A H'u% ,!**%d%(os al *on&%n+do d%l 7+% d% 7=g+na o$on&%n+do A oE0-R+gh&0ag%Joo&%'$on&%n&23 ,$'%a(os una +ns&an*+a d%l *a(7o <o(.'% d%l a'*h+8o o$a(7o A o@o*-*'%a&%#ns&an*% 2"*o(-sun-s&a'-&%x&-H%x&J+%ld-J+l%<a(%"3 ,5+(7+a(os las &'%s s%**+on%s o$on&%n+do-5%f&H%x&-"&'+ng A "" o$on&%n+do-$%n&%'H%x&-"&'+ng A "" o$on&%n+do-R+gh&H%x&-"&'+ng A "" ,$'%a(os un *u'so' %n %sa s%**+Kn o$u'so' A o$on&%n+do-5%f&H%x&-*'%a&%H%x&$u'so'23 ,<os (o8%(os al f+nal o$u'so'-go&oEnd2 Jals% 3 ,#ns%'&a(os %l *a(7o o$on&%n+do-5%f&H%x&-+ns%'&H%x&$on&%n& 2o$u'so'6 o$a(7o6 H'u%3 ,$'%a(os %l *a(7o <;(%'o d% 7=g+na o$a(7o A o@o*-*'%a&%#ns&an*% 2"*o(-sun-s&a'-&%x&-H%x&J+%ld-0ag%<u(.%'"3 ,$'%a(os un *u'so' %n la s%**+Kn *%n&'al o$u'so' A o$on&%n+do-$%n&%'H%x&-*'%a&%H%x&$u'so'23 o$u'so'-go&oEnd2 Jals% 3 ,<os (o8%(os o$u'so'-"&'+ng A "0=g+na " ,#ns%'&a(os un &%x&o o$u'so'-go&oEnd2 Jals% 3 ,<os (o8%(os ,#ns%'&a(os %l *a(7o o$on&%n+do-$%n&%'H%x&-+ns%'&H%x&$on&%n& 2o$u'so'6 o$a(7o6 H'u%3 o$u'so'-go&oEnd2 Jals% 3 ,<os (o8%(os o$u'so'-"&'+ng A " d% " ,#ns%'&a(os (=s &%x&o o$u'so'-go&oEnd2 Jals% 3 ,<os (o8%(os ,$'%a(os %l *a(7o6 Ho&al d% 7=g+nas o$a(7o A o@o*-*'%a&%#ns&an*% 2"*o(-sun-s&a'-&%x&-H%x&J+%ld-0ag%$oun&"3 ,5o +ns%'&a(os o$on&%n+do-$%n&%'H%x&-+ns%'&H%x&$on&%n& 2o$u'so'6 o$a(7o6 H'u%3 ,$'%a(os %l *a(7o d% J%*ha o$a(7o A o@o*-*'%a&%#ns&an*% 2"*o(-sun-s&a'-&%x&-H%x&J+%ld-@a&%H+(%"3 o$a(7o-#s@a&% A H'u% ,Es una f%*ha ,$'%a(os un *u'so' %n la s%**+Kn d%'%*ha o$u'so' A o$on&%n+do-R+gh&H%x&-*'%a&%H%x&$u'so'23 o$u'so'-go&oEnd2 Jals% 3 ,<os (o8%(os ,#ns%'&a(os %l *a(7o o$on&%n+do-R+gh&H%x&-+ns%'&H%x&$on&%n& 2o$u'so'6 o$a(7o6 H'u%3 ,!*&ual+:a(os %l *on&%n+do d%l 7+% d% 7=g+na oE0-R+gh&0ag%Joo&%'$on&%n& A o$on&%n+do End #f End "u.

A!ren ien o OOo Basic

#F%

=.!.!

Formato condicional

=l 1orma"o con icional nos !ermi"e* e acuer o al resul"a o e una e:!resi4n o 1ormula* 1orma"ear una cel a con i1eren"es es"ilos* es"o es im!or"an"e* solo !ue es a!licar es"ilos e cel as e:is"en"es* !or lo 6ue asegura"e e "ener algunos e !rueba+ Pue es es"ablecer e una a "res con iciones* 6ue se evaluar;n una a una* veamos una !rimer con ici4n sencilla<
"u. @+( @+( @+( @+( @+( Jo'(a&o$ond+*+onal123 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& oJ$ !s >.)%*& ($ond+*+on%s233 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "!1" 3 ,!**%d%(os al fo'(a&o *ond+*+onal oJ$ A oRango-g%&0'o7%'&?1alu%2"$ond+&+onalJo'(a&"3 ,5+(7+a(os *ualFu+%' fo'(a&o %x+s&%n&%6 s+ no lo ha*%s6 las *ond+*+on%s ,s% ag'%ga'=n *o(o s%gunda o &%'*% *ond+*+Kn s%g;n *o''%s7onda oJ$-*l%a'23 ,Es&a.l%*%(os las *ond+*+on%s d%l fo'(a&o ($ond+*+on%s203-<a(% A ">7%'a&o'" ,El o7%'ado' A ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-EPC!5 ($ond+*+on%s213-<a(% A "Jo'(ula1" ,El 8alo' d% la fo'(ula 16 %s d%*+'6 s+ la *%lda A 100 ($ond+*+on%s213-1alu% A "100" ($ond+*+on%s223-<a(% A ""&?l%<a(%" ,En *aso d% Fu% s% *u(7la la *ond+*+on%s6 a7l+*a(os %l %s&+lo R%sal&ado16 ,'%*u%'da Fu% d%.%s d% *'%a'lo 7'%8+a(%n&% ($ond+*+on%s223-1alu% A "R%sal&ado1" ,!g'%ga(os las *ond+*+on%s al fo'(a&o oJ$-add<%^ 2 ($ond+*+on%s23 3 ,R%%s&a.l%*%(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o los *a(.+os oRango-s%&0'o7%'&?1alu%2 "$ond+&+onalJo'(a&"6 oJ$ 3 End "u.

Acabamos e agregar* a la cel a A1* la con ici4n e 6ue* si el valor e la cel a es igual a 1$$* le es"ablezca el es"ilo e cel a @esal"a o1* si el es"ilo no e:is"e* no "e ar; ning>n error* sim!lemen"e no a!licar; ning>n 1orma"o* veri1i6uemos 6ue la agrego correc"amen"e<

#FG

F+5 (an o 1orma"o

A/ora in"en"emos* agregar os con iciones en vez e una* !or e2em!lo* a la cel a .1* si es igual a 5$ un es"ilo - si es ma-or a 5$ o"ro es"ilo* 6ue 6ue ara as<
"u. @+( @+( @+( @+( @+( Jo'(a&o$ond+*+onal223 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& oJ$ !s >.)%*& ($ond+*+on%s233 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "$1" 3 ,!**%d%(os al fo'(a&o *ond+*+onal oJ$ A oRango-g%&0'o7%'&?1alu%2"$ond+&+onalJo'(a&"3 oJ$-*l%a'23 ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-EPC!5 ($ond+*+on%s213-<a(% A "Jo'(ula1" ($ond+*+on%s213-1alu% A "50" ($ond+*+on%s223-<a(% A ""&?l%<a(%" ($ond+*+on%s223-1alu% A "Ro)a" oJ$-add<%^ 2 ($ond+*+on%s23 3 ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-DRE!HER ($ond+*+on%s213-<a(% A "Jo'(ula1" ($ond+*+on%s213-1alu% A "50" ($ond+*+on%s223-<a(% A ""&?l%<a(%" ($ond+*+on%s223-1alu% A "!:ul" oJ$-add<%^ 2 ($ond+*+on%s23 3 ,R%%s&a.l%*%(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o los *a(.+os oRango-s%&0'o7%'&?1alu%2 "$ond+&+onalJo'(a&"6 oJ$ 3 End "u.

Observa la ma"riz e !ro!ie a es m.on iciones* es"a 1orma e es"ablecer !ares e !ro!ie a es con un nombre (Name) - un valor (5alue)* -a la /emos usa o an"eriormen"e !or lo 6ue no "e ebe ser esconoci a* la !ro!ie a o!era or (O!era"or)* es una enumeraci4n 6ue !ue e "ener los siguien"e valores< com(sun(star(sheet(ConditionOperator
com+sun+s"ar+s/ee"+.on i"ionO!era"or+NON= com+sun+s"ar+s/ee"+.on i"ionO!era"or+=eUA) com+sun+s"ar+s/ee"+.on i"ionO!era"or+NOTQ=eUA) com+sun+s"ar+s/ee"+.on i"ionO!era"or+&@=AT=@ com+sun+s"ar+s/ee"+.on i"ionO!era"or+&@=AT=@Q=eUA) com+sun+s"ar+s/ee"+.on i"ionO!era"or+)=SS com+sun+s"ar+s/ee"+.on i"ionO!era"or+)=SSQ=eUA) com+sun+s"ar+s/ee"+.on i"ionO!era"or+B=TN==N com+sun+s"ar+s/ee"+.on i"ionO!era"or+NOTQB=TN==N com+sun+s"ar+s/ee"+.on i"ionO!era"or+'O@MU)A

0alor
$ 1 # ? E 5 F % G ,

0alor en )nterfa2
Ninguna 9gual (is"in"a e Ma-or 6ue Ma-or o igual Menor 6ue Menor o igual =n"re No en"re 'ormula

A!ren ien o OOo Basic

#F,

5eamos como es"ablecer las con iciones !ara evaluar en"re un !ar e valores<
"u. @+( @+( @+( @+( @+( Jo'(a&o$ond+*+onal323 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& oJ$ !s >.)%*& ($ond+*+on%s233 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "B14B10" 3 ,!**%d%(os al fo'(a&o *ond+*+onal oJ$ A oRango-g%&0'o7%'&?1alu%2"$ond+&+onalJo'(a&"3 oJ$-*l%a'23 ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-BEHUEE< ($ond+*+on%s213-<a(% A "Jo'(ula1" ($ond+*+on%s213-1alu% A "0" ($ond+*+on%s223-<a(% A "Jo'(ula2" ($ond+*+on%s223-1alu% A "5" ($ond+*+on%s233-<a(% A ""&?l%<a(%" ($ond+*+on%s233-1alu% A "R%7'o.ado" oJ$-add<%^ 2 ($ond+*+on%s23 3 ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-BEHUEE< ($ond+*+on%s213-<a(% A "Jo'(ula1" ($ond+*+on%s213-1alu% A "6" ($ond+*+on%s223-<a(% A "Jo'(ula2" ($ond+*+on%s223-1alu% A "8" ($ond+*+on%s233-<a(% A ""&?l%<a(%" ($ond+*+on%s233-1alu% A ""uf+*+%n&%" oJ$-add<%^ 2 ($ond+*+on%s23 3 ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-BEHUEE< ($ond+*+on%s213-<a(% A "Jo'(ula1" ($ond+*+on%s213-1alu% A "9" ($ond+*+on%s223-<a(% A "Jo'(ula2" ($ond+*+on%s223-1alu% A "10" ($ond+*+on%s233-<a(% A ""&?l%<a(%" ($ond+*+on%s233-1alu% A "Ex*%l%n&%" oJ$-add<%^ 2 ($ond+*+on%s23 3 ,R%%s&a.l%*%(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o oRango-s%&0'o7%'&?1alu%2 "$ond+&+onalJo'(a&"6 oJ$ 3 End "u.

Observa 6ue a/ora /emos usa o la !ro!ie a 'ormula1 - 'ormula# !ara ar el in"ervalo e valores 6ue nos in"eresa evaluar* en"re $ - 5* en"re F - G - !or ul"imo en"re , - 1$* "ambi3n observa 6ue a/ora* en vez e a!licar el 1orma"o con icional a una sola cel a* lo /emos /ec/o a un rango e cel as* en es"e caso* LB1<B1$+ (on e realmen"e me !arece* se ve la nobleza el 1orma"o con icional* es con el uso e 1ormulas* !ues nos a un margen am!lsimo !ara es"ablecer las con iciones* !or e2em!lo* su!ongamos 6ue "enemos un rango e cel as con 1ec/as - 6ueremos 6ue los s;ba os omingos se is"ingan e los em;s as* crea os es"ilos e cel a nuevos* uno !ara los s;ba os - o"ro !ara los omingos* creamos su 1orma"o con icional con el siguien"e e2em!lo<

#%$
"u. @+( @+( @+( @+( @+( Jo'(a&o$ond+*+onal423 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& oJ$ !s >.)%*& ($ond+*+on%s233 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

F+5 (an o 1orma"o

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "#24[32" 3 ,!**%d%(os al fo'(a&o *ond+*+onal oJ$ A oRango-g%&0'o7%'&?1alu%2"$ond+&+onalJo'(a&"3 oJ$-*l%a'23 ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-J>RMC5! ($ond+*+on%s213-<a(% A "Jo'(ula1" ($ond+*+on%s213-1alu% A "UEEI@!O2!13A7" ($ond+*+on%s223-<a(% A ""&?l%<a(%" ($ond+*+on%s223-1alu% A ""a.ados" oJ$-add<%^ 2 ($ond+*+on%s23 3 ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-J>RMC5! ($ond+*+on%s213-<a(% A "Jo'(ula1" ($ond+*+on%s213-1alu% A "UEEI@!O2!13A1" ($ond+*+on%s223-<a(% A ""&?l%<a(%" ($ond+*+on%s223-1alu% A "@o(+ngos" oJ$-add<%^ 2 ($ond+*+on%s23 3 ,R%%s&a.l%*%(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o oRango-s%&0'o7%'&?1alu%2 "$ond+&+onalJo'(a&"6 oJ$ 3 End "u.

Observa como /emos es"ableci o el valor (5alue) e la !ro!ie a 'ormula1* es"amos /acien o uso e una 1unci4n incor!ora a (9AS=M (N==t(AO) e .alc* 6ue nos evuelve el a e la semana 6ue corres!on a a la 1ec/a !asa a como argumen"o8 (omingol1* )unesl#* e"c* no"a como* al ser una 1unci4n e .alc* si es"a lleva argumen"os* 1orzosamen"e /a6ue !ro!orcion;rselos* observa 6ue nues"ro rango em!ieza en 9# - a la 1unci4n le es"amos !asan o la cel a A1* no "e con1un as* le ecimos 6ue es la cel a A1 !or 6ue la re1erencia es Lrela"ivaM* el valor 6ue 6ueremos evaluar* es el e la misma cel a 9#* 9?* e"c* el 1orma"o con icional* a2us"ar; correc"amen"e las re1erencias a ca a cel a* !or su!ues"o* com!ruebalo+ 5amos a crear un 1orma"o con icional un !oco m;s elabora o* !ero m;s iver"i o+ Observa el !ar e lis"as en la imagen siguien"e<

A!ren ien o OOo Basic

#%1

)a "area* es /acer un 1orma"o con icional 6ue nos resal"e los meses 6ue 1al"an en una - o"ra lis"a+ Por su!ues"o* an"es e ver la soluci4n* "ra"a e resolverlo !or "i mismo* !rimero "e mues"ro la imagen con el resul"a o* !ara 6ue veas 6ue es !osible* es!u3s viene la macro con la soluci4n 6ue no "ienes 6ue ver /as"a 6ue in"en"es resolverlo* con1o en "i+ Observa como /emos sa"is1ec/o la con ici4n* es";n resal"a os con 1on o gris* 1uen"e azul - negri"as* los meses 6ue LnoM es";n en ca a lis"a* !or su!ues"o* es"o 1unciona con cual6uier !ar e lis"as+

A/ora la soluci4n<
"u. @+( @+( @+( @+( @+( Jo'(a&o$ond+*+onal523 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s >.)%*& oJ$ !s >.)%*& ($ond+*+on%s233 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "B24B9" 3 oJ$ A oRango-g%&0'o7%'&?1alu%2"$ond+&+onalJo'(a&"3 oJ$-*l%a'23 ,$ond+*+on%s 7a'a la 7'+(%' l+s&a ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-J>RMC5! ($ond+*+on%s213-<a(% A "Jo'(ula1" ,>.s%'8a *o(o aho'a usa(os '%f%'%n*+a a.solu&as ($ond+*+on%s213-1alu% A "$>C<H#J2d@d24d@d9f!13A0" ($ond+*+on%s223-<a(% A ""&?l%<a(%" ($ond+*+on%s223-1alu% A "Jal&an&%" oJ$-add<%^ 2 ($ond+*+on%s23 3 ,R%%s&a.l%*%(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o oRango-s%&0'o7%'&?1alu%2 "$ond+&+onalJo'(a&"6 oJ$ 3 ,0a'a la s%gunda l+s&a oRango A oHo)a!*&+8a-g%&$%llRang%B?<a(%2 "@24@9" 3 oJ$ A oRango-g%&0'o7%'&?1alu%2"$ond+&+onalJo'(a&"3 oJ$-*l%a'23 ($ond+*+on%s203-<a(% A ">7%'a&o'" ($ond+*+on%s203-1alu% A *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-J>RMC5! ($ond+*+on%s213-<a(% A "Jo'(ula1" ,>.s%'8a *o(o aho'a usa(os '%f%'%n*+a a.solu&as ($ond+*+on%s213-1alu% A "$>C<H#J2dBd24dBd9f!13A0" ($ond+*+on%s223-<a(% A ""&?l%<a(%" ($ond+*+on%s223-1alu% A "Jal&an&%" oJ$-add<%^ 2 ($ond+*+on%s23 3 ,R%%s&a.l%*%(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o

#%#
oRango-s%&0'o7%'&?1alu%2 "$ond+&+onalJo'(a&"6 oJ$ 3 End "u.

F+5 (an o 1orma"o

O con es"o "erminamos el "ema e los 1orma"os* 6ue* "e /abr;s a o cuen"a* muc/as veces consume muc/o m;s c4 igo 6ue o"ras necesi a es+ WW'eliz !rogramaci4nVV

=.=

Imprimiendo

)a im!resi4n en O!enO11ice+org es sumamen"e sencilla* !ero ebes e recor ar los elemen"os 6ue es";n im!lica os en ella* !or e2em!lo* el ;rea e im!resi4n* la im!resora is!onible* el es"ilo e !;gina es"ableci o* en"re o"ros elemen"os 6ue veremos en es"e ca!"ulo+ =l m3"o o usa o !ara im!rimir es print - se usa e la siguien"e manera<
"u. #(7'+(+%ndo123 @+( (>7*23 Hh+s$o(7on%n&-0'+n&2 (>7*23 3 End "u.

Observa 6ue sim!le* !ero Vcui a oW* la lnea an"erior !o ra enviar"e a im!rimir una gran can"i a e /o2as* e!en ien o e la con1iguraci4n ac"ual 6ue "engas* usala con cui a o !ero me2or aun* con"rola "o as las o!ciones e im!resi4n 6ue a!ren eremos a6u+ Para mos"rar el nombre e la im!resora ac"iva* usamos<
"u. #(7'+(+%ndo223 @+( (@#23 ,Mos&'a(os %l no(.'% d% la +(7'%so'a a*&+8a (@# A Hh+s$o(7on%n&-g%&0'+n&%'23 MsgBox (@#203-1alu% End "u.

=l nombre mos"ra o e!en er; el nombre regis"ra o e "u im!resora en "u S+O+* !ara cambiar la im!resora a usar* usamos<
"u. #(7'+(+%ndo323 ,Ma&'+: 7a'a %l d%s*'+7&o' d% +(7'%s+Kn @+( (@#223 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% @+( (>7*23

A!ren ien o OOo Basic

#%?

,$a(.+a(os la +(7'%so'a 7a'a +(7'+(+' (@#203-<a(% A "<a(%" (@#203-1alu% A "H0/0"$/2200" ,$a(.+a(os la o'+%n&a*+Kn 0 A 1%'&+*al6 1 A Ho'+:on&al (@#213-<a(% A "0a7%'>'+%n&a&+on" (@#213-1alu% A 1 ,Es&a.l%*%(os las o7*+on%s d% la +(7'%so'a Hh+s$o(7on%n&-s%&0'+n&%'2 (@# 3 ,En8+a(os a +(7'+(+' Hh+s$o(7on%n&-0'+n&2 (>7*23 3 End "u.

Si la im!resora no es"a regis"ra a con ic/o nombre* el lengua2e no "e ar; ni mos"rar; un error* as 6ue asegura"e e usar el nombre correc"o+ Si bien !o emos cambiar la orien"aci4n el !a!el !ara im!rimir es e es"e escri!"or* mi recomen aci4n es 6ue solo uses el escri!"or e im!resi4n !ara cambiar e im!resora* - "o as las em;s o!ciones las es"ablezcas en un es"ilo e !;gina on e "enemos m;s ri6ueza e o!ciones - !ar;me"ros+ =n las o!ciones e im!resi4n "ienes algunas carac"ers"icas !ara con"rolar la e co!ias* el or en - las !;ginas 6ue eseamos im!rimir<

can"i a

"u. #(7'+(+%ndo423 ,Ma&'+: 7a'a las o7*+on%s d% +(7'%s+Kn @+( (>7*223 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% @+( (@#223 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% (@#203-<a(% A "<a(%" (@#203-1alu% A "H0/5as%'[%&" (@#213-<a(% A "0a7%'>'+%n&a&+on" (@#213-1alu% A *o(-sun-s&a'-8+%^-0a7%'>'+%n&a&+on-0>RHR!#H (@#223-<a(% A "0a7%'Jo'(a&" (@#223-1alu% A *o(-sun-s&a'-8+%^-0a7%'Jo'(a&-5EHHER Hh+s$o(7on%n&-s%&0'+n&%'2 (@# 3 ,El n;(%'o d% *o7+as (>7*203-<a(% A "$o7?$oun&" (>7*203-1alu% A 1 ,"+ s% +(7'+(%n %n )u%gos (>7*213-<a(% A "$olla&%" (>7*213-1alu% A H'u% ,5as 7=g+nas a +(7'+(+' (>7*223-<a(% A "0ag%s" (>7*223-1alu% A "1" ,En8+a(os a +(7'+(+' Hh+s$o(7on%n&-0'+n&2 (>7*23 3 End "u.

(e es"as o!ciones* la !ro!ie a maneras<


Pa,es* se !ue e es"ablecer 1 ?*G*1# 5-1$ E*%*1$-15

e las siguien"es

Una sola !;gina 5arias !;ginas Un rango e !;ginas .ombinaci4n e las an"eriores

#%E

F+F 9m!rimien o

Asegura"e e !asarle el valor a es"a !ro!ie a como una ca ena e "e:"o* es ecir* en"re comillas - el valor e la !ro!ie a .o!-.oun"* como un valor en"ero* si no* "e ar; un error al 6uerer es"ablecer las o!ciones e im!resi4n+ Observa 6ue en escri!"or e im!resi4n* /emos es"ableci o el 1orma"o el !a!el* !ara nues"ro e2em!lo en "amaKo car"a ()=TT=@)* e nuevo* si no "ienes !roblemas con "u im!resi4n* el "amaKo el !a!el es me2or es"ablecerlo en el es"ilo e !;gina* en mi e:!eriencia* algunas im!resoras Lrebel esM* se niegan a "omar el 1orma"o e !a!el es"ableci o en el 1orma"o e !;gina* !or ello* se "iene 6ue es"ablecer en el escri!"or e im!resi4n* "e sugiero /acer "us !ruebas res!ec"ivas - si no es necesario* solo es"ablece el "amaKo en el es"ilo e !;gina+ )os valores 6ue !ue e "omar es"a !ro!ie a son< com(sun(star(vie7(PaperFormat
com+sun+s"ar+vie7+Pa!er'orma"+A? com+sun+s"ar+vie7+Pa!er'orma"+AE com+sun+s"ar+vie7+Pa!er'orma"+A5 com+sun+s"ar+vie7+Pa!er'orma"+B5 com+sun+s"ar+vie7+Pa!er'orma"+)=TT=@ com+sun+s"ar+vie7+Pa!er'orma"+)=&A) com+sun+s"ar+vie7+Pa!er'orma"+TAB)O9( com+sun+s"ar+vie7+Pa!er'orma"+US=@

0alor
$ 1 # ? E 5 F %

0alor en )nterfa2
A? AE A5 B5 .ar"a O1icio (oble car"a Usuario

No"a 6ue /as"a a/ora* /emos usa o el ob2e"o T/is.om!onen"* es ecir* el ob2e"o es e on e se llama a la macro* el m3"o o Print es"a !resen"e es e cual6uier arc/ivo e .alc* !or lo 6ue !ue es invocarlo es e cual6uiera+ =n las /o2as e calculo* "enemos la !osibili a e e1inir ;reas e im!resi4n* 6ue no son m;s 6ue rangos e cel as con un nombre* !ero con algunas carac"ers"icas 6ue los /acen es!eciales* !or e2em!lo* la !osibili a e re!e"ir una o varias 1ila o columnas en ca a /o2a e la im!resi4n+ )as o!ciones e las ;reas e im!resi4n 6ue a!ren eremos a usar - mani!ular* son las mismas !resen"es en el men> 5ormato | +mprimir Rangos <=+ Para ob"ener las ;reas e im!resi4n ac"uales usamos<
"u. #(7'+(+%ndo523 @+( (!#23 @+( sM%nsa)% !s "&'+ng (!# A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&0'+n&!'%as23 sM%nsa)% A "5a ho)a a*&+8a &+%n% " 9 Jo'(a&2 CBound2 (!#23 3 B 1 3 9 " ='%as d% +(7'%s+Kn" MsgBox sM%nsa)% End "u.

Observa 6ue es"amos ob"enien o (ge"Prin"Areas) las ;reas e im!resi4n es e la /o2a ac"iva !ues es"e m3"o o es"a im!lemen"a o en las /o2as el arc/ivo* es"e m3"o o "e evolver; una ma"riz con "o os las ;reas e im!resi4n es"ableci as en la /o2a es e on e se invo6ue* ca a elemen"o e es"a ma"riz* "en r; la es"ruc"ura e la irecci4n e un rango e cel as* vis"o m>l"i!les veces a lo largo e es"e libro* e1ini o !or com+sun+s"ar+"able+.ell@angeA ress+ =n el siguien"e e2em!lo* mos"ramos la irecci4n e ca a ;rea e im!resi4n si las /a-<

A!ren ien o OOo Basic


"u. @+( @+( @+( #(7'+(+%ndo623 (!#23 sM%nsa)% !s "&'+ng *o1 !s #n&%g%'

#%5

(!# A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&0'+n&!'%as23 #f CBound2 (!#23 3 Y T1 Hh%n Jo' *o1 A 5Bound2(!#3 Ho CBound2(!#3 sM%nsa)% A @+'%**+onRango2 (!#2*o13 3 MsgBox sM%nsa)% <%x& Els% MsgBox "<o ha? ='%a d% +(7'%s+Kn d%f+n+das %n la ho)a a*&+8a" End #f End "u. Jun*&+on @+'%**+onRango2 @+'Rango !s >.)%*&3 !s "&'+ng @+( sH(7 !s "&'+ng @+( oRango !s >.)%*& oRango A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&$%llRang%B?0os+&+on2 / @+'Rango-"&a'&$olu(n6 @+'Rango-"&a'&Ro^6 @+'Rango-End$olu(n6 @+'Rango-EndRo^3 sH(7 A oRango-g%&"7'%adsh%%&-g%&<a(%23 9 "-" 9 / oRango-g%&$olu(ns23-g%&B?#nd%x203-g%&<a(%23 9 / oRango-g%&Rang%!dd'%ss-"&a'&Ro^ B 1 9 "4" 9 / oRango-g%&$olu(ns23-g%&B?#nd%x2oRango-g%&$olu(ns23-g%&$oun&23T13-g%&<a(%23 9 / oRango-g%&Rang%!dd'%ss-EndRo^ B 1 @+'%**+onRango A sH(7 End Jun*&+on

Si no "ienes ning>n ;rea e im!resi4n e1ini a* .alc "omar; "o as las /o2as con a"os como is!onibles !ara im!resi4n* mi recomen aci4n es 6ue siem!re es"ablezcas "us ;reas e im!resi4n* es"o "e !ermi"e "ener siem!re el con"rol e lo 6ue se im!rimir;* a em;s e !o er combinar ;reas e i1eren"es /o2as 6ue al ser im!resas 6ue an como si e un solo es"ilo se "ra"ara+ Para borrar las ;reas e im!resi4n e una /o2a* usamos<
"u. #(7'+(+%ndo723 @+( (!#23 ,Bo''a(os &odas las ='%as d% +(7'%s+Kn d% la ho)a a*&+8a Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-s%&0'+n&!'%as2 (!#23 3 End "u.

Observa como sim!lemen"e !as;n ole una ma"riz vaca* "o as las ;reas e im!resi4n ser;n borra os* no"a 6ue a/ora es"amos usan o el m3"o o setPrintAreas* si la /o2a no "iene ning>n ;rea ac"ual* es"e m3"o o no "e ar; error+ .omo su!ongo lo /abr;s e uci o* !ara agregar ;reas e im!resi4n* solo "enemos 6ue llenar ic/a ma"riz con irecciones e rango vali os como en el siguien"e e2em!lo<
"u. #(7'+(+%ndo823 @+( (!#213 !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss ,Rango !14E5 (!#203-"h%%& A 0 (!#203-"&a'&$olu(n A 0 (!#203-"&a'&Ro^ A 0 (!#203-End$olu(n A 4 (!#203-EndRo^ A 4

#%F
,Rango I114016 (!#213-"h%%& A 1 (!#213-"&a'&$olu(n A 10 (!#213-"&a'&Ro^ A 10 (!#213-End$olu(n A 15 (!#213-EndRo^ A 15 ,!g'%ga(os las ='%as d% +(7'%s+Kn Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-s%&0'+n&!'%as2 (!#23 3 End "u.

F+F 9m!rimien o

Si* -a lo no"as"e* /ice un !oco e L"ram!i"aM* no"a 6ue en el !rimer rango* en la !ro!ie a S$eet* !use $ - en el segun o rango* en es"a misma !ro!ie a !use 1* es"o no a1ec"a el L es"inoM e las ;reas e im!resi4n* !ues es"as se agregar;n a la /o2a es e on e es invoca o el m3"o o set(rintAreas* 6ue* !ara nues"ro e2em!lo* es la /o2a ac"iva* no es"a e m;s recor ar"e 6ue los valores e inicio - 1in* "an"o e columna como e 1ila* eben es"ar en"ro e rangos v;li os - en el or en correc"o+ =s"a 1orma e agregar ;reas e im!resi4n* "e sus"i"u-e las e:is"en"es* !ero como -a sabes mane2ar ma"rices* "u "area es mo i1icar la macro !ara agregar nuevas sin borrar las e:is"en"es+ A/ora* vamos a es"ablecer las 1ilas 6ue 6ueremos re!e"ir en ca a /o2a e im!resi4n<
"u. @+( @+( @+( #(7'+(+%ndo923 oHo)a!*&+8a !s >.)%*& (!#203 !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss oJ+lR !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 (!#203-"h%%& A 0 (!#203-"&a'&$olu(n A 0 (!#203-"&a'&Ro^ A 0 (!#203-End$olu(n A 3 (!#203-EndRo^ A 18 oHo)a!*&+8a-s%&0'+n&!'%as2 (!#23 3 ,5% d%*+(os Fu% Fu%'%(os &G&ulos d% f+la a '%7%&+' oHo)a!*&+8a-s%&0'+n&H+&l%Ro^s2H'u%3 ,Es&a.l%*%(os %l 'ango d% f+las oJ+lR-"&a'&Ro^ A 2 >J+lR-EndRo^ A 3 ,5as %s&a.l%*%(os oHo)a!*&+8a-s%&H+&l%Ro^s2 oJ+lR 3 End "u.

No"a 6ue solo /acemos uso e la 1ila e inicio - 1in* las em;s !ro!ie a es e la es"ruc"ura CellRangeAddress* no ser;n "oma as en cuen"a* asegura"e e es"ablecer un rango e 1ilas vali o+ .uan o /aces uso el m3"o o set.itleRo8s* en "eora* au"om;"icamen"e* la !ro!ie a set(rint.itleRo8s* se es"ablece en ver a ero (True)* !ero no es"a e m;s 6ue lo es"ablezcas !rimero* "ambi3n* si es"ableces set(rint.itleRo8s* en ver a ero (True)* !ero no es"ableces un rango con set.itleRo8s* e 1orma !re e"ermina a* se es"ablecer; la 1ila 1 como "i"ulo a re!e"ir* el mismo mo o* si es"ableces en set.itleRo8s* una es"ruc"ura vaca* la 1ila 1 ser; es"ableci a+ Para re!e"ir las columnas es similar<
"u. #(7'+(+%ndo1023 @+( oHo)a!*&+8a !s >.)%*& @+( o$olR !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

A!ren ien o OOo Basic

#%%

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,5% d%*+(os Fu% Fu%'%(os &+&ulos d% *olu(na a '%7%&+' oHo)a!*&+8a-s%&0'+n&H+&l%$olu(ns2H'u%3 ,Es&a.l%*%(os %l 'ango d% $olu(nas !4B o$olR-"&a'&$olu(n A 0 >$olR-End$olu(n A 1 ,5as %s&a.l%*%(os oHo)a!*&+8a-s%&H+&l%$olu(ns2 o$olR 3 End "u.

=s"os m3"o os "ienen las mismas consi eraciones vis"as !ara las 1ilas* si vas a re!e"ir 1ilas - columnas* !ue es /acer uso e una sola es"ruc"ura CellRangeAddress* los m3"o os res!ec"ivos omi"ir;n las !ro!ie a es no necesarias !ara ellos* como en<
"u. #(7'+(+%ndo1123 @+( oHo)a!*&+8a !s >.)%*& @+( oH+&ulosR !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oH+&ulosR-"&a'&$olu(n A 1 oH+&ulosR-End$olu(n A 1 oH+&ulosR-"&a'&Ro^ A 2 oH+&ulosR-EndRo^ A 2 ,5os %s&a.l%*%(os oHo)a!*&+8a-s%&H+&l%$olu(ns2 oH+&ulosR 3 oHo)a!*&+8a-s%&H+&l%Ro^s2 oH+&ulosR 3 End "u.

Si vas al men> +nsertar | Salto Manual <=* veras 6ue "ienes os o!ciones* Sal"o e 1ila - Sal"o e columna* "u !ue es es"ablecer la 1ila o columna 6ue esees como un sal"o e !;gina manual* es ecir* es"as 1orzan o un sal"o e !;gina* veamos como /acerlo+
"u. #(7'+(+%ndo1223 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,Es&a.l%*%(os la f+la 5 *o(o sal&o d% 7=g+na oHo)a!*&+8a-g%&Ro^s-g%&B?#nd%x243-#s"&a'&>f<%^0ag% A H'u% ,1%'+f+*a(os Fu% s% ha?a %s&a.l%*+do #f oHo)a!*&+8a-g%&Ro^s-g%&B?#nd%x243-#sManual0ag%B'%a] Hh%n MsgBox "5a f+la %s un sal&o d% 7=g+na" End #f End "u.

No"a como es"amos acce ien o a una 1ila (la 5) - la es"ablecemos como inicio e una nueva !;gina con la !ro!ie a 8 +sStartOf2e8(age* al es"ablecer es"a !ro!ie a en ver a ero (True)* es"amos inser"an o un sal"o e !;gina manualmen"e* lo cual veri1icamos con la !ro!ie a 8 +sManual(age!rea7* !or su!ues"o* !ara 6ui"arlo* solo "ienes 6ue es"ablecerla en 1also ('alse)<
"u. #(7'+(+%ndo1323 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,Pu+&a(os %l sal&o d% 7=g+na oHo)a!*&+8a-g%&Ro^s-g%&B?#nd%x243-#s"&a'&>f<%^0ag% A Jals% ,5o 8%'+f+*a(os #f <o& oHo)a!*&+8a-g%&Ro^s-g%&B?#nd%x243-#sManual0ag%B'%a] Hh%n MsgBox "5a f+la <> %s un sal&o d% 7=g+na"

#%G
End #f End "u.

F+F 9m!rimien o

)o mismo !ara las columnas<


"u. #(7'+(+%ndo1423 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,Es&a.l%*%(os un sal&o d% 7=g+na d% *olu(na oHo)a!*&+8a-g%&$olu(ns-g%&B?#nd%x223-#s"&a'&>f<%^0ag% A H'u% ,5o 8%'+f+*a(os #f oHo)a!*&+8a-g%&$olu(ns-g%&B?#nd%x223-#sManual0ag%B'%a] Hh%n MsgBox "5a *olu(na %s un sal&o d% 7=g+na" End #f End "u. "u. #(7'+(+%ndo1523 @+( oHo)a!*&+8a !s >.)%*& oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,Pu+&a(os un sal&o d% 7=g+na d% *olu(na oHo)a!*&+8a-g%&$olu(ns-g%&B?#nd%x223-#s"&a'&>f<%^0ag% A Jals% ,5o 8%'+f+*a(os #f <o& oHo)a!*&+8a-g%&$olu(ns-g%&B?#nd%x223-#sManual0ag%B'%a] Hh%n MsgBox "5a *olu(na <> %s un sal&o d% 7=g+na" End #f End "u.

=n las /o2as e .alc* "enemos os "i!os e sal"os e !;gina* los au"om;"icos - los manuales* los !rimeros se inser"an au"om;"icamen"e* e acuer o8 al 1orma"o e la !;gina - su con"eni o* los segun os los es"ablecemos noso"ros* con el siguien"e e2em!lo* mos"ramos "o os los sal"os e !;gina* "an"o e 1ila como e columna 6ue "enga la /o2a ac"iva e in1ormamos si es manual o no<
"u. @+( @+( @+( #(7'+(+%ndo1623 oHo)a!*&+8a !s >.)%*& ("023 *o1 !s #n&%g%'

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,>.&%n%(os &odos los sal&os d% 7=g+na6 7o' f+las6 d% la ho)a a*&+8a ("0 A oHo)a!*&+8a-g%&Ro^0ag%B'%a]s23 ,Mos&'a(os los sal&o d% f+la Jo' *o1 A 5Bound2 ("0 3 Ho CBound2 ("0 3 MsgBox "El sal&o d% 7=g+na %s&a %n la lGn%a4 " 9 ("02*o13-0os+&+on B 1 9 $h'2133 9 / "Es sal&o (anual4 " 9 ("02*o13-ManualB'%a] <%x& *o1 ,!ho'a los d% *olu(na ("0 A oHo)a!*&+8a-g%&$olu(n0ag%B'%a]s23 Jo' *o1 A 5Bound2 ("0 3 Ho CBound2 ("0 3 MsgBox "El sal&o d% 7=g+na %s&a %n la *olu(na4 " 9 ("02*o13-0os+&+on B 1 9 $h'2133 9 / "Es sal&o (anual4 " 9 ("02*o13-ManualB'%a] <%x& *o1 End "u.

Pue es 6ui"ar L"o osM* los sal"os e !;ginas* "an"o e 1ila como e columna* con el siguien"e m3"o o<
"u. #(7'+(+%ndo1723

A!ren ien o OOo Basic


@+( oHo)a!*&+8a !s >.)%*&

#%,

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,Pu+&a(os H>@>" los sal&os d% 7=g+nas (anual%s oHo)a!*&+8a-'%(o8%!llManual0ag%B'%a]s23 End "u.

=l siguien"e e2em!lo* "e inser"a un sal"o e !;gina ca a # 1ilas en la selecci4n ac"ual* !rocura no "ener una selecci4n mu- gran e - sobre "o o no man ar a im!rimir 6ue "e !o ran salir muc/as /o2as* ve el resul"a o en "u vis"a !reliminar<
"u. #(7'+(+%ndo1823 @+( o"%l !s >.)%*& @+( *o1 !s #n&%g%' o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 ,#ns%'&a(os un sal&o d% 7=g+na *ada dos f+las Jo' *o1 A 2 Ho o"%l-g%&Ro^s-g%&$oun&23 T 1 "&%7 2 o"%l-g%&Ro^s-g%&B?#nd%x2*o13-#s"&a'&>f<%^0ag% A H'u% <%x& End "u.

Por ul"imo* !ara ver "u vis"a !revia* usa el siguien"e m3"o o* 6ue no me gus"a !ero !or a/ora es la >nica 1orma 6ue conozco<
"u. #(7'+(+%ndo1923 @+( o@o*J !s >.)%*& @+( o@H !s >.)%*& o@o*J A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-J'a(% o@H A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-f'a(%-@+s7a&*hH%l7%'"3 ,Mos&'a(os la 8+s&a 7'%8+a o@H-%x%*u&%@+s7a&*h2o@o*J6 "-uno40'+n&0'%8+%^"6 ""6 06 !''a?233 End "u.

=n versiones an"eriores e OOo* cuan o enviabas a im!rimir* e 1orma !re e"ermina a* se enviaba "o as las /o2as el ocumen"o* a/ora* como creo* ebe ser* solo se envan las /o2as selecciona as* claro* es"o siem!re lo !ue es cambiar es e el cua ro e ialogo im!rimir en el men> Arc$i%o | +mprimir+++* Para seleccionar varias /o2as a im!rimir* solo "ienes 6ue seleccionar un rango e ca a una e ellas* !ue e ser solo una cel a* - agregarlos a un con"ene or e rangos 6ue -a a!ren imos a usar* - seleccionarlos* al seleccionar rangos e i1eren"es /o2as* como consecuencia* se seleccionaran las /o2as 6ue los con"ienen* es!u3s* !o emos enviar a im!rimir como en el siguien"e e2em!lo<
"u. @+( @+( @+( @+( #(7'+(+%ndo2023 o@o* !s >.)%*& oHo)as !s >.)%*& (>7*23 oRangos !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)as A o@o*-g%&"h%%&s23 ,$'%a(os %l *on&%nd%' 7a'a los 'angos oRangos A o@o*-*'%a&%#ns&an*%2"*o(-sun-s&a'-sh%%&-"h%%&$%llRang%s"3 ,!g'%ga(os la 7'+(%' *%lda d% *ada ho)a6 7u%d% s%' *ualFu+%' *%lda oRangos-addRang%!dd'%ss2 oHo)as-g%&B?#nd%x263-g%&$%llRang%B?<a(%2"!1"3-g%&Rang%!dd'%ss23 6Jals% 3 oRangos-addRang%!dd'%ss2 oHo)as-g%&B?#nd%x273-g%&$%llRang%B?<a(%2"!1"3-g%&Rang%!dd'%ss23 6Jals% 3

#G$

F+F 9m!rimien o

oRangos-addRang%!dd'%ss2 oHo)as-g%&B?#nd%x283-g%&$%llRang%B?<a(%2"!1"3-g%&Rang%!dd'%ss23 6Jals% 3 ,!l s%l%**+ona' las *%ldas d% d+f%'%n&%s ho)as6 %s&a(os s%l%**+onando d+*has ho)as o@o*-g%&$u''%n&$on&'oll%'-s%l%*&2 oRangos 3 ,En8+a(os a +(7'+(+' o@o*-7'+n&2 (>7*23 3 End "u.

)a recomen aci4n general* es 6ue siem!re es"ablezcas "us ;reas e im!resi4n correc"amen"e* as como el es"ilo e !;gina con la con1iguraci4n esea a* con lo cual* la im!resi4n se 1acili"ar; enormemen"e+

=.A

8an*os de datos

)os rangos e a"os* son ;reas rec"angulares e rangos e cel as elimi"a os !or* al menos* una 1ila - una columna en blanco* a las cuales se les es"ablece un nombre - "ienen carac"ers"icas es!eciales 6ue 1acili"an su uso como si e una base e a"os se "ra"ara+ No con1un as es"os nombres* con los 6ue !ue es e1inir en el cua ro e nombres e la barra e 1ormulas* -a 6ue son is"in"os+ )as ma-or !ar"e e las o!ciones 6ue es"u iaremos en es"e ca!i"ulo* son las !resen"es en el men> -atos* e la in"er1az el usuario+ =l uso e /o2as e calculo con a"os "ra"a os como bases e a"os* es* seg>n mi e:!eriencia* el uso m;s co"i iano a o a es"a /erramien"a* - no es gra"ui"o* las /erramien"as is!onibles !ara "raba2ar con a"os es"ruc"ura os e es"a manera* !resen"es en .alc* sin /acer uso e macros* es bas"an"e am!lio* !o eroso - vers;"il* a/ora* imagna"e lo 6ue se !ue e /acer* au"oma"izan o es"os !rocesos+ Si bien es"e libro no es e bases e a"os e:!lci"amen"e* "e a-u ar; muc/o recor ar 6ue ca a columna e "u rango e a"os* lo !o emos llamar8 cam!o* - ca a 1ila e es"os8 regis"ros+ As mismo* en la !rimer 1ila e es"os* se es"ablecen los L""ulos e cam!oM* normalmen"e en un 1orma"o i1eren"e el res"o e los a"os* aun6ue es"a !rimer 1ila no es in is!ensable* es muc/o me2or "enerla+ Tambi3n* es recomen able* no e2ar ninguna 1ila en blanco* en"re es"a - los a"os* las 1ilas* es ecir* los regis"ros* es me2or si es";n com!le"os* es ecir* 6ue "o os sus cam!os con"ienen a"os* e nuevo* es"o no es in is!ensable* !ero una base e a"os se /ace !ara llenarse e a"os+ Tam!oco es recomen able e2ar 1ilas com!le"as en blanco+ Tra"a e 6ue "us a"os sean Lconsis"en"esM* es"o 6uiere ecir 6ue si una columna (cam!o) lo llamas = a * e1ec"ivamen"e se ca!"uren n>meros* o 1ec/as si la calculas+ =n la ac"uali a /a- una am!lia 1uen"e e in1ormaci4n !ara una buena cons"rucci4n e "us bases e a"os* e "area* busca algo acerca el siguien"e "ema< Lnormalizaci4n e bases e a"osM* veras 6ue "ema "an in"eresan"e es+

A!ren ien o OOo Basic

#G1

=.A.1

De2iniendo ran*os

=n el siguien"e e2em!lo* e1inimos un rango e bases e a"os* en la !rimer /o2a el ocumen"o* en el rango A1<(#E+
"u. @+( @+( @+( @+( @+( Rango@%@a&os123 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@+' !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& ,!**%d%(os al *on)un&o d% los 'angos d% .as%s d% da&os oRangosB@ A o@o*-@a&aBas%Rang%s23 ,El no(.'% d%l nu%8o 'ango s<o(.'% A "@+'%**+on%s" ,5a d+'%**+Kn d%l nu%8o 'ango U+&h o@+' -"h%%& A 0 ,5a ho)a -"&a'&$olu(n A 0 ,5a *olu(na d% +n+*+o -End$olu(n A 3 ,5a *olu(na f+nal -"&a'&Ro^ A 0 ,5a f+la d% +n+*+o -EndRo^ A 23 ,5a f+la f+nal End U+&h ,5o ag'%ga(os a la *ol%**+Kn oRangosB@-add<%^B?<a(%2 s<o(.'%6 o@+' 3 ,R%g'%sa(os %l 'ango '%*+Sn ag'%gado oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 U+&h oRB@ -Mo8%$%lls A H'u% ,0a'a Fu% s% a*&ual+*% al +ns%'&a' o %l+(+na' *%ldas -I%%7Jo'(a&s A H'u% ,0a'a Fu% (an&%nga los fo'(a&os End U+&h End "u.

=l nombre el nuevo rango no ebe e e:is"ir o "e ar; un error* en el siguien"e e2em!lo* solici"amos al usuario el nombre el rango e a"os - "omamos la selecci4n ac"ual como irecci4n !ara el nuevo rango e a"os* "ambi3n* veri1icamos 6ue no e:is"a el nuevo nombre<
"u. @+( @+( @+( @+( @+( @+( Rango@%@a&os223 o@o* !s >.)%*& o"%l !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@+' !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 ,<os as%gu'a(os d% Fu% s%a un 'ango d% *%ldas #f o"%l-g%&#(7l%(%n&a&+on<!(% A ""*$%llRang%>.)" Hh%n ,"ol+*+&a(os %l nu%8o no(.'% s<o(.'% A H'+(2 #n7u&Box2"Es*'+.% %l no(.'% d%l nu%8o 'ango"3 3 ,"+ no %s&a 8a*Go #f s<o(.'% XY "" Hh%n oRangosB@ A o@o*-@a&aBas%Rang%s23 ,1%'+f+*a(os Fu% no %x+s&a %l no(.'% #f <o& oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n ,O lo ag'%ga(os- >.s%'8a *o(o &o(a(os la d+'%**+Kn d% la s%l%**+Kn oRangosB@-add<%^B?<a(%2 s<o(.'%6 o"%l-g%&Rang%!dd'%ss23 3 oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 U+&h oRB@ -Mo8%$%lls A H'u%

#G#
-I%%7Jo'(a&s A H'u% End U+&h Els% MsgBox "Oa %x+s&% %l no(.'% d%l 'ango" End #f Els% MsgBox "El no(.'% no 7u%d% %s&a' 8a*Go" End #f Els% MsgBox "<o %s un 'ango d% *%ldas" End #f End "u.

F+% @angos e a"os

Para borrar un rango e a"os usamos el m3"o o remo%e!)2ame* "oma en cuen"a 6ue lo >nico 6ue se borra es el nombre el rango e a"os - sus !ro!ie a es* las cel as - sus valores se man"ienen<
"u. @+( @+( @+( Rango@%@a&os323 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 ,El no(.'% d%l 'ango a .o''a' s<o(.'% A "0'u%.as" ,"+ %l no(.'% no %x+s&% o.&%nd'=s un %''o' #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n ,5o '%(o8%(os d% la *ol%**+Kn oRangosB@-'%(o8%B?<a(%2 s<o(.'% 3 MsgBox "Rango d% da&os .o''ado" Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

Po emos cambiar las !ro!ie a es e un rango e a"os e:is"en"e<


"u. @+( @+( @+( @+( Rango@%@a&os423 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*&

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 ,El no(.'% d%l 'ango a (od+f+*a' s<o(.'% A "0'u%.as" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 ,5% *a(.+a(os %l no(.'% oRB@-s%&<a(% 2"<u%8o no(.'%"3 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u. "u. @+( @+( @+( @+( @+( Rango@%@a&os523 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@+' !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

A!ren ien o OOo Basic

#G?

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 ,El no(.'% d%l 'ango a (od+f+*a' s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 ,$a(.+a(os la d+'%**+Kn U+&h o@+' -"h%%& A 0 ,$a(.+a(os la ho)a -"&a'&$olu(n A 2 ,5a *olu(na d% +n+*+o -End$olu(n A 5 ,5a *olu(na f+nal -"&a'&Ro^ A 5 ,5a f+la d% +n+*+o -EndRo^ A 19 ,5a f+la f+nal End U+&h oRB@-s%&@a&a!'%a2 o@+' 3 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

=n el !rimer caso le cambiamos el nombre - en el segun o* la irecci4n el rango* !or su!ues"o* cambia la irecci4n e un rango con cui a o* !ue e suce er 6ue acabe a!un"an o a un rango vaco e cel as sin 6uerer+

=.A.2

%rdenar datos

Para or enar a"os* no necesi"as 1orzosamen"e un rango e a"os con nombre* veamos como or enar un rango e cel as con - sin nombre e rango e a"os+ Tomaremos como a"os e e2em!lo* los siguien"es<
/P 1 # ? E 5 F % G , 1$ 11 1# 1? 1E 15 1F 1% 1G /ombre nisole gloria an"onio li ia !aola vanessa !aola !aola !aola lize""e lize""e lize""e nisole gloria an"onio li ia !aola vanessa (<o 1,%F 1,%F 1,%% 1,F% 1,%, 1,%E 1,%# 1,FG 1,FG 1,%G 1,%G 1,%G 1,%% 1,%5 1,%, 1,%% 1,FG 1,%G Edad ?? ?? ?# E# ?$ ?5 ?% E1 E1 ?1 ?1 ?1 ?# ?E ?$ ?# E1 ?1

#GE
1, #$ #1 ## #? lize""e nisole gloria an"onio li ia 1,F, 1,%$ 1,%1 1,%? 1,FG E$ ?, ?G ?F E1

F+% @angos e a"os

5amos a or enar los a"os !or nombre<


"u. @+( @+( @+( @+( >'d%na'@a&os123 oHo)a !s >.)%*& oRango !s >.)%*& ($a(7os>'d%n203 !s <%^ *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ld (@%s*'+7&o'>'d%n23

,5a ho)a dond% %s&a %l 'ango a o'd%na' oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?<a(%2"agos&o"3 ,El 'ango a o'd%na' oRango A oHo)a-g%&$%llRang%B?<a(%2"!14@24"3 ,@%s*'+7&o' d% o'd%na(+%n&o6 o s%a6 %l "*o(o" (@%s*'+7&o'>'d%n A oRango-*'%a&%"o'&@%s*'+7&o'23 ,5os *a(7os a o'd%n6 o s%a6 %l "Fu%" ,5os *a(7os %(7+%:an %n 0 ($a(7os>'d%n203-J+%ld A 1 ,>'d%n as*%nd%n&% ($a(7os>'d%n203-#s!s*%nd+ng A H'u% ,"%ns+.l% a M!OC"$C5!"/(+nus*ulas ($a(7os>'d%n203-#s$as%"%ns+&+8% A Jals% ,H+7o d% *a(7o !CH>M!H#$> ($a(7os>'d%n203-J+%ldH?7% A *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ldH?7%-!CH>M!H#$ ,#nd+*a(os s+ %l 'ango *on&+%n% &G&ulos d% *a(7os (@%s*'+7&o'>'d%n213-<a(% A "$on&a+nsH%ad%'" (@%s*'+7&o'>'d%n213-1alu% A H'u% ,5a (a&'+: d% *a(7os a o'd%na' (@%s*'+7&o'>'d%n233-<a(% A ""o'&J+%lds" (@%s*'+7&o'>'d%n233-1alu% A ($a(7os>'d%n ,>'d%na(os *on los 7a'=(%&'os %s&a.l%*+dos oRango-so'&2 (@%s*'+7&o'>'d%n 3 End "u.

)os !un"os a los 6ue ebes !oner a"enci4n son8 el "i!o e cam!o 5ield.)pe* !ue e "omar los siguien"es valores< com(sun(star(table(3able4ortField3ype
com+sun+s"ar+"able+TableSor"'iel T-!e+AUTOMAT9. com+sun+s"ar+"able+TableSor"'iel T-!e+NUM=@9. com+sun+s"ar+"able+TableSor"'iel T-!e+A)PcANUM=@9.

0alor
$ 1 #

0alor en )nterfa2
Au"om;"ico Num3rico Al1anum3rico

=n mis !ruebas* es"ablecer en uno - en o"ro* no me /a a o muc/as varian"es en veloci a * es"o es* su!ongo* !or 6ue /e /ec/o !ruebas con !ocos a"os* /abra 6ue /acer !ruebas e ren imien"o con gran es a"os !ara ver su esem!eKo !ues no creo 6ue es"a !ro!ie a es"e e a orno+ =n el escri!"or e or en* si es"ableces la !ro!ie a 8 ContainsHeader* en 1also ('alse)* - "u rango e a"os e1ec"ivamen"e "iene ""ulos e cam!o* es"os no ser;n "oma os en cuen"a - se or enaran en relaci4n con el res"o e "us a"os* mi recomen aci4n es 6ue siem!re

A!ren ien o OOo Basic

#G5

es"ablezcas es"a !ro!ie a en ver a ero (True) - e1ec"ivamen"e "e asegures e "enerlos* claro* a menos e 6ue no "e sea in is!ensable o e !lano no los necesi"es+ Si 6uieres or enar !or m;s e un cam!o (!or a/ora el limi"e es "res)* no /a- m;s 6ue agregar el segun o cri"erio a la ma"riz e cam!os* como en el e2em!lo siguien"e 6ue or enamos !or nombre ascen en"e - es!u3s !or e a escen en"e<
"u. @+( @+( @+( @+( >'d%na'@a&os223 oHo)a !s >.)%*& oRango !s >.)%*& ($a(7os>'d%n213 !s <%^ *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ld (@%s*'+7&o'>'d%n23

oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?<a(%2"agos&o"3 oRango A oHo)a-g%&$%llRang%B?<a(%2"!14@24"3 (@%s*'+7&o'>'d%n A oRango-*'%a&%"o'&@%s*'+7&o'23 ($a(7os>'d%n203-J+%ld A 1 ($a(7os>'d%n203-#s!s*%nd+ng A H'u% ($a(7os>'d%n203-#s$as%"%ns+&+8% A Jals% ($a(7os>'d%n203-J+%ldH?7% A *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ldH?7%-!CH>M!H#$ ,!g'%ga(os un s%gundo *a(7o ($a(7os>'d%n213-J+%ld A 3 ,Es&% %s d%s*%nd%n&% ($a(7os>'d%n213-#s!s*%nd+ng A Jals% ($a(7os>'d%n213-#s$as%"%ns+&+8% A Jals% ($a(7os>'d%n213-J+%ldH?7% A *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ldH?7%-!CH>M!H#$ (@%s*'+7&o'>'d%n213-<a(% A "$on&a+nsH%ad%'" (@%s*'+7&o'>'d%n213-1alu% A H'u% (@%s*'+7&o'>'d%n233-<a(% A ""o'&J+%lds" (@%s*'+7&o'>'d%n233-1alu% A ($a(7os>'d%n ,>'d%na(os *on los 7a'=(%&'os %s&a.l%*+dos oRango-so'&2 (@%s*'+7&o'>'d%n 3 End "u.

Una o!ci4n mu- in"eresan"e* es la !osibili a i1eren"e como en el siguien"e e2em!lo<


"u. @+( @+( @+( @+( @+( >'d%na'@a&os323 oHo)a !s >.)%*& oRango !s >.)%*& ($a(7os>'d%n203 !s <%^ *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ld o@%s&+no !s >.)%*& (@%s*'+7&o'>'d%n23

e enviar el resul"a o a un es"ino

oHo)a A Hh+s$o(7on%n&-g%&"h%%&s-g%&B?<a(%2"agos&o"3 oRango A oHo)a-g%&$%llRang%B?<a(%2"!14@24"3 o@%s&+no A oHo)a-g%&$%llRang%B?<a(%2"D1"3 (@%s*'+7&o'>'d%n A oRango-*'%a&%"o'&@%s*'+7&o'23 ($a(7os>'d%n203-J+%ld A 1 ($a(7os>'d%n203-#s!s*%nd+ng A H'u% ($a(7os>'d%n203-#s$as%"%ns+&+8% A Jals% ($a(7os>'d%n203-J+%ldH?7% A *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ldH?7%-!CH>M!H#$ (@%s*'+7&o'>'d%n213-<a(% A "$on&a+nsH%ad%'" (@%s*'+7&o'>'d%n213-1alu% A H'u% (@%s*'+7&o'>'d%n233-<a(% A ""o'&J+%lds" (@%s*'+7&o'>'d%n233-1alu% A ($a(7os>'d%n ,Es&a.l%*%(os Fu% Fu%'%(os *o7+a' %l '%sul&ado a o&'o lado (@%s*'+7&o'>'d%n253-<a(% A "$o7?>u&7u&@a&a"

#GF
(@%s*'+7&o'>'d%n253-1alu% A H'u% ,Es&a.l%*%(os %l d%s&+no d% la *o7+a (@%s*'+7&o'>'d%n263-<a(% A ">u&7u&0os+&+on" (@%s*'+7&o'>'d%n263-1alu% A o@%s&+no-g%&$%ll!dd'%ss23 ,>'d%na(os *on los 7a'=(%&'os %s&a.l%*+dos oRango-so'&2 (@%s*'+7&o'>'d%n 3 End "u.

F+% @angos e a"os

Observa como es"ablecemos el es"ino con una es"ruc"ura getCellAddress* es"a solo inclu-e la /o2a es"ino* la columna - la 1ila e inicio+ Si en el rango es"ino e:is"en a"os* es"os ser;n "o"almen"e reem!laza os sin !regun"ar"e na a+ A/ora* or enamos* !ero acce ien o es e un rango e a"os<
"u. @+( @+( @+( @+( @+( @+( @+( >'d%na'@a&os423 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& oRango !s >.)%*& ($a(7os>'d%n203 !s <%^ *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ld (@%s*'+7&o'>'d%n23

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" ,1%'+f+*a(os Fu% %x+s&a %l no(.'% d%l 'ango d% da&os #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n ,R%f%'%n*+a al 'ango oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 ,R%f%'%n*+a al o'+g%n d%l 'ango oRango A oRB@-g%&R%f%''%d$%lls23 (@%s*'+7&o'>'d%n A oRango-*'%a&%"o'&@%s*'+7&o'23 ($a(7os>'d%n203-J+%ld A 1 ($a(7os>'d%n203-#s!s*%nd+ng A H'u% ($a(7os>'d%n203-#s$as%"%ns+&+8% A Jals% ($a(7os>'d%n203-J+%ldH?7% A *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ldH?7%-!CH>M!H#$ (@%s*'+7&o'>'d%n213-<a(% A "$on&a+nsH%ad%'" (@%s*'+7&o'>'d%n213-1alu% A H'u% (@%s*'+7&o'>'d%n233-<a(% A ""o'&J+%lds" (@%s*'+7&o'>'d%n233-1alu% A ($a(7os>'d%n oRango-so'&2 (@%s*'+7&o'>'d%n 3 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

)a !ro!ie a im!or"an"e es8 getReferredCells* 6ue "e a acceso al rango origen e los a"os* es"a !ro!ie a "e evuelve un ob2e"o ScCellRangeObj* !or lo 6ue !ue es "ener acceso a "o as las !ro!ie a es e mani!ulaci4n - 1orma"o vis"as e es"e ob2e"o* !or e2em!lo* !ue es a!licarle un au"o1orma"o e "abla a los a"os+

A!ren ien o OOo Basic

#G%

=.A.

Filtrar datos

)as o!ciones 6ue es"u iaremos en es"e ca!i"ulo* son las !resen"es en el men> -atos | 5iltro <=+ - seguiremos usan o los a"os el "ema an"erior+

(o- !or /ec/o 6ue no "ienes !roblemas* como usuario* con ca a una e es"as o!ciones* veamos como es"ablecerlas !or c4 igo+ Primero* la m;s sencilla* el 1il"ro au"om;"ico* "e agrega un con"rol e lis"a es!legable en el encabeza o e cam!o e "us a"os* como en<

Para /acer lo mismo !or c4 igo* usamos<


"u. @+( @+( @+( @+( J+l&'a'@a&os123 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*&

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n ,R%f%'%n*+a al 'ango oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 ,Mos&'a(os %l au&of+l&'o oRB@-!u&oJ+l&%' A H'u% Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

IO !ara 6ui"arlosJ* mu- bien* a ivinas"e* solo la es"ablecemos en 1also ('alse)


"u. @+( @+( @+( @+( J+l&'a'@a&os223 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*&

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n ,R%f%'%n*+a al 'ango

#GG
oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 ,Mos&'a(os %l au&of+l&'o oRB@-!u&oJ+l&%' A Jals% Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

F+% @angos e a"os

Pero cui a o* la macro an"erior* solo "e 6ui"ar; las 1lec/as !ara es!legar el 1il"ro el cam!o* si "ienes es"ableci o un 1il"ro au"om;"ico* es"e !ermanecer;* !ara eliminar com!le"amen"e un 1il"ro* "ienes 6ue /acer os cosas8 !rimero* eliminar el 1il"ro - es!u3s mos"rar las 1ilas ocul"as como "e mues"ro en el siguien"e e2em!lo<
"u. @+( @+( @+( @+( @+( @+( J+l&'a'@a&os323 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o23 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 ,>.&%n%(os la d%s*'+7*+Kn d%l f+l&'o o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ,5% 7asa(os una (a&'+: 8a*Ga *on una %s&'u*&u'a d% *a(7o d% f+l&'o o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o ,Pu+&a(os las fl%*has oRB@-!u&oJ+l&%' A Jals% ,Mos&'a(os las f+las o*ul&as oRB@-g%&R%f%''%d$%lls23-g%&Ro^s-#s1+s+.l% A H'u% Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

=n"onces* cuan o 1il"ramos !or c4 igo* no es in is!ensable mos"rar las 1lec/as e los cam!os el 1il"ro* !o emos 1il"rar irec"amen"e como en el siguien"e e2em!lo<
"u. @+( @+( @+( @+( @+( @+( J+l&'a'@a&os423 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o203 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ,El *a(7o 7o' %l Fu% Fu%'%(os f+l&'a' ($a(7osJ+l&'o203-J+%ld A 1 ,El &+7o d% *o(7a'a*+Kn ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-EPC!5 ,"+ %s un n;(%'o ($a(7osJ+l&'o203-#s<u(%'+* A Jals% ,El 8alo' d% *o(7a'a*+Kn ($a(7osJ+l&'o203-"&'+ng1alu% A "l+:%&&%"

A!ren ien o OOo Basic

#G,

,5% 7asa(os los *a(7os o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o ,R%f'%s*a(os %l 'ango 7a'a 8%' %l '%sul&ado d%l f+l&'o oRB@-'%f'%sh23 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

eue com!robamos 6ue lo /ace correc"amen"e<

A/ora* veamos como 1il"rar un cam!o con os con iciones<


"u. @+( @+( @+( @+( @+( @+( J+l&'a'@a&os523 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o213 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ($a(7osJ+l&'o203-J+%ld A 1 ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-EPC!5 ($a(7osJ+l&'o203-#s<u(%'+* A Jals% ($a(7osJ+l&'o203-"&'+ng1alu% A "l+:%&&%" ,!g'%ga(os la s%gunda *ond+*+Kn al (+s(o *a(7o ($a(7osJ+l&'o213-J+%ld A 1 ,Es&a.l%*%(os la '%la*+Kn *on la *ond+*+Kn an&%'+o' ($a(7osJ+l&'o213-$onn%*&+on A *o(-sun-s&a'-sh%%&-J+l&%'$onn%*&+on->R ($a(7osJ+l&'o213->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-EPC!5 ($a(7osJ+l&'o213-#s<u(%'+* A Jals% ($a(7osJ+l&'o213-"&'+ng1alu% A "7aola" o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o oRB@-'%f'%sh23 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

Observa mu- bien la !ro!ie a Connection* es mu- im!or"an"e es"ablecer correc"amen"e es"a* !ara ob"ener el resul"a o esea o* solo "iene os !osibili a es* una LOM (O@) o una LOM (AN()* muc/os errores e 1il"ros incorrec"os* son !or la incorrec"a a!licaci4n e es"e sencillo !ar;me"ro* com!robamos 6ue nues"ro 1il"ro es"a correc"o* - veamos m;s e2em!los<

#,$

F+% @angos e a"os

A/ora 1il"raremos con con iciones en os cam!os i1eren"es<


"u. @+( @+( @+( @+( @+( @+( J+l&'a'@a&os623 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o213 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ($a(7osJ+l&'o203-J+%ld A 1 ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-EPC!5 ($a(7osJ+l&'o203-#s<u(%'+* A Jals% ($a(7osJ+l&'o203-"&'+ng1alu% A "l+d+a" ,!g'%ga(os la s%gunda *ond+*+Kn a o&'o *a(7o ($a(7osJ+l&'o213-J+%ld A 3 ,Es&a.l%*%(os la '%la*+Kn *on la *ond+*+Kn an&%'+o' 2O3 ($a(7osJ+l&'o213-$onn%*&+on A *o(-sun-s&a'-sh%%&-J+l&%'$onn%*&+on-!<@ ($a(7osJ+l&'o213->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-EPC!5 ,!ho'a s+ .us*a(os 7o' n;(%'o ($a(7osJ+l&'o213-#s<u(%'+* A H'u% ($a(7osJ+l&'o213-<u(%'+*1alu% A 32 o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o oRB@-'%f'%sh23 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

O una vez m;s lo com!robamos

=n los siguien"es e2em!los* -a no "e mos"rar3 el resul"a o* an o !or en"en i o* 6ue es"as com!roban o* como -o* 6ue el resul"a o es!era o es el correc"o+ =n el siguien"e e2em!lo* 1il"ramos a "o os los 6ue "engan en"re ?$ - ?5 aKos<
"u. @+( @+( @+( @+( @+( @+( J+l&'a'@a&os723 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o213 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld

A!ren ien o OOo Basic

#,1

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ($a(7osJ+l&'o203-J+%ld A 3 ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-DRE!HER/EPC!5 ($a(7osJ+l&'o203-#s<u(%'+* A H'u% ($a(7osJ+l&'o203-<u(%'+*1alu% A 30 ,!g'%ga(os la s%gunda *ond+*+Kn a o&'o *a(7o ($a(7osJ+l&'o213-J+%ld A 3 ($a(7osJ+l&'o213-$onn%*&+on A *o(-sun-s&a'-sh%%&-J+l&%'$onn%*&+on-!<@ ($a(7osJ+l&'o213->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-5E""/EPC!5 ($a(7osJ+l&'o213-#s<u(%'+* A H'u% ($a(7osJ+l&'o213-<u(%'+*1alu% A 35 o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o oRB@-'%f'%sh23 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

Observa como /emos cambia o la !ro!ie a o!era or ( Operator) !ara sa"is1acer la con ici4n* los !osibles valores !ara es"a !ro!ie a * viene con iciona os !or la enumeraci4n com sun star s$eet 5ilterOperator* cu-os valores son< com(sun(star(sheet(FilterOperator
com+sun+s"ar+s/ee"+'il"erO!era"or+=MPTO com+sun+s"ar+s/ee"+'il"erO!era"or+NOTQ=MPTO com+sun+s"ar+s/ee"+'il"erO!era"or+=eUA) com+sun+s"ar+s/ee"+'il"erO!era"or+NOTQ=eUA) com+sun+s"ar+s/ee"+'il"erO!era"or+&@=AT=@ com+sun+s"ar+s/ee"+'il"erO!era"or+&@=AT=@Q=eUA) com+sun+s"ar+s/ee"+'il"erO!era"or+)=SS com+sun+s"ar+s/ee"+'il"erO!era"or+)=SSQ=eUA) com+sun+s"ar+s/ee"+'il"erO!era"or+TOPQ5A)U=S com+sun+s"ar+s/ee"+'il"erO!era"or+TOPQP=@.=NT com+sun+s"ar+s/ee"+'il"erO!era"or+BOTTOMQ5A)U=S com+sun+s"ar+s/ee"+'il"erO!era"or+BOTTOMQP=@.=NT

0alor
$ 1 # ? E 5 F % G , 1$ 11

0alor en )nterfa2
5aco No vaco 9gual No igual Ma-or 6ue Ma-or o igual 6ue Menor 6ue Menor o igual 6ue =l ma-or valor =l ma-or !orcen"a2e =l menor valor =l menor !orcen"a2e

=n el siguien"e e2em!lo* seleccionamos los cinco regis"ros con m;s e a <


"u. @+( @+( @+( @+( @+( @+( J+l&'a'@a&os823 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o203 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s"

#,#
#f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ($a(7osJ+l&'o203-J+%ld A 3 ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-H>0/1!5CE" ($a(7osJ+l&'o203-#s<u(%'+* A H'u% ,5os *+n*o d% (=s %dad ($a(7osJ+l&'o203-<u(%'+*1alu% A 5 o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o oRB@-'%f'%sh23 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

F+% @angos e a"os

A/ora* 1il"remos "o os los nombres 6ue comiencen !or la le"ra L)M<
"u. @+( @+( @+( @+( @+( @+( J+l&'a'@a&os923 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o203 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ($a(7osJ+l&'o203-J+%ld A 1 ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-EPC!5 ($a(7osJ+l&'o203-#s<u(%'+* A Jals% ,>.s%'8a %l 7a'a(%&'o d% la *ond+*+Kn ($a(7osJ+l&'o203-"&'+ng1alu% A "l- " ,Es&a.l%*%(os Fu% us% %x7'%s+on%s '%gula'%s o@%sJ+l&'o-Cs%R%gula'Ex7'%ss+ons A H'u% o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o oRB@-'%f'%sh23 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

Observa como /emos es"ableci o la !ro!ie a !ara usar e:!resiones regulares (3seRegular"*pressions)* el escri!"or el 1il"ro !ara 6ue "enga e1ec"o nues"ra con ici4n+ O"ra !osibili a bas"an"e in"eresan"e e los 1il"ros* es !o er co!iar el resul"a o en o"ra !osici4n - e2ar el origen in"ac"o* veamos como<
"u. @+( @+( @+( @+( @+( @+( @+( J+l&'a'@a&os1023 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o203 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld o@%s&+no !s >.)%*&

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23

A!ren ien o OOo Basic

#,?

s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ($a(7osJ+l&'o203-J+%ld A 1 ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-EPC!5 ($a(7osJ+l&'o203-#s<u(%'+* A Jals% ($a(7osJ+l&'o203-"&'+ng1alu% A "glo'+a" ,5% +nd+*a(os Fu% Fu%'%(os %l '%sul&ado %n o&'o luga' o@%sJ+l&'o-"a8%>u&7u&0os+&+on A H'u% ,O l% +nd+*a(os dond%6 o.s%'8a *o(o o.&%n%(os la d+'%**+Kn d% la 7'+(%' *%lda d%l 'ango o@%s&+no A oRB@-R%f%''%d$%lls23-g%&$%llB?0os+&+on20603-g%&$%ll!dd'%ss23 ,@%s7u%s su(a(os %l an*ho d%l 'ango ? uno 7a'a d%)a' una *olu(an %n .lan*o o@%s&+no-$olu(n A o@%s&+no-$olu(n B oRB@-R%f%''%d$%lls23-g%&$olu(ns23-g%&$oun& B 1 ,Es&a.l%*%(os %l d%s&+no o@%sJ+l&'o->u&7u&0os+&+on A o@%s&+no o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o oRB@-'%f'%sh23 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

Si las cel as es"ino no es";n vacas* es"as* ser;n reem!laza as sin !regun"ar"e na a* mo i1ica la macro* !ara evaluar es"o - se lo no"i1i6ues al usuario+ O"ra carac"ers"ica mu- !o erosa e los 1il"ros* es la !osibili a e 1il"rar los regis"ros* omi"ien o los u!lica os* co!ia varios regis"ros iguales !ara 6ue no"es la i1erencia* se /ace e la siguien"e manera<
"u. @+( @+( @+( @+( @+( @+( @+( J+l&'a'@a&os1123 o@o* !s >.)%*& oRangosB@ !s >.)%*& s<o(.'% !s "&'+ng oRB@ !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o203 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld o@%s&+no !s >.)%*&

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 s<o(.'% A "@+'%**+on%s" #f oRangosB@-hasB?<a(%2 s<o(.'% 3 Hh%n oRB@ A oRangosB@-g%&B?<a(%2 s<o(.'% 3 o@%sJ+l&'o A oRB@-g%&J+l&%'@%s*'+7&o'23 ($a(7osJ+l&'o203-J+%ld A 0 ,"%l%**+ona(os los '%g+s&'os <> 8a*Gos ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-<>H/EM0HO ,5% +nd+*a(os Fu% solo Fu%'%(os '%g+s&'os ;n+*os o@%sJ+l&'o-"]+7@u7l+*a&%s A H'u% o@%sJ+l&'o-"a8%>u&7u&0os+&+on A H'u% o@%s&+no A oRB@-R%f%''%d$%lls23-g%&$%llB?0os+&+on20603-g%&$%ll!dd'%ss23 o@%s&+no-$olu(n A o@%s&+no-$olu(n B oRB@-R%f%''%d$%lls23-g%&$olu(ns23-g%&$oun& B 1 o@%sJ+l&'o->u&7u&0os+&+on A o@%s&+no o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o oRB@-'%f'%sh23 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

cas"a a/ora* /emos a!lica os 1il"ros* es e un rango e a"os* !ero los 1il"ros no es";n limi"a os a es"as ;reas* al ser un m3"o o e rango e cel as ( ScCellRangeObj)* !ue es

#,E

F+% @angos e a"os

a!licar un 1il"ro a cual6uier rango e cel as* la siguien"e macro* "oma el rango e cel as selecciona o - 1il"ra los a"os >nicos os columnas a la erec/a* es"a macro es mu- >"il !ara e2ar lis"a os >nicos e lo 6ue sea* veri1icalo<
"u. @+( @+( @+( @+( @+( J+l&'a'@a&os1223 o@o* !s >.)%*& o"%l !s >.)%*& o@%sJ+l&'o !s >.)%*& ($a(7osJ+l&'o203 !s <%^ *o(-sun-s&a'-sh%%&-Ha.l%J+l&%'J+%ld o@%s&+no !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 ,<os as%gu'a(os d% Fu% s%a un 'ango d% *%ldas #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n ,$'%a(os un nu%8o d%s*'+7&o' d% f+l&'o 8a*+o 2H'u%3 o@%sJ+l&'o A o"%l-*'%a&%J+l&%'@%s*'+7&o'2H'u%3 ,Es&a.l%*%(os los *a(7os ($a(7osJ+l&'o203-J+%ld A 0 ($a(7osJ+l&'o203->7%'a&o' A *o(-sun-s&a'-sh%%&-J+l&%'>7%'a&o'-<>H/EM0HO ,Es&a.l%*%(os %l d%s&+no o@%s&+no A o"%l-g%&$%llB?0os+&+on20603-g%&$%ll!dd'%ss23 o@%s&+no-$olu(n A o"%l-g%&Rang%!dd'%ss23-End$olu(n B 2 ,Es&a.l%*%(os las 7'o7+%dad%s d%l f+l&'o o@%sJ+l&'o-$on&a+nsH%ad%' A Jals% o@%sJ+l&'o-"]+7@u7l+*a&%s A H'u% o@%sJ+l&'o-$o7?>u&7u&@a&a A H'u% o@%sJ+l&'o->u&7u&0os+&+on A o@%s&+no o@%sJ+l&'o-J+l&%'J+%lds A ($a(7osJ+l&'o ,O lo a7l+*a(os o"%l-f+l&%'2 o@%sJ+l&'o 3 Els% MsgBox "<o %s un 'ango d% *%ldas" End #f End "u.

ca- i1erencias im!or"an"es en com!araci4n con los 1il"ros en rango e a"os8 la !rimera es la 1orma e crear el escri!"or e 1il"ro* !ara un rango e cel as se usa el m3"o o create5ilter-escriptor* al cual se le !asa el !ar;me"ro ver a ero (True) si 6ueremos 6ue el nuevo escri!"or es"e vaco - 1also ('alse) si "oma el e:is"en"e en ic/o rango e cel as* observa 6ue "ambi3n /emos es"ableci o 6ue es"e rango no "iene encabeza os e cam!os ( ContainsHeader)* "ambi3n cambia la !ro!ie a !ara ecirle 6ue 6ueremos co!iar el resul"a o ( Cop)Output-ata) en o"ra !osici4n* - !or ul"imo* no re1rescamos el rango* si no 6ue a!licamos el 1il"ro ( filter)* !as;n ole como !ar;me"ro el escri!"or e 1il"ro crea o+ Al igual 6ue con los rango e a"os* si el es"ino con"iene a"os* ser;n reem!laza os sin consul"ar"e+ 5eamos como usar las o!ciones el 1il"ro es!ecial* es"e "i!o e 1il"ro* nos !ermi"e es"ablecer un rango como origen e los cri"erios !ara el 1il"ro* lo 6ue nos a la !osibili a e !o er llegar a usar como cri"erios L"o osM los cam!os e nues"ra base e a"os* ;n onos absolu"o con"rol sobre los regis"ros 1il"ra os+ Para emos"rar el !o er - versa"ili a e es"a o!ci4n* !re!ara"e una buena "abla e a"os* con al menos cinco cam!os - varias ecenas e regis"ros* si lo !re1ieres* !ue es usar la /o2a llama a LPeliculasM* !resen"e en los e2em!los 6ue acom!aKan a es"os a!un"es - 6ue ser; la 6ue -o use+ =l rango e nues"ros a"os es< LA1<&#E?M* es"ablecemos un nombre a es"e rango8 L5i eo"ecaM si "e !arece* es!u3s* co!ia los ""ulos e los cam!os a la 1ila #5$* selecciona el rango

A!ren ien o OOo Basic

#,5

LA#5$<&#55M - nombrala como L.ri"eriosM* !or ul"imo* selecciona la cel a LA#F$M - la bau"izamos como L(es"inoM* si es e "u agra o* "o o lo an"erior !ue es /acerlo !or c4 igo 6ue -a sabes /acerlo* Iver a J+ @ecuer a 6ue es"a e1inici4n e nombres es en el men> -atos | -efinir rango Nues"ra "abla ebe verse m;s o menos as+

)a e1inici4n e cri"erios !ara el 1il"ro es!ecial* se !ue e /acer como lo /emos veni o a!ren ien o* !or lo 6ue no lo re!e"iremos a6u* concen"r;n onos en es"u iar la 1orma e es"ablecer es"os cri"erios es e un rango e a"os con nombre+ Te sugiero* con es"a macro en es!eci1ico* asignarle una combinaci4n e "eclas o un bo"4n en alguna barra e /erramien"as con la 1inali a e 6ue !o amos e2ecu"arla varias veces es e la in"er1az el usuario e ir vien o en vivo - en irec"o los resul"a os 6ue nos arrogue+ A6u la macro<
"u. @+( @+( @+( @+( @+( @+( J+l&'a'Es7%*+al123 o@o* !s >.)%*& oRangosB@ !s >.)%*& o1+d%o&%*a !s >.)%*& o@%s&+no !s >.)%*& o$'+&%'+os !s >.)%*& o@%sJ+l&'o !s >.)%*&

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 ,<os as%gu'a(os d% Fu% %x+s&%n nu%s&'os &'%s 'angos #f oRangosB@-hasB?<a(%2 "1+d%o&%*a" 3 !nd oRangosB@-hasB?<a(%2 "$'+&%'+os" 3 !nd oRangosB@-hasB?<a(%2 "@%s&+no" 3 Hh%n ,>.&%n%(os una '%f%'%n*+a a los 'angos o'+g%n o1+d%o&%*a A oRangosB@-g%&B?<a(%2 "1+d%o&%*a" 3-R%f%''%d$%lls23 o$'+&%'+os A oRangosB@-g%&B?<a(%2 "$'+&%'+os" 3-R%f%''%d$%lls23 o@%s&+no A oRangosB@-g%&B?<a(%2 "@%s&+no" 3-R%f%''%d$%lls-g%&$%llB?0os+&+on2 060 3-g%&$%ll!dd'%ss23 ,>.&%n%(os %l d%s*'+7&o' d%l f+l&'o d%l 'ango d% *'+&%'+os a 7a'&+' d%l 'ango d% da&os o@%sJ+l&'o A o$'+&%'+os-*'%a&%J+l&%'@%s*'+7&o'B?>.)%*&2 o1+d%o&%*a 3 ,"+n du7l+*ados o@%sJ+l&'o-"]+7@u7l+*a&%s A H'u% ,Pu% 7u%da usa' %x7'%s+on%s '%gula'%s o@%sJ+l&'o-Cs%R%gula'Ex7'%ss+ons A H'u% ,Pu%'%(os %l '%sul&ado %n o&'a 7os+*+Kn o@%sJ+l&'o-$o7?>u&7u&@a&aA H'u% ,5% +nd+*a(os dond% o@%sJ+l&'o->u&7u&0os+&+on A o@%s&+no ,El 'ango *on&+%n% %n*a.%:ados d% *a(7os o@%sJ+l&'o-$on&a+nsH%ad%' A H'u%

#,F

F+% @angos e a"os

,J+l&'a(os *on las o7*+on%s s%l%**+onadas o1+d%o&%*a-f+l&%'2 o@%sJ+l&'o 3 Els% MsgBox "El 'ango d% da&os no %x+s&%" End #f End "u.

=s im!or"an"e no"ar 6ue !ara el 1il"ro es!ecial usamos en nuevo m3"o o llama o create5ilter-escriptor!)Object* 6ue se invoca es e el rango e cri"erios (oCriterios)* !as;n ole como argumen"o* el rango e a"os (o/ideoteca)* las res"an"es !ro!ie a es usa as en el e2em!lo -a las /emos "ra"a o+ A/ora* los cri"erios "ienes 6ue es"ablecerlos en las cel as corres!on ien"es* !or e2em!lo* !ara saber 6ue !elculas "enemos e mi irec"or 1avori"o* usamos<

=2ecu"a la macro - vemos el resul"a o<

@ecuer a 6ue la 1inali a e es"ablecer cri"erios - realizar 1il"ros* es la e res!on er !regun"as como !or e2em!lo* Icuan"as !elculas "enemos el aKo 1,%EJ* es"ablece la con ici4n e2ecu"a la macro !ara res!on erla+
/P 5itulo Director Denero (<o 1,%E +aCs Duracin

Si 6uieres es"ablecer m;s e un cri"erio - lo /aces en una misma 1ila* es"as usan o el o!era or LOM (And)* como la res!ues"a a la !regun"a8 Icuan"as !elculas "enemos* realiza as en ia!4n realiza as en 1,G$J
/P 5itulo Director Denero (<o +aCs 1,G$ ia!4n Duracin

Si usas i1eren"es 1ilas* es"as usan o el o!era or LOM (Or)* !or e2em!lo* !ara res!on er la !regun"a8 Icuan"as !elculas "enemos e la 9n ia o el irec"or Pe"er &reena7a-J
/P 5itulo Director Denero (<o +aCs 9n ia Duracin

A!ren ien o OOo Basic Pe"er &reena7a-

#,%

.omo eclaramos en el escri!"or e 1il"ro* 6ue se usar;n e:!resiones regulares* !ue es res!on er !regun"as como8 Icuan"as !elculas em!iezan con la le"ra L(MJ
/P 5itulo +o Director Denero (<o +aCs Duracin

.omo /abr;s no"a o* las !osibili a es son enormes+ Te 6ue a e "area* es"ablecer las con iciones !ara res!on er la siguien"e !regun"a8 Icuales !elculas uran en"re F$ - ,$ minu"osJ* la !rimer !is"a es8 no"a 6ue es"amos solici"an o un rango es!eci1ico* !or lo "an"o* "ienes 6ue usar el o!era or LOM (AN() !ara resolverlo* - -a casi "e i2e "o o* recuer a 6ue el rango e cri"erios es solo eso un rango - no es"amos limi"a os a cambiar lo 6ue 6ueramos en es"e rango* con lo 6ue -a "e resolv la "area* a "raba2ar<
/P 5itulo Director Denero (<o +aCs Duracin JJ

=.A.)

Subtotales

)os sub"o"ales nos !ermi"en ob"ener in1ormaci4n e las ;reas e a"os* agru!ar realizar una o!eraci4n e"ermina a en un gru!o e a"os* en el siguien"e e2em!lo - con"inuan o "raba2an o con nues"ra base e a"os e !elculas* ob"enemos la can"i a e ""ulos !or irec"or<
"u. @+( @+( @+( @+( @+( @+( "u.&o&al%s123 o@o* !s >.)%*& oRangosB@ !s >.)%*& o0%l+*ulas !s >.)%*& oRango !s >.)%*& o@%s"u.Ho&al !s >.)%*& ($a(7os"u.Ho&al203 !s <%^ *o(-sun-s&a'-sh%%&-"u.Ho&al$olu(n

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23 ,<os as%gu'a(os d% Fu% %x+s&% %l 'ango #f oRangosB@-hasB?<a(%2 "0%l+*ulas" 3 Hh%n ,>.&%n%(os una '%f%'%n*+a a los 'angos o'+g%n o0%l+*ulas A oRangosB@-g%&B?<a(%2 "0%l+*ulas" 3 ,R%f%'%n*+a al 'ango d% *%ldas o'+g%n oRango A o0%l+*ulas-R%f%''%d$%lls23 ,$'%a(os un nu%8o su.&o&al o@%s"u.Ho&al A oRango-*'%a&%"u.Ho&al@%s*'+7&o'2 H'u% 3 ,Pu% o'd%n% d% fo'(a as*%nd%n&% %l g'u7o s%l%**+onado o@%s"u.Ho&al-Ena.l%"o'& A H'u% o@%s"u.Ho&al-"o'&!s*%nd+ng A H'u% ,5a *olu(na %n la Fu% s% usa'a la fun*+Kn %s7%*+f+*ada ($a(7os"u.Ho&al203-$olu(n A 1 ($a(7os"u.Ho&al203-Jun*&+on A *o(-sun-s&a'-sh%%&-D%n%'alJun*&+on-$>C<H ,!g'%ga(os la o7%'a*+Kn6 al g'u7o d%s%ado o@%s"u.Ho&al-add<%^2 ($a(7os"u.Ho&al62 3

#,G
,!7l+*a(os %l su.&o&al oRango-a77l?"u.Ho&als2 o@%s"u.Ho&al6 H'u% 3 End #f End "u.

F+% @angos e a"os

=l ;rea e a"os (-ata!aseRanges)* solo la u"ilizamos !ara acce er (ReferredCells) al rango e cel as origen* si al m3"o o el rango e cel as !ara crear el escri!"or el sub"o"al (createSub.otal-escriptor)* se le !asa como argumen"o un valor ver a ero (.rue)* "e creara un nuevo escri!"or vaco* si es 1also (5alse)* "omar; el e:is"en"e* si lo /a-* el rango selecciona o+ =s im!or"an"e 6ue es"ablezcas 6ue or ene el gru!o* si es ascen en"e o escen en"e* 6ue a a "u cri"erio - necesi a es* !ero si no or enas el gru!o* - e!en ien o e como es"3n "us a"os origen* "e !ue e ar resul"a os incorrec"os+ =n la ma"riz e columnas el sub"o"al (com sun star s$eet Sub.otalColumn )* es"ablecemos el cam!o (Column) en el cual 6ueremos /acer una o!eraci4n* e"ermina a !or la !ro!ie a 1unci4n ( 5unction)* a su vez* basa a en la enumeraci4n com+sun+s"ar+s/ee"+&eneral'unc"ion* 6ue !ue e "omar los siguien"es valores< com(sun(star(sheet(8eneralFunction
com+sun+s"ar+s/ee"+&eneral'unc"ion+NON= com+sun+s"ar+s/ee"+&eneral'unc"ion+AUTO com+sun+s"ar+s/ee"+&eneral'unc"ion+SUM com+sun+s"ar+s/ee"+&eneral'unc"ion+.OUNT com+sun+s"ar+s/ee"+&eneral'unc"ion+A5=@A&= com+sun+s"ar+s/ee"+&eneral'unc"ion+MAp com+sun+s"ar+s/ee"+&eneral'unc"ion+M9N com+sun+s"ar+s/ee"+&eneral'unc"ion+P@O(U.T com+sun+s"ar+s/ee"+&eneral'unc"ion+.OUNTNUMS com+sun+s"ar+s/ee"+&eneral'unc"ion+ST(=5 com+sun+s"ar+s/ee"+&eneral'unc"ion+ST(=5P com+sun+s"ar+s/ee"+&eneral'unc"ion+5A@ com+sun+s"ar+s/ee"+&eneral'unc"ion+5A@P

0alor
$ 1 # ? E 5 F % G , 1$ 11 1#

0alor en )nterfa2
Ninguna Au"om;"ico Suma .uen"a Prome io M;:imo Mnimo Pro uc"o .uen"a solo n>meros (esviaci4n es";n ar (Mues"ra) (esviaci4n es";n ar (Poblaci4n) 5arianza (Mues"ra) 5arianza (Poblaci4n)

Al aKa ir los cam!os (add2e8) al escri!"or e sub"o"al* le !asamos como !ar;me"ros* la ma"riz e cam!os e columna el sub"o"al on e /emos es"ableci o 6ue cam!os 6ue o!eraci4n /aremos con ellos* a/ mismo* con el segun o !ar;me"ro* le in icamos !or 6ue cam!o 6ueremos agru!ar* !or >l"imo* a!licamos (appl)Sub.otals) los sub"o"ales* cu-os !ar;me"ros son8 el escri!"or e sub"o"al - un valor booleano in ic;n ole si eseamos reem!lazar el sub"o"al ac"ual (.rue)* si lo /a-* o agregamos al e:is"en"e (5alse)* usa con cui a o es"e !ar;me"ro* !ues si agregas cri"erios Linconsis"en"esM* el resul"a o !ue e ser im!reciso esas"roso visualmen"e /ablan o+ )a siguien"e macro* borra cual6uier sub"o"al e:is"en"e en el rango el ;rea e a"os<
"u. @+( @+( @+( @+( "u.&o&al%s223 o@o* !s >.)%*& oRangosB@ !s >.)%*& o0%l+*ulas !s >.)%*& oRango !s >.)%*&

o@o* A Hh+s$o(7on%n& oRangosB@ A o@o*-@a&aBas%Rang%s23

A!ren ien o OOo Basic

#,,

#f oRangosB@-hasB?<a(%2 "0%l+*ulas" 3 Hh%n o0%l+*ulas A oRangosB@-g%&B?<a(%2 "0%l+*ulas" 3 oRango A o0%l+*ulas-R%f%''%d$%lls23 ,Pu+&a(os %l su.&o&al oRango-'%(o8%"u.Ho&als23 End #f End "u.

.omo se mues"ra en el siguien"e e2em!lo* no es in is!ensable usar un ;rea e a"os !ara /acer uso e los sub"o"ales* al ser m3"o os im!lemen"a os en rangos e cel a* !o emos invocarlos es e cual6uiera e es"os+ )a siguien"e macro* nos a el "o"al e ""ulos !or genero suma la can"i a e minu"os el mismo+
"u. @+( @+( @+( @+( "u.&o&al%s323 o@o* !s >.)%*& o"%l !s >.)%*& o@%s"u.Ho&al !s >.)%*& ($a(7os"u.Ho&al213 !s <%^ *o(-sun-s&a'-sh%%&-"u.Ho&al$olu(n

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 ,"+ %s una sola *%lda o un 'ango d% *%ldas #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o"%l A o"%l-g%&"7'%ad"h%%&-*'%a&%$u'so'B?Rang%2o"%l3 ,Ex7and+(os a la '%g+Kn a*&ual o"%l-*olla7s%Ho$u''%n&R%g+on23 ,$'%a(os %l d%s*'+7&o' a 7a'&+' d% la s%l%**+Kn o@%s"u.Ho&al A o"%l-*'%a&%"u.Ho&al@%s*'+7&o'2 H'u% 3 o@%s"u.Ho&al-Ena.l%"o'& A H'u% o@%s"u.Ho&al-"o'&!s*%nd+ng A H'u% ,$olu(na d% &+&ulos ($a(7os"u.Ho&al203-$olu(n A 1 ($a(7os"u.Ho&al203-Jun*&+on A *o(-sun-s&a'-sh%%&-D%n%'alJun*&+on-$>C<H ,$olu(na d% (+nu&os ($a(7os"u.Ho&al213-$olu(n A 6 ($a(7os"u.Ho&al213-Jun*&+on A *o(-sun-s&a'-sh%%&-D%n%'alJun*&+on-"CM ,!7l+*a(os al g%n%'o o@%s"u.Ho&al-add<%^2 ($a(7os"u.Ho&al63 3 o"%l-a77l?"u.Ho&als2 o@%s"u.Ho&al6 H'u% 3 Els% MsgBox "<o %s un 'ango d% *%ldas" End #f End "u.

=l siguien"e e2em!lo* nos mues"ra cuan"os ""ulos "enemos !or !as* - es!u3s o"ro sub"o"al nos in ica cuan"os ""ulos !or genero* L en"roM e ca a !as "enemos<
"u. @+( @+( @+( @+( "u.&o&al%s423 o@o* !s >.)%*& o"%l !s >.)%*& o@%s"u.Ho&al !s >.)%*& ($a(7os"u.Ho&al203 !s <%^ *o(-sun-s&a'-sh%%&-"u.Ho&al$olu(n

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 ,"+ %s una sola *%lda o un 'ango d% *%ldas #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o"%l A o"%l-g%&"7'%ad"h%%&-*'%a&%$u'so'B?Rang%2o"%l3 o"%l-*olla7s%Ho$u''%n&R%g+on23 o@%s"u.Ho&al A o"%l-*'%a&%"u.Ho&al@%s*'+7&o'2 H'u% 3 o@%s"u.Ho&al-Ena.l%"o'& A H'u%

?$$
o@%s"u.Ho&al-"o'&!s*%nd+ng A H'u% ,$olu(na d% &G&ulos ($a(7os"u.Ho&al203-$olu(n A 1 ($a(7os"u.Ho&al203-Jun*&+on A *o(-sun-s&a'-sh%%&-D%n%'alJun*&+on-$>C<H ,!7l+*a(os al 7aGs o@%s"u.Ho&al-add<%^2 ($a(7os"u.Ho&al65 3 ,$olu(na d% &G&ulos ($a(7os"u.Ho&al203-$olu(n A 1 ($a(7os"u.Ho&al203-Jun*&+on A *o(-sun-s&a'-sh%%&-D%n%'alJun*&+on-$>C<H ,!7l+*a(os al g%n%'o o@%s"u.Ho&al-add<%^2 ($a(7os"u.Ho&al63 3 o"%l-a77l?"u.Ho&als2 o@%s"u.Ho&al6 H'u% 3 Els% MsgBox "<o %s un 'ango d% *%ldas" End #f End "u.

F+% @angos e a"os

Observa* 6ue /emos es"ableci o la ma"riz e cam!os os veces - usa o el m3"o o add2e8 "ambi3n os veces !ara lograr el resul"a o esea o+ Solo !ue es sacar sub"o"ales !or /as"a un m;:imo e "res gru!os+ =l or en en 6ue es"ablezcas - agregues los cam!os* ser; el or en e !rece encia e los sub"o"ales+ )a ob"enci4n e sub"o"ales* "iene un valor agrega o bas"an"e >"il* al realizar la o!eraci4n es"ableci a en alg>n cam!o* la /erramien"a /ace una com!araci4n Le:ac"aM e ca a valor* !or lo 6ue "e !o r;s ar cuen"a si "ienes cam!os con* !or e2em!lo* es!acios vacos e m;s* al !rinci!io o al 1inal e el* o en el caso e "ener valores e cam!o mu- similares* si un regis"ro "iene solo un error e L e oM* con los sub"o"ales "e !o r;s ar cuen"a e 1orma visual mu- 1;cilmen"e* sobre "o o cuan o /aces uso e la 1unci4n cuen"a* revisa los regis"ros 6ue solo "engan un solo regis"ro* !or su!ues"o* "u ebes e"erminar si es correc"o o no+ Para e2em!li1icar es"o* si es"as usan o la misma base e a"os 6ue -o* saca un sub"o"al !or genero* busca - observa los g3neros L.ome iaM - L(ramaM* - cu3n"ame cual es el error+ =sa es "u "area 6ue no es muc/a+

=.A.!

-alidando datos

A es"as al"uras el libro* "e /abr;s a o cuen"a e la im!or"ancia e vali ar la in1ormaci4n 6ue el usuario le !ro!orciona a un !rograma* una gran can"i a e !rogramas* 1allan en es"e "ema e* creo -o* al"a !riori a + .alc cuen"a con una /erramien"a llama a 5ali ez* !resen"e en el men> (a"os* 6ue nos !ermi"e es"ablecer cri"erios en cel as !ara la ca!"ura e in1ormaci4n !or !ar"e el usuario - limi"arlo en la me i a e lo !osible* a ca!"urar a os v;li os en el !rograma* in1orman o* si lo eseas* con cua ros e mensa2e !ara a-u arle a in"ro ucir la in1ormaci4n correc"amen"e+

A!ren ien o OOo Basic

?$1

5eamos como es"ablecer es"as o!ciones !or c4 igo+ =n el siguien"e e2em!lo* es"ablecemos 6ue las cel as selecciona as* solo !ue an ace!"ar n>meros en"eros el 1 al 1#* es ecir* un en"ero corres!on ien"e a un mes el aKo<
"u. @+( @+( @+( 1al+da'@a&os123 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 ,1al+da(os Fu% s%a una *%lda o un 'ango d% *%ldas #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n ,>.&%n%(os la %s&'u*&u'a 8al+da*+Kn o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 ,Es&a.l%*%(os sus 7'o7+%dad%s U+&h o1al+da*+on ,El &+7o d% 8al+da*+Kn -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-UH>5E ,El o7%'ado' d% la 8al+da*+Kn -s%&>7%'a&o' 2 *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-BEHUEE< 3 ,Es&a.l%*%(os la 7'+(%' *ond+*+Kn -s%&Jo'(ula1 2 "1" 3 ,Es&a.l%*%(os la s%gunda -s%&Jo'(ula2 2 "12" 3 ,Pu% +gno'% las *%ldas %n .lan*o -#gno'%Blan]$%lls A H'u% ,Pu% (u%s&'% un (%nsa)% al s%l%**+ona' la *%lda -"ho^#n7u&M%ssag% A H'u% ,El &+&ulo d%l (%nsa)% -#n7u&H+&l% A "#n&'odu*% %l (%s d%l a\o" ,El (%nsa)% -#n7u&M%ssag% A "$a7&u'a un n;(%'o %n&'% 1 ? 12" ,Pu% (u%s&'% un (%nsa)% s+ la *ond+*+Kn no s% *u(7l% -"ho^E''o'M%ssag% A H'u% ,El %s&+lo d%l (%nsa)% d% al%'&a -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-"H>0 ,El &+&ulo d%l (%nsa)% d% %''o' -E''o'H+&l% A "@a&o %''on%o" ,El (%nsa)% d% %''o' -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s un n;(%'o %n&'% 1 ? 12" End U+&h ,R%+ns%'&a(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o los *a(.+os o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

?$#

F+% @angos e a"os

Observa como es"amos ob"enien o la es"ruc"ura e vali aci4n ( get(ropert)/alue)* !as;n ole como argumen"o* el nombre e la !ro!ie a 6ue nos in"eresa+ )as res"an"es !ro!ie a es son< el "i!o (.)pe)* se re1iere al "i!o e vali aci4n 6ue /aremos - es"a con iciona o !or la enumeraci4n com sun star s$eet /alidation.)pe* cu-os !osibles valores son< com(sun(star(sheet(0alidation3ype
com+sun+s"ar+s/ee"+5ali a"ionT-!e+ANO com+sun+s"ar+s/ee"+5ali a"ionT-!e+NcO)= com+sun+s"ar+s/ee"+5ali a"ionT-!e+(=.9MA) com+sun+s"ar+s/ee"+5ali a"ionT-!e+(AT= com+sun+s"ar+s/ee"+5ali a"ionT-!e+T9M= com+sun+s"ar+s/ee"+5ali a"ionT-!e+T=pTQ)=N com+sun+s"ar+s/ee"+5ali a"ionT-!e+)9ST com+sun+s"ar+s/ee"+5ali a"ionT-!e+.USTOM

0alor
$ 1 # ? E 5 F %

0alor en )nterfa2
.ual6uier valor =n"ero (ecimal 'ec/a cora )ongi"u e "e:"o )is"a 'ormula

(es!u3s* es"ablecemos el o!era or (setOperator)* !ara evaluar la con ici4n* es"a !ro!ie a !ue e "omar los siguien"es valores< com(sun(star(sheet(ConditionOperator
com+sun+s"ar+s/ee"+.on i"ionO!era"or+NON= com+sun+s"ar+s/ee"+.on i"ionO!era"or+=eUA) com+sun+s"ar+s/ee"+.on i"ionO!era"or+NOTQ=eUA) com+sun+s"ar+s/ee"+.on i"ionO!era"or+&@=AT=@ com+sun+s"ar+s/ee"+.on i"ionO!era"or+&@=AT=@Q=eUA) com+sun+s"ar+s/ee"+.on i"ionO!era"or+)=SS com+sun+s"ar+s/ee"+.on i"ionO!era"or+)=SSQ=eUA) com+sun+s"ar+s/ee"+.on i"ionO!era"or+B=TN==N com+sun+s"ar+s/ee"+.on i"ionO!era"or+NOTQB=TN==N com+sun+s"ar+s/ee"+.on i"ionO!era"or+'O@MU)A

0alor
$ 1 # ? E 5 F % G ,

0alor en )nterfa2
Ninguna 9gual (is"in"a e Ma-or 6ue Ma-or o igual Menor 6ue Menor o igual =n"re No en"re 'ormula

(e!en ien o e 6ue o!era or selecciones* !ue e 6ue necesi"es es"ablecer el !rimer valor e com!araci4n (set5ormula#)* - "ambi3n el segun o (set5ormula6)* com>nmen"e los o!era ores Len"reM (!".>""2)* - Lno en"reM (2O.'!".>""2)* son los 6ue re6uieren los os valores+ Po emos e"erminar si la vali aci4n ignora o no* las cel as en blanco ( +gnore!lan7Cells)* !ero ebes e saber 6ue es"a !ro!ie a no e"ermina el vali ar cel as vaca o no* si no 6ue "raba2a en con2un"o la u"ili a (e"ec"ive el men> cerramien"as* !ara e"erminar si una cel a vaca se consi era error o no+ Po emos mos"rar un mensa2e ( S$o8+nputMessage)* cuan o el usuario seleccione una cel a* es"ablecer su "i"ulo ( +nput.itle)* - el mensa2e 6ue ver; (+nputMessage)* es"e "e:"o orien"a al usuario sobre los valores a in"ro ucir+ =n caso e 6ue el valor ca!"ura o !or el usuario* no sa"is1aga las con iciones e la vali aci4n* !o emos mos"rar un mensa2e e error (S$o8"rrorMessage)* e e"ermina o es"ilo ("rrorAlertSt)le)* es"e es"ilo* e"erminar; la acci4n a "omar con el valor ca!"ura o* es"e es"ilo es"a e"ermina o !or los siguien"es valores< com(sun(star(sheet(0alidationAlert4tyle
com+sun+s"ar+s/ee"+5ali a"ionAler"S"-le+STOP

0alor
$

0alor en )nterfa2
S"o!

A!ren ien o OOo Basic

?$?

com(sun(star(sheet(0alidationAlert4tyle
com+sun+s"ar+s/ee"+5ali a"ionAler"S"-le+NA@N9N& com+sun+s"ar+s/ee"+5ali a"ionAler"S"-le+9N'O com+sun+s"ar+s/ee"+5ali a"ionAler"S"-le+MA.@O

0alor
1 # ?

0alor en )nterfa2
A ver"encia 9n1ormaci4n Macro

Si es"ableces el valor en Ls"o!M (S.O()* se mos"rara al usuario un mensa2e ("rrorMessage) con un "i"ulo ("rror.itle) !ara in1ormarle el error* al ace!"ar* la cel a regresar; al valor inme ia"o an"erior* en los casos e La ver"enciaM ( >AR2+2G) e Lin1ormaci4nM (+25O)* 6ue ar; a cri"erio el usuario si ace!"a o no el nuevo valor aun - cuan o no cum!la la con ici4n - en el caso e la o!ci4n LmacroM (MACRO)* !ue es escoger una macro a e2ecu"ar* !ara* !or e2em!lo* mos"rar un mensa2e m;s elabora o o realizar una o!eraci4n m;s com!le2a+ Por ul"imo* es im!or"an"e* Lreinser"arM (set(ropert)/alue) la !ro!ie a al ob2e"o !ara 6ue los cambios sur"an e1ec"o+ Para 6ui"ar una vali aci4n* solo es"ablece el "i!o ( .)pe) en cual6uier valor (A2?) es/abili"a el mensa2e e en"ra a (S$o8+nputMessage)+
"u. @+( @+( @+( 1al+da'@a&os223 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 ,1al+da(os Fu% s%a una *%lda o un 'ango d% *%ldas #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n ,>.&%n%(os la %s&'u*&u'a 8al+da*+Kn o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 ,El &+7o d% 8al+da*+Kn o1al+da*+on-H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-!<O ,Pu% (u%s&'% un (%nsa)% al s%l%**+ona' la *%lda o1al+da*+on-"ho^#n7u&M%ssag% A Jals% ,R%+ns%'&a(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o los *a(.+os o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

=l "i!o ecimal* "e !ermi"e ca!"urar n>meros con ecimales<


"u. @+( @+( @+( 1al+da'@a&os323 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-@E$#M!5 -s%&>7%'a&o' 2 *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-BEHUEE< 3 -s%&Jo'(ula1 2 "0" 3 -s%&Jo'(ula2 2 "10" 3 -#gno'%Blan]$%lls A H'u% -"ho^#n7u&M%ssag% A H'u% -#n7u&H+&l% A "#n&'odu*% la *al+f+*a*+on" -#n7u&M%ssag% A "0u%d%s usa' d%*+(al%s" -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-#<J> -E''o'H+&l% A "@a&o %''on%o" -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s 8=l+do"

?$E
End U+&h ,R%+ns%'&a(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o los *a(.+os o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

F+% @angos e a"os

=n el siguien"e e2em!lo* vali amos 6ue no sea una 1ec/a 1u"ura* no"a el uso e la 1unci4n incor!ora a e .alc+
"u. @+( @+( @+( 1al+da'@a&os423 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-@!HE -s%&>7%'a&o' 2 *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-5E""/EPC!5 3 ,Csa(os una fo'(ula *o(o *ond+*+Kn -s%&Jo'(ula1 2 "H>@!O23" 3 -#gno'%Blan]$%lls A H'u% -"ho^#n7u&M%ssag% A H'u% -#n7u&H+&l% A "J%*ha d% <a*+(+%n&o" -#n7u&M%ssag% A "5a f%*ha no 7u%d% s%' fu&u'a" -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-U!R<#<D -E''o'H+&l% A "@a&o %''on%o" -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s 8=l+do" End U+&h o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

A/ora* solo !ue e ca!"urar una /ora 6ue no sea en"re 1 !+m+ ? !+m+<
"u. @+( @+( @+( 1al+da'@a&os523 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-H#ME -s%&>7%'a&o' 2 *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-<>H/BEHUEE< 3 ,#n&'odu*+' una ho'a Fu% no s%a %n&'% 1 ? 3 7-(-s%&Jo'(ula1 2 "H#ME213f0f0" 3 -s%&Jo'(ula2 2 "H#ME215f0f0" 3 -#gno'%Blan]$%lls A H'u% -"ho^#n7u&M%ssag% A H'u% -#n7u&H+&l% A "Ho'a d% sal+da" -#n7u&M%ssag% A "5a ho'a d% sal+'" -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-"H>0 -E''o'H+&l% A "@a&o %''on%o" -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s 8=l+do" End U+&h o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3

A!ren ien o OOo Basic


End #f End "u.

?$5

Observa 6ue es"amos /acien o uso e la 1unci4n e .alc* NScO@A ( .+M")* 6ue "e evuelve el n>mero e serie e la /ora !asa a* es"o es necesario !ara es"ablecer los limi"es correc"amen"e+ =n el siguien"e e2em!lo* es"ablecemos 6ue los valores los "ome es e un rango e cel as* observa 6ue las re1erencias al rango son absolu"as<
"u. @+( @+( @+( 1al+da'@a&os623 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-5#"H ,#n&'odu*+' 8alo'%s d%sd% un 'ango d% *%ldas -s%&Jo'(ula1 2 "d#d24d#d8" 3 -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-"H>0 -E''o'H+&l% A "@a&o %''on%o" -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s 8=l+do" End U+&h o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

Pero "ambi3n !o emos es"ablece el rango es e un rango e cel a con nombre* !or e2em!lo<
"u. @+( @+( @+( 1al+da'@a&os723 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-5#"H ,#n&'odu*+' 8alo'%s d%sd% un 'ango d% *%ldas -s%&Jo'(ula1 2 "8alo'%s" 3 -"ho^5+s& A 2 -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-"H>0 -E''o'H+&l% A "@a&o %''on%o" -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s 8=l+do" End U+&h o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

@ecuer a 6ue los rangos con nombre los es"ablecemos* en la in"er1az el usuario* es e el cua ro e nombres e la barra e 1ormulas* o !or c4 igo* como /emos a!ren i o en es"e libro* aun6ue "ambi3n !ue es usar un nombre e ;rea e a"os e1ini a en el men> -atos |

?$F

F+% @angos e a"os

-efinir & e /ec/o* !ue es usar cual6uier "e:"o o 1ormula 6ue "e evuelva un rango e cel as v;li o* si el rango e cel as "iene m;s e una columna* solo se usara la !rimer columna+ Observa 6ue /emos usa o una nueva !ro!ie a ( S$o80ist)* cuan o el "i!o e la vali aci4n es"a es"ableci a en Llis"aM (0+S.)* !o emos e"erminar si mos"ramos la 1lec/a e lis"a e selecci4n* el valor # e"ermina 6ue se mues"re con los valores or ena os e 1orma ascen en"e* el valor 1 6ue se mues"re !ero 6ue no or ene los valores* 6ue los mues"re "al - como es";n en el origen* - el valor $ 6ue no se mues"re la lis"a e selecci4n* algo no mu- recomen able cuan o se usa una lis"a+ =s"os valores corres!on en a< com(sun(star(sheet(3able0alidation0isibility
com+sun+s"ar+s/ee"+Table5ali a"ion5isibili"-+9N59S9B)= com+sun+s"ar+s/ee"+Table5ali a"ion5isibili"-+UNSO@T=( com+sun+s"ar+s/ee"+Table5ali a"ion5isibili"-+SO@T=(AS.=N(9N&

0alor
$ 1 #

0alor en )nterfa2
No mos"rar lis"a Mos"rar esor ena a Mos"rar or ena a ascen en"e

=n el siguien"e e2em!lo* es"ablecemos el origen e cel as con 1ormulas e .alc* es"a 1ormula ebe es"ar bien cons"rui a* si no* no "e ar; el rango correc"o<
"u. @+( @+( @+( 1al+da'@a&os823 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-5#"H ,#n&'odu*+' 8alo'%s d%sd% un 'ango d% *%ldas -s%&Jo'(ula1 2 "#<@#RE$H2!@@RE""21f139""4""9!@@RE""210f133" 3 -"ho^5+s& A 2 -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-"H>0 -E''o'H+&l% A "@a&o %''on%o" -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s 8=l+do" End U+&h o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

@ecuer a 6ue la 1unci4n (9@=..9ON (A((@=SS)* nos evuelve una re1erencia en 1orma e "e:"o* e acuer o a los !ar;me"ros !asa os* es!u3s* la 1unci4n 9N(9@=.TO (9N(9@=.T)* nos evuelve* e una ca ena e "e:"o 6ue "enga un rango e cel a v;li o* la re1erencia a ic/a cel a+ .omo a la 1unci4n (9@=..9ON se le !ue a es"ablecer en"re sus !ar;me"ros el nombre e una /o2a* "e 6ue a e "area mo i1icar la macro an"erior !ara 6ue el rango e cel as e la vali aci4n* es"e en una /o2a i1eren"e+ =l !o er e /acerlo con 1unciones o es e c4 igo* es 6ue la lis"a e vali aci4n la !ue es ac"ualizar in;micamen"e* !or e2em!lo* una lis"a e clien"es 6ue va crecien o con1irme vamos agregan o regis"ros o cual6uier o"ro lis"a o 6ue va-a crecien o en sen"i o ver"ical+ O"ra !osibili a * es in"ro ucir una lis"a 1i2a e valores* o semi1i2a* !ues es e c4 igo la !o emos ac"ualizar siem!re 6ue 6ueramos* veamos como<
"u. 1al+da'@a&os923 @+( o@o* !s >.)%*&

A!ren ien o OOo Basic


@+( o"%l !s >.)%*& @+( o1al+da*+on !s >.)%*&

?$%

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-5#"H ,#n&'odu*+' 8alo'%s f+)os -s%&Jo'(ula1 2 "1!5>R1f1!5>R2f1!5>R3" 3 -"ho^5+s& A 2 -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-"H>0 -E''o'H+&l% A "@a&o %''on%o" -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s 8=l+do" End U+&h o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

5e a la in"er1az el usuario - observa como La!aren"emen"eM* si agrego los valores* !ero observa 6ue es";n en min>sculas* cuan o noso"ros los agregamos en ma->sculas* veri1ica es e la in"er1az e usuario* es e -atos | /alidez * 6ue es"a 1orma e in"ro ucir los a"os 1i2os* la e"ec"a como si 1uera un in"ervalo e cel as* lo cual es incorrec"o* !ara 6ue realmen"e la e"ec"e como una lis"a L1i2aM e valores* "ienes 6ue !asarle ca a valor como una ca ena* como en el siguien"e e2em!lo<
"u. @+( @+( @+( 1al+da'@a&os1023 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-5#"H ,#n&'odu*+' 8alo'%s f+)os -s%&Jo'(ula1 2 """1!5>R1"""9"f"9"""1!5>R2"""9"f"9"""1!5>R3""" 3 -"ho^5+s& A 2 -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-"H>0 -E''o'H+&l% A "@a&o %''on%o" -E''o'M%ssag% A "El 8alo' +n&'odu*+do no %s 8=l+do" End U+&h o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

Pero ve 6ue can"i a e comillas* I- son muc/os valoresJ* !o emos /acer una 1unci4n 6ue agregue las comillas !or noso"ros* como en el siguien"e e2em!lo<
"u. @+( @+( @+( @+( @+( 1al+da'@a&os11 sH(7 !s "&'+ng ( o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

?$G

F+% @angos e a"os

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on ,1alo'%s a ag'%ga' ( A !''a?2"Cno"6"@os"6"H'%s"6"$ua&'o"6"$+n*o"3 ,5os )un&a(os sH(7 A [un&a'En5+s&a2(3 -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-5#"H -"ho^5+s& A 2 -s%&Jo'(ula12 sH(7 3 End U+&h o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u. ,Ho(a una (a&'+: ? l% ag'%ga *o(+llas a *ada %l%(%n&o ,@%8u%l8% una *ad%na *on los %l%(%n&os6 s%7a'ados 7o' "f" Jun*&+on [un&a'En5+s&a2 B?1al ( 3 !s "&'+ng @+( *o1 !s 5ong Jo' *o1 A 5Bound2(3 Ho CBound2(3 (2*o13 A """" 9 (2*o13 9 """" <%x& [un&a'En5+s&a A [o+n2 (6 "f" 3 End Jun*&+on

A/ora si* es un !oco m;s 1;cil agregar valores a una lis"a+ =l siguien"e e2em!lo "e limi"a la en"ra a a una !alabra e en"re 5 - 1$ le"ras* no "e ace!"a solo n>meros* solo le"ras o al1anum3ricas<
"u. @+( @+( @+( 1al+da'@a&os1223 o@o* !s >.)%*& o"%l !s >.)%*& o1al+da*+on !s >.)%*&

o@o* A Hh+s$o(7on%n& o"%l A o@o*-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" >' o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%llRang%>.)" Hh%n o1al+da*+on A o"%l-g%&0'o7%'&?1alu%2"1al+da&+on"3 U+&h o1al+da*+on -H?7% A *o(-sun-s&a'-sh%%&-1al+da&+onH?7%-HEEH/5E< -s%&>7%'a&o' 2 *o(-sun-s&a'-sh%%&-$ond+&+on>7%'a&o'-BEHUEE< 3 -s%&Jo'(ula1 2 "5" 3 -s%&Jo'(ula2 2 "10" 3 -#gno'%Blan]$%lls A H'u% -"ho^E''o'M%ssag% A H'u% -E''o'!l%'&"&?l% A *o(-sun-s&a'-sh%%&-1al+da&+on!l%'&"&?l%-"H>0 -E''o'H+&l% A "5ong+&ud %''on%a" -E''o'M%ssag% A "5a 7ala.'a d%.% s%' d% %n&'% 5 ? 10 *a'a*&%'%s" End U+&h ,R%+ns%'&a(os la 7'o7+%dad 7a'a Fu% su'&an %f%*&o los *a(.+os o"%l-s%&0'o7%'&?1alu%2"1al+da&+on"6 o1al+da*+on3 End #f End "u.

Tan"o en la in"er1az el usuario* - aun m;s es e c4 igo* la vali aci4n e a"os es un "ema cen"ral en la !rogramaci4n* no lo "omes como un "ema menor* es !re1erible agregar unas cuan"as lneas m;s e c4 igo a correr el riesgo e 6ue un a"o inconsis"en"e nos evuelva in1ormaci4n inconsis"en"e+ Tienes ins"rucciones limi"a as !ero su1icien"es !ara evi"arlo - "ienes algo ilimi"a o8 imaginaci4n* in"eligencia* !ero sobre "o o* sen"i o com>n* e:!lo"alos+

A!ren ien o OOo Basic

?$,

=.A.=

(*rupando datos

.uan o se mane2a una gran can"i a e in1ormaci4n* encon"rar una manera sim!le r;!i a e agru!ar a"os* !ue e ser la i1erencia en"re e1iciencia e ine1iciencia* los 1il"ros* el or enar - los sub"o"ales* son /erramien"as 6ue !ue en a!o-arnos* cuan o sim!lemen"e necesi"emos agru!ar !or un rango e columnas o 1ilas* 6ue no es m;s 6ue ocul"arlas* !o emos !robar lo siguien"e<
"u. @+( @+( @+( !g'u7a'123 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,Es&a.l%*%(os las 7'o7+%dad%s d%l g'u7o U+&h oRango ,5a ho)a dond% s% *'%a'= -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& ,5a *olu(na d% +n+*+o -"&a'&$olu(n A 0 ,5a *olu(an d% f+n -End$olu(n A 4 End U+&h ,$'%a(os %l g'u7o6 0 A 7o' *olu(nas oHo)a!*&+8a-g'ou72 oRango6 0 3 End "u.

)a macro an"erior nos agru!ar; las columnas 1 a 5 en la in"er1az el usuario* es muim!or"an"e 6ue vali ez 6ue la /o2a - el rango e columnas es"ableci as* es"3n en"ro e rangos v;li os* !or e2em!lo* 6ue el n ice e /o2a e:is"a* si no* !ue es !rovocar una ca a e la a!licaci4n* es"amos veri1ican o el I!or6ueJ e es"o+ Observa como al agru!ar (group)* le !asamos una es"ruc"ura e irecci4n e un rango (CellRangeAddress)* vis"a muc/as veces en es"e libro - como segun o argumen"o* si 6ueremos 6ue se agru!e !or columnas (@) o !or 1ilas (#)+ A/ora* agru!amos las !rimeras iez 1ilas e la /o2a ac"iva<
"u. @+( @+( @+( !g'u7a'223 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& ,!ho'a %s&a.l%*%(os %l 'ango d% f+las -"&a'&Ro^ A 0 -EndRo^ A 9 End U+&h ,O ag'u7a(os6 1 A 7o' f+las oHo)a!*&+8a-g'ou72 oRango6 1 3 End "u.

?1$

F+% @angos e a"os

Por su!ues"o* !ue es es"ablecer* con la misma es"ruc"ura* "an"o las columnas como las 1ilas* como en el siguien"e e2em!lo<
"u. @+( @+( @+( !g'u7a'323 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&$olu(n A 9 -End$olu(n A 19 -"&a'&Ro^ A 9 -EndRo^ A 19 End U+&h ,!g'u7a(os 7o' *olu(nas 10 a la 20 oHo)a!*&+8a-g'ou72 oRango6 0 3 ,!g'u7a(os 7o' f+las 10 a 20 oHo)a!*&+8a-g'ou72 oRango6 1 3 End "u.

(esagru!ar (ungroup) es "rivial* usa los mismos argumen"os 6ue !ara agru!ar+
"u. @+( @+( @+( !g'u7a'423 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&$olu(n A 0 -End$olu(n A 4 -"&a'&Ro^ A 0 -EndRo^ A 9 End U+&h ,@%ag'u7a(os f+las ? *olu(nas oHo)a!*&+8a-ung'ou72 oRango6 0 3 oHo)a!*&+8a-ung'ou72 oRango6 1 3 End "u.

=l rango usa o !ara esagru!ar (ungroup)* no "iene 6ue coinci ir e:ac"amen"e* en "amaKo* al rango original e agru!amien"o* es su1icien"e* con 6ue es"e L en"roM el rango con 6ue se agru!o* an"es e com!robarlo* es e la /o2a on e es"3s /acien o es"as !ruebas* ve al men> -atos | Agrupar ) "s,uema | "liminar * lo 6ue borrara cual6uier gru!o crea o* es!u3s* e2ecu"a la !rimer macro siguien"e e inme ia"amen"e es!u3s* la segun a<
"u. @+( @+( @+( !g'u7a'523 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

A!ren ien o OOo Basic

?11

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&$olu(n A 0 -End$olu(n A 9 -"&a'&Ro^ A 0 -EndRo^ A 19 End U+&h ,!g'u7a(os f+las 21T203 ? *olu(nas 21T103 oHo)a!*&+8a-g'ou72 oRango6 0 3 oHo)a!*&+8a-g'ou72 oRango6 1 3 End "u. "u. @+( @+( @+( !g'u7a'623 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& ,"olo +nd+*a(os la 7'+(%' *olu(na ? f+la -"&a'&$olu(n A 0 -End$olu(n A 0 -"&a'&Ro^ A 0 -EndRo^ A 0 End U+&h ,@%sag'u7a(os f+las ? *olu(nas oHo)a!*&+8a-ung'ou72 oRango6 0 3 oHo)a!*&+8a-ung'ou72 oRango6 1 3 End "u.

Observa como agru!amos !or un rango - esagru!amos !or o"ro* on e solo nos "enemos 6ue asegurar 6ue* el rango a esagru!ar* es"e L en"roM el rango agru!a o+ .uan o eliminas los gru!os es e la in"er1az el usuario* si el gru!o es"a con"ra o* las columnas o 1ilas ocul"as* se mos"rar;n inme ia"amen"e* no suce e lo mismo cuan o lo /aces !or c4 igo* vuelve a realizar la !rueba an"erior* !ero asegura"e* e 6ue* an"es e esagru!ar* con"rae el gru!o !ara ocul"ar su con"eni o* a/ora s* e2ecu"a la macro !ara esagru!ar* no"aras 6ue el rango usa o seguir; ocul"o* !ara evi"ar es"o* an"es e esagru!ar* asegura"e e mos"rar el e"alle el rango como en el siguien"e e2em!lo<
"u. @+( @+( @+( !g'u7a'723 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& ,"olo +nd+*a(os la 7'+(%' *olu(na ? f+la -"&a'&$olu(n A 0 -End$olu(n A 9 -"&a'&Ro^ A 0 -EndRo^ A 19

?1#
End U+&h ,Ex7and+(os %l g'u7o *on&%n+do %n %l 'ango oHo)a!*&+8a-sho^@%&a+l2 oRango 3 ,@%sag'u7a(os f+las ? *olu(nas oHo)a!*&+8a-ung'ou72 oRango6 0 3 oHo)a!*&+8a-ung'ou72 oRango6 1 3 End "u.

F+% @angos e a"os

=l e2em!lo an"erior 1uncionar;* siem!re - cuan o* el rango agru!a o ( group)* corres!on a Le:ac"amen"eM con el rango mos"ra o ( s$o8-etail) - con el rango esagru!a o (ungroup)* lo cual* en ocasiones* !o ra no ser "an 1;cil e conocer+ Si lo 6ue 6uieres es eliminar cual6uier gru!o e:is"en"e en una /o2a* usamos<
"u. @+( @+( @+( !g'u7a'823 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,El+(+na(os *ualFu+%' g'u7o d% la ho)a oHo)a!*&+8a-*l%a'>u&l+n%23 End "u.

.on lo cual* es muc/o m;s sencillo* eliminar cual6uier gru!o - volver a crear el necesario+ .uan o agregas gru!os* e!en ien o e si e:is"a o no !reviamen"e uno en el rango !asa o* suce er; cual6uiera e las siguien"es acciones8 si el rango -a con"iene un gru!o* se crear; un nuevo nivel e agru!amien"o* !ue es crear /as"a oc/o niveles e ellos* si el rango no con"iene un gru!o* es"e* se agregar; al mismo nivel* veamoslo con e2em!los* en el !rimero com!robamos 6ue se agregan los gru!os en niveles<
"u. @+( @+( @+( !g'u7a'923 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oHo)a!*&+8a-*l%a'>u&l+n%23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&$olu(n A 0 -End$olu(n A 1 End U+&h ,!g'u7a(os las *olu(nas 1T2 oHo)a!*&+8a-g'ou72 oRango6 0 3 U+&h oRango -"&a'&$olu(n A 0 -End$olu(n A 3 End U+&h ,!g'u7a(os las *olu(nas 1T4 oHo)a!*&+8a-g'ou72 oRango6 0 3 U+&h oRango -"&a'&$olu(n A 0 -End$olu(n A 5 End U+&h

A!ren ien o OOo Basic


,!g'u7a(os las *olu(nas 1T6 oHo)a!*&+8a-g'ou72 oRango6 0 3 End "u.

?1?

A/ora* veamos como agregar al mismo nivel<


"u. @+( @+( @+( !g'u7a'1023 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oHo)a!*&+8a-*l%a'>u&l+n%23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&Ro^ A 0 -EndRo^ A 3 End U+&h ,!g'u7a(os la f+la 1 a 4 oHo)a!*&+8a-g'ou72 oRango6 1 3 U+&h oRango -"&a'&Ro^ A 5 -EndRo^ A 8 End U+&h ,!g'u7a(os la f+la 4 a 7 oHo)a!*&+8a-g'ou72 oRango6 1 3 U+&h oRango -"&a'&Ro^ A 10 -EndRo^ A 13 End U+&h ,!g'u7a(os la f+la 9 a 12 oHo)a!*&+8a-g'ou72 oRango6 1 3 End "u.

O lo com!robamos<

Pue es crear un gru!o - ocul"arlo inme ia"amen"e* como en<

?1E

F+% @angos e a"os

"u. @+( @+( @+(

!g'u7a'1123 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&$olu(n A 0 -End$olu(n A 9 End U+&h oHo)a!*&+8a-g'ou72 oRango6 0 3 ,>*ul&a(os %l g'u7o *on&%n+do %n %l 'ango oHo)a!*&+8a-h+d%@%&a+l2 oRango 3 End "u.

A i1erencia e mos"rar un gru!o (s$o8-etail)* cuan o lo ocul"as ($ide-etail)* el rango no necesariamen"e ebe ser el mismo "amaKo* con 6ue a!un"e a cual6uier cel a en"ro el rango a ocul"ar* 1uncionar;+ Tambi3n "ienes la !osibili a e mos"rar cual6uier nivel e agru!amien"o* los em;s niveles /acia arriba* si los /a-* se cerraran<
"u. @+( @+( @+( !g'u7a'1223 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&Ro^ A 0 -EndRo^ A 4 End U+&h oHo)a!*&+8a-g'ou72 oRango6 1 3 U+&h oRango -"&a'&Ro^ A 0 -EndRo^ A 9 End U+&h oHo)a!*&+8a-g'ou72 oRango6 1 3 U+&h oRango -"&a'&Ro^ A 0 -EndRo^ A 14 End U+&h oHo)a!*&+8a-g'ou72 oRango6 1 3 U+&h oRango -"&a'&Ro^ A 0 -EndRo^ A 19 End U+&h oHo)a!*&+8a-g'ou72 oRango6 1 3 ,Mos&'a(os %l n+8%l 2 oHo)a!*&+8a-sho^5%8%l2 26 1 3 End "u.

=l m3"o o !ara mos"rar un nivel es!eci1ico (s$o80e%el)* solo usa os !ar;me"ros* el nivel a mos"rar como !rimero - como segun o !ar;me"ro* si el nivel a mos"rar es"a en columnas

A!ren ien o OOo Basic

?15

(@) o en 1ilas (#)+ Para "erminar es"e "ema* veamos un e2em!lo !rac"ico bas"an"e >"il* !ara 6ue veas su uso* !rocura llamarla* "enien o el cursor en"ro e un rango e cel as 6ue "enga al menos os !an"allas e a"os en sen"i o ver"ical* es ecir* e 1ilas* si "ienes m;s 1ilas* es muc/o me2or !ues se !aginara m;s<
"u. @+( @+( @+( @+( @+( @+( @+( !g'u7a'1323 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*& +<u(J+l0ag !s #n&%g%' oRango !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss *o1 !s 5ong

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A o@o*-g%&$u''%n&"%l%*&+on23 ,>.l+ga(os a s%l%**+ona' solo una *%lda #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n ,$'%a(os un *u'so' a 7a'&+' d% la *%lda s%l%**+onada o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 ,Ex7and+(os a la '%g+Kn a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 ,>.&%n%(os %l n;(%'o d% f+las 8+s+.l%s 7o' 7=g+na +<u(J+l0ag A o@o*-g%&$u''%n&$on&'oll%'-g%&1+s+.l%Rang%-EndRo^ T o@o*-g%&$u''%n&$on&'oll%'-g%&1+s+.l%Rang%-"&a'&Ro^ T 1 ,Es&a.l%*%(os %l 7'+(%' n+8%l d% ag'u7a(+%n&o %n %l &o&al d% f+las U+&h oRango -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&Ro^ A 0 -EndRo^ A o$u'so'-g%&Rang%!dd'%ss-EndRo^ End U+&h oHo)a!*&+8a-g'ou72 oRango6 1 3 ,!g'%ga(os un s%gundo n+8%l d% ag'u7a(+%n&o6 7=g+na 7o' 7=g+na Jo' *o1 A 0 Ho o$u'so'-g%&Rang%!dd'%ss-EndRo^ "&%7 +<u(J+l0ag oRango-"&a'&Ro^ A *o1 B 1 oRango-EndRo^ A *o1 B +<u(J+l0ag T 1 oHo)a!*&+8a-g'ou72 oRango6 1 3 <%x& ,0a'a %l ul&+(o 'ango s+ no %s %xa*&o #f *o1 Y o$u'so'-g%&Rang%!dd'%ss-EndRo^ Hh%n oRango-"&a'&Ro^ A *o1 T +<u(J+l0ag B 1 oRango-EndRo^ A o$u'so'-g%&Rang%!dd'%ss-EndRo^ oHo)a!*&+8a-g'ou72 oRango6 1 3 End #f oHo)a!*&+8a-"ho^5%8%l2 16 1 3 Els% MsgBox ""%l%**+ona solo una *%lda" End #f End "u.

O mira 6ue bien 6ue a<

?1F

F+% @angos e a"os

.laro 6ue el ;rea no es"a limi"a a a 6ue "enga a"os* !ue es es"ablecer "us cri"erios !ero sobre "o o "us necesi a es !ar"iculares !ara agru!ar+

=.E

&ases de datos

)a mani!ulaci4n - a minis"raci4n e a"os* es una e las necesi a es m;s recurren"es en usuarios e /o2a e c;lculo* es"o no es gra"ui"o* !ues las /erramien"as !resen"es en ellas* 1acili"an enormemen"e es"a "area+ Para el me2or a!rovec/amien"o e es"e ca!i"ulo* sera eseable 6ue conocieras los siguien"es conce!"os< base e a"os* "abla* cam!o* regis"ro* consul"a* Se)* clave !rimaria* n ice* relaciones e in"egri a re1erencial+ (a a la am!lia ocumen"aci4n e:is"en"e en cas"ellano e es"os "emas* no u!licaremos es1uerzos - "e 6ue a e "area inves"igar un !oco acerca e ello* si no los ominas+ Tambi3n* es in is!ensable 6ue las bases e a"os 6ue usemos* al menos en es"e ca!i"ulo* es"3n regis"ra as en OOo* !ara regis"rar una base e a"os* seguimos los siguien"es !asos* ve al men> Herramientas | Opciones * selecciona la rama O!enO11ice+org Base - es!u3s la subrama Bases e a"os* on e "ienes 6ue ver las siguien"es o!ciones<

(a clic en el bo"4n e coman o 2ue%o+++* !ara ve el siguien"e cua ro e ialogo<

A!ren ien o OOo Basic

?1%

=n el cual* le ar;s clic al bo"4n e coman o "*aminar+++* 6ue "e mos"rar; el conoci o cua ro e ialogo !ara seleccionar arc/ivos* navega /as"a la ru"a on e /a-as guar a o la base e a"os o es"e localiza a la base e a"os 6ue 6uieras regis"rar - selecci4nala* !or ul"imo a un clic en el bo"4n e coman o Abrir+

Al ar clic en el bo"4n e coman o Abrir* "ienes 6ue regresar al cua ro e ialogo an"erior* !ero* a/ora* "ienes 6ue ver la ru"a com!le"a el arc/ivo 6ue acabas e seleccionar* as como el nombre !ro!ues"o con el 6ue se regis"rar; la base e a"os* es"e nombre !ue es !ersonalizarlo a "u gus"o !ues ace!"a es!acios incluso* !ero mi recomen aci4n es 6ue no uses ni es!acios ni carac"eres Le:"raKosM* !ara nues"ro e2em!lo* e2aremos el !ro!ues"o<

?1G

F+G Bases e a"os

(a un clic en el bo"4n e coman o Ace!"ar !ara regresar al !rimero cua ro e ialogo* on e* a/ora* "en r;s 6ue ver la nueva base e a"os regis"ra a+

Agrega e una vez la o"ra base e a"os 6ue acom!aKa a es"os a!un"es* se llama L5i eo"ecaM - "ambi3n la usaremos !ara nues"ros e2em!los+ Solo "e res"a cerrar es"e cua ro e ialogo con el bo"4n e coman o Aceptar+

=.E.1

Importando datos

9m!or"a a"os es e bases e a"os regis"ra as en O!enO11ice+org* es "rivial* solo "ienes 6ue !resionar la "ecla 'E* 6ue "e mos"rar; es"as bases en la ven"ana L 5uente de datosM* 2un"o con "o os sus ob2e"os8 "ablas - consul"as* seleccionar la base e a"os e nues"ro in"er3s* e:!an ir !ara mos"rar su con"eni o* seleccionar la "abla o consul"a 6ue 6uieras* el con"eni o e ic/o ob2e"o* "e lo mos"rar; en el !anel erec/o el e:amina or e 1uen"es e a"os* solo "e res"a seleccionar "o o con el bo"4n e seleccionar "o o* arras"rar a "u ocumen"o - lis"o* "ienes 6ue "ener los a"os selecciona os* como en la siguien"e imagen<

A!ren ien o OOo Basic

?1,

=n es"e ca!i"ulo* a!ren eremos a /acer es"o mismo* !ero claro* !or c4 igo* con el cual* !o r;s com!robarlo m;s a elan"e* "enemos !osibili a es LcasiM ilimi"a as !ara im!or"ar a"os+ Para im!or"ar a"os* e bases e a"os !reviamen"e regis"ra as en O!enO11ice+org* usamos el m3"o o do+mport* !resen"e en rangos e a"os* a es"e m3"o o* se le !asa una ma"riz e !ro!ie a es* con las in icaciones e 6ue 6ueremos im!or"ar* !or e2em!lo<
"u. @+( @+( @+( @+( Bas%s@%@a&os123 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng sHa.la !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

,El no(.'% d% nu%s&'a .as% d% da&os sBas%@a&os A "@+'%*&o'+o" ,5a &a.la Fu% nos +n&%'%sa &'a%' sHa.la A "&.l$on&a*&os" ,5a ho)a a*&+8a oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,5as 7'o7+%dad%s d% la +(7o'&a*+Kn6 7'+(%'o %l no(.'% d% la .as% d% da&os (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os ,El &+7o d% o.)%&o fu%n&% (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-H!B5E ,El no(.'% d%l o.)%&o fu%n&% (>7*B@223-<a(% A ""ou'*%>.)%*&"

?#$
(>7*B@223-1alu% A sHa.la ,#(7o'&a(os la &a.la6 a 7a'&+' d% la *%lda !1 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

F+G Bases e a"os

No"a como es"amos usan o el nombre con 6ue regis"ramos la base e a"os (-atabase2ame)* es!u3s* le es"amos in ican o el "i!o e ob2e"o ( Source.)pe) 6ue 6ueremos im!or"ar* luego* el nombre el ob2e"o (SourceObject) 6ue 6ueremos im!or"ar* !or ul"imo a!licamos la im!or"aci4n (do+mport)+ =l "i!o e ob2e"o es"a e"ermina o !or la enumeraci4n< com(sun(star(sheet(*ata)mport"ode
com+sun+s"ar+s/ee"+(a"a9m!or"Mo e+NON= com+sun+s"ar+s/ee"+(a"a9m!or"Mo e+Se) com+sun+s"ar+s/ee"+(a"a9m!or"Mo e+TAB)= com+sun+s"ar+s/ee"+(a"a9m!or"Mo e+eU=@O

0alor
$ 1 # ?

0alor en )nterfa2
5acio 9ns"rucci4n Se) Tabla .onsul"a

Si es"ableces el "i!o e ob2e"o 1uen"e en $ ( 2O2")* en"onces "ienes 6ue !asarle una ins"rucci4n Se)* e lo con"rario "e ar; error al im!or"ar+ To os los nombres e ob2e"os (bases e a"os* "ablas* consul"as* cam!os) is"ingue ma->sculas e min>sculas* !or lo 6ue "ienes 6ue ser mu- cui a oso e como nombrarlos - usar e:ac"amen"e es"e nombre al im!or"ar* e lo con"rario "e !ue e alguno e los siguien"es errores< .uan o el nombre e la base e a"os no corres!on e<

.uan o la "abla es"e incorrec"a<

=n el siguien"e e2em!lo* im!or"amos una "abla i1eren"e en una cel a i1eren"e<


"u. @+( @+( @+( @+( Bas%s@%@a&os223 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng sHa.la !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

,El no(.'% d% nu%s&'a .as% d% da&os sBas%@a&os A "@+'%*&o'+o" ,5a &a.la Fu% nos +n&%'%sa &'a%' sHa.la A "&.l0a+s%s" ,5a ho)a a*&+8a oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23

A!ren ien o OOo Basic

?#1

,5as 7'o7+%dad%s d% la +(7o'&a*+Kn6 7'+(%'o %l no(.'% d% la .as% d% da&os (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os ,El &+7o d% o.)%&o fu%n&% (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-H!B5E ,El no(.'% d%l o.)%&o fu%n&% (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A sHa.la ,#(7o'&a(os la &a.la6 a 7a'&+' d% la *%lda !10 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!10"3-do#(7o'&2 (>7*B@23 3 End "u.

A/ora* im!or"amos una consul"a (A3"R?) en vez e una "abla (.A!0")+


"u. @+( @+( @+( @+( Bas%s@%@a&os323 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng s$onsul&a !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

sBas%@a&os A "@+'%*&o'+o" ,!ho'a una *onsul&a s$onsul&a A "F'?$+udad%s" ,5a ho)a a*&+8a oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os ,El &+7o d% o.)%&o fu%n&%6 una *onsul&a (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-PCERO ,El no(.'% d%l o.)%&o fu%n&% (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A s$onsul&a ,#(7o'&a(os la &a.la6 a 7a'&+' d% la *%lda !1 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

Tienes 6ue "ener la !recauci4n e 6ue el nombre el ob2e"o corres!on a a su "i!o* si no* el m3"o o "e evolver; un error<

9m!or"amos una consul"a i1eren"e<


"u. @+( @+( @+( @+( Bas%s@%@a&os423 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng s$onsul&a !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

sBas%@a&os A "@+'%*&o'+o" ,Cna *onsul&a

?##
s$onsul&a A "F'?$on&a*&os" oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-PCERO (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A s$onsul&a oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

F+G Bases e a"os

.ambiemos e "i!o e ob2e"o 1uen"e* el siguien"e e2em!lo* /ace e:ac"amen"e lo mismo 6ue el !rimer e2em!lo* es ecir* nos im!or"a la "abla L"bl.on"ac"osM<
"u. @+( @+( @+( @+( Bas%s@%@a&os523 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

sBas%@a&os A "@+'%*&o'+o" ,Es&a.l%*%(os la *onsul&a "P5 s"P5 A ""E5E$H JR>M &.l$on&a*&os" oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os (>7*B@213-<a(% A ""ou'*%H?7%" ,>.s%'8a *o(o h%(os *a(.+ado %l &+7o d% fu%n&% a "P5 (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-"P5 (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A s"P5 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

=n"onces* Icual es la i1erenciaJ* la !rimera* es obvio* es 6ue es"amos usan o una ins"rucci4n Se) !ara im!or"ar los a"os* !ero+++ I6ue es Se)J* la res!ues"a sencilla8 Se) es un lengua2e es"ruc"ura o e consul"as* nos !ermi"e recu!erar LcasiM cual6uier a"o e cual6uier base e a"os con so!or"e !ara Se)* la res!ues"a com!le2a nos !o ra llevar una libro com!le"o+ =n los siguien"e e2em!los* me limi"ar3 a ar"e mues"ras e ins"rucciones Se) 6ue sean lo su1icien"emen"e ilus"ra"ivas el !o er - versa"ili a e es"e lengua2e+ Se) es un es";n ar* as 6ue* en L"eoraM* cual6uier ocumen"aci4n e el L eberaM servir"e+ .uan o im!or"amos "ablas o consul"as* es"as* se im!or"an con "o o su con"eni o* con Se)* !o emos limi"arnos e:clusivamen"e a los a"os 6ue necesi"amos* en el siguien"e e2em!lo* solo im!or"amos "res (2ombre& (aterno ) Materno) cam!os e la "abla (tblContactos)<
"u. @+( @+( @+( @+( Bas%s@%@a&os623 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

sBas%@a&os A "@+'%*&o'+o" ,Es&a.l%*%(os la *onsul&a "P5 s"P5 A ""E5E$H <o(.'%6 0a&%'no6 Ma&%'no JR>M &.l$on&a*&os" oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23

A!ren ien o OOo Basic

?#?

(>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-"P5 (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A s"P5 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

Observa como en el !rimer e2em!lo e ins"rucci4n Se)* le in icamos 6ue 6ueremos "o o (o) con el as"erisco* en es"e segun o e2em!lo* le in icamos e:!lci"amen"e 6ue cam!os 6ueremos im!or"ar* e nuevo* "en muc/o cui a o con los nombres e "us cam!os* si el cam!o no e:is"e* el m3"o o "e evolver; un error<

No"a como claramen"e nos es"a icien o 6ue el cam!o no e:is"e* recuer a 6ue en los nombres se is"ingue en"re ma->sculas - min>sculas+ )as ins"rucciones Se)* "iene unos mo i1ica ores 6ue se llaman LclausulasM* es"as no !ermi"en com!lemen"ar* limi"ar* 1il"rar - or enar en"re o"ras acciones a los a"os im!or"a os+ =n el siguien"e e2em!lo* or enamos (OR-"R !?) los a"os im!or"a os<
"u. @+( @+( @+( @+( Bas%s@%@a&os723 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

sBas%@a&os A "@+'%*&o'+o" ,Es&a.l%*%(os la *onsul&a "P5 s"P5 A ""E5E$H <o(.'%6 0a&%'no6 Ma&%'no JR>M &.l$on&a*&os >R@ER BO 0a&%'no" oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-"P5 (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A s"P5 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

=l nombre e los cam!os* casi siem!re se es"ablece e 1orma 6ue sea 1;cil e recor ar - e mani!ular !or el !rograma or* !ero muc/as veces es"e nombre no le ice muc/o al usuario* !ara es"os casos* "enemos una clausula !ara cambiar el nombre original el cam!o* !or uno e m;s 1;cil lec"ura !ara el usuario* veamos como<
"u. @+( @+( @+( Bas%s@%@a&os823 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng

?#E
@+( (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

F+G Bases e a"os

sBas%@a&os A "@+'%*&o'+o" ,Es&a.l%*%(os la *onsul&a "P5 s"P5 A ""E5E$H <o(.'%6 0a&%'no !s ""!7%ll+do 0a&%'no""6 Ma&%'no !s ""!7%ll+do Ma&%'no""6 $u(7l% !s $u(7l%a\os JR>M &.l$on&a*&os >R@ER BO 0a&%'no" oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-"P5 (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A s"P5 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

No"a el uso e las obles comillas* es"o es in is!ensable cuan o el nombre usa o (AS) con"enga es!acios como en nues"ro e2em!lo* - es"as* eben ser e:ac"amen"e las necesarias* ni una m;s ni una menos* "en cui a o con su uso+ Si revisas la es"ruc"ura e la "abla LtblContactosM no"aras 6ue el cam!o LCumpleM es e "i!o 1ec/a (-ate)* !ara /acer consul"as sobre cam!os e 1ec/as* "ienes 6ue usar una sin"a:is mu- singular* !or e2em!lo* !ara consul"ar una 1ec/a es!eci1ica* usamos<
s"P5 A ""E5E$H JR>M &.l$on&a*&os UHERE $u(7l%Ah @ ,1974T01T15, g"

Observa como "o o el cri"erio e la 1ec/a va encerra o en"re llaves* no"a el uso e la le"ra ( ( e (a"e) - las comillas en la 1ec/a* a em;s* el or en "iene 6ue ser !recisamen"e as aKomes- a* si es"ableces correc"amen"e es"e cri"erio* no "en r;s !roblemas con el mane2o e 1ec/as+ .ambiemos e base e a"os* en el siguien"e e2em!lo* usamos la base e a"os L5i eo"ecaM* - mos"ramos como !o emos or enar e 1orma ascen en"e ( ASC) !or un cam!o - e 1orma escen en"e (-"SC) !or o"ro<
"u. @+( @+( @+( @+( Bas%s@%@a&os923 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

sBas%@a&os A "1+d%o&%*a" ,Es&a.l%*%(os la *onsul&a "P5 s"P5 A ""E5E$H JR>M &.l1+d%o >R@ER BO D%n%'o !"$6 @+'%*&o' @E"$" oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-"P5 (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A s"P5 oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

.omo en los e2em!los siguien"e solo cambia la ins"rucci4n Se)* solo "e mos"rar3 es"a* mien"ras no se in i6ue lo con"rario* seguiremos usan o la base e a"os L5i eo"ecaM+ =n el siguien"e e2em!lo* 1il"ramos los a"os im!or"a os !or el cam!o (ais+

A!ren ien o OOo Basic

?#5

s"P5 A ""E5E$H

JR>M &.l1+d%o UHERE 0a+sA,MSx+*o,"

Siem!re 6ue 6uieras es"ablecer un cri"erio e 1il"ra o usa Nc=@= en on e es"ableces el CAM(OBCR+."R+O esea o - no"a "ambi3n* como /acemos uso e comillas sim!les !ara el !ar;me"ro el cri"erio* es"o* es im!or"an"e+ )a siguien"e ins"rucci4n* nos im!or"a "o os los ""ulos 6ue comiencen !or la le"ra L5M* observa el uso e una nueva clausula 0+C" sin signo igual - con el smbolo e !orcen"a2e es!u3s e la le"ra esea a sin olvi ar el uso e las comillas sim!les<
s"P5 A ""E5E$H JR>M &.l1+d%o UHERE H+&ulo 5#IE ,1e,"

A/ora* im!or"amos "o as las !elculas 6ue Lcon"enganM la !alabra LanillosM<


s"P5 A ""E5E$H JR>M &.l1+d%o UHERE H+&ulo 5#IE ,ean+llose,"

.on la siguien"e ins"rucci4n* im!or"amos "o as las !elculas 6ue uren en"re F$ - ,$ minu"os or ena os !or uraci4n* "enemos una nueva clausula !ara im!or"ar a"os en"re os valores (!".>""2) 2un"o con el o!era or L-M (A2-)<
s"P5 A ""E5E$H JR>M &.l1+d%o UHERE @u'a*+on BEHUEE< 60 !<@ 90 >R@ER BO @u'a*+on"

A/ora* im!or"amos las !elculas 6ue sean e cual6uiera ( OR) e los siguien"es aKos8 1,%E o 1,GF o #$$$* observa 6ue volvemos a /ace uso e la 1orma CAM(OBCR+."R+O<
s"P5 A ""E5E$H JR>M &.l1+d%o UHERE !\oA1974 >R !\oA1986 >R !\oA2000"

Nues"ro siguien"e e2em!lo* /ace e:ac"amen"e lo mismo 6ue el an"erior* solo 6ue a/ora /acemos uso e la clausula +2 !ara es"ablecer los aKos esea os<
s"P5 A ""E5E$H JR>M &.l1+d%o UHERE !\o #<2197461986620003"

=l siguien"e e2em!lo es mu- in"eresan"e* nos !ermi"e ob"ener un lis"a o con regis"ros >nicos (-+S.+2C.)* lo 6ue nos a la !osibili a e im!or"ar* !or e2em!lo* "o os los irec"ores 6ue "enemos en nues"ra vi eo"eca* a em;s* es una buena al"erna"iva !ara encon"rar cam!os mal ca!"ura os* !or e2em!lo* si alg>n cam!o "iene un solo es!acio e m;s* con es"a clausula "e ar;s cuen"a cuales e ellos !ue en "ener es"e caso* -a 6ue los consi erar; como os regis"ros i1eren"es<
s"P5 A ""E5E$H @#"H#<$H @+'%*&o' JR>M &.l1+d%o"

=l lengua2e Se)* "ambi3n nos !ermi"e /acer algunas o!eraciones sobre los cam!os* !or e2em!lo* en vez e regresar los is"in"os !ases 6ue "enemos* solo los con"amos ( CO32.)* no"a 6ue !rimero ob"enemos los !ases D-+S.+2C. (aisE* - es!u3s los con"amos (CO32.)* a em;s* le es"ablecemos un nombre a es"e resul"a o ( AS FF.otal (aGsesFF)<

?#F
s"P5 A ""E5E$H $>C<H2@#"H#<$H 0a+s3 !" ""Ho&al 0aGs%s"" JR>M &.l1+d%o"

F+G Bases e a"os

Po emos ob"ener* el "o"al e minu"os e nues"ra vi eo"eca* suman o ( S3M) los minu"os e uraci4n e "o as las !elculas<
s"P5 A ""E5E$H "CM2@u'a*+on3 !" ""Ho&al M+nu&os"" JR>M &.l1+d%o"

U ob"ener el !rome io (A/G) e uraci4n !or !elcula<


s"P5 A ""E5E$H !1D2@u'a*+on3 !" ""0'o(%d+o %n M+nu&os"" JR>M &.l1+d%o"

O la uraci4n m;:ima<
s"P5 A ""E5E$H M!E2@u'a*+on3 !" ""@u'a*+Kn M=x+(a"" JR>M &.l1+d%o"

O la mnima<
s"P5 A ""E5E$H M#<2@u'a*+on3 !" ""@u'a*+Kn MGn+(a"" JR>M &.l1+d%o"

=n el siguien"e e2em!lo* usamos una nueva clausula 6ue nos sirve !ara agru!ar (GRO3( !?) el resul"a o !or alg>n cam!o* !ara ob"ener al suma e minu"os !or genero* usamos la siguien"e ins"rucci4n Se)<
s"P5 A ""E5E$H D%n%'o6 "CM2@u'a*+on3 !" ""@u'a*+Kn 7o' D%n%'o"" JR>M &.l1+d%o DR>C0 BO D%n%'o"

Observa como en los e2em!los !ara ob"ener la !elcula e m;:ima ( MAH) - mnima (M+2) uraci4n* e1ec"ivamen"e ob"enemos el valor* !ero no sabes 6ue ""ulo es es"e* !ara saberlo* vamos a realizar una Lsubconsul"aM* 6ue no es o"ra cosa 6ue consul"as ani a as* en on e* el resul"a o e la consul"a in"erior* es el cri"erio e 1il"ro !ara la e:"erior* con en el siguien"e e2em!lo* a/ora si* ob"enemos "o os los a"os e la !elcula e m;:ima uraci4n en nues"ra vi eo"eca<
s"P5 A ""E5E$H JR>M &.l1+d%o UHERE @u'a*+onA2"E5E$H M!E2@u'a*+on3 JR>M &.l1+d%o3"

No "e con1un as* !rimero* ob"enemos la m;:ima uraci4n ( S"0"C. MAHD-uracionE 5ROM tbl/ideo)* solo el valor* es!u3s* es"e valor* lo es"ablecemos como cri"erio ( >H"R") e la consul"a e:"erior* on e si evolvemos "o os los cam!os* es mu- im!or"an"e el uso e los !ar3n"esis !ara la consul"a in"erior+ )os e2em!los e ins"rucciones Se) vis"as en "o os los e2em!los an"eriores* son solo una mues"ra n1ima e su !o er - versa"ili a * !ero creo* su1icien"es !ara "engas muc/o !ara !rac"icar - !robar+ =l m3"o o do+mport* no es el >nico m3"o o !ara consul"ar a"os en bases e a"os !ero si el m;s sencillo+

A!ren ien o OOo Basic

?#%

=.E.2

Insertando nue,os datos

)as ins"rucciones Se)* no solo sirven !ara im!or"ar a"os* "ambi3n nos sirven !ara inser"ar nuevos a"os en las "ablas e nues"ra base e a"os+ =n el siguien"e e2em!lo* im!or"amos los !ases a os e al"a en nues"ra "abla L"blPaisesM e nues"ra base e a"os L(irec"orioM<
"u. @+( @+( @+( @+( Bas%s@%@a&os1023 oHo)a!*&+8a !s >.)%*& sBas%@a&os !s "&'+ng sHa.la !s "&'+ng (>7*B@223 !s <%^ "*o(-sun-s&a'-.%ans-0'o7%'&?1alu%"

sBas%@a&os A "@+'%*&o'+o" sHa.la A "&.l0a+s%s" oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 (>7*B@203-<a(% A "@a&a.as%<a(%" (>7*B@203-1alu% A sBas%@a&os (>7*B@213-<a(% A ""ou'*%H?7%" (>7*B@213-1alu% A *o(-sun-s&a'-sh%%&-@a&a#(7o'&Mod%-H!B5E (>7*B@223-<a(% A ""ou'*%>.)%*&" (>7*B@223-1alu% A sHa.la oHo)a!*&+8a-g%&$%llRang%B?<a(%2"!1"3-do#(7o'&2 (>7*B@23 3 End "u.

)a im!or"aci4n an"erior* "iene 6ue /aber"e evuel"o algo mu- similar a<

Pero el m3"o o !ara im!or"ar (do+mport)* /ace e:ac"amen"e solo eso* im!or"ar* !or lo 6ue !ara inser"ar nuevos a"os usaremos una "3cnica i1eren"e+ Si revisas la es"ruc"ura e la "abla L"blPaisesM* observaras 6ue es"a 1orma a !or "res cam!os8 L9 M* LPaisM - L)(PaisM* el !rimero es un cam!o "i!o en"ero* es la clave !rimaria - su inserci4n es au"om;"ica* el segun o es un cam!o "i!o "e:"o - es re6ueri o* es ecir* no !ue e 1al"ar* - el "ercero* es un en"ero 6ue !ue e o no !ue e es"ar* es"o* la es"ruc"ura e la "abla* el nombre e los cam!os* el "i!o e cam!o - si es re6ueri o o no* son a"os in is!ensables !ara inser"ar nuevos a"os* -a 6ue* e no cum!lir con alg>n re6uerimien"o es!eci1ico o no coinci ir el "i!o e a"o 6ue se esea inser"ar con el "i!o el cam!o e la "abla* lo m;s !robable es 6ue la ins"rucci4n no "enga 3:i"o - "e evuelva un error+ An"es e em!ezar con los e2em!los !ro!ios e inserci4n e a"os* veamos la nueva 1orma e acce er a nues"ra base e a"os* el siguien"e c4 igo* "e mos"rar; "o as las bases e a"os Lregis"ra asM en O!enO11ice+org<
"u. @+( @+( @+( Bas%s@%@a&os1123 o@B$ !s >.)%*& (<o(.'%sB@23 !s "&'+ng *o1 !s #n&%g%'

,$'%a(os %l s%'8+*+o 7a'a a**%d%' ? (an+7ula' las .as%s d% da&os o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3

?#G
,>.&%n%(os los no(.'%s d% las .as%s d% da&os '%g+s&'adas (<o(.'%sB@ A o@B$-g%&El%(%n&<a(%s23 ,Mos&'a(os %l no(.'% d% *ada una Jo' *o1 A 5Bound2 (<o(.'%sB@ 3 Ho CBound 2 (<o(.'%sB@ 3 MsgBox (<o(.'%sB@2*o13 <%x& End "u.

F+G Bases e a"os

Para acce er a la base e a"os e nues"ro in"er3s* usamos<


"u. @+( @+( @+( Bas%s@%@a&os1223 o@B$ !s >.)%*& oB@ !s >.)%*& sBas%@a&os !s "&'+ng

,El no(.'% d% la .as% d% da&os sBas%@a&os A "@+'%*&o'+o" ,$'%a(os %l s%'8+*+o 7a'a a**%d%' ? (an+7ula' las .as%s d% da&os o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 ,<os as%gu'a(os d% Fu% %x+s&a la .as% d% da&os #f o@B$-hasB?<a(%2 sBas%@a&os 3 Hh%n ,"+ %x+s&%6 a**%d%(os 7o' %l no(.'% oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 ,Mos&'a(os la 'u&a d% la .as% d% da&os MsgBox $on8%'&J'o(CR52 oB@-<a(% 3 End #f End "u.

=l siguien"e e2em!lo* nos ilus"ra una nueva 1orma e /acer una consul"a (e*ecuteAuer))* i1eren"e al m3"o o o9m!or"* es"e nuevo m3"o o* "ienen muc/as varian"es !osibili a es* !ues nos a acceso al resul"a o e la consul"a !ara mani!ular ca a regis"ro - ca a cam!o seg>n nues"ras necesi a es+
"u. @+( @+( @+( @+( @+( @+( @+( Bas%s@%@a&os1323 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*& oR%sul&ado !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng

,El no(.'% d% la .as% d% da&os sBas%@a&os A "@+'%*&o'+o" s"P5 A ""E5E$H JR>M &.l0a+s%s" ,$'%a(os %l s%'8+*+o 7a'a a**%d%' ? (an+7ula' las .as%s d% da&os o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 ,<os as%gu'a(os d% Fu% %x+s&a la .as% d% da&os #f o@B$-hasB?<a(%2 sBas%@a&os 3 Hh%n ,"+ %x+s&%6 a**%d%(os 7o' %l no(.'% oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 ,$'%a(os una *on%x+on a la .as% d% da&os o$on%x+on A oB@-g%&$onn%*&+on2""6""3 ,$'%a(os un o.)%&o 7a'a las +ns&'u**+on%s "P5 o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 ,E)%*u&a(os la *onsul&a oR%sul&ado A o@%*la'a*+on-%x%*u&%Pu%'?2 s"P53 ,"+ ha? '%sul&ados #f <o& #s<ull2 oR%sul&ado 3 Hh%n @o Uh+l% oR%sul&ado-n%x& ,Mos&'a(os %l *on&%n+do d%l *a(7o

A!ren ien o OOo Basic

?#,

MsgBox oR%sul&ado-g%&"&'+ng2 2 3 5oo7 End #f End #f End "u.

A/ora si* veamos como inser"ar un nuevo regis"ro en nues"ra base e a"os<
"u. @+( @+( @+( @+( @+( @+( Bas%s@%@a&os1423 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng

,El no(.'% d% la .as% d% da&os sBas%@a&os A "@+'%*&o'+o" s"P5 A "#<"ERH #<H> ""&.l0a+s%s"" 2""0a+s""3 1!5CE" 2,Hondu'as,3" ,$'%a(os %l s%'8+*+o 7a'a a**%d%' ? (an+7ula' las .as%s d% da&os o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 ,<os as%gu'a(os d% Fu% %x+s&a la .as% d% da&os #f o@B$-hasB?<a(%2 sBas%@a&os 3 Hh%n ,"+ %x+s&%6 a**%d%(os 7o' %l no(.'% oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 ,$'%a(os una *on%x+on a la .as% d% da&os o$on%x+on A oB@-g%&$onn%*&+on2""6""3 ,$'%a(os un o.)%&o 7a'a las +ns&'u**+on%s "P5 o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 ,E)%*u&a(os la +ns%'*+on d% da&os o@%*la'a*+on-%x%*u&%C7da&%2 s"P53 End #f End "u.

=s im!or"an"e 6ue no"es 6ue es"amos usan o un nuevo m3"o o ( e*ecute3pdate) !ara e2ecu"ar la ins"rucci4n Se)+ Para inser"ar regis"ros* usamos una nueva ins"rucci4n Se) (+2S"R. +2.O)* segui a e la "abla on e inser"aremos los nuevos a"os* en"re !ar3n"esis* los nombres e los cam!os* es!u3s la clausula !ara in icar los valores ( /A03"S) - !or ul"imo* los valores a inser"ar en"re !ar3n"esis+ No"a 6ue en la "abla - los cam!os* usamos oble comilla - en los valores a inser"ar* si es"os son "e:"o* usamos comillas sim!les+ @ecor emos 6ue la "abla Ltbl(aisesM es"a con1orma a !or "res cam!os* el !rimero se llama L9 M - es un en"ero* 6ue a em;s es clave !rimaria - e inserci4n au"om;"ica* !or ello omi"imos* "an"o el cam!o como el valor* !or 6ue es"e* ser; au"om;"icamen"e inser"a o* no obs"an"e* es !osible inser"arlo si lo eseas* como en<
s"P5 A "#<"ERH #<H> ""&.l0a+s%s"" 2""#d""6 ""0a+s""3 1!5CE" 2116,Hondu'as,3"

Observa como in icamos el nombre el cam!o (9 ) - su valor (11)* !ero* al ser es"e cam!o una clave !rimaria* es"as Lno a mi"en u!lica osM* !or lo 6ue si el valor in ica o -a e:is"e* "e ar; un error como el siguien"e* on e claramen"e nos in ica 6ue es"amos violan o la unici a el n ice* in"en"an o inser"ar valores u!lica os !ara la columna (cam!o) 9 +

??$

F+G Bases e a"os

Aun6ue es"e error en "iem!o e e2ecuci4n es in"erce!"able - mani!ulable* como lo vimos en el ca!i"ulo E+1$+ .on"rol e errores* si "ienes un cam!o 6ue es clave !rimaria - e inserci4n au"om;"ica como el cam!o L9 M e nues"ra "abla* la recomen aci4n es 6ue !ermi"as al mo"or e bases e a"os* se encargue e inser"ar el valor siguien"e como en nues"ro e2em!lo* 6ue* e2ecu"a varias veces !ara 6ue no"es 6ue e1ec"ivamen"e* inser"a el valor au"om;"icamen"e+ (es!u3s "enemos el cam!o LPaisM* si e2ecu"as"e la macro varias veces - /aces la consul"a e la "abla o la abres es e Base* no"aras 6ue a/ora* "enemos varias veces el !as reci3n inser"a o* Ies es"o correc"oJ* claro 6ue no* la i ea e una base e a"os es "ener la menor can"i a e in1ormaci4n re!e"i a* e /ec/o* Lno eberaM /aber in1ormaci4n re!e"i a en una base e a"os+ Para evi"ar la u!lici a e a"os en o"ro cam!o 6ue no sea la clave !rimaria* "ienes os !osibles soluciones8 una* !ue es crear un Gndice en es"e cam!o* en el cual se le in ica 6ue solo con"enga a"os >nicos con lo cual* si se in"en"an agregar a"os u!lica os* ob"en r;s un error in"erce!"able en "iem!o e e2ecuci4n* !ara ello* "ienes 6ue mo i1icar la "abla es e Base - agregar el n ice manualmen"e (o !or c4 igo) lo cual a!ren eremos m;s a elan"e* !or a/ora* usaremos el segun o m3"o o* 6ue consis"e en consul"ar si el !as -a e:is"e o no* - ac"uar en consecuencia* una !rimera a!ro:imaci4n a es"e soluci4n seria<
"u. @+( @+( @+( @+( @+( @+( @+( @+( Bas%s@%@a&os1523 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*& oR%sul&ado !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng s0a+s !s "&'+ng

s0a+s A H'+(2 #n7u&Box2 "#n&'odu*% %l no(.'% d%l nu%8o 7aGs" 3 3 #f s0a+s XY "" Hh%n sBas%@a&os A "@+'%*&o'+o" s"P5 A ""E5E$H 0a+s JR>M ""&.l0a+s%s"" UHERE 0a+sA," 9 s0a+s 9 "," o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 #f o@B$-hasB?<a(%2 sBas%@a&os 3 Hh%n oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 o$on%x+on A oB@-g%&$onn%*&+on2""6""3 o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 ,1%'+f+*a(os Fu% %l 7aGs no %x+s&a oR%sul&ado A o@%*la'a*+on-%x%*u&%Pu%'?2 s"P53 oR%sul&ado-n%x&23 #f oR%sul&ado-g%&Ro^ A 0 Hh%n ,"+ no %x+s&% lo +ns%'&a(os s"P5 A "#<"ERH #<H> ""&.l0a+s%s"" 2""0a+s""3 1!5CE" 2," 9 s0a+s 9 ",3" o@%*la'a*+on-%x%*u&%C7da&%2 s"P53 MsgBox "El 7aGs4 " 9 s0a+s 9 " s% +ns%'&o *o''%*&a(%n&% %n la .as% d% da&os" Els% oR%sul&ado-*los%23 MsgBox "El 7aGs4 " 9 s0a+s 9 " ?a %x+s&% %n la .as% d% da&os" End #f ,$%''a(os las *on%x+on%s o@%*la'a*+on-*los%23

A!ren ien o OOo Basic


o$on%x+on-*los%23 ,5+.%'a(os la (%(o'+a oR%sul&ado A <o&h+ng o@%*la'a*+on A <o&h+ng o$on%x+on A <o&h+ng End #f Els% MsgBox "El *a(7o no 7u%d% %s&a' 8a*Go" End #f End "u.

??1

Aun con es"a vali aci4n* es !osible 6ue /a-a "o ava a"os u!lica os cuan o in"en"emos in"ro ucir varian"es como LM3:icoM* LMw:icoM* LMwpicoM o LMwp9.OM* es"o es !or 6ue el cam!o is"ingue ma->sculas e min>sculas* e nuevo* "ienes os al"erna"ivas8 la !rimero es obvia* /aces la consul"a - com!aras (si /a- resul"a o)* el valor evuel"o con el valor nuevo "o o en ma->sculas o min>sculas seg>n !re1ieras* la o"ra* es mo i1icar la es"ruc"ura e la "abla !ara 6ue ignore es"a is"inci4n* salvo en con"a as e:ce!ciones* es"a segun a o!ci4n es m;s r;!i a* !rac"ica - segura - como siem!re* "ienes la ul"ima !alabra+ Mo i1ica la macro an"erior !ara 6ue no is"inga ma->sculas e min>sculas - !ermi"e al usuario seguir in"ro ucien o !ases /as"a 6ue 6uiera !resionan o el bo"4n Cancelar el cua ro e ialogo+ =l ul"imo cam!o e nues"ra "abla es< LM)(PaisM* 6ue es un en"ero* !ero el cam!o no es re6ueri o* !or lo 6ue !ue es omi"irlo como lo /emos /ec/o /as"a a/ora* o !ue es inser"arlo* como en el siguien"e e2em!lo<
s"P5 A "#<"ERH #<H> ""&.l0a+s%s"" 2""0a+s""6 ""5@0a+s""3 1!5CE" 2,1%n%:u%la,6453"

Observa 6ue al ser un n>mero* no lleva comillas* no as el cam!o* L"o osM llevan sus comillas obles+ =n L"eoraM* una base e a"os i eal* no L eberaM "ener cam!os vacos* !or lo 6ue* aun6ue no sea obliga"orio* !rocura e2ar vacos la menor can"i a e cam!os !osible* en algunas ocasiones* si un cam!o es"a casi siem!re vaco* "al vez !o ras !lan"ear"e la !osibili a e eliminarlo e la "abla* aun6ue no es mu- recomen able es"ar eliminan o o inser"an o cam!os* es muc/o me2or - m;s e1icien"e* L iseKarM "us "ablas* an"ici!an o lo me2or !osible* su con"eni o es"ruc"ura - evi"ar en lo !osible cambios cons"an"es uran"e la im!lemen"aci4n e "u c4 igo* "e evi"aras algunos olores e cabeza+ Para "erminar es"e "ema* veamos un e2em!lo on e se inser"a una 1ec/a* la cual* ebe ir en"re comillas sim!les - mu- im!or"an"e* en el or en aKo-mes- a* si no* "e ar; un error en "iem!o e e2ecuci4n+
"u. @+( @+( @+( @+( @+( @+( Bas%s@%@a&os1623 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng

sBas%@a&os A "@+'%*&o'+o" s"P5 A "#<"ERH #<H> ""&.l$on&a*&os"" 2""<o(.'%""6""0a&%'no""6""Ma&%'no""6""$u(7l%""6""#d$+udad""3 1!5CE" 2,[uan,6,Do(%:,6,0%'%:,6,1981T01T31,623" o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 o$on%x+on A oB@-g%&$onn%*&+on2""6""3 o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 o@%*la'a*+on-%x%*u&%C7da&%2 s"P53

??#

F+G Bases e a"os

o@%*la'a*+on-*los%23 o$on%x+on-*los%23 o@%*la'a*+on A <o&h+ng o$on%x+on A <o&h+ng End "u.

)as recomen aciones generales al inser"ar a"os son< "en cui a o con el "i!o e a"os el cam!o es"ino* cui a e 6ue no 1al"e ning>n cam!o re6ueri o - cui a los cam!os 6ue "ienen alguna Lrelaci4nM con un cam!o e o"ra "abla+

=.E.

(ctuali9ando datos

)a ac"ualizaci4n e a"os en una "abla* es una acci4n recurren"e en la mani!ulaci4n e bases e a"os+ 5eamos como /acerlo* el siguien"e e2em!lo* ac"ualiza el cam!o L)(PaisM e la "abla L"blPaisesM !ero solo el regis"ro 6ue cum!le la con ici4n<
"u. @+( @+( @+( @+( @+( @+( Bas%s@%@a&os1723 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng

sBas%@a&os A "@+'%*&o'+o" ,$ons&'u+(os la +ns&'u**+Kn d% a*&ual+:a*+Kn s"P5 A "C0@!HE ""&.l0a+s%s"" "EH ""5@0a+s""A57 UHERE ""0a+s""A,$olo(.+a," o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 o$on%x+on A oB@-g%&$onn%*&+on2""6""3 o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 o@%*la'a*+on-%x%*u&%C7da&%2 s"P53 o@%*la'a*+on-*los%23 o$on%x+on-*los%23 o@%*la'a*+on A <o&h+ng o$on%x+on A <o&h+ng End "u.

Para ac"ualizar* usamos una nueva ins"rucci4n Se) ( 3(-A.")* es!u3s es"ablecemos (S".)* el cam!o a ac"ualizar - el nuevo valor* si /a- m;s cam!o se se!aran !or comas* !or >l"imo* la con ici4n (>H"R") !ara ac"ualizar solo los regis"ros esea os* cui a o* si no es"ableces un cri"erio* "e ac"ualizar; L"o osM los regis"ros e "u "abla+ Si el cri"erio no evuelve ning>n resul"a o* no veras ning>n mensa2e* sim!lemen"e no /ar; ning>n cambio en la "abla+ !osibili a
"u. @+( @+( @+( @+(

=n el siguien"e e2em!lo* mos"ramos el !as - la clave la a e ca a uno* con la e cambiarlo<

Bas%s@%@a&os1823 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*&

A!ren ien o OOo Basic


@+( @+( @+( @+( @+( @+( o@%*la'a*+on1 !s >.)%*& oR%sul&ado !" >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng s#nfo !s "&'+ng s$la8% !s "&'+ng

???

sBas%@a&os A "@+'%*&o'+o" s"P5 A ""E5E$H 0a+s6 5@0a+s JR>M &.l0a+s%s" o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 o$on%x+on A oB@-g%&$onn%*&+on2""6""3 o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 o@%*la'a*+on1 A o$on%x+on-*'%a&%"&a&%(%n&23 oR%sul&ado A o@%*la'a*+on-%x%*u&%Pu%'?2 s"P53 @o Uh+l% oR%sul&ado-<%x& s#nfo A "El 7a+s4 " 9 oR%sul&ado-g%&"&'+ng213 9 " &+%n% *o(o *la8% 5ada4 " 9 / oR%sul&ado-g%&"&'+ng223 9 $h'2133 9 $h'2133 9 "#n&'odu*% la nu%8a *la8% lada" s$la8% A 1al2H'+(2#n7u&Box2s#nfo333 #f s$la8% Y 0 Hh%n s"P5 A "C0@!HE ""&.l0a+s%s"" "EH ""5@0a+s""A" 9 s$la8% 9 " UHERE ""0a+s""A," 9 oR%sul&ado-g%&"&'+ng213 9 "," o@%*la'a*+on1-%x%*u&%C7da&%2 s"P53 End #f 5oo7 oR%sul&ado-*los%23 o@%*la'a*+on-*los%23 o@%*la'a*+on1-*los%23 o$on%x+on-*los%23 oR%sul&ado A <o&h+ng o@%*la'a*+on A <o&h+ng o@%*la'a*+on1 A <o&h+ng o$on%x+on A <o&h+ng End "u.

Observa 6ue creamos os eclaraciones (createStatement)* una es !ara la consul"a e selecci4n - la o"ra !ara la ac"ualizaci4n* no !ue es usar la misma* !ues se ven a1ec"a as una !or la o"ra+ =n nues"ro siguien"e e2em!lo* ac"ualizamos la 1ec/a el con"ac"o con 9 l $<
"u. @+( @+( @+( @+( @+( @+( Bas%s@%@a&os1923 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng

sBas%@a&os A "@+'%*&o'+o" ,$ons&'u+(os la +ns&'u**+Kn d% a*&ual+:a*+Kn s"P5 A "C0@!HE ""&.l$on&a*&os"" "EH ""$u(7l%""A,1980T02T28, UHERE ""#d""A0" o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 o$on%x+on A oB@-g%&$onn%*&+on2""6""3 o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 o@%*la'a*+on-%x%*u&%C7da&%2 s"P53 o@%*la'a*+on-*los%23 o$on%x+on-*los%23 o@%*la'a*+on A <o&h+ng o$on%x+on A <o&h+ng End "u.

??E

F+G Bases e a"os

Al igual 6ue en la inserci4n* la 1ec/a ebe cum!lir el or en aKo-mes- a - es"ar en"re comillas sim!les+ .ui a* res!e"ar el "i!o e a"o el cam!o a ac"ualizar+

=.E.)

&orrando datos

Borrar a"os es sumamen"e sim!le* !or ello* "en muc/o cui a o cuan o uses es"a ins"rucci4n* el siguien"e e2em!lo borra un !as e la "abla<
"u. @+( @+( @+( @+( @+( @+( Bas%s@%@a&os2023 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng

sBas%@a&os A "@+'%*&o'+o" ,$ons&'u+(os la +ns&'u**+Kn d% .o''ado s"P5 A "@E5EHE JR>M ""&.l0a+s%s"" UHERE ""5@0a+s""A57" o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 o$on%x+on A oB@-g%&$onn%*&+on2""6""3 o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 o@%*la'a*+on-%x%*u&%C7da&%2 s"P53 o@%*la'a*+on-*los%23 o$on%x+on-*los%23 o@%*la'a*+on A <o&h+ng o$on%x+on A <o&h+ng End "u.

W.ui a oV* si no es"ableces la con ici4n* L borraras toda el contenido de la tabla M* es recomen able* en cual6uier o!eraci4n e borra o* as sea un cam!o* una "abla* un arc/ivo o lo 6ue sea* !regun"arle al usuario si es"a seguro e realizar la acci4n e in1ormarle 6ue es"a no se !ue e es/acer+ )as ins"rucciones e borra o* !ue en a1ec"ar a "ablas 6ue es"3n Lrelaciona asM* "an"o la ac"ualizaci4n como el borra o* es";n liga os con un conce!"o en bases e a"os 6ue se llama Lin"egri a re1erencialM* "ema 6ue sale e los !ro!4si"os e es"e libro* !ero 6ue si 6uieres !ro1un izar en ello* "ienes 6ue conocerlo* es"u iarlo* com!ren erlo - a!licarlo en "us bases e a"os* !or a/ora* con 6ue "engas el cui a o e no e2ar L/u3r1anosM a "us a"os es m;s 6ue su1icien"e+ =n el siguien"e e2em!lo* borramos "o os los con"ac"os 6ue se llamen XiuanX<
"u. @+( @+( @+( @+( @+( @+( Bas%s@%@a&os2123 o@B$ !s >.)%*& oB@ !s >.)%*& o$on%x+on !s >.)%*& o@%*la'a*+on !s >.)%*& sBas%@a&os !s "&'+ng s"P5 !s "&'+ng

sBas%@a&os A "@+'%*&o'+o" ,$ons&'u+(os la +ns&'u**+Kn d% .o''ado s"P5 A "@E5EHE JR>M ""&.l$on&a*&os"" UHERE ""<o(.'%""A,[uan," o@B$ A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-sd.-@a&a.as%$on&%x&"3 oB@ A o@B$-g%&B?<a(%2 sBas%@a&os 3 o$on%x+on A oB@-g%&$onn%*&+on2""6""3

A!ren ien o OOo Basic


o@%*la'a*+on A o$on%x+on-*'%a&%"&a&%(%n&23 o@%*la'a*+on-%x%*u&%C7da&%2 s"P53 o@%*la'a*+on-*los%23 o$on%x+on-*los%23 o@%*la'a*+on A <o&h+ng o$on%x+on A <o&h+ng End "u.

??5

)os "emas vis"os en es"e ca!i"ulo* son solo una !e6ueKa !ar"e e ese enorme "ema 6ue son las bases e a"os* volveremos a ellos en el ca!i"ulo re1eren"e a Base* aun6ue !rocuran o man"ener el nivel b;sico 6ue venimos mane2an o* no obs"an"e* "ienes -a* /erramien"as su1icien"es !ara ob"ener muc/o !rovec/o e "us a"os - "us conocimien"os+

=.G

Dra2icando datos

(icen 6ue una imagen vale m;s 6ue mil !alabras* la ver a es 6ue -o !re1iero las mil !alabras* no obs"an"e* ar3 !or cier"a la aseveraci4n an"erior - veremos como arle LimagenM a nues"ros a"os* 6ue e eso se "ra"a cuan o /acemos gr;1icos+ 5amos a crear el siguien"e gr;1ico e la !oblaci4n e cinco !ases e Am3rica )a"ina+

=l cual creamos con la siguien"e macro<


"u. @+( @+( @+( D'af+*ando123 oHo)a!*&+8a !s >.)%*& oD'af+*os !s >.)%*& (Rangos203

??F
@+( s<o(.'% !s "&'+ng @+( oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% @+( o@+' !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss ,!**%so a la ho)a a*&+8a oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,El no(.'% d% nu%s&'o g'=f+*o s<o(.'% A "D'af+*o01" ,El &a(a\o ? la 7os+*+Kn d%l nu%8o g'=f+*o6 &odas las (%d+das ,%n *%n&Ss+(as d% (+lG(%&'o U+&h oR%* -E A 5500 ,@+s&an*+a d%sd% la +:Fu+%'da d% la ho)a -O A 0 ,@+s&an*+a d%sd% la 7a'&% su7%'+o' -U+d&h A 10000 ,El an*ho d%l g'=f+*o -H%+gh& A 10000 ,El al&o d%l g'=f+*o End U+&h ,5a d+'%**+Kn d%l 'ango d% da&os 7a'a %l g'=f+*o U+&h o@+' -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&$olu(n A 0 -End$olu(n A 1 -"&a'&Ro^ A 0 -EndRo^ A 5 End U+&h ,Es una (a&'+: d% 'angos6 7u%s s% 7u%d%n %s&a.l%*%' (=s d% uno (Rangos203 A o@+' ,!**%d%(os al *on)un&o d% &odos los g'=f+*os d% la ho)a oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 ,1%'+f+*a(os Fu% no %x+s&a %l no(.'% #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% ,"+ no %x+s&% lo ag'%ga(os oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 End #f End "u.

F+, &ra1ican o a"os

=l m3"o o !ara agregar un nuevo gr;1ico (add2e8!)2ame)* cons"a e cinco argumen"os<


add<%^B?<a(%2<o(.'%6 R%*&angulo6 Rangos6 En*a.%:ado$olu(na6 En*a.%:adoJ+la3

1+ Nombre< es el nombre el ob2e"o a nivel c4 igo* es"e nombre es i1eren"e el 6ue !ue e es"ablecer el usuario en la in"er1az e la a!licaci4n* es in is!ensable 6ue no e:is"a o"ro gr;1ico con es"e valor+ #+ @ec";ngulo< es una es"ruc"ura com sun star a8t Rectangle 6ue !ermi"e es"ablecer el "amaKo - la !osici4n el gr;1ico* las uni a es es";n es!eci1ica as en cen"3simas e milme"ro* 1$$$ l 1 cm ?+ @angos< es una ma"riz e rangos* es ecir* e es"ruc"uras com sun star table CellRangeAddress 6ue guar an la irecci4n el rango !ara los a"os e origen el gr;1ico+ E+ =ncabeza o.olumna< valor booleano* es"ableci o en ver a ero (True) sirve !ara in icar si la 1ila su!erior se usara como "i"ulo e e"i6ue"as !ara e2e o le-en a+ 5+ =ncabeza o'ila< valor booleano* es"ableci o en ver a ero (True) sirve !ara in icar si se usar; la columna e la iz6uier a como e"i6ue"as e e2e o le-en a+ Oa crea o el gr;1ico* !o emos !ersonalizarlo com!le"amen"e a nues"ro gus"o+ =n el siguien"e e2em!lo* creamos "res nuevos gr;1icos* e "res es"ilos i1eren"es< columnas* barras circular* uno al la o e o"ro* "enien o como origen e a"os* el mismo el e2em!lo an"erior<

A!ren ien o OOo Basic

??%

"u. @+( @+( @+( @+( @+( @+( @+(

D'af+*ando223 oHo)a!*&+8a !s >.)%*& oD'af+*os !s >.)%*& oD'af+*o !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o@+' !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

,!**%so a la ho)a a*&+8a oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,El no(.'% d% nu%s&'o g'=f+*o s<o(.'% A "D'af+*o!" ,El &a(a\o ? la 7os+*+Kn d%l nu%8o g'=f+*o6 &odas las (%d+das ,%n *%n&Ss+(as d% (+lG(%&'o U+&h oR%* -E A 0 ,@+s&an*+a d%sd% la +:Fu+%'da d% la ho)a -O A 4000 ,@+s&an*+a d%sd% la 7a'&% su7%'+o' -U+d&h A 10000 ,El an*ho d%l g'=f+*o -H%+gh& A 10000 ,El al&o d%l g'=f+*o End U+&h ,5a d+'%**+Kn d%l 'ango d% da&os 7a'a %l g'=f+*o U+&h o@+' -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&$olu(n A 0 -End$olu(n A 1 -"&a'&Ro^ A 0 -EndRo^ A 5 End U+&h ,Es una (a&'+: d% 'angos6 7u%s s% 7u%d%n %s&a.l%*%' (=s d% uno (Rangos203 A o@+' ,!**%d%(os al *on)un&o d% &odos los g'=f+*os d% la ho)a oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 ,1%'+f+*a(os Fu% no %x+s&a %l no(.'% #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% ,"+ no %x+s&% lo ag'%ga(os6 d% fo'(a 7'%d%&%'(+nada s% *'%a ,un g'=f+*o d% *olu(nas oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 End #f ,$a(.+a(os %l no(.'% ? la 7os+*+Kn 7a'a un s%gundo g'=f+*o s<o(.'% A "D'af+*oB" U+&h oR%* -E A 10000 -O A 4000 End U+&h #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 ,!**%d%(os al nu%8o g'=f+*o oD'af+*o A oD'af+*os-g%&BO<a(%2 s<o(.'% 3-g%&E(.%dd%d>.)%*&23 ,Es&a.l%*%(os Fu% s%an .a''as %n 8%: d% *olu(nas oD'af+*o-g%&@+ag'a(-1%'&+*al A H'u% End #f ,1ol8%(os a *a(.+a' %l no(.'% ? la 7os+*+Kn 7a'a un &%'*%' g'=f+*o s<o(.'% A "D'af+*o$" U+&h oR%* -E A 20000 -O A 4000 End U+&h #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o"

??G
Els%

F+, &ra1ican o a"os

oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&BO<a(%2 s<o(.'% 3-g%&E(.%dd%d>.)%*&23 oD'af+*o-s%&@+ag'a(2 oD'af+*o-*'%a&%#ns&an*%2"*o(-sun-s&a'-*ha'&-0+%@+ag'a("33 End #f End "u.

)os gr;1icos e columnas - barras son el mismo "i!o e gr;1ico* e:ce!"o !or la orien"aci4n* uno es ver"ical - o"ro es /orizon"al* !ara el "ercer gr;1ico* cambiamos com!le"amen"e su "i!o (set-iagram)* lo es"ablecemos circular* "oma en cuen"a* 6ue ca a gr;1ico es"a !ensa o !ara un e"ermina o "i!o e a"os* los "i!os e gr;1icos 6ue !ue es es"ablecer son< com(sun(star(chart
com+sun+s"ar+c/ar"+Bar(iagram com+sun+s"ar+c/ar"+Area(iagram com+sun+s"ar+c/ar"+)ine(iagram com+sun+s"ar+c/ar"+Pie(iagram com+sun+s"ar+c/ar"+(onu"(iagram com+sun+s"ar+c/ar"+Ne"(iagram com+sun+s"ar+c/ar"+pO(iagram com+sun+s"ar+c/ar"+S"ocs(iagram

3ipo
Barras (- columnas) dreas )neas .ircular (ona @e (is!ersi4n pO S"ocs

.a a uno e es"os "i!os* "iene varian"es 6ue mul"i!lican las !osibili a es !ara gra1icar la in1ormaci4n* !or e2em!lo* re!resen"aciones en ?(* agregar lneas - !un"os* en"re o"ras carac"ers"icas 6ue veremos m;s a elan"e+ )a ma-or !ar"e e los elemen"os e un gr;1ico* son en reali a una 1orma ( S$ape)* a la cual le !ue es es"ablecer sus !ro!ie a es* !rinci!almen"e8 el es"ilo e le"ra ("i!o e 1uen"e* color* negri"as* "amaKo* e"c)* el es"ilo e 1on o (es"ilo* color* e"c)* - el es"ilo e bor e ("i!o e lnea* color* anc/o* e"c)* en"re o"ras m;s* vamos a mos"rar como mo i1icar los !rinci!ales elemen"os e un gr;1ico* los siguien"es e2em!los mani!ulan el gr;1ico selecciona o* !ero "o as las !ro!ie a es 6ue veremos* las !ue es es"ablecer !er1ec"amen"e al crearlo e mo o 6ue "u gr;1ico es"e con1igura o com!le"amen"e a "u gus"o - necesi a a la !rimera+ 5amos a /acer uso e las siguien"es subru"inas !ara ar 1orma"o<
,"u.'u&+na 7a'a fo'(a&%a' %l &%x&o d% una fo'(a6 s+ no Fu+%'%s *a(.+a' alguna ,7'o7+%dad6 solo 7asa una *ad%na 8a*Ga %n los &%x&os ? un 0 %n los n;(%'os "u. Jo'(a&oH%x&o2>.) !s >.)%*&6 H%x&o !s "&'+ng6 Ju%n&% !s "&'+ng6 <%g !s #n&%g%'6 Ha( !s #n&%g%'6 $olo' !s 5ong3 @+( oH%x&o !s >.)%*& @+( (H%x&o203 ,El &+&ulo d%l g'=f+*o %s algo %s7%*+al #f >.)-su77o'&s"%'8+*%2"*o(-sun-s&a'-*ha'&2-H+&l%"3 Hh%n ,R%Fu+%'% un o.)%&o "$ad%na Jo'(a&%ada" 2Jo'(a&&%d"&'+ng3 oH%x&o A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-*o(7-*ha'&-Jo'(a&&%d"&'+ng"3 ,O ag'%ga's% a una (a&'+: (H%x&o203 A oH%x&o ,Es&a.l%*%' %l &%x&o >.)-s%&H%x&2 (H%x&o 3 Els% oH%x&o A >.)

A!ren ien o OOo Basic

??,

End #f ,$a(.+a(os %l fo'(a&o d%l &%x&o U+&h oH%x&o #f H%x&o XY "" Hh%n -"&'+ng A H%x&o #f Ju%n&% XY "" Hh%n -$ha'Jon&<a(% A Ju%n&% #f <%g Y 0 Hh%n -$ha'U%+gh& A <%g #f Ha( Y 0 Hh%n -$ha'H%+gh& A Ha( #f $olo' Y 0 Hh%n -$ha'$olo' A $olo' End U+&h End "u. ,"u.'u&+na 7a'a *a(.+a' %l fondo d% una fo'(a6 s+ no Fu+%'%s n+ng;n fondo ,%s&a.l%*% %l %s&+lo %n 0 "u. Jo'(a&oJondo2>.) !s >.)%*&6 Es&+lo !s #n&%g%'6 $olo' !s 5ong3 U+&h >.) -J+llBa*]g'ound A H'u% -J+ll"&?l% A Es&+lo #f $olo' Y 0 Hh%n -J+ll$olo' A $olo' End U+&h End "u. ,"u.'u&+na 7a'a *a(.+a' la lGn%a d% una fo'(a6 s+ no Fu+%'%s lGn%a6 ,%s&a.l%*% %l %s&+lo %n 0 "u. Jo'(a&o5+n%a2>.) !s >.)%*&6 Es&+lo !s #n&%g%'6 $olo' !s 5ong6 !n*ho !s #n&%g%'3 U+&h >.) -5+n%"&?l% A Es&+lo #f $olo' Y 0 Hh%n -5+n%$olo' A $olo' #f !n*ho Y 0 Hh%n -5+n%U+d&h A !n*ho End U+&h End "u. ,Jun*+Kn 7a'a d%8ol8%' %l g'=f+*o a*&+8o ,d%8u%l8% <C55 s+ no %s un g'=f+*o Jun*&+on g%&D'af+*o23 !s >.)%*& @+( oHo)a!*&+8a !s >.)%*& @+( oD'af+*os !s >.)%*& @+( oD'af+*o !s >.)%*& @+( o"%l !s >.)%*& @+( s<o(.'% !s "&'+ng @+( s#nfo !s "&'+ng o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A "*o(-sun-s&a'-d'a^+ng-"8x"ha7%$oll%*&+on" Hh%n o"%l A o"%l-g%&B?#nd%x203 #f o"%l-su77o'&s"%'8+*%2"*o(-sun-s&a'-d'a^+ng->5E2"ha7%"3 Hh%n s<o(.'% A o"%l-0%'s+s&<a(% oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n g%&D'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3-g%&E(.%dd%d>.)%*&23 End #f End #f End #f End Jun*&+on

=n el siguien"e e2em!lo* agregamos - amos 1orma"o al "i"ulo - al sub"i"ulo el gr;1ico* observa 6ue si no e:is"e el "i"ulo lo creamos* el sub"i"ulo siem!re e:is"e* solo /a- 6ue e"erminar si lo mos"ramos o no* como se in ica en los comen"arios<
"u. D'af+*ando323

?E$
@+( oD'af+*o !s >.)%*& @+( oH+&ulo !s >.)%*& @+( o"u.H+&ulo !s >.)%*& ,!**%d%(os al g'=f+*o s%l%**+onado oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n

F+, &ra1ican o a"os

,"+ ha? un g'=f+*o6 s%l%**+ona(os %l &G&ulo oH+&ulo A oD'af+*o-g%&H+&l%>.)%*&23 #f #s<ull2oH+&ulo3 Hh%n ,"+ no %x+s&% %l &G&ulo lo *'%a(os oH+&ulo A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-*ha'&2-H+&l%"3 End #f ,5% da(os fo'(a&o al &%x&o d%l &G&ulo $all Jo'(a&oH%x&o2 oH+&ulo6 "Ha.+&an&%s 0o' 0aGs"6 "5+.%'a&+on "%'+f"6 1506 156 RDB225560603 3 ,5% da(os fo'(a&o al fondo d%l &+&ulo $all Jo'(a&oJondo2 oH+&ulo6 16 RDB2220622062203 3 ,5% da(os fo'(a&o a la lGn%a $all Jo'(a&o5+n%a2 oH+&ulo6 16 RDB210065062536 100 3 ,"+ %s&a.l%*%s la lGn%a6 &al 8%: s%a .u%na +d%a6 %s&a.l%*%' los (a'g%n%s ,al &%x&o 7a'a Fu% no s% 8%a &an 7%gado U+&h oH+&ulo -0a'a5%f&Ma'g+n A 300 -0a'aR+gh&Ma'g+n A 300 -0a'aHo7Ma'g+n A 200 -0a'aBo&&o(Ma'g+n A 200 End U+&h ,O lo %s&a.l%*%(os oD'af+*o-s%&H+&l%>.)%*&2 oH+&ulo 3 ,Es&a.l%*%(os Fu% s% (u%s&'% %l su.&+&ulo oD'af+*o-Has"u.H+&l% A H'u% ,!**%d%(os al su.&+&ulo o"u.H+&ulo A oD'af+*o-"u.H+&l% ,5% da(os fo'(a&o al &%x&o6 fondo ? lGn%a $all Jo'(a&oH%x&o2 o"u.H+&ulo6 "!(S'+*a 5a&+na"6 "5+.%'a&+on "%'+f"6 1506 126 RDB22556150603 3 $all Jo'(a&oJondo2 o"u.H+&ulo6 16 RDB2240624062403 3 $all Jo'(a&o5+n%a2 o"u.H+&ulo6 26 RDB210065062536 50 3 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

)os margenes el bor e al "e:"o* solo e:is"en en el ""ulo* no as en el sub""ulo+ Si usas normalmen"e un con2un"o e 1uen"es* !o ras usar una ma"riz e "e:"o ( string) con los nombres e las 1uen"es 6ue m;s uses* !or e2em!lo<
@+( (Ju%n&%s243 !s "&'+ng (Ju%n&%s203 (Ju%n&%s213 (Ju%n&%s223 (Ju%n&%s233 (Ju%n&%s243 A A A A A "5+.%'a&+on "%'+f" "5+.%'a&+on "ans" "5+.%'a&+on Mono" "J'%%Mono" "J'%%"ans"

O mira 6ue bien nos va 6ue an o* bueno* no "an bien* -a sabes 6ue so- mu- malo !ara el iseKo* as 6ue no "e me !ongas e:igen"e+

A!ren ien o OOo Basic

?E1

A/ora* cambiaremos el 1orma"o e la le-en a* el circulo (bueno* in"en"o e circulo) ro2o en la imagen an"erior+ No"a 6ue en la llama a a la subru"ina 5ormato.e*to* el argumen"o .e*to& 6ue nos sirve !ara es"ablecer el ""ulo - el sub""ulo* a/ora* le !asamos una ca ena vaca* es"o es mu- im!or"an"e* !ues la le-en a no im!lemen"a la !ro!ie a String* !or lo 6ue si in"en"as es"ablecerla* "e ar; un error en "iem!o e e2ecuci4n* 6ue claro* !ue es in"erce!"ar - mani!ular+
"u. D'af+*ando423 @+( oD'af+*o !s >.)%*& @+( o5%?%nda !s >.)%*& oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n ,!**%d%(os a la l%?%nda o5%?%nda A oD'af+*o-5%g%nd23 ,5% da(os fo'(a&o al &%x&o6 fondo ? lGn%a $all Jo'(a&oH%x&o2 o5%?%nda6 ""6 "5+.%'a&+on "ans"6 1506 106 RDB2255615061003 3 $all Jo'(a&oJondo2 o5%?%nda6 16 RDB2240624062403 3 $all Jo'(a&o5+n%a2 o5%?%nda6 36 RDB210065062536 50 3 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

=n algunos casos* como en es"e e2em!lo* no "iene muc/o sen"i o mos"rar la le-en a* !ues es una sola serie e a"os* as 6ue me2or la ocul"amos - es"ablecemos el "i"ulo e el e2e p el e2e O* as como su 1orma"o+
"u. D'af+*ando523 @+( oD'af+*o !s >.)%*& @+( oH+&uloE)% !s >.)%*& oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n ,>*ul&a(os la l%?%nda oD'af+*o-Has5%g%nd A Jals% ,!**%d%(os al &+&ulo d%l %)% E

?E#

F+, &ra1ican o a"os

oH+&uloE)% A oD'af+*o-g%&@+ag'a(-E!x+sH+&l% ,Es&a.l%*%(os Fu% s% (u%s&'% oD'af+*o-g%&@+ag'a(-HasE!x+sH+&l% A H'u% $all Jo'(a&oH%x&o2 oH+&uloE)%6 "0aGs%s"6 "5+.%'a&+on "ans"6 1506 116 RDB2100615061003 3 $all Jo'(a&oJondo2 oH+&uloE)%6 16 RDB2240624062403 3 $all Jo'(a&o5+n%a2 oH+&uloE)%6 16 RDB22006200620036 20 3 ,!**%d%(os al &+&ulo d%l %)% O oH+&uloE)% A oD'af+*o-g%&@+ag'a(-O!x+sH+&l% ,Es&a.l%*%(os Fu% s% (u%s&'% oD'af+*o-g%&@+ag'a(-HasO!x+sH+&l% A H'u% $all Jo'(a&oH%x&o2 oH+&uloE)%6 "Ha.+&an&%s"6 "5+.%'a&+on "ans"6 1506 116 RDB2100615061003 3 $all Jo'(a&oJondo2 oH+&uloE)%6 16 RDB2240624062403 3 $all Jo'(a&o5+n%a2 oH+&uloE)%6 16 RDB22006200620036 20 3 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

=l !un"o im!or"an"e* es la 1orma en 6ue acce emos a los ""ulos e los e2es (ge"(iagram)* es"os* es";n con"eni os L en"roM el gr;1ico* !ero "ambi3n L en"roM e un 1orma 6ue se llama iagrama* 6ue es !ro!iamen"e el ;rea on e se mues"ra el gr;1ico+
"u. D'af+*ando623 @+( oD'af+*o !s >.)%*& @+( oE)% !s >.)%*& oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n ,!**%d%(os al %)% E oE)% A oD'af+*o-g%&@+ag'a(-g%&E!x+s $all Jo'(a&oH%x&o2 oE)%6 ""6 "5+.%'a&+on "ans"6 1506 106 RDB2506506503 3 $all Jo'(a&o5+n%a2 oE)%6 16 RDB2060625536 30 3 ,Ro&a(os 60k %l &%x&o oE)%-H%x&Ro&a&+on A 6000 ,!**%d%(os al %)% O oE)% A oD'af+*o-g%&@+ag'a(-g%&O!x+s $all Jo'(a&oH%x&o2 oE)%6 ""6 "5+.%'a&+on "ans"6 1506 106 RDB2506506503 3 $all Jo'(a&o5+n%a2 oE)%6 16 RDB2060625536 30 3 ,Es&a.l%*%(os %l l+(+&% su7%'+o' d%l %)% oE)%-Max A 200000000 ,Es&a.l%*%(os %l +n&%'8alo su7%'+o' oE)%-"&%7Ma+n A 50000000 ,El n;(%'o d% (a'*as s%*unda'+as oE)%-"&%7H%l7$oun& A 5 ,5Gn%as d%l %)% 7'+n*+7al oE)% A oD'af+*o-g%&@+ag'a(-OMa+nD'+d $all Jo'(a&o5+n%a2 oE)%6 16 RDB2255606036 50 3 ,Mos&'a(os las lGn%as s%*unda'+as oD'af+*o-g%&@+ag'a(-HasO!x+sH%l7D'+d A H'u% oE)% A oD'af+*o-g%&@+ag'a(-OH%l7D'+d $all Jo'(a&o5+n%a2 oE)%6 16 RDB2150606036 25 3 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

Mo i1icamos las !ro!ie a es e "o a el ;rea el gr;1ico


"u. D'af+*ando723 @+( oD'af+*o !s >.)%*&

A!ren ien o OOo Basic


@+( o!'%a !s >.)%*&

?E?

oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n ,"%l%**+ona(os %l ='%a d%l g'=f+*o o!'%a A oD'af+*o-g%&!'%a23 $all Jo'(a&oJondo2 o!'%a6 26 11 3 $all Jo'(a&o5+n%a2 o!'%a6 16 RDB250625565036 20 3 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

A/ora* solo el 1on o el gr;1ico* el ;rea e1ec"iva on e se mues"ran los a"os+


"u. D'af+*ando823 @+( oD'af+*o !s >.)%*& @+( oJondo !s >.)%*& oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n ,"%l%**+ona(os %l fondo d%l g'=f+*o oJondo A oD'af+*o-g%&@+ag'a(-g%&Uall $all Jo'(a&oJondo2 oJondo6 26 9 3 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

Mo i1icamos la serie e a"os* !or a/ora* solo "enemos una+


"u. D'af+*ando923 @+( oD'af+*o !s >.)%*& @+( o@a&os !s >.)%*& oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n ,5a 7'+(%' s%'+% d% da&os o@a&os A oD'af+*o-g%&@+ag'a(-g%&@a&aRo^0'o7%'&+%s203 $all Jo'(a&oH%x&o2 o@a&os6 ""6 "5+.%'a&+on "ans"6 1506 116 RDB206062503 3 $all Jo'(a&oJondo2 o@a&os6 46 5 3 ,Es&a.l%*%(os Fu% s% (u%s&'%n los 8alo'%s d% *ada 7un&o o@a&os-@a&a$a7&+on A 1 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

Para cambiar e "amaKo un gr;1ico* "ienes 6ue /acerlo como si 1uera una 1orma (s$ape) como "e mues"ro en el siguien"e e2em!lo<
"u. @+( @+( @+( D'af+*ando1023 oD'af+*o !s >.)%*& o"%l !s >.)%*& oHa( !s <%^ *o(-sun-s&a'-a^&-"+:%

oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n

?EE
,!FuG6 '%7%&+(os lo Fu% ha*% la fun*+Kn Fu% nos '%g'%sa %l g'=f+*o ,%s&o %s 7o' Fu% ?a %s&a(os s%gu'os d% Fu% %s un g'=f+*o ? 7o' Fu%6 ,7a'a *a(.+a' d% &a(a\o6 ha? Fu% ha*%'lo *o(o s+ fu%'a una fo'(a 2sha7%3 o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 o"%l A o"%l-g%&B?#nd%x203 ,Es&a.l%*%(os %l nu%8o &a(a\o oHa(-U+d&h A 15000 oHa(-H%+gh& A 15000 o"%l-s%&"+:%2 oHa( 3 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

F+, &ra1ican o a"os

Si /as !roba o ca a una e las macros e e2em!lo sobre el mismo gr;1ico* "ienes 6ue "ener algo as<

Si lo se* es"a /orrible* al 1in 6ue no es curso e iseKo+ )a siguien"e macro* cambiara el rango e a"os origen* algo sumamen"e necesario !ara "ener realmen"e un gr;1ico in;mico - !o amos ac"ualizarlo cuan o sea necesario+
"u. @+( @+( @+( @+( D'af+*ando1123 oD'af+*o !s >.)%*& oHo)a!*&+8a !s >.)%*& (Rangos203 o@+' !s <%^ *o(-sun-s&a'-&a.l%-$%llRang%!dd'%ss

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,!**%d%(os al g'=f+*o oD'af+*o A g%&D'af+*o223 #f <o& #s<ull2 oD'af+*o 3 Hh%n

A!ren ien o OOo Basic

?E5

,El nu%8o 'ango d% da&os U+&h o@+' -"h%%& A oHo)a!*&+8a-g%&Rang%!dd'%ss-"h%%& -"&a'&$olu(n A 0 -End$olu(n A 1 -"&a'&Ro^ A 0 -EndRo^ A 10 End U+&h (Rangos203 A o@+' ,Es&a.l%*%(os %l nu%8o 'ango oD'af+*o-s%&Rang%s2 (Rangos 3 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

No"a 6ue es"amos usan o una segun a versi4n e la 1unci4n !ara regresar el gr;1ico selecciona o* la 1unci4n es casi i 3n"ica+
Jun*&+on g%&D'af+*o223 !s >.)%*& @+( oHo)a!*&+8a !s >.)%*& @+( oD'af+*os !s >.)%*& @+( oD'af+*o !s >.)%*& @+( o"%l !s >.)%*& @+( s<o(.'% !s "&'+ng @+( s#nfo !s "&'+ng o"%l A Hh+s$o(7on%n&-g%&$u''%n&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A "*o(-sun-s&a'-d'a^+ng-"8x"ha7%$oll%*&+on" Hh%n o"%l A o"%l-g%&B?#nd%x203 #f o"%l-su77o'&s"%'8+*%2"*o(-sun-s&a'-d'a^+ng->5E2"ha7%"3 Hh%n s<o(.'% A o"%l-0%'s+s&<a(% oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n g%&D'af+*o2 A oD'af+*os-g%&B?<a(%2 s<o(.'% 3 End #f End #f End #f End Jun*&+on

)a i1erencia* es 6ue la !rimera "e evuelve el ob2e"o (no me gus"a la !alabra !ero as es) Lembebi oM (get"mbeddedObject)* con el cual "enemos acceso a "o os los ob2e"os en"ro el gr;1ico* es"a segun a 1orma* acce e irec"amen"e al gr;1ico ( get!)2ame)+ 5eamos algunos e2em!los m;s e creaci4n e gr;1icos* cuan o gra1i6ues* como -a lo mencionamos* ebes e cui ar la corres!on encia e "us a"os con el "i!o e gr;1ico* as mismo* cuan o !ersonalices un gr;1ico* asegura"e e 6ue el "i!o e gr;1ico es correc"o* !or e2em!lo* !ue es es"ablecerle e2es a un gr;1ico circular* !ero e2ara e ser un gr;1ico circular - "e aseguro 6ue no ob"en ras el resul"a o !revis"o+ =l siguien"e e2em!lo* mo i1ica nues"ro gr;1ico !ara 6ue se vea en ?(+
"u. D'af+*ando1223 @+( oD'af+*o !s >.)%*& oD'af+*o A g%&D'af+*o23 #f <o& #s<ull2 oD'af+*o 3 Hh%n

?EF
,Es&a.l%*%(os %l g'=f+*o %n 3@ oD'af+*o-g%&@+ag'a(-@+(3@ A H'u% ,Mos&'a(os *+l+nd'os %n 8%: d% *olu(nas oD'af+*o-g%&@+ag'a(-"ol+dH?7% A 1 Els% MsgBox ""%l%**+ona un g'=f+*o" End #f End "u.

F+, &ra1ican o a"os

Observa el siguien"e gr;1ico* !ara ob"enerlo* es in is!ensable 6ue el cursor es"e en Luna sola cel aM e los a"os* lo em;s se calcula* "an"o el rango e a"os como la !osici4n+

"u. @+( @+( @+( @+( @+( @+( @+( @+(

D'af+*ando1323 oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*& oD'af+*os !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 ,Ex7and+(os %l *u'so' a la '%g+Kn a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss s<o(.'% A "D'af+*o10" ,$%lda 7a'a la 7os+*+Kn d%l g'=f+*o o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E -O A o$%lda-0os+&+on-O -U+d&h A 11500 ,El an*ho d%l g'=f+*o

A!ren ien o OOo Basic

?E%

-H%+gh& A 7000 ,El al&o d%l g'=f+*o End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

=l mismo gr;1ico* !ero a/ora lo /acemos e barras+

"u. @+( @+( @+( @+( @+( @+( @+( @+( @+(

D'af+*ando1423 oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*& oD'af+*os !s >.)%*& oD'af+*o !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 ,Ex7and+(os %l *u'so' a la '%g+Kn a*&ual o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss s<o(.'% A "D'af+*o10" ,$%lda 7a'a la 7os+*+Kn d%l g'=f+*o o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E

?EG
-O A o$%lda-0os+&+on-O -U+d&h A 11500 ,El an*ho d%l g'=f+*o -H%+gh& A 7000 ,El al&o d%l g'=f+*o End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3 oD'af+*o-g%&E(.%dd%d>.)%*&-g%&@+ag'a(-1%'&+*al A H'u% End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

F+, &ra1ican o a"os

)os gr;1icos circulares nos an la imagen e la relaci4n e ca a !un"o res!ec"o al "o"al+

"u. @+( @+( @+( @+( @+( @+( @+( @+( @+( @+(

D'af+*ando1523 oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*& oD'af+*os !s >.)%*& oD'af+*o !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*& o@a&os !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss

A!ren ien o OOo Basic

?E,

s<o(.'% A "D'af+*o15" o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E -O A o$%lda-0os+&+on-O -U+d&h A 10000 -H%+gh& A 7000 End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3 ,$a(.+a(os %l &+7o d% g'=f+*o oD'af+*o-g%&E(.%dd%d>.)%*&-s%&@+ag'a(2 oD'af+*o-g%&E(.%dd%d>.)%*&-*'%a&%#ns&an*%2"*o(-sun-s&a'-*ha'&-0+%@+ag'a("3 3 o@a&os A oD'af+*o-g%&E(.%dd%d>.)%*&-g%&@+ag'a(-g%&@a&aRo^0'o7%'&+%s203 oD'af+*o-g%&E(.%dd%d>.)%*&-g%&@+ag'a(-@+(3@ A H'u% oD'af+*o-Has$olu(nH%ad%'s A H'u% oD'af+*o-HasRo^H%ad%'s A H'u% ,Ha? Fu% '%as+gna' %l 'ango d% da&os6 lo 7+%'d% al *a(.+a' d% &+7o d% g'=f+*o oD'af+*o-s%&Rang%s2 (Rangos 3 o@a&os-@a&a$a7&+on A 2 o@a&os-5a.%l0la*%(%n& A 0 $all Jo'(a&oH%x&o2 o@a&os6 ""6 "5+.%'a&+on "ans"6 1506 156 RDB2556556553 3 End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

)os gr;1icos e ;rea* es"acan la magni"u

e un cambio en el "iem!o+

"u. @+( @+( @+(

D'af+*ando1623 oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*&

?5$
@+( @+( @+( @+( @+( @+( @+( oD'af+*os !s >.)%*& oD'af+*o !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*& o@a&os !s >.)%*&

F+, &ra1ican o a"os

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss s<o(.'% A "D'af+*o16" o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E -O A o$%lda-0os+&+on-O -U+d&h A 10000 -H%+gh& A 7000 End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3 ,$a(.+a(os %l &+7o d% g'=f+*o oD'af+*o-g%&E(.%dd%d>.)%*&-s%&@+ag'a(2 oD'af+*o-g%&E(.%dd%d>.)%*&-*'%a&%#ns&an*%2"*o(-sun-s&a'-*ha'&-!'%a@+ag'a("3 3 End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

)os gr;1icos e lneas mues"ran !rinci!almen"e los cambios e valor en el "iem!o su relaci4n con o"ros valores+

A!ren ien o OOo Basic

?51

"u. @+( @+( @+( @+( @+( @+( @+( @+( @+( @+(

D'af+*ando1723 oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*& oD'af+*os !s >.)%*& oD'af+*o !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*& o@a&os !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss s<o(.'% A "D'af+*o17" o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E -O A o$%lda-0os+&+on-O -U+d&h A 12000 -H%+gh& A 7000 End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3 ,$a(.+a(os %l &+7o d% g'=f+*o oD'af+*o-g%&E(.%dd%d>.)%*&-s%&@+ag'a(2 oD'af+*o-g%&E(.%dd%d>.)%*&-*'%a&%#ns&an*%2"*o(-sun-s&a'-*ha'&-5+n%@+ag'a("3 3 oD'af+*o-g%&E(.%dd%d>.)%*&-g%&@+ag'a(-"?(.olH?7% A 1 End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

)os gr;1icos e anillo* son !areci os a los circulares* !ero !ue en re!resen"ar m;s e una serie e a"os* aun as* creo* no son una buena elecci4n+

?5#

F+, &ra1ican o a"os

"u. @+( @+( @+( @+( @+( @+( @+( @+( @+( @+(

D'af+*ando1823 oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*& oD'af+*os !s >.)%*& oD'af+*o !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*& o@a&os !s >.)%*&

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss s<o(.'% A "D'af+*o18" o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E -O A o$%lda-0os+&+on-O -U+d&h A 12000 -H%+gh& A 7000 End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3 ,$a(.+a(os %l &+7o d% g'=f+*o oD'af+*o-g%&E(.%dd%d>.)%*&-s%&@+ag'a(2 oD'af+*o-g%&E(.%dd%d>.)%*&-*'%a&%#ns&an*%2"*o(-sun-s&a'-*ha'&-@onu&@+ag'a("3 3 End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

)o con1ieso* no le /a-o muc/o sen"i o a un gr;1ico ra ial* !ero a/ es"a el e2em!lo+

"u. D'af+*ando1923

A!ren ien o OOo Basic


@+( @+( @+( @+( @+( @+( @+( @+( @+( @+( oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*& oD'af+*os !s >.)%*& oD'af+*o !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*& o@a&os !s >.)%*&

?5?

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss s<o(.'% A "D'af+*o19" o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E -O A o$%lda-0os+&+on-O -U+d&h A 12000 -H%+gh& A 7000 End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3 ,$a(.+a(os %l &+7o d% g'=f+*o oD'af+*o-g%&E(.%dd%d>.)%*&-s%&@+ag'a(2 oD'af+*o-g%&E(.%dd%d>.)%*&-*'%a&%#ns&an*%2"*o(-sun-s&a'-*ha'&-<%&@+ag'a("3 3 End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

Para un gr;1ico e s"ocs* el or en e los a"os es im!or"an"e+

"u. D'af+*ando2023 @+( oHo)a!*&+8a !s >.)%*&

?5E
@+( @+( @+( @+( @+( @+( @+( @+( @+( o"%l !s >.)%*& o$u'so' !s >.)%*& oD'af+*os !s >.)%*& oD'af+*o !s >.)%*& (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*& o@a&os !s >.)%*&

F+, &ra1ican o a"os

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss s<o(.'% A "D'af+*o20" o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E -O A o$%lda-0os+&+on-O -U+d&h A 12000 -H%+gh& A 7000 End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3 ,$a(.+a(os %l &+7o d% g'=f+*o oD'af+*o-g%&E(.%dd%d>.)%*&-s%&@+ag'a(2 oD'af+*o-g%&E(.%dd%d>.)%*&-*'%a&%#ns&an*%2"*o(-sun-s&a'-*ha'&-"&o*]@+ag'a("3 3 End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

=l gr;1ico pO ( is!ersi4n) mues"ra la relaci4n e un valor en 1unci4n e o"ro+

"u. @+( @+( @+( @+( @+(

D'af+*ando2123 oHo)a!*&+8a !s >.)%*& o"%l !s >.)%*& o$u'so' !s >.)%*& oD'af+*os !s >.)%*& oD'af+*o !s >.)%*&

A!ren ien o OOo Basic


@+( @+( @+( @+( @+( (Rangos203 s<o(.'% !s "&'+ng oR%* !s <%^ *o(-sun-s&a'-a^&-R%*&angl% o$%lda !s >.)%*& o@a&os !s >.)%*&

?55

oHo)a!*&+8a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on23 #f o"%l-g%&#(7l%(%n&a&+on<a(% A ""*$%ll>.)" Hh%n o$u'so' A oHo)a!*&+8a-*'%a&%$u'so'B?Rang%2 o"%l 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23 (Rangos203 A o$u'so'-g%&Rang%!dd'%ss s<o(.'% A "D'af+*o21" o$%lda A oHo)a!*&+8a-g%&$%llB?0os+&+on2 o$u'so'-g%&Rang%!dd'%ss-"&a'&$olu(n6 o$u'so'-g%&Rang%!dd'%ss-EndRo^ B 2 3 U+&h oR%* -E A o$%lda-0os+&+on-E -O A o$%lda-0os+&+on-O -U+d&h A 12000 -H%+gh& A 7000 End U+&h oD'af+*os A oHo)a!*&+8a-g%&$ha'&s23 #f oD'af+*os-hasB?<a(%2 s<o(.'% 3 Hh%n MsgBox "Oa %x+s&% %s&% no(.'% d% g'=f+*o6 %s*og% o&'o" Els% oD'af+*os-add<%^B?<a(%2s<o(.'%6 oR%*6 (Rangos6 H'u%6 H'u%3 oD'af+*o A oD'af+*os-g%&B?<a(%2 s<o(.'% 3-g%&E(.%dd%d>.)%*& ,$a(.+a(os %l &+7o d% g'=f+*o oD'af+*o-s%&@+ag'a(2 oD'af+*o-*'%a&%#ns&an*%2"*o(-sun-s&a'-*ha'&-EO@+ag'a("3 3 oD'af+*o-Has5%g%nd A Jals% End #f Els% MsgBox ""%l%**+ona solo una *%lda *on da&os" End #f End "u.

.a a "i!o e gr;1ico "iene sus !ar"iculari a es 6ue "en r;s 6ue consi erar a la /ora e gra1icar* la recomen aci4n general es8 inme ia"amen"e 6ue agregues el gr;1ico* cambia su "i!o al 6ue necesi"es - solo al 1inal* es"ableces "o as las !ro!ie a es 6ue 6uieras+ Si sumas la im!or"aci4n e bases e a"os* con el gr;1ico e a"os* "ienes un combinaci4n bas"an"e !o erosa - e1icien"e !ara re!resen"ar "us a"os en in1ormes+

=.1I

5rabajando con elementos *rF2icos

No se si es"ar;s e acuer o conmigo* !ero !oco a !oco se /a i o ilu-en o la 1ron"era en"re a!licaciones* es ecir* en"re un !rocesa or e "e:"os - una /o2a e calculo !or e2em!lo* en uno - en o"ro !o emos /acer muc/as "areas similares* so- e la o!ini4n e seguir usan o ca a a!licaci4n es!eci1ica !ara la "area 6ue 1ue iseKa a* no obs"an"e* !o emos /acer uso e esas carac"ers"icas e:"ras* "an varia as - ricas con 6ue cuen"an las a!licaciones ac"uales* lo cual a!ren eremos en es"e ca!i"ulo+

?5F

F+1$ Traba2an o con elemen"os gr;1icos

=.1I.1

5rabajando con imF*enes

.alc* so!or"a la inclusi4n e una am!lia varie a e 1orma"os e im;genes* en el siguien"e e2em!lo* inser"amos una imagen P&N en la /o2a ac"iva+
"u. @+( @+( @+( @+( @+( #(ag%n%s123 o@o* !s >.)%*& o0ag+na@+.u)o !s >.)%*& o#(ag%n !s >.)%*& sRu&a !s "&'+ng oHa( !s <%^ *o(-sun-s&a'-a^&-"+:%

,5a 'u&a d% la +(ag%n sRu&a A $on8%'&HoCR52"/ho(%/(au/glo.o-7ng"3 o@o* A Hh+s$o(7on%n& ,0ag+na d% d+.u)o d% la ho)a a*&+8a o0ag+na@+.u)o A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,0a'a *'%a' ? (an+7ula' +(ag%n%s o#(ag%n A o@o*-*'%a&%#ns&an*%2 "*o(-sun-s&a'-d'a^+ng-D'a7h+*>.)%*&"ha7%" 3 ,Es&a.l%*%(os la 'u&a d% la +(ag%n o#(ag%n-D'a7h+*CR5 A sRu&a ,5a ag'%ga(os a la 7=g+na d% d+.u)o6 7o' %nd%6 al *on)un&o d% fo'(as o0ag+na@+.u)o-add2 o#(ag%n 3 ,Es&a.l%*%(os %l &a(a\o d% la +(ag%n6 s+%(7'% %s&a.l%*% un &a(a\o6 s+ no ,s% +ns%'&a'= *on un &a(a\o (Gn+(o *as+ +n8+s+.l% ,la un+dad %s *%n&Ss+(as d% (+lG(%&'o oHa(-U+d&h A 10000 oHa(-H%+gh& A 7500 o#(ag%n-s%&"+:%2 oHa( 3 End "u.

A/ora !ermi"imos al usuario seleccionar una imagen* el m3"o o !ara abrir un arc/ivo lo usamos casi al !rinci!io e es"os a!un"es* !ero a6u lo recor amos+
"u. @+( @+( @+( @+( @+( @+( #(ag%n%s223 o@lg!.'+'!'*h+8o !s >.)%*& (!'*h+8o23 sRu&a !s "&'+ng o0ag+na@+.u)o !s >.)%*& o#(ag%n !s >.)%*& oHa( !s <%^ *o(-sun-s&a'-a^&-"+:%

,$'%a(os %l s%'8+*+o n%*%sa'+o o@lg!.'+'!'*h+8o A $'%a&%Cno"%'8+*% 2"*o(-sun-s&a'-u+-d+alogs-J+l%0+*]%'"3 ,Es&a.l%*%(os los f+l&'os d% a'*h+8o o@lg!.'+'!'*h+8o-a77%ndJ+l&%'2 "Hodos los fo'(a&os"6 " -7ngf -)7gf -)7g%f -.(7f -&+ff"3 o@lg!.'+'!'*h+8o-a77%ndJ+l&%'2 "#(ag%n%s 0<D"6 " -7ng"3 o@lg!.'+'!'*h+8o-a77%ndJ+l&%'2 "#(ag%n%s [0D"6 " -)7g"3 ,Es&a.l%*%(os %l &+&ulo d%l *uad'o d% d+alogo o@lg!.'+'!'*h+8o-s%&H+&l%2""%l%**+ona la +(ag%n"3 ,$on %l (%&odo -Ex%*u&%23 (os&'a(os %l *uad'o d% d+alogo ,"+ %l usua'+o 7'%s+ona !.'+' %l (%&odo d%8u%l8% 1 Fu% 7od%(os %8alua' *o(o 1%'dad%'o 2H'u%3 ,"+ 7'%s+ona $an*%la' d%8u%l8% 0 #f o@lg!.'+'!'*h+8o-Ex%*u&%23 Hh%n ,@% fo'(a 7'%d%&%'(+nada6 solo s% 7u%d% s%l%**+ona' un a'*h+8o ,7%'o d%8u%l8% una (a&'+: d% &odos (odos *on la 'u&a *o(7l%&a ,d%l a'*h+8o %n fo'(a&o CR5 (!'*h+8o23 A o@lg!.'+'!'*h+8o-g%&J+l%s23 ,El 7'+(%' %l%(%n&o d% la (a&'+: %s %l a'*h+8o s%l%**+onado

A!ren ien o OOo Basic

?5%

sRu&a A (!'*h+8o203 ,#ns%'&a(os la +(ag%n o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 o#(ag%n A Hh+s$o(7on%n&-*'%a&%#ns&an*%2 "*o(-sun-s&a'-d'a^+ng-D'a7h+*>.)%*&"ha7%" 3 o#(ag%n-D'a7h+*CR5 A sRu&a o0ag+na@+.u)o-add2 o#(ag%n 3 oHa(-U+d&h A 10000 oHa(-H%+gh& A 7500 o#(ag%n-s%&"+:%2 oHa( 3 Els% ,"+ %l usua'+o 7'%s+ona $an*%la' MsgBox "0'o*%so *an*%lado" End #f End "u.

=l m3"o o !ara abrir arc/ivos* !o ras conver"irla en una 1unci4n !ara 6ue "e evuelva el nombre o nombres e los arc/ivos abier"os* a6u "e mues"ro una !rimer 1orma 6ue nos servir; !ara nues"ros siguien"es e2em!los* !ero "u !ue es me2orarla* !or e2em!lo* !as;n ole el ""ulo el ialogo - los 1il"ros 6ue so!or"e+
,Jun*+Kn 7a'a d%8ol8%' la +(ag%n a +ns%'&a' Jun*&+on "%l%*+ona'#(ag%n23 !s "&'+ng @+( o@lg!.'+'!'*h+8o !s >.)%*& @+( (!'*h+8os23 o@lg!.'+'!'*h+8o A $'%a&%Cno"%'8+*% 2"*o(-sun-s&a'-u+-d+alogs-J+l%0+*]%'"3 o@lg!.'+'!'*h+8o-a77%ndJ+l&%'2 "Hodos los fo'(a&os d% +(ag%n"6 " -7ngf -)7gf -)7g%f -.(7f -&+ff"3 o@lg!.'+'!'*h+8o-a77%ndJ+l&%'2 "#(ag%n%s 0<D"6 " -7ng"3 o@lg!.'+'!'*h+8o-a77%ndJ+l&%'2 "#(ag%n%s [0D"6 " -)7g"3 o@lg!.'+'!'*h+8o-s%&H+&l%2""%l%**+ona la +(ag%n a +ns%'&a'"3 #f o@lg!.'+'!'*h+8o-Ex%*u&%23 Hh%n (!'*h+8os23 A o@lg!.'+'!'*h+8o-g%&J+l%s23 "%l%*+ona'#(ag%n A (!'*h+8os203 End #f End Jun*&+on

.om!rueba 6ue 1unciona como se es!era+


"u. #(ag%n%s323 @+( sRu&a !s "&'+ng sRu&a A "%l%*+ona'#(ag%n23 MsgBox sRu&a End "u.

)a siguien"e subru"ina* inser"a la imagen !asa a como argumen"o en la /o2a ac"iva* !ue es me2orarla !as;n ole la /o2a on e se inser"ar;* la !osici4n - el "amaKo* !or a/ora* !ara nues"ro e2em!los* as nos sirve+
,"u.'u&+na 7a'a +ns%'&a' la +(ag%n %n la ho)a a*&+8a "u. #ns%'&a#(ag%n2Ru&a#(ag%n !s "&'+ng3 @+( o@o* !s >.)%*& @+( o0ag+na@+.u)o !s >.)%*& @+( o#(ag%n !s >.)%*& @+( oHa( !s <%^ *o(-sun-s&a'-a^&-"+:% o@o* A Hh+s$o(7on%n& o0ag+na@+.u)o A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23

?5G

F+1$ Traba2an o con elemen"os gr;1icos

o#(ag%n A o@o*-*'%a&%#ns&an*%2 "*o(-sun-s&a'-d'a^+ng-D'a7h+*>.)%*&"ha7%" 3 o#(ag%n-D'a7h+*CR5 A Ru&a#(ag%n o0ag+na@+.u)o-add2 o#(ag%n 3 oHa(-U+d&h A 10000 oHa(-H%+gh& A 7500 o#(ag%n-s%&"+:%2 oHa( 3 End "u.

O la !robamos+
"u. #(ag%n%s423 @+( sRu&a !s "&'+ng sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n $all #ns%'&a'#(ag%n2 sRu&a 3 End #f End "u.

)a subru"ina la !ue es conver"ir en 1unci4n - evolver una re1erencia a la imagen inser"a a* e es"e mo o* !ue es seguir mani!ul;n ola+ No"a 6ue en la 1unci4n no es"ablecemos el "amaKo e la imagen* !or lo 6ue es im!or"an"e 6ue lo /agas es!u3s e llamar a es"a 1unci4n+
,Jun*+Kn 7a'a +ns%'&a' la +(ag%n %n la ho)a a*&+8a6 d%8u%l8% la +(ag%n ,no&a Fu% no %s&a.l%*%(os %l &a(a\o Jun*&+on g%&#(ag%n2Ru&a#(ag%n !s "&'+ng3 !s >.)%*& @+( o@o* !s >.)%*& @+( o0ag+na@+.u)o !s >.)%*& @+( o#(ag%n !s >.)%*& o@o* A Hh+s$o(7on%n& o0ag+na@+.u)o A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 o#(ag%n A o@o*-*'%a&%#ns&an*%2 "*o(-sun-s&a'-d'a^+ng-D'a7h+*>.)%*&"ha7%" 3 o#(ag%n-D'a7h+*CR5 A Ru&a#(ag%n o0ag+na@+.u)o-add2 o#(ag%n 3 g%&#(ag%n A o#(ag%n End Jun*&+on

O la !rueba+
"u. @+( @+( @+( #(ag%n%s523 sRu&a !s "&'+ng o#(ag%n !s >.)%*& oHa( !s <%^ *o(-sun-s&a'-a^&-"+:%

sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n o#(ag%n A g%&#(ag%n2 sRu&a 3 oHa(-U+d&h A 10000 oHa(-H%+gh& A 7500 o#(ag%n-s%&"+:%2 oHa( 3 End #f End "u.

O -a encarrera os* crea la subru"ina !ara es"ablecer el "amaKo* 6ue servir; !ara cual6uier ob2e"o 6ue so!or"e es"as !ro!ie a es+

A!ren ien o OOo Basic

?5,

"u. $a(.+aHa(2 >.) !s >.)%*&6 !n*ho !s 5ong6 !l&o !s 5ong 3 @+( oHa( !s <%^ *o(-sun-s&a'-a^&-"+:% oHa(-U+d&h A !n*ho oHa(-H%+gh& A !l&o >.)-s%&"+:%2 oHa( 3 End "u.

cas"a a/ora* las im;genes inser"a as* siem!re lo /acen ancla as ( Anc$or) a la cel a A1* vamos a cambiar es"o - !or consiguien"e la !osici4n e la imagen+
"u. @+( @+( @+( #(ag%n%s623 sRu&a !s "&'+ng o#(ag%n !s >.)%*& o$%lda !s >.)%*&

sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 100006 7500 3 ,Es&a.l%*%(os la *%lda d% an*la)%6 al (od+f+*a' %s&a s% (od+f+*a la 7os+*+Kn o$%lda A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&$%llB?0os+&+on2 469 3 o#(ag%n-!n*ho' A o$%lda End #f End "u.

=l ancla "ambi3n la !ue es es"ablecer a la /o2a+


"u. #(ag%n%s723 @+( sRu&a !s "&'+ng @+( o#(ag%n !s >.)%*& sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 100006 7500 3 ,Es&a.l%*%(os la ho)a *o(o an*la o#(ag%n-!n*ho' A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%& End #f End "u.

.omo -a lo com!robamos* si cambias el ancla e la imagen a una cel a* la imagen cambia a la !osici4n e ic/a cel a* !ero "ambi3n !ue es es"ablecer es"a !osici4n* no im!or"an o si el ancla es"a a la /o2a o a una cel a+
"u. #(ag%n%s823 @+( sRu&a !s "&'+ng @+( o#(ag%n !s >.)%*& @+( o0os !s <%^ *o(-sun-s&a'-a^&-0o+n& sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 100006 7500 3 ,Es&a.l%*%(os la 7os+*+Kn d% la +(ag%n o0os-E A 15000 o0os-? A 5000

?F$
o#(ag%n-s%&0os+&+on2 o0os 3 End #f End "u.

F+1$ Traba2an o con elemen"os gr;1icos

Algunas !ro!ie a es in"eresan"es8 cuan o inser"as o eliminas 1ilas o columnas* la imagen se ver; a1ec"a a en su "amaKo* !ue es evi"arlo !ro"egien o su "amaKo ( Size(rotect)* "ambi3n !ue es evi"ar 6ue se mueva (Mo%e(rotect) - 6ue se im!rima ((rintable)+
"u. #(ag%n%s923 @+( sRu&a !s "&'+ng @+( o#(ag%n !s >.)%*& sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 100006 7500 3 U+&h o#(ag%n ,<o(.'a(os la +(ag%n -<a(% A "#(ag%n09" ,E8+&a(os Fu% la (u%8an -Mo8%0'o&%*& A H'u% ,Pu% *a(.+% su &a(a\o -"+:%0'o&%*& A H'u% ,Pu% s% +(7'+(a -0'+n&a.l% A Jals% ,0u%d%s '%fl%)a' la +(ag%n -#sM+''o'%d A H'u% End U+&h End #f End "u.

=l nombre asigna o a la imagen (2ame)* es el 6ue !ue e es"ablecer con el men> con"e:"ual e la imagen* as mismo* es el nombre 6ue a!arecer; en el navega or* es im!or"an"e 6ue lo asignes* sobre "o o si mane2as muc/as im;genes !ara 6ue se mues"re en el navega or+

Pue es "ener varias im;genes con el mismo nombre+ A las im;genes* les !ue es cambiar el mo o e color (Grap$icColorMode)* seg>n la siguien"e enumeraci4n<

A!ren ien o OOo Basic

?F1

com(sun(star(dra7in,(Color"ode
com+sun+s"ar+ ra7ing+.olorMo e+STAN(A@( com+sun+s"ar+ ra7ing+.olorMo e+&@=OS com+sun+s"ar+ ra7ing+.olorMo e+MONO com+sun+s"ar+ ra7ing+.olorMo e+NAT=@MA@t

0alor
$ 1 # ?

0alor en )nterfa2
Pre e"ermina o =scala e grises Blanco - negro 'iligrana

=l siguien"e e2em!lo* inser"a la imagen varias veces son los i1eren"es mo os+
"u. @+( @+( @+( #(ag%n%s1023 sRu&a !s "&'+ng o#(ag%n !s >.)%*& o0os !s <%^ *o(-sun-s&a'-a^&-0o+n&

sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n ,#ns%'&a(os la +(ag%n no'(al o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 ,#ns%'&a(os la (+s(a +(ag%n o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 50006 0 3 ,$a(.+a(os %l (odo d% *olo' a %s*ala d% g'+s%s o#(ag%n-D'a7h+*$olo'Mod% A *o(-sun-s&a'-d'a^+ng-$olo'Mod%-DREO" o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 100006 0 3 ,$a(.+a(os %l (odo d% *olo' a .lan*o ? n%g'o o#(ag%n-D'a7h+*$olo'Mod% A *o(-sun-s&a'-d'a^+ng-$olo'Mod%-M><> o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 150006 0 3 ,$a(.+a(os %l (odo d% *olo' a (a'*a d% agua o#(ag%n-D'a7h+*$olo'Mod% A *o(-sun-s&a'-d'a^+ng-$olo'Mod%-U!HERM!RI End #f End "u. ,$a(.+a la 7os+*+Kn d%l o.)%&o "u. $a(.+a0os2 >.) !s >.)%*&6 E !s 5ong6 O !s 5ong 3 @+( o0os !s <%^ *o(-sun-s&a'-a^&-0o+n& o0os-E A E o0os-O A O >.)-s%&0os+&+on2 o0os 3 End "u.

=l resul"a o+

?F#

F+1$ Traba2an o con elemen"os gr;1icos

Pue es cambiar la "rans!arencia (.ransparenc)) e la imagen* es"e valor va e $ a 1$$* on e $ es el valor !re e"ermina o* sin "rans!arencia - 1$$ "o"almen"e "rans!aren"e* si es"ableces es"a valor en 1$$ - !ier es la selecci4n* no veras la imagen !or lo 6ue !rocura no es"ablecerlo "an al"o+
"u. @+( @+( @+( #(ag%n%s1123 sRu&a !s "&'+ng o#(ag%n !s >.)%*& o0os !s <%^ *o(-sun-s&a'-a^&-0o+n&

sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n ,#ns%'&a(os la +(ag%n no'(al o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 50006 0 3 ,$a(.+a(os %l n+8%l d% &'ans7a'%n*+a o#(ag%n-H'ans7a'%n*? A 25 o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 100006 0 3 o#(ag%n-H'ans7a'%n*? A 50 o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 150006 0 3 o#(ag%n-H'ans7a'%n*? A 75 End #f End "u.

Pue es mani!ular com!le"amen"e los colores e una imagen (si sabes !or 6ue -o no)* "an"o la luminosi a (Adjust0uminance)* como el con"ras"e (AdjustContrast)* el canal gamma (Gamma)+ )a luminosi a - el con"ras"e* "oman valores e $ a 1$$* el canal gamma* e $+1 a 1$+
"u. @+( @+( @+( #(ag%n%s1223 sRu&a !s "&'+ng o#(ag%n !s >.)%*& o0os !s <%^ *o(-sun-s&a'-a^&-0o+n&

sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n ,#ns%'&a(os la +(ag%n no'(al o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 50006 0 3 ,$a(.+a(os %l n+8%l d% lu(+nos+dad o#(ag%n-!d)us&5u(+nan*% A 50 o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 100006 0 3 ,$a(.+a(os %l *on&'as&% o#(ag%n-!d)us&$on&'as& A 50

A!ren ien o OOo Basic

?F?

o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 150006 0 3 ,$a(.+a(os %l *anal ga((a6 Fu% no s% Fu% s%a6 7%'o *a(.+a o#(ag%n-Da((a A 5 End #f End "u.

O !or su!ues"o* "ambi3n !ue es cambiar los canales ro2o ( AdjustRed)* ver e (AdjustGreen) - azul (Adjust!lue)* e la siguien"e manera+
"u. @+( @+( @+( #(ag%n%s1323 sRu&a !s "&'+ng o#(ag%n !s >.)%*& o0os !s <%^ *o(-sun-s&a'-a^&-0o+n&

sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n ,#ns%'&a(os la +(ag%n no'(al o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 50006 0 3 ,$a(.+a(os %l n+8%l d% 'o)o o#(ag%n-!d)us&R%d A 50 o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 100006 0 3 ,$a(.+a(os %l n+8%l d% 8%'d% o#(ag%n-!d)us&D'%%n A 50 o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 50006 3750 3 $all $a(.+a0os2 o#(ag%n6 150006 0 3 ,$a(.+a(os %l n+8%l d% a:ul o#(ag%n-!d)us&Blu% A 50 End #f End "u.

Mira 6ue iver"i o 6ue a+

)as im;genes inser"a as "ienen !ro!ie a es !ar"iculares* como las 6ue /emos vis"o /as"a a/ora* !ero al ser consi era as 1ormas (s$apes) com!ar"en con ellas muc/as e sus !ro!ie a es* !or e2em!lo* la !osibili a e agregarles "e:"o* como en<

?FE
"u. #(ag%n%s1423 @+( sRu&a !s "&'+ng @+( o#(ag%n !s >.)%*& sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n o#(ag%n A g%&#(ag%n2 sRu&a 3 $all $a(.+aHa(2 o#(ag%n6 100006 7500 3

F+1$ Traba2an o con elemen"os gr;1icos

,#ns%'&a(os &%x&o %n la +(ag%n ? l% *a(.+a(os sus 7'o7+%dad%s U+&h o#(ag%n -"&'+ng A "!7ul*o6 H+dalgo" 9 $h'2133 9 "MSx+*o" -$ha'$olo' A RDB2255625562553 -$ha'H%+gh& A 30 -$ha'U%+gh& A 150 -0a'a!d)us& A 3 End U+&h End #f End "u.

O"ras !ro!ie a es las veremos en el siguien"e a!ar"a o* !ara "erminar es"e "ema* en "o os los e2em!los an"eriores* al inser"ar la imagen* la es";s vinculan o* !or lo 6ue si cambias el nombre e la imagen origen* la mueves o borras* cuan o abras "u arc/ivo* "e 6ue ar; solo un marco vaco* !ara inser"ar la imagen incrus"a a en el ocumen"o* usa el siguien"e c4 igo+
"u. @+( @+( @+( @+( @+( #(ag%n%s1523 sRu&a !s "&'+ng o#(ag%n !s >.)%*& oJo'(a !s >.)%*& oD0 !s >.)%*& (>7*203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

sRu&a A "%l%*+ona'#(ag%n23 #f sRu&a XY "" Hh%n ,!g'%ga(os una fo'(a a la ho)a a*&+8a oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-D'a7h+*>.)%*&"ha7%"3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23-add2oJo'(a3 ,"%'8+*+o 7a'a (an+7ula*+on d% g'=f+*os oD0 A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-g'a7h+*-D'a7h+*0'o8+d%'"3 ,Es&a.l%*%(os la 'u&a (>7*203-<a(% A "CR5" (>7*203-1alu% A sRu&a ,H'a% la +(ag%n ? la *a'ga %n la fo'(a

A!ren ien o OOo Basic

?F5

oJo'(a-D'a7h+* A oD0-Fu%'?D'a7h+*2 (>7* 3 ,$a(.+a(os %l &a(a\o $all $a(.+aHa(2 oJo'(a6 100006 7500 3 End #f End "u.

=l cual* !or su!ues"o* !ue es conver"ir en una 1unci4n o subru"ina !ara llamarla cuan o 6uieras* !ero esa* es "u "area+ =l siguien"e e2em!lo es mu- iver"i o* "oma la selecci4n e"ermina si es o no una imagen* solici"a una ru"a - nombre on e guar ar - la guar a si el usuario no cancela la o!eraci4n* en 1orma"o L2!gM* !or su!ues"o !ue es e:!or"ar a o"ros 1orma"os+
"u. @+( @+( @+( @+( #(ag%n%s1623 sRu&a !s "&'+ng o"%l !s >.)%*& oD0 !s >.)%*& (>7*213 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

,5a s%l%**+Kn a*&ual o"%l A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&"%l%*&+on +J o"%l-g%&#(7l%(%n&a&+on<a(% A "*o(-sun-s&a'-d'a^+ng-"8x"ha7%$oll%*&+on" Hh%n ,"+ %s una fo'(a6 s+%(7'% %s la 7'+(%'a o"%l A o"%l-g%&B?#nd%x203 #f o"%l-su77o'&s"%'8+*%2"*o(-sun-s&a'-d'a^+ng-D'a7h+*>.)%*&"ha7%"3 Hh%n ,"+ %s una +(ag%n6 o.&%n%(os la 'u&a ? no(.'% 7a'a gua'da' sRu&a A Ru&aDua'da'#(ag%n23 #f sRu&a XY "" Hh%n oD0 A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-g'a7h+*-D'a7h+*0'o8+d%'"3 ,Es&a.l%*%(os las 7'o7+%dad%s (>7*203-<a(% A "CR5" (>7*203-1alu% A sRu&a (>7*213-<a(% A "M+(%H?7%" (>7*213-1alu% A "+(ag%/)7%g" ,Dua'da(os la +(ag%n oD0-s&o'%D'a7h+*2 o"%l-D'a7h+*6 (>7* 3 Els% MsgBox "0'o*%so *an*%lado" End #f Els% MsgBox "5a s%l%**+Kn %s una fo'(a 7%'o no una +(ag%n" End #f Els% MsgBox "5a s%l%**+Kn no %s una +(ag%n" End #f End "u.

)a 1unci4n !ara evolver la ru"a es<


,Jun*+Kn 7a'a d%8ol8%' la 'u&a ? no(.'% d%l a'*h+8o a gua'da' ,0u%d%s (%)o'a'la 7as=ndol% los f+l&'os Fu% Fu+%'as Jun*&+on Ru&aDua'da'#(ag%n23 !s "&'+ng @+( o@lgDua'da'!'*h+8o !s >.)%*& @+( (!'*h+8o23 @+( (@lg>7*+on%s23 (@lg>7*+on%s23 A !''a?223 o@lgDua'da'!'*h+8o A $'%a&%Cno"%'8+*% 2"*o(-sun-s&a'-u+-d+alogs-J+l%0+*]%'"3 o@lgDua'da'!'*h+8o-s%&H+&l%2"Dua'da' *o(o"3 o@lgDua'da'!'*h+8o-#n+&+al+:% 2 (@lg>7*+on%s23 3 o@lgDua'da'!'*h+8o-!77%ndJ+l&%'2 "#(ag%n [0D 2-)7g3"6 " -)7g" 3 #f o@lgDua'da'!'*h+8o-Ex%*u&%23 Hh%n (!'*h+8o23 A o@lgDua'da'!'*h+8o-g%&J+l%s23

?FF
Ru&aDua'da'#(ag%n A (!'*h+8o203 End #f End Jun*&+on

F+1$ Traba2an o con elemen"os gr;1icos

O con es"o "erminamos el "ema e im;genes* 6ue !ue es com!lemen"ar !er1ec"amen"e con los conocimien"os e nues"ro !r4:imo a!ar"a o* !ues muc/as e las !ro!ie a es - m3"o os 6ue veremos* son so!or"a os !or las im;genes+

=.1I.2

5rabajando con auto2ormas

.on las /erramien"as e ibu2o inclui as en la a!licaci4n* se !o ra ibu2ar casi cual6uier cosa* el limi"e* es "u imaginaci4n* veamos* !or6u3+ .a a /o2a e nues"ro arc/ivo* "iene una L!;gina e ibu2o vir"ualM (-ra8(age)* on e es";n "o os los elemen"os gr;1icos* !ara acce er a es"a /o2a* usamos<
"u. @+( @+( @+( !u&oJo'(as123 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,!**%d%(os a la 7=g+na d% d+.u)o o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 ,Mos&'a(os %l n;(%'o d% %l%(%n&os %n la 7=g+na MsgBox o0ag+na@+.u)o-g%&$oun& End "u.

)a cuen"a e los ob2e"os gr;1icos* inclu-e* incluso* las no"as e las cel as* !or lo 6ue si "e mues"ra un n>mero - a!aren"emen"e no /a- na a en la /o2a* "al vez sea es"e "u caso* o"ras veces* /a- elemen"os* como im;genes* 6ue "ienen un "amaKo mnimo - no se no"an o es";n !osiciona as en zonas e la /o2a mu- se!ara as+ =l siguien"e e2em!lo* cambia el "amaKo - la !osici4n e L"o osM los ob2e"os gr;1icos e la /o2a - los !osiciona en la es6uina su!erior iz6uier a e la /o2a* las subru"inas LCambia.am4 - LCambia(os4* -a las /emos usa o an"eriormen"e+
"u. @+( @+( @+( @+( @+( !u&oJo'(as223 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& *o1 !s 5ong

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,!**%d%(os a la 7=g+na d% d+.u)o o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 ,#&%'a(os %n *ada fo'(a Jo' *o1 A 0 Ho o0ag+na@+.u)o-g%&$oun& T 1 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x2*o13 ,$a(.+a(os su &a(a\o $all $a(.+aHa(2 oJo'(a6 30006 3000 3 ,O su 7os+*+Kn $all $a(.+a0os2 oJo'(a6 06 0 3

A!ren ien o OOo Basic


<%x& End "u.

?F%

Si en "u /o2a /a- no"as* es"as se cambiaran e "amaKo !ero el cambio e !osici4n solo lo veras re1le2a o cuan o mues"res la no"a* no cuan o !ongas el cursor sobre la cel a* 6ue siem!re mues"ra las no"as cerca e es"a* si no cuan o la mues"res !ermanen"emen"e+ Para agregar una 1orma a la !;gina e ibu2o - !or consiguien"e a la /o2a ac"iva (!ue e ser a la /o2a 6ue 6uieras* no necesariamen"e la ac"iva)* !rimero creas una ins"ancia e la 1orma 6ue 6uieras* bueno* casi e la 6ue 6uieras !or 6ue en las /o2as e calculo no !ue es agregar "o os los "i!os e 1ormas* !or e2em!lo* una !olilnea no !ue es agregarla* lo cual si !ue es /acer en (ra7 o 9m!ress* en"onces* es!u3s e agregar la 1orma so!or"a a en .alc* le es"ableces sus !ro!ie a es - al 1inal la agregas a la !;gina e ibu2o+ .omo con las im;genes* es im!or"an"e 6ue al menos cambies el "amaKo e la nueva 1orma* si no* se crear; el "amaKo mnimo* la nueva 1orma se crea con las !ro!ie a es !re e"ermina as* las cuales* a!ren eremos a cambiar a6u+ =n el siguien"e e2em!lo* agregamos un rec";ngulo a la /o2a+
"u. !u&oJo'(as323 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,$'%a(os un '%*&angulo oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-R%*&angl%"ha7%"3 $all $a(.+aHa(2 oJo'(a6 50006 3000 3 o0ag+na@+.u)o-add2 oJo'(a 3 End "u.

IA ivina 6ue !asa si es"ableces el mismo al"o - anc/oJ* es obvia la res!ues"a* en vez e un rec";ngulo* "ienes un cua ra o* lo mismo !asa con las eli!ses* si es"ablece el mismo anc/o - al"o* ob"ienes un circulo+
"u. !u&oJo'(as423 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,$'%a(os un *+'*ulo oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-Ell+7s%"ha7%"3 $all $a(.+aHa(2 oJo'(a6 50006 5000 3 o0ag+na@+.u)o-add2 oJo'(a 3 End "u.

)a ma-ora e las 1ormas* com!ar"en casi "o as las mismas !ro!ie a es (lnea* relleno* "e:"o* sombra* e"c)* veamos las !rinci!ales 6ue com!ar"en en"re si - es!u3s las !ar"iculares e algunas+
=.1I.2.1 +rincipales propiedades de lCnea.

"u. !u&oJo'(as523 @+( o0ag+na@+.u)o !s >.)%*&

?FG
@+( oJo'(a !s >.)%*&

F+1$ Traba2an o con elemen"os gr;1icos

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,$'%a(os una %l+7s% oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-Ell+7s%"ha7%"3 $all $a(.+aHa(2 oJo'(a6 100006 5000 3 U+&h oJo'(a ,El %s&+lo d% lGn%a -5+n%"&?l% A *o(-sun-s&a'-d'a^+ng-5+n%"&?l%-">5#@ ,El *olo' d% la lGn%a -5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,5a &'ans7a'%n*+a d% la lGn%a -5+n%H'ans7a'%n*% A 50 ,El an*ho d% la lGn%a -5+n%U+d&h A 500 End U+&h o0ag+na@+.u)o-add2 oJo'(a 3 End "u.

=l es"ilo e lnea* es"a e"ermina o !or la siguien"e enumeraci4n+ com(sun(star(dra7in,(Line4tyle


com+sun+s"ar+ ra7ing+)ineS"-le+NON= com+sun+s"ar+ ra7ing+)ineS"-le+SO)9( com+sun+s"ar+ ra7ing+)ineS"-le+(ASc

0alor
$ 1 #

0alor en )nterfa2
Ocul"a Soli a &uiones

=l color (0ineColor) e la lnea es un valor "i!o largo (long)* la "rans!arencia ()ineTrans!arence) !ue e "omar valores e $ (menos "rans!arencia) a 1$$ (m;s "rans!arencia)* si es"ablece el valor en cero la lnea no se ver; como si es"ablecieras el es"ilo en ocul"a ( 2O2")* el anc/o e la lnea se es"ablece en cen"3simas e milme"ro - se re!ar"e e 1orma e6ui is"an"e el en"ro /acia a1uera - en"ro e la 1orma* si es"ableces es"e valor en cero* no esa!arece com!le"amen"e* 6ue a visible aun* !or ello* me2or usa el es"ilo si lo 6ue 6uieres es no mos"rar la lnea+ Si es"ableces el es"ilo en guiones (-ASH)* !ue es es"ablecer el es"ilo e es"e e os maneras* la !rimera m;s sencilla* es"ableces el nombre e es"ilo como en<
"u. !u&oJo'(as623 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,"%l%**+ona(os %l 7'+(%'o o.)%&o d% d+.u)o oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l %s&+lo %n gu+on%s oJo'(a-5+n%"&?l% A *o(-sun-s&a'-d'a^+ng-5+n%"&?l%-@!"H ,Es&a.l%*%(os %l %s&+lo oJo'(a-5+n%@ash<a(% A "J+n% @ash%d" End "u.

)os nombres 6ue !ue es es"ablecer son<

A!ren ien o OOo Basic

?F,

Si las vas a usar segui o* lo m;s !rac"ico es crear una ma"riz con los nombres+
"u. @+( @+( @+( !u&oJo'(as723 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (Es&+los23

(Es&+los A !''a?2"Cl&'af+n% @ash%d"6"J+n% @ash%d"6"Cl&'af+n% 2 @o&s 3 @ash%s"6"J+n% @o&&%d"6"5+n% ^+&h J+n% @o&s"6"J+n% @ash%d 28a'3"6"3 @ash%s 3 @o&s 28a'3"6"Cl&'af+n% @o&&%d 28a'3"6"5+n% "&?l% 9"6"2 @o&s 1 @ash"3 o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,"%l%**+ona(os %l 7'+(%'o o.)%&o d% d+.u)o oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l %s&+lo %n gu+on%s oJo'(a-5+n%"&?l% A *o(-sun-s&a'-d'a^+ng-5+n%"&?l%-@!"H ,Es&a.l%*%(os %l %s&+lo oJo'(a-5+n%@ash<a(% A (Es&+los243 End "u.

@ecuer a 6ue los es"ilos e lnea* son com!le"amen"e !ersonalizables es e la in"er1az el usuario* !or lo 6ue es"os nombres !ue en cambiar* el nombre ebe corres!on er e:ac"amen"e* incluso sus ma->sculas* min>sculas* n>meros - es!acios* con el nombre e la in"er1az* e lo con"rario* "e ar; un error en "iem!o e e2ecuci4n+ Si 6uieres asegura"e e 6ue no /a-a error* !ue es usar la o"ra 1orma e es"ablecer el es"ilo* crean o un es"ilo com!le"amen"e nuevo - !ersonaliza o* el cual* es"a es"ruc"ura o e la siguien"e manera+

1) #) ?) E) 5)

N>mero e !un"os (-ots) N>mero e guiones (-as$es) Anc/o el !un"o (-ot0en) (is"ancia en elemen"os (-istance) Anc/o el gui4n (-as$0en)

Para crear un es"ilo similar al an"erior* usamos el siguien"e c4 igo+


"u. !u&oJo'(as823

?%$
@+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& @+( o5+n%aDu+on !s >.)%*&

F+1$ Traba2an o con elemen"os gr;1icos

o5+n%aDu+on A *'%a&%Cno"&'u*&2"*o(-sun-s&a'-d'a^+ng-5+n%@ash"3 ,Hodas las (%d+das %n *%n&Ss+(as d% (+lG(%&'o U+&h o5+n%aDu+on -"&?l% A 0 -@o&s A 3 -@o&5%n A 500 -@ash%s A 2 -@ash5%n A 2000 -@+s&an*% A 250 End U+&h o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 oJo'(a-5+n%"&?l% A *o(-sun-s&a'-d'a^+ng-5+n%"&?l%-@!"H ,Es&a.l%*%(os %l %s&+lo oJo'(a-5+n%@ash A o5+n%aDu+on End "u.

Observa 6ue "ambi3n a6u "enemos un es"ilo ( St)le)* e acuer o a la enumeraci4n+ com(sun(star(dra7in,(*ash4tyle
com+sun+s"ar+ ra7ing+(as/S"-le+@=.T com+sun+s"ar+ ra7ing+(as/S"-le+@OUN( com+sun+s"ar+ ra7ing+(as/S"-le+@=.T@=)AT95= com+sun+s"ar+ ra7ing+(as/S"-le+@OUN(@=)AT95=

0alor
$ 1 # ?

0alor en )nterfa2
@ec"angulo Pun"o @ec"angulo* rela"ivo a la longui"u e la lnea Pun"o* rela"ivo a la longui"u e la lnea

Para 6ue no"es las i1erencias e es"os es"ilos* es"ablece la lnea en un ac/o bas"an"e visible - no"a como cambia+
=.1I.2.2 +rincipales propiedades de relleno

A/ora veamos las !rinci!ales !ro!ie a es e relleno+ )a !rimera - m;s sim!le* es* sin relleno+
"u. !u&oJo'(as923 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n +n8+s+.l% oJo'(a-J+ll"&?l% A 0 End "u.

=l es"ilo e 1on o ('illS"-le)* es"a e"ermina o !or la enumeraci4n+

A!ren ien o OOo Basic

?%1

com(sun(star(dra7in,(Fill4tyle
com+sun+s"ar+ ra7ing+'illS"-le+NON= com+sun+s"ar+ ra7ing+'illS"-le+SO)9( com+sun+s"ar+ ra7ing+'illS"-le+&@A(9=NT com+sun+s"ar+ ra7ing+'illS"-le+cAT.c com+sun+s"ar+ ra7ing+'illS"-le+B9TMAP

0alor
$ 1 # ? E

0alor en )nterfa2
9nvisible .olor &ra ien"e Trama Bi"ma! (9magen)

=s"ablecemos un color alea"orio en la !rimer 1orma e la /o2a+


"u. !u&oJo'(as1023 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n *olo' oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ ,Cn *olo' al%a&o'+o oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 End "u.

Pue es es"ablecer el !orcen"a2e ($ a 1$$) e "rans!arencia* un valor e 1$$* ser; similar a es"ablecer el es"ilo e 1on o en invisible ( 2O2")* la i1erencia ser; 6ue si lo es"ableces con el es"ilo* el 1on o se L6ui"aM - !ue es seleccionar las cel as 6ue es"en eba2o e la 1orma* si lo /aces con la "rans!arencia* al ar clic en"ro e la 1orma* seleccionas la 1orma+
"u. !u&oJo'(as1123 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n *olo' oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ ,Cn *olo' al%a&o'+o oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,5a &'ans7a'%n*+a d%l *olo' oJo'(a-J+llH'ans7a'%n*% A 50 End "u.

Para es"ablecer el 1on o en un gra ien"es* usamos+


"u. !u&oJo'(as1223 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n g'ad+%n&% oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-DR!@#E<H ,El no(.'% d%l g'ad+%n&% oJo'(a-J+llD'ad+%n&<a(% A "R%*&angula' '%d/^h+&%" End "u.

?%#

F+1$ Traba2an o con elemen"os gr;1icos

=l nombre es el usa o !or la in"er1az el usuario - ebe ser e:ac"o* si no* "e ar; un error en "iem!o e e2ecuci4n* los gra ien"es !re e"ermina os* si no los /a cambia o el usuario son<

.on una ma"riz !ara los nombres* es m;s sencillo es"ablecerlos+


"u. @+( @+( @+( !u&oJo'(as1323 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (D'ad+%n&%23

,Ma&'+: *on los no(.'%s d% los g'ad+%n&%s (D'ad+%n&% A !''a?2"D'ad+%n& 1"6"D'ad+%n& 2"6"D'ad+%n& 3"6"D'ad+%n& 4"6"D'ad+%n& 5"6"D'ad+%n& 6"6"5+n%a' .lu%/^h+&%"6"Rad+al g'%%n/.la*]"6"R%*&angula' '%d/^h+&%"6""Fua'% ?%llo^/^h+&%"6"5+n%a' (ag%n&a/g'%%n"6"5+n%a' ?%llo^/.'o^n"6"Rad+al '%d/?%llo^"6"Ell+7so+d .lu% g'%?/l+gh& .lu%"6"!x+al l+gh& '%d/^h+&%"3 o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n g'ad+%n&% oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-DR!@#E<H ,El no(.'% d%l g'ad+%n&% oJo'(a-J+llD'ad+%n&<a(% A (D'ad+%n&%243 End "u.

.ambiamos e "i!o e 1on o - es"ablecemos el es"ilo en "rama ( HA.CH)+


"u. !u&oJo'(as1423 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n &'a(a oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-H!H$H ,El no(.'% d% la &'a(a oJo'(a-J+llHa&*h<a(% A "Bla*] 45 @%g'%%s U+d%" End "u.

Al igual 6ue con los nombres e los gra ien"es* es"os eben es"ablecerse e:ac"amen"e como se mues"ran a con"inuaci4n -* "ambi3n* son suce!"ibles e ser mo i1ica os !or el usuario es e la in"er1az el usuario+

A!ren ien o OOo Basic


"u. @+( @+( @+( !u&oJo'(as1523 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (H'a(as23

?%?

,Ma&'+: *on los no(.'%s d% las &'a(as 7'%d%&%'(+nadas (H'a(as A !''a?2"Bla*] 0 @%g'%%s"6"Bla*] 45 @%g'%%s"6"Bla*] T45 @%g'%%s"6"Bla*] 90 @%g'%%s"6"R%d $'oss%d 45 @%g'%%s"6"R%d $'oss%d 0 @%g'%%s"6"Blu% $'oss%d 45 @%g'%%s"6"Blu% $'oss%d 0 @%g'%%s"6"Blu% H'+7l% 90 @%g'%%s"6"Bla*] 45 @%g'%%s U+d%"3 o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n &'a(a oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-H!H$H ,El no(.'% d% la &'a(a oJo'(a-J+llHa&*h<a(% A (H'a(as253 End "u.

eue corres!on en a+

Pue es combinar el uso e una "rama con un 1on o e color* !rocura es"ablecer un color e 1on o claro* !ara 6ue se is"inga la "rama+
"u. !u&oJo'(as1623 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n &'a(a oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-H!H$H ,El no(.'% d% la &'a(a oJo'(a-J+llHa&*h<a(% A "Bla*] 45 @%g'%%s U+d%" ,Ha(.+%n *on *olo' oJo'(a-J+llBa*]g'ound A H'u% oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 End "u.

Para es"ablecer una imagen como 1on o e una 1orma* "ienes 6ue cambiar el es"ilo es"ablecer el nombre e la imagen* 6ue como en los em;s es"ilos* ebe es"ar escri"o correc"amen"e - !ue e ser cambia o !or el usurio es e la in"er1az+
"u. @+( @+( @+( !u&oJo'(as1723 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (#(ag%n23

?%E

F+1$ Traba2an o con elemen"os gr;1icos

(#(ag%n A !''a?2"E(7&?"6""]?"6"!Fua"6"$oa's%"6""7a*%"6"M%&al"6"U%&"6"Ma'.l%"6"5+n%n"6""&on%"6""7a*% M%&al"6"0%..l%s"6"Uall"6"R%d Uall"6"0a&&%'n"6"5%a8%s"6"5a^n !'&+f+*+al"6"@a+s?"6">'ang%"6"J+%'?"6"Ros%s"3 o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n #(ag%n oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-B#HM!0 ,El no(.'% d% la +(ag%n oJo'(a-J+llB+&(a7<a(% A (#(ag%n2103 End "u.

=s"os nombres corres!on en a+

Pue es es"ablecer una imagen* - al mismo "iem!o el nivel e "rans!arencia+


"u. @+( @+( @+( !u&oJo'(as1823 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (#(ag%n23

(#(ag%n A !''a?2"E(7&?"6""]?"6"!Fua"6"$oa's%"6""7a*%"6"M%&al"6"U%&"6"Ma'.l%"6"5+n%n"6""&on%"6""7a*% M%&al"6"0%..l%s"6"Uall"6"R%d Uall"6"0a&&%'n"6"5%a8%s"6"5a^n !'&+f+*+al"6"@a+s?"6">'ang%"6"J+%'?"6"Ros%s"3 o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l '%ll%no %n #(ag%n oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-B#HM!0 ,El no(.'% d% la +(ag%n oJo'(a-J+llB+&(a7<a(% A (#(ag%n2153 oJo'(a-J+llH'ans7a'%n*% A 50 End "u.

Pue es es"ablecer la imagen* es e un arc/ivo e imagen+

A!ren ien o OOo Basic

?%5

"u. !u&oJo'(as1923 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-B#HM!0 ,El no(.'% d% la +(ag%n6 &o(ado d% un a'*h+8o oJo'(a-J+llB+&(a7CR5 A $on8%'&HoCR52 "/ho(%/(au/fondo-)7g" 3 ,Es (odo *on Fu% s% (u%s&'a oJo'(a-J+llB+&(a7Mod% A *o(-sun-s&a'-d'a^+ng-B+&(a7Mod%-RE0E!H End "u.

=l mo o e imagen* es"a e"ermina o !or la enumeraci4n+ com(sun(star(dra7in,(Bitmap"ode


com+sun+s"ar+ ra7ing+Bi"ma!Mo e+@=P=AT com+sun+s"ar+ ra7ing+Bi"ma!Mo e+ST@=T.c com+sun+s"ar+ ra7ing+Bi"ma!Mo e+NOQ@=P=AT

0alor
$ 1 #

0alor en )nterfa2
@e!e"ir A2us"ar No re!e"ir

=l mismo 1on o en una 1orma* con los "res mo os i1eren"es+

)a imagen* no necesariamen"e "iene 6ue es"ar en "u e6ui!o* !ue e es"ar al o"ro la o el mun o* si la ru"a no e:is"e* no "e ar; error* !ero obvio* no "e mos"rar; la imagen+
"u. !u&oJo'(as2023 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-B#HM!0 ,El no(.'% d% la +(ag%n6 &o(ado d% un a'*h+8o d% +n&%'n%& oJo'(a-J+llB+&(a7CR5 A $on8%'&HoCR52 "h&&74//^^^-un+8%'sol+.'%-o'g/a'*h+8os/fa8+*on-7ng" 3 End "u.

?%F

F+1$ Traba2an o con elemen"os gr;1icos

=.1I.2.

+rincipales propiedades de sombra

A/ora veamos las !rinci!ales !ro!ie a es e la sombra e una 1orma+


"u. !u&oJo'(as2123 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os Fu% Fu%'%(os (os&'a' la so(.'a oJo'(a-"hado^ A H'u% ,Es&a.l%*%(os %l *olo' d% la so(.'a oJo'(a-"hado^$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,Es&a.l%*%(os %l n+8%l d% &'ans7a'%n*+a d% la so(.'a oJo'(a-"hado^H'ans7a'%n*% A 50 End "u.

Si no 6uieres mos"rarla solo es"ablece la sombra ( S$ado8) en 1also (5alse)* el color la "rans!arencia "ienen las mismas !ar"iculari a es -a vis"as+ Pue es !osicionar la imagen* en relaci4n a la 1orma* on e 6uieras* !or e2em!lo* !ara es"ablecer la sombra a ? milme"ros e la 1orma* usamos+
"u. !u&oJo'(as2223 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os Fu% Fu%'%(os (os&'a' la so(.'a oJo'(a-"hado^ A H'u% ,Es&a.l%*%(os %l *olo' d% la so(.'a oJo'(a-"hado^$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,Es&a.l%*%(os la d+s&an*+a E T O d% la so(.'a %n *%n&Ss+(as d% (+lG(%&'o oJo'(a-"hado^E@+s&an*% A 300 oJo'(a-"hado^O@+s&an*% A 300 End "u.

Si es"ablecemos la !osici4n (S$ado8H-istance ) S$ado8?-istance) en $* la sombra 6ue a L e"rasM e la 1orma - es LcomoM si la ocul"aras* !ara es"ablecer la 1orma en o"ra !osici4n e la 1orma* !ue es es"ablecer es"as !ro!ie a es en valores nega"ivos* !or e2em!lo* !ara !osicionarla en el e:"remo in1erior iz6uier o* es"ableces los valores en+
"u. !u&oJo'(as2323 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 oJo'(a-"hado^ A H'u% oJo'(a-"hado^$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,Es&a.l%*%(os la d+s&an*+a E T O d% la so(.'a %n *%n&Ss+(as d% (+lG(%&'o oJo'(a-"hado^E@+s&an*% A T500 oJo'(a-"hado^O@+s&an*% A 300 End "u.

A!ren ien o OOo Basic

?%%

=.1I.2.)

%tras propiedades de las auto2ormas

Po emos es"ablecer si la 1orma se va a im!rimir o no* si se !ue e mover o no - si se !ue e cambiar el "amaKo o no* con las siguien"es !ro!ie a es+
"u. !u&oJo'(as2423 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os Fu% no s% +(7'+(a la fo'(a oJo'(a-0'+n&a.l% A Jals% ,Pu% no s% 7u%da (o8%' oJo'(a-Mo8%0'o&%*& A H'u% ,Pu% no *a(.+% %l &a(a\o oJo'(a-"+:%0'o&%*& A H'u% End "u.

Po emos es"ablecer el ;ngulo e ro"aci4n e la 1orma+ )a uni a e es"a valor son cen"3simas e gra o - el sen"i o e ro"aci4n es inverso al giro e las manecillas el relo2+
"u. !u&oJo'(as2523 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l =ngulo d% 'o&a*+Kn %n 45k ,un+dad%s %n *%n&Ss+(as d% g'ado oJo'(a-Ro&a&%!ngl% A 4500 End "u.

Tambi3n !o emos mo i1icar la inclinaci4n e la 1orma* la uni a "ambi3n son cen"3simas e gra o* !ero no "o as las 1ormas lo so!or"an* es"e valor solo !ue e es"ar com!ren i o en"re $v - G,v+
"u. !u&oJo'(as2623 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l =ngulo d% +n*l+na*+Kn oJo'(a-"h%a'!ngl% A 1500 End "u.

Tambi3n !o emos cambiar el or en e las 1ormas* es ecir* 6uien es"a elan"e e 6uien* es"a !ro!ie a * algunas 1ormas es!eciales como rombos o corazones no la so!or"an* el siguien"e e2em!lo in"ercambia la !osici4n e las os !rimeras 1ormas* asegura"e e "ener al

?%G

F+1$ Traba2an o con elemen"os gr;1icos

menos os 1ormas en "u /o2a - e !re1erencia 1ormas es";n ar* rec";ngulos o crculos !ara 6ue veas el e1ec"o+
"u. @+( @+( @+( @+( @+( !u&oJo'(as2723 o0ag+na@+.u)o !s >.)%*& oJo'(a1 !s >.)%*& oJo'(a2 !s >.)%*& 0os1 !s #n&%g%' 0os2 !s #n&%g%'

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a1 A o0ag+na@+.u)o-g%&B?#nd%x203 oJo'(a2 A o0ag+na@+.u)o-g%&B?#nd%x213 0os1 A oJo'(a1-`>'d%' 0os2 A oJo'(a2-`>'d%' oJo'(a1-`>'d%' A 0os2 oJo'(a2-`>'d%' A 0os1 End "u.

Pue es cambiar el nombre e la 1orma* es im!or"an"e 6ue lo es"ablezcas !ara 6ue !ue as verlo en el navega or ('5) e con"eni o el arc/ivo+
"u. !u&oJo'(as2823 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,Es&a.l%*%(os %l no(.'% d% la fo'(a oJo'(a-<a(% A "$+'*ulo !:ul" End "u.

=.1I.2.!

(*rupando y desa*rupando 2ormas

Para agru!ar 1ormas* usamos el siguien"e c4 igo+


"u. @+( @+( @+( !u&oJo'(as2923 o0ag+na@+.u)o !s >.)%*& oD'u7oJo'(as !s >.)%*& oJo'(a !s >.)%*&

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oD'u7oJo'(as A *'%a&%Cno"%'8+*%2"*o(-sun-s&a'-d'a^+ng-"ha7%$oll%*&+on"3 ,<%*%s+&a(os al (%nos dos fo'(as 7a'a ag'u7a' #f o0ag+na@+.u)o-g%&$oun& YA 2 Hh%n ,!g'%ga(os las dos 7'+(%'as oD'u7oJo'(as-add2 o0ag+na@+.u)o-g%&B?#nd%x203 3 oD'u7oJo'(as-add2 o0ag+na@+.u)o-g%&B?#nd%x213 3 ,5as ag'u7a(os o0ag+na@+.u)o-g'ou72 oD'u7oJo'(as 3 Els% MsgBox "!g'%ga (=s fo'(as 7a'a 7od%' ag'u7a'"

A!ren ien o OOo Basic


End #f End "u.

?%,

Si el elemen"o a agregar no e:is"e "e ar; un error en "iem!o e e2ecuci4n+ =n un gru!o !ue es e i"ar ca a elemen"o 6ue lo con"iene e la siguien"e manera+
"u. @+( @+( @+( !u&oJo'(as3023 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& *o1 !s #n&%g%'

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,!**%d%(os a la 7'+(%' fo'(a d% la ho)a oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 ,$h%*a(os Fu% s%a un g'u7o #f oJo'(a-su77o'&s"%'8+*%2"*o(-sun-s&a'-d'a^+ng-D'ou7"ha7%"3 Hh%n ,R%*o''%(os &odas las fo'(as Fu% *on&+%n% Jo' *o1 A 0 Ho oJo'(a-g%&$oun& T 1 ,$a(.+a(os %l *olo' ? %l &a(a\o d% *ada fo'(a al%a&o'+a(%n&% oJo'(a-g%&B?+nd%x2*o13-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 $all $a(.+aHa(2 oJo'(a-g%&B?+nd%x2*o136 Rnd23 10000B10006 Rnd23 5000B10003 <%x& End #f End "u.

=l e2em!lo an"erior* "e ar; un error en un caso e"ermina o* "u "area es averiguar en cual* !ue es e ucirlo a !ar"ir e lo 6ue se comen"a en el e2em!lo ?# - me2orar es"e e2em!lo !ara 6ue 1uncione en "o os los casos+ Para esagru!ar un gru!o* usamos el siguien"e c4 igo+
"u. !u&oJo'(as3123 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x203 #f oJo'(a-su77o'&s"%'8+*%2"*o(-sun-s&a'-d'a^+ng-D'ou7"ha7%"3 Hh%n ,"+ %s un g'u7o6 lo d%sag'u7a(os o0ag+na@+.u)o-ung'ou72 oJo'(a 3 End #f End "u.

Toma en cuen"a 6ue cuan o esagru!as* el n>mero e elemen"os 6ue con"ena el gru!o* se suma a la cuen"a e 1ormas e la !;gina e ibu2o* !or eso* es"e n>mero varia en 1unci4n e agru!ar o esagru!ar 1ormas* "oma en cuen"a es"o cuan o "ra"es e recorrer "o as las 1ormas e la !;gina e ibu2o* el siguien"e e2em!lo* "e esagru!a L"o osM los gru!os e:is"en"es+
"u. @+( @+( @+( @+( !u&oJo'(as3223 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& *o1 !s 5ong .Ha?D'u7o !s Bool%an

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 #f o0ag+na@+.u)o-g%&$oun& Y 0 Hh%n

?G$
@o

F+1$ Traba2an o con elemen"os gr;1icos

oJo'(a A o0ag+na@+.u)o-g%&B?#nd%x2*o13 #f oJo'(a-su77o'&s"%'8+*%2"*o(-sun-s&a'-d'a^+ng-D'ou7"ha7%"3 Hh%n o0ag+na@+.u)o-ung'ou72 oJo'(a 3 ,R%+n+*+a(os la *u%n&a 7a'a %(7%:a' d% *%'o *o1 A 0 Els% *o1 A *o1 B 1 End #f ,$uando *o1 A n;(%'o d% fo'(as6 s+gn+f+*a Fu% '%*o''+K &odas ,las fo'(as s+n %n*on&'a' (=s g'u7os6 7o' lo Fu% sal+(os5oo7 Uh+l% *o1 X o0ag+na@+.u)o-g%&$oun& End #f End "u.

=.1I.2.=

5rabajando con Font;orN

Para inser"ar un "e:"o con 'on"Nors* usamos+


"u. @+( @+( @+( @+( Jon&Uo']123 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (0'o7203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% (>7*213 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,!g'%ga(os una fo'(a 7%'sonal+:ada 2$us&o("ha7%3 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$us&o("ha7%"3 ,$a(.+a(os algunas 7'o7+%dad%s *ono*+das $all $a(.+aHa(2 oJo'(a6 150006 4000 3 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 o0ag+na@+.u)o-add2 oJo'(a 3 ,Es&a.l%*%(os %l &%x&o d% la fo'(a oJo'(a-"&'+ng A ">7%n>ff+*%-o'g Bas+*" ,Es&a 7'o7+%dad %s +(7o'&an&%6 l% d%*+(os Fu% us% una 'u&a 7a'a %l &%x&o ,Fu% %s lo Fu% l% da su 7a'&+*ula'+dad a Jon&Uo'] (0'o7203-<a(% A "H%x&0a&h" (0'o7203-1alu% A H'u% ,Es&a.l%*%(os %l &+7o d% Jon&Uo'] (>7*203-<a(% A "H?7%" (>7*203-1alu% A "fon&^o']T^a8%" ,Es&a.l%*%(os las 7'o7+%dad%s d% la 'u&a d%l &%x&o (>7*213-<a(% A "H%x&0a&h" (>7*213-8alu% A (0'o723 ,!7l+*a(os %s&as 7'o7+%dad%s 7%'sonal+:adas oJo'(a-s%&0'o7%'&?1alu%2"$us&o("ha7%D%o(%&'?"6 (>7*23 3 End "u.

)a ma-ora e las !ro!ie a es con las 1ormas 'on"Nors* se es"ablecen como una ma"riz e !ro!ie a es* el "i!o (.)pe) e la 1orma* e"erminar; el es"ilo el 'on"Nors inser"a o* es"e valor* 6ue es una ca ena (s"ring)* ebe es"ar Le:ac"amen"eM escri"o* si no* no "e ar; ning>n error !ero la 1orma no se inser"ar;* "ienes cuaren"a es"ilos !ara escoger* si combinas el "amaKo* el color - es"ilo e lnea* el color - es"ilo e relleno* "ienes muc/as* muc/as !osibili a es !ara

A!ren ien o OOo Basic

?G1

!ersonalizar las 1ormas+ =n el siguien"e e2em!lo* inser"amos una 1orma* !ero seleccionamos alea"oriamen"e el "i!o el 'on"Nors+
"u. @+( @+( @+( @+( @+( Jon&Uo']223 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (0'o7203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% (>7*213 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% (H+7oJU23

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$us&o("ha7%"3 (H+7oJU A !''a?2"fon&^o']T7la+nT&%x&"6"fon&^o']T^a8%"6"fon&^o']T+nfla&%"6"fon&^o']Ts&o7"6"fon&^o']T *u'8%Tu7"6"fon&^o']T*u'8%Tdo^n"6"fon&^o']T&'+angl%Tu7"6"fon&^o']T&'+angl%Tdo^n"6"fon&^o']Tfad%T '+gh&"6"fon&^o']Tfad%Tl%f&"6"fon&^o']Tfad%Tu7"6"fon&^o']Tfad%Tdo^n"6"fon&^o']Tslan&Tu7"6"fon&^o']T slan&Tdo^n"6"fon&^o']Tfad%Tu7TandT'+gh&"6"fon&^o']Tfad%Tu7TandTl%f&"6"fon&^o']T*h%8'onTu7"6"fon&^o']T *h%8'onTdo^n"6"fon&^o']Ta'*hTu7T*u'8%"6"fon&^o']Ta'*hTdo^nT*u'8%"6"fon&^o']Ta'*hTl%f&T *u'8%"6"fon&^o']Ta'*hT'+gh&T*u'8%"6"fon&^o']T*+'*l%T*u'8%"6"fon&^o']To7%nT*+'*l%T*u'8%"6"fon&^o']T a'*hTu7T7ou'"6"fon&^o']Ta'*hTdo^nT7ou'"6"fon&^o']Ta'*hTl%f&T7ou'"6"fon&^o']Ta'*hT'+gh&T 7ou'"6"fon&^o']T*+'*l%T7ou'"6"fon&^o']To7%nT*+'*l%T7ou'"6"(soTs7&142"6"(soTs7&143"6"(soTs7&157"6"(soT s7&158"6"(soTs7&159"6"(soTs7&161"6"(soTs7&162"6"(soTs7&163"6"(soTs7&164"6"(soTs7&165"6"(soT s7&166"6"(soTs7&167"6"(soTs7&174"6"(soTs7&175"3 $all $a(.+aHa(2 oJo'(a6 150006 4000 3 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-"&'+ng A ">7%n>ff+*%-o'g Bas+*" (0'o7203-<a(% A "H%x&0a&h" (0'o7203-1alu% A H'u% ,Es&a.l%*%(os %l &+7o d% Jon&Uo'] al%a&o'+a(%n&% (>7*203-<a(% A "H?7%" (>7*203-1alu% A (H+7oJU2 Rnd23 CBound2(H+7oJU3 3 (>7*213-<a(% A "H%x&0a&h" (>7*213-8alu% A (0'o723 oJo'(a-s%&0'o7%'&?1alu%2"$us&o("ha7%D%o(%&'?"6 (>7*23 3 End "u.

=n el siguien"e e2em!lo* inser"amos una 1orma 'on"Nors en ?(+


"u. @+( @+( @+( @+( @+( @+( Jon&Uo']323 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (0'o7203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% (0'o7Ex203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% (>7*223 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% (H+7oJU23

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$us&o("ha7%"3 (H+7oJU A !''a?2"fon&^o']T7la+nT&%x&"6"fon&^o']T^a8%"6"fon&^o']T+nfla&%"6"fon&^o']Ts&o7"6"fon&^o']T *u'8%Tu7"6"fon&^o']T*u'8%Tdo^n"6"fon&^o']T&'+angl%Tu7"6"fon&^o']T&'+angl%Tdo^n"6"fon&^o']Tfad%T '+gh&"6"fon&^o']Tfad%Tl%f&"6"fon&^o']Tfad%Tu7"6"fon&^o']Tfad%Tdo^n"6"fon&^o']Tslan&Tu7"6"fon&^o']T slan&Tdo^n"6"fon&^o']Tfad%Tu7TandT'+gh&"6"fon&^o']Tfad%Tu7TandTl%f&"6"fon&^o']T*h%8'onTu7"6"fon&^o']T *h%8'onTdo^n"6"fon&^o']Ta'*hTu7T*u'8%"6"fon&^o']Ta'*hTdo^nT*u'8%"6"fon&^o']Ta'*hTl%f&T *u'8%"6"fon&^o']Ta'*hT'+gh&T*u'8%"6"fon&^o']T*+'*l%T*u'8%"6"fon&^o']To7%nT*+'*l%T*u'8%"6"fon&^o']T a'*hTu7T7ou'"6"fon&^o']Ta'*hTdo^nT7ou'"6"fon&^o']Ta'*hTl%f&T7ou'"6"fon&^o']Ta'*hT'+gh&T 7ou'"6"fon&^o']T*+'*l%T7ou'"6"fon&^o']To7%nT*+'*l%T7ou'"6"(soTs7&142"6"(soTs7&143"6"(soTs7&157"6"(soT

?G#

F+1$ Traba2an o con elemen"os gr;1icos

s7&158"6"(soTs7&159"6"(soTs7&161"6"(soTs7&162"6"(soTs7&163"6"(soTs7&164"6"(soTs7&165"6"(soT s7&166"6"(soTs7&167"6"(soTs7&174"6"(soTs7&175"3 $all $a(.+aHa(2 oJo'(a6 150006 4000 3 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-"&'+ng A ">7%n>ff+*%-o'g Bas+*" (0'o7203-<a(% A "H%x&0a&h" (0'o7203-1alu% A H'u% (0'o7Ex203-<a(% A "Ex&'us+on" (0'o7Ex203-1alu% A H'u% ,Es&a.l%*%(os %l &+7o d% Jon&Uo'] al%a&o'+a(%n&% (>7*203-<a(% A "H?7%" (>7*203-1alu% A (H+7oJU2 $#n&2Rnd23 CBound2(H+7oJU33 3 (>7*213-<a(% A "H%x&0a&h" (>7*213-8alu% A (0'o723 (>7*223-<a(% A "Ex&'us+on" (>7*223-8alu% A (0'o7Ex23 oJo'(a-s%&0'o7%'&?1alu%2"$us&o("ha7%D%o(%&'?"6 (>7*23 3 End "u.

O mira 6ue lin a 6ue o* claro* "e con1ieso 6ue /ice varios in"en"os /as"a 6ue salio es"a 6ue me gus"o+

Tan"o las !ro!ie a es e la ru"a el "e:"o ( .e*t(at$)* como e la con1iguraci4n en ?( ("*trusion)* "ienes varias !ro!ie a es m;s !ara !ersonalizarce com!le"amen"e* escribirlas "o as sale el !ro!4si"o e es"e "ema* !ero es!eramos abor arlas a !ro1un i a en (ra7+

=.1I.2.A

+ropiedades particulares de al*unas 2ormas

)os rec";ngulos - los marcos e "e:"o* son 1ormas mu- similares* los os so!or"an casi las mismas !ro!ie a es* !or e2em!lo* es"ablecer el ra io e las es6uinas - !ersonalizar el com!or"amien"o el "e:"o 6ue con"iene+
"u. !u&oJo'(asEs7%*+al%s123 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,$'%a(os un (a'*o d% &%x&o

A!ren ien o OOo Basic

?G?

oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-H%x&"ha7%"3 $all $a(.+aHa(2 oJo'(a6 100006 5000 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-s%&"&'+ng2"Ma'*o *on &%x&o" 9 $h'2133 9 ">&'a lGn%a"3 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,Es&a.l%*%(os %l 'ad+o d% las %sFu+nas oJo'(a-$o'n%'Rad+us A 1000 ,Es&a.l%*%(os Fu% %l &%x&o s% ada7&% al &a(a\o d% la fo'(a oJo'(a-H%x&J+&Ho"+:% A 1 End "u.

@eem!laza Te:"S/a!e !or @ec"angleS/a!e - veras 6ue sigue 1uncionan o+ )as lneas "ienes !ro!ie a es >nicas* como la !osibili a e es"ablecer el inicio - el 1inal e 1orma i1eren"e+ =l siguien"e e2em!lo agrega una lnea I eJ* "u "area es ecirme 6ue is"ancia "iene la lnea+
"u. !u&oJo'(asEs7%*+al%s223 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,$'%a(os una lGn%a oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-5+n%"ha7%"3 $all $a(.+aHa(2 oJo'(a6 100006 5000 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 200 End "u.

=n el siguien"e e2em!lo* agregamos una lnea ver"ical - o"ra /orizon"al+


"u. !u&oJo'(asEs7%*+al%s323 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 ,$'%a(os una lGn%a ho'+:on&al oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-5+n%"ha7%"3 $all $a(.+aHa(2 oJo'(a6 50006 0 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 200 ,!ho'a una 8%'&+*al oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-5+n%"ha7%"3 $all $a(.+aHa(2 oJo'(a6 06 5000 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 200 End "u.

Observa como /emos logra o ibu2ar una lnea /orizon"al* "an solo !as;n ole el valor p !ara cambiar el "amaKo* como valor O es"ablecemos $* -* lo con"rario !ara la lnea ver"ical+ =n el siguien"e e2em!lo* es"ablecemos el inicio - el 1inal e la lnea* con un cua ro a E5v* lo 6ue "e !ermi"e aco"ar o"ros elemen"os+

?GE

F+1$ Traba2an o con elemen"os gr;1icos

"u. !u&oJo'(asEs7%*+al%s423 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-5+n%"ha7%"3 $all $a(.+aHa(2 oJo'(a6 100006 0 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 300 ,Es&a.l%*%(os %l an*ho d% +n+*+o ? f+nal d% lGn%a oJo'(a-5+n%"&a'&U+d&h A 1000 oJo'(a-5+n%EndU+d&h A 1000 ,Es&a.l%*%(os %l &+7o d% +n+*+o ? f+n d% lGn%a oJo'(a-5+n%"&a'&<a(% A ""Fua'% 45" oJo'(a-5+n%End<a(% A ""Fua'% 45" End "u.

A/ora* es"ablecemos 1lec/as como 1inal e lnea+


"u. !u&oJo'(asEs7%*+al%s523 @+( o0ag+na@+.u)o !s >.)%*& @+( oJo'(a !s >.)%*& o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-5+n%"ha7%"3 $all $a(.+aHa(2 oJo'(a6 100006 0 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 300 ,Es&a.l%*%(os %l an*ho d% +n+*+o ? f+nal d% lGn%a oJo'(a-5+n%"&a'&U+d&h A 1000 oJo'(a-5+n%EndU+d&h A 1000 ,Es&a.l%*%(os %l &+7o d% +n+*+o ? f+n d% lGn%a oJo'(a-5+n%"&a'&<a(% A "!''o^" oJo'(a-5+n%End<a(% A "!''o^" End "u.

Para "erminar es"e "ema* veamos como inser"ar o"ros "i!os e 1ormas* solo algunos+
"u. @+( @+( @+( !u&oJo'(asEs7%*+al%s623 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (>7*203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$us&o("ha7%"3 $all $a(.+aHa(2 oJo'(a6 50006 5000 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 300 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,!g'%ga(os un h%x=gono (>7*203-<a(% A "H?7%" (>7*203-1alu% A "h%xagon" oJo'(a-s%&0'o7%'&?1alu%2"$us&o("ha7%D%o(%&'?"6 (>7*23 3 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$us&o("ha7%"3 $all $a(.+aHa(2 oJo'(a6 50006 5000 3

A!ren ien o OOo Basic

?G5

o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 300 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,!g'%ga(os un *o'a:Kn (>7*203-<a(% A "H?7%" (>7*203-1alu% A "h%a'&" oJo'(a-s%&0'o7%'&?1alu%2"$us&o("ha7%D%o(%&'?"6 (>7*23 3 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$us&o("ha7%"3 $all $a(.+aHa(2 oJo'(a6 50006 5000 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 300 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,!g'%ga(os %l s+(.olo d% o'd%na' %n un d+ag'a(a d% flu)o (>7*203-<a(% A "H?7%" (>7*203-1alu% A "flo^*ha'&Tso'&" oJo'(a-s%&0'o7%'&?1alu%2"$us&o("ha7%D%o(%&'?"6 (>7*23 3 End "u.

.omo -a lo no"as"e* /a- 6ue in icarle el nombre e la 1orma es!ecial 6ue 6ueremos agregar* la can"i a e 1ormas es gran e* com!ru3balo "u mismo con el siguien"e c4 igo on e agregamos una 1orma alea"oria e las i1eren"es oscien"as un !osibles+
"u. @+( @+( @+( @+( !u&oJo'(asEs7%*+al%s723 o0ag+na@+.u)o !s >.)%*& oJo'(a !s >.)%*& (>7*203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% (H+7oJo'(as

(H+7oJo'(as A !''a?2"'%*&angl%"6 "'oundT'%*&angl%"6 "%ll+7s%"6 "d+a(ond"6 "+sos*%l%sT&'+angl%"6 "'+gh&T&'+angl%"6 "7a'all%log'a("6 "&'a7%:o+d"6 "h%xagon"6 "o*&agon"6 "*'oss"6 "s&a'5"6 "'+gh&T a''o^"6 "(soTs7&14"6 "7%n&agonT'+gh&"6 "*u.%"6 "(soTs7&17"6 "(soTs7&18"6 "(soTs7&19"6 "(soTs7&20"6 "(soTs7&21"6 "*an"6 "'+ng"6 "(soTs7&24"6 "(soTs7&25"6 "(soTs7&26"6 "(soTs7&27"6 "(soTs7&28"6 "(soT s7&29"6 "(soTs7&30"6 "(soTs7&31"6 "(soTs7&32"6 "(soTs7&33"6 "(soTs7&34"6 "(soTs7&35"6 "(soTs7&36"6 "(soTs7&37"6 "(soTs7&38"6 "(soTs7&39"6 "(soTs7&40"6 "(soTs7&41"6 "(soTs7&42"6 "(soTs7&43"6 "(soT s7&44"6 "(soTs7&45"6 "(soTs7&46"6 "l+n%T*allou&T1"6 "l+n%T*allou&T2"6 "(soTs7&49"6 "(soTs7&50"6 "(soT s7&51"6 "(soTs7&52"6 "(soTs7&53"6 "(soTs7&54"6 "*h%8'on"6 "7%n&agon"6 "fo'.+dd%n"6 "s&a'8"6 "(soT s7&59"6 "(soTs7&60"6 "'%*&angula'T*allou&"6 "'oundT'%*&angula'T*allou&"6 "'oundT*allou&"6 "(soTs7&64"6 "7a7%'"6 "l%f&Ta''o^"6 "do^nTa''o^"6 "u7Ta''o^"6 "l%f&T'+gh&Ta''o^"6 "u7Tdo^nTa''o^"6 "(soTs7&71"6 ".ang"6 "l+gh&n+ng"6 "h%a'&"6 "(soTs7&75"6 "FuadTa''o^"6 "l%f&Ta''o^T*allou&"6 "'+gh&Ta''o^T*allou&"6 "u7Ta''o^T*allou&"6 "do^nTa''o^T*allou&"6 "l%f&T'+gh&Ta''o^T*allou&"6 "u7Tdo^nTa''o^T*allou&"6 "FuadT a''o^T*allou&"6 "FuadT.%8%l"6 "l%f&T.'a*]%&"6 "'+gh&T.'a*]%&"6 "l%f&T.'a*%"6 "'+gh&T.'a*%"6 "(soT s7&89"6 "(soTs7&90"6 "(soTs7&91"6 "s&a'24"6 "s&'+7%dT'+gh&Ta''o^"6 "no&*h%dT'+gh&Ta''o^"6 ".lo*]T a'*"6 "s(+l%?"6 "8%'&+*alTs*'oll"6 "ho'+:on&alTs*'oll"6 "*+'*ula'Ta''o^"6 "(soTs7&100"6 "(soTs7&101"6 "(soTs7&102"6 "(soTs7&103"6 "(soTs7&104"6 "(soTs7&105"6 "*loudT*allou&"6 "(soTs7&107"6 "(soTs7&108"6 "flo^*ha'&T7'o*%ss"6 "flo^*ha'&Td%*+s+on"6 "flo^*ha'&Tda&a"6 "flo^*ha'&T7'%d%f+n%dT7'o*%ss"6 "flo^*ha'&T+n&%'nalTs&o'ag%"6 "flo^*ha'&Tdo*u(%n&"6 "flo^*ha'&T(ul&+do*u(%n&"6 "flo^*ha'&T&%'(+na&o'"6 "flo^*ha'&T7'%7a'a&+on"6 "flo^*ha'&T(anualT+n7u&"6 "flo^*ha'&T(anualTo7%'a&+on"6 "flo^*ha'&T *onn%*&o'"6 "flo^*ha'&T*a'd"6 "flo^*ha'&T7un*h%dT&a7%"6 "flo^*ha'&Tsu((+ngT)un*&+on"6 "flo^*ha'&To'"6 "flo^*ha'&T*olla&%"6 "flo^*ha'&Tso'&"6 "flo^*ha'&T%x&'a*&"6 "flo^*ha'&T(%'g%"6 "(soTs7&129"6 "flo^*ha'&Ts&o'%dTda&a"6 "flo^*ha'&Ts%Fu%n&+alTa**%ss"6 "flo^*ha'&T(agn%&+*Td+s]"6 "flo^*ha'&Td+'%*&T a**%ssTs&o'ag%"6 "flo^*ha'&Td+s7la?"6 "flo^*ha'&Td%la?"6 "fon&^o']T7la+nT&%x&"6 "fon&^o']Ts&o7"6 "fon&^o']T&'+angl%Tu7"6 "fon&^o']T&'+angl%Tdo^n"6 "fon&^o']T*h%8'onTu7"6 "fon&^o']T*h%8'onTdo^n"6 "(soTs7&142"6 "(soTs7&143"6 "fon&^o']Ta'*hTu7T*u'8%"6 "fon&^o']Ta'*hTdo^nT*u'8%"6 "fon&^o']T*+'*l%T *u'8%"6 "fon&^o']To7%nT*+'*l%T*u'8%"6 "fon&^o']Ta'*hTu7T7ou'"6 "fon&^o']Ta'*hTdo^nT7ou'"6 "fon&^o']T *+'*l%T7ou'"6 "fon&^o']To7%nT*+'*l%T7ou'"6 "fon&^o']T*u'8%Tu7"6 "fon&^o']T*u'8%Tdo^n"6 "fon&^o']Tfad%T u7TandT'+gh&"6 "fon&^o']Tfad%Tu7TandTl%f&"6 "fon&^o']T^a8%"6 "(soTs7&157"6 "(soTs7&158"6 "(soTs7&159"6 "fon&^o']T+nfla&%"6 "(soTs7&161"6 "(soTs7&162"6 "(soTs7&163"6 "(soTs7&164"6 "(soTs7&165"6 "(soT s7&166"6 "(soTs7&167"6 "fon&^o']Tfad%T'+gh&"6 "fon&^o']Tfad%Tl%f&"6 "fon&^o']Tfad%Tu7"6 "fon&^o']T fad%Tdo^n"6 "fon&^o']Tslan&Tu7"6 "fon&^o']Tslan&Tdo^n"6 "(soTs7&174"6 "(soTs7&175"6 "flo^*ha'&T

?GF

F+1$ Traba2an o con elemen"os gr;1icos

al&%'na&%T7'o*%ss"6 "flo^*ha'&ToffT7ag%T*onn%*&o'"6 "(soTs7&178"6 "(soTs7&179"6 "(soTs7&180"6 "l+n%T *allou&T3"6 "(soTs7&182"6 "sun"6 "(oon"6 ".'a*]%&T7a+'"6 ".'a*%T7a+'"6 "s&a'4"6 "(soTs7&188"6 "(soT s7&189"6 "(soTs7&190"6 "(soTs7&191"6 "(soTs7&192"6 "(soTs7&193"6 "(soTs7&194"6 "(soTs7&195"6 "(soT s7&196"6 "(soTs7&197"6 "(soTs7&198"6 "(soTs7&199"6 "(soTs7&200"6 "(soTs7&201"6 "(soTs7&202" 3 o0ag+na@+.u)o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%23 oJo'(a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$us&o("ha7%"3 $all $a(.+aHa(2 oJo'(a6 50006 5000 3 o0ag+na@+.u)o-add2 oJo'(a 3 oJo'(a-5+n%$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 oJo'(a-5+n%U+d&h A 300 oJo'(a-J+ll"&?l% A *o(-sun-s&a'-d'a^+ng-J+ll"&?l%-">5#@ oJo'(a-J+ll$olo' A RDB2 Rnd23 2556Rnd23 2556Rnd23 255 3 ,!g'%ga(os una fo'(a al%a&o'+a (>7*203-<a(% A "H?7%" (>7*203-1alu% A (H+7oJo'(as2 $#n&2Rnd23 CBound2(H+7oJo'(as33 3 oJo'(a-s%&0'o7%'&?1alu%2"$us&o("ha7%D%o(%&'?"6 (>7*23 3 End "u.

=.11

Funciones personali9adas

)a !osibili a e im!lemen"ar nues"ras !ro!ias 1unciones* es una e las carac"ers"icas m;s ricas e una /o2a e calculo* !ara "o o es"e ca!i"ulo* asumo 6ue no "ienes !roblemas con la im!lemen"aci4n e 1ormulas - 1unciones en .alc* es mu- >"il* 6ue "engas muclaro* 6ue las 1unciones siem!re evuelven un valor* aun* - cuan o es"e sea un error* 6ue es"as !ue en o no necesi"ar argumen"os* 6ue los argumen"os son e un "i!o - el valor evuel"o !ue e ser e o"ro* !or e2em!lo* su!ongamos las "riviales 1ormulas !ara ob"ener el i;me"ro* el !erme"ro - el ;rea e un circulo (on e< r ( P A l ra io l (i;me"ro l Perme"ro l drea
radio

D = "r P = D A =r"

=n .alc* su!onien o 6ue el ra io es"e en la cel a A# las 1ormulas seran+ (i;me"ro Perme"ro drea l A# o # l P9() o A# o # l P9() o POT=N.9A(A#8#)

=n OOo Basic* es"as 1unciones !o ran 6ue ar as<

A!ren ien o OOo Basic


>7&+on Ex7l+*+&

?G%

,Jun*+Kn 7a'a o.&%n%' %l d+=(%&'o d% un *+'*ulo Jun*&+on @+a(%&'o$+'*ulo2 Rad+o !s "+ngl% 3 !s @ou.l% @+a(%&'o$+'*ulo A Rad+o End Jun*&+on ,Jun*+Kn 7a'a o.&%n%' %l 7%'G(%&'o d% un *+'*ulo Jun*&+on 0%'+(%&'o$+'*ulo2 Rad+o !s "+ngl% 3 !s @ou.l% $ons& 0# !s "+ngl% A 3-1416 0%'+(%&'o$+'*ulo A Rad+o End Jun*&+on ,Jun*+Kn 7a'a o.&%n%' %l ='%a d% un *+'*ulo Jun*&+on !'%a$+'*ulo2 Rad+o !s "+ngl% 3 !s @ou.l% $ons& 0# !s "+ngl% A 3-1416 !'%a$+'*ulo A 0# End Jun*&+on Rad+o i 2 2 0# 2

=s"as 1unciones* se usan e:ac"amen"e igual 6ue cual6uier o"ra 1unci4n e .alc* es ecir* escribien o su nombre correc"amen"e - !as;n ole los argumen"os correc"os+ Observa la siguien"e imagen* on e es"amos calculan o es"os valores* !or los os m3"o os* con 1ormulas 1unciones incor!ora as e .alc* - con nues"ras 1unciones !ersonaliza as+

)a 1orma como es"ablecemos los argumen"os - el valor evuel"o e la 1unci4n* no "e son esconoci os* los /emos veni o usan o a lo largo e los "emas vis"os* la i1erencia* es 6ue* a/ora a/ora* solo Lllam;bamosM a las 1unciones es e o"ras macros* a/ora* las es"amos usan o es e la /o2a e calculo+ Pero las 1unciones !ersonaliza as son muc/o m;s vers;"iles* no"a como en las "res 1ormulas* usamos el mismo argumen"o* solo el radio* !o emos crear nues"ra 1unci4n !ara 6ue nos evuelva el valor esea o e los "res* sim!lemen"e !as;n ole un segun o argumen"o !ara in ic;rselo+
,Jun*+Kn 7a'a d%8ol8%' un da&o d% un *G'*ulo ,Pu%@a&o 7u%d% &%n%' los 8alo'%s , 1 A @+=(%&'o , 2 A 0%'G(%&'o , 3 A l'%a Jun*&+on $+'*ulo2 Rad+o !s "+ngl%6 Pu%@a&o !s B?&% 3 !s @ou.l% $ons& 0# !s "+ngl% A 3-141592 @+( dH(7 !s @ou.l%

?GG

F+11 'unciones !ersonaliza as

"%l%*& $as% Pu%@a&o $as% 1 dH(7 A Rad+o 2 $as% 2 dH(7 A Rad+o 2 0# $as% 3 dH(7 A 0# Rad+o i 2 End "%l%*& $+'*ulo A dH(7 End Jun*&+on

O el resul"a o+

.uan o le !asas un argumen"o a una 1unci4n es e una /o2a e calculo (generalmen"e una re1erencia a una o varias cel as)* lo 6ue realmen"e "oma la 1unci4n es el valor e es"as cel as+ )as 1unciones !ersonaliza as* "ienen las mismas consi eraciones !resen"es en las 1unciones incor!ora as e .alc* !rinci!almen"e* las relaciona as con el correc"o !aso e argumen"os - el "i!o e valor evuel"o+ Nues"ro siguien"e e2em!lo "ambi3n es mu- sim!le* vamos a ob"ener el ;rea e un "ri;ngulo* cu-a 1ormula es+ (on e< b l Base / l Al"ura A l drea altura base Nues"ra 1unci4n !ara calcular el ;rea* 6ue ara as+
,Jun*+Kn 7a'a *al*ula' %l ='%a d% un &'+=ngulo Jun*&+on !'%aH'+angulo2 B !s "+ngl%6 H !s "+ngl% 3 !s @ou.l% !'%aH'+angulo A 2B End Jun*&+on H3 / 2

A=

bh "

=l asun"o cambia bas"an"e cuan o lo 6ue conocemos son la longi"u e los la os el "ri;ngulo* !ara es"os casos* usamos la 1amosa 1ormula e cer4n+ Te !ongo la 1ormula - an"es e 6ue veas la res!ues"a* "ra"a e /acerla "u mismo+ (on e< A = S S a S b S c

a* b - c l son los la os el "ri;ngulo S l Semi!erme"ro* es ecir* el !erme"ro en"re os A l drea .omo 1unci4n+

A!ren ien o OOo Basic

?G,

,Jun*+Kn 7a'a *al*ula' %l ='%a d% un &'+=ngulo ,*on la fo'(ula d% H%'Kn Jun*&+on !'%aH'+anguloH%'on2 a !s "+ngl%6 . !s "+ngl%6 * !s "+ngl% 3 !s @ou.l% @+( " !s @ou.l% " A 2 a B . B * 3 / 2 !'%aH'+anguloH%'on A "F'2 " 2"Ta3 2"T.3 2"T*3 3 End Jun*&+on

Por su!ues"o* no solo !ue es mane2ar n>meros como argumen"os* en el siguien"e e2em!lo* usamos una 1ec/a como argumen"o* el !lan"eamien"o es el siguien"e8 se con"ra"o un servicio anual* 6ueremos mos"rar en o"ra cel a* el n>mero e as 6ue 1al"an !ara renovar el servicio* no im!or"a el n>mero e aKos 6ue lleva con"ra"a o* solo 6ueremos saber cuan"os as 1al"an !ara la !r4:ima renovaci4n* una !rimera a!ro:imaci4n sera+ .el a A# l 'ec/a e con"ra"aci4n .el a B# l (as 6ue 1al"an !ara renovar

)a 1ormula e la columna B es< l'=.cA(S9('=.cA(AuO(cOO())8M=S(A#)8(AA(A#))DcOO()8AuO(cOO())8AuO(cOO()) R1)8M=S(A#)8(AA(A#))-cOO() =s"a 1ormula -a es un !oco m;s com!le2a* nos !i e un !oco m;s e es1uerzo !ara com!ren erla* !ero es un buen e2em!lo e lo 6ue /a- 6ue /acer cuan o 6ueremos /acer una 1unci4n !ersonaliza a* es ecir* "enemos 6ue "ener mu- claro 6ue es lo 6ue 6ueremos ob"ener 6ue a"os e origen "enemos* en es"e caso* solo "enemos una 1ec/a* la 1ec/a e con"ra"aci4n el servicio* I6ue es lo 6ue /aces !ara saber cuan"os as 1al"an !ara la renovaci4nJ* cui a o* no es una !regun"a ligera* recuer a 6ue el "raba2o e !rograma or* es resolver !roblemas* - los !roblemas* en"re m;s sencillos* son m;s 1;ciles e resolver* as 6ue* "oma"e con calma la res!ues"a e la !regun"a+ =n la soluci4n e la 1unci4n comen"amos !aso a !aso la res!ues"a+
,Jun*+Kn 7a'a sa.%' *uan&os dGas fal&an 7a'a '%no8a' Jun*&+on @+as0a'aR%no8a'2 J%*ha#n+*+al !s @a&% 3 !s #n&%g%' @+( J%*ha!*&ual !s @a&% @+( +@+f%'%n*+a !s #n&%g%' ,5o 7'+(%'o Fu% n%*%s+&a(os %s &%n%' la (+s(a f%*ha +n+*+al ,(+s(o dGa ? (%s6 7%'o *on %l a\o a*&ual6 o.s%'8a *o(o o.&%n%(os ,%l a\o a*&ual6 la fun*+Kn <o^6 d%8u%l8% la f%*ha a*&ual6 *on O%a' o.&%n%(os %l a\o J%*ha!*&ual A @a&%"%'+al2 O%a'2<o^2336 Mon&h2J%*ha#n+*+al36 @a?2J%*ha#n+*+al3 3 ,El s+gu+%n&% 7aso6 %s sa.%' s+ %s&a f%*ha a*&ual6 %s (a?o' o (%no' al dGa d% ho? #f J%*ha!*&ual X <o^23 Hh%n ,"+ %s (%no'6 s+gn+f+*a Fu% la '%no8a*+Kn ?a 7aso6 7o' lo Fu% s% &+%n% ,Fu% au(%n&a' un a\o a la f%*ha a*&ual 7a'a o.&%n%' la *o''%*&a d% '%no8a*+Kn J%*ha!*&ual A @a&%"%'+al2 O%a'2<o^233B16 Mon&h2J%*ha#n+*+al36 @a?2J%*ha#n+*+al3 3 End #f ,R%s&a(os la f%*ha fu&u'a *on %l dGa d% ho?6 7a'a sa.%' *uan&os dGas fal&an ,Csa(os J+x 7a'a %l+(+na' las ho'as ? %8+&a' %l '%dond%o +@+f%'%n*+a A J%*ha!*&ual T J+x2<o^233

?,$
,!s+gna(os %l '%sul&ado @+as0a'aR%no8a' A +@+f%'%n*+a End Jun*&+on

F+11 'unciones !ersonaliza as

.om!aran o* a6u es bas"an"e no"able la como i a

e una 1unci4n !ersonaliza a<

l'=.cA(S9('=.cA(AuO(cOO())8M=S(A#)8(AA(A#))DcOO()8AuO(cOO())8AuO(cOO())R1)8M=S(A#)8(AA(A#))cOO() l(9ASPA@A@=NO5A@(A#)

=n nues"ro siguien"e e2em!lo* "enemos como argumen"os n>meros - regresamos un "e:"o* la "area es mos"rar el valor e un ;ngulo* con1igura o correc"amen"e* !or e2em!lo< 1#5v E5X ?5XX* lo 6ue logramos con la siguien"e 1unci4n+
,Jun*+Kn 7a'a da' fo'(a&o a 8alo'%s s%xag%s+(al%s Jun*&+on !nguloJo'(a&%ado2 D'a !s #n&%g%'6 M+n !s B?&%6 "%g !s B?&% 3 !s "&'+ng @+( sH(7 !s "&'+ng sH(7 A "&'2D'a3 9 "k " 9 "&'2M+n3 9 ", " 9 "&'2"%g3 9 ",," !nguloJo'(a&%ado A sH(7 End Jun*&+on

Observa como es"amos regresan o una ca ena ( String)+ Tu "area es /acer la o!eraci4n inversa* a !ar"ir e la ca ena* regresar cual6uiera e los "res valores* gra os* minu"os o segun os* seg>n el argumen"o !asa o* "e !ongo el es6uele"o e la 1unci4n - "u la esarrollas+
,Jun*+Kn 7a'a d%8ol8%' un 8alo' d% una =ngulo ,El a'gu(%n&o Pu%1alo'6 7u%d% &o(a' los 8alo'%s , 1 A @%8u%l8% los g'ados , 2 A @%8u%l8% los (+nu&os , 3 A @%8u%l8% los s%gundos Jun*&+on @a&o!ngulo2 !ngulo !s "&'+ng6 Pu%1alo' !s B?&% 3 !s #n&%g%' ,Es&a %s &u &a'%a End Jun*&+on

O"ro e2em!lo on e "enemos como argumen"o un n>mero - regresamos una ca ena* es el siguien"e+
,Jun*+Kn 7a'a *on8%'&+' un n;(%'o %n &%x&o Jun*&+on <u(%'oH%x&o2 <u( !s B?&% 3 !s "&'+ng @+( sH(7 !s "&'+ng "%l%*& $as% <u( $as% 0 4 sH(7 $as% 1 4 sH(7 $as% 2 4 sH(7 $as% 3 4 sH(7 $as% 4 4 sH(7 $as% 5 4 sH(7 $as% 6 4 sH(7 $as% 7 4 sH(7 $as% 8 4 sH(7 $as% 9 4 sH(7 A A A A A A A A A A "$%'o" "Cno" "@os" "H'%s" "$ua&'o" "$+n*o" ""%+s" ""+%&%" ">*ho" "<u%8%"

A!ren ien o OOo Basic


End "%l%*& <u(%'oH%x&o A sH(7 End Jun*&+on

?,1

IO !ara 6ue crees 6ue sirve esoJ+++* e:ac"amen"e* !ara /acer la 1amosa 1unci4n 6ue convier"e n>meros a le"ras* sumamen"e >"il - mu- usa a en ;reas a minis"ra"ivas* "e invi"o a 6ue in"en"es esarrollarla* a a la e:"ensi4n e la misma* no la incluimos a6u* !ero si en los arc/ivos e e2em!lo 6ue acom!aKan a es"e libro+ cas"a a/ora* "o os los argumen"os 6ue le /emos !asa o a nues"ras 1unciones* /an si o cel as in ivi uales* !ero "ambi3n !ue es !asarle rangos e cel as* on e* lo >nico 6ue "ienes 6ue "ener en cuen"a* es 6ue los valores e es"e rango* los "omar; como una ma"riz e os imensiones* nues"ra versi4n e la 1unci4n SUMA* es la siguien"e+
,Jun*+Kn 7a'a su(a' los 8alo'%s d% un 'ango Jun*&+on "u(a'Rango2 Rango 3 !s @ou.l% @+( dH(7 !s @ou.l% @+( *o1 !s 5ong6 *o2 !s 5ong ,#&%'a(os %n la 7'+(%' d+(%ns+Kn d% la (a&'+: Jo' *o1 A 5Bound2 Rango61 3 Ho CBound2 Rango61 3 ,#&%'a(os %n la s%gunda d+(%ns+Kn d% la (a&'+: Jo' *o2 A 5Bound2 Rango62 3 Ho CBound2 Rango62 3 ,1a(os su(ando los 8alo'%s dH(7 A dH(7 B Rango2 *o16 *o2 3 <%x& *o2 <%x& *o1 ,!s+gna(os %l '%sul&ado "u(a'Rango A dH(7 End Jun*&+on

Observa como no es"ablecemos el "i!o el argumen"o @ango* es"o es !or 6ue* al ser una ma"riz* es"a* 1orzosamen"e "iene 6ue ser "i!o varian"e ( /ariant)+ 5eamos un e2em!lo !rac"ico on e !asamos como argumen"o un rango e cel as+ =n "o!ogra1a* se !ue e calcular el ;rea e un "erreno o e cual6uier !oligonal cerra a cual6uiera* on e se cuen"a con sus coor ena as* !or varios m3"o os* uno e ellos se llama !or LPro uc"os .ruza osM* cu-o algori"mo* es!ero sea bas"an"e claro en la siguien"e imagen+

?,#

F+11 'unciones !ersonaliza as

=n la cel a (#1E* "enemos el calculo el ;rea* !ero usan o "o o el esarrollo el m3"o o* en la cel a (#1F (en ro2o)* "enemos el mismo resul"a o* !ero usan o la 1unci4n mos"ra a en la cel a (#1G* cu-o c4 igo es el siguien"e+
,Jun*+Kn 7a'a o.&%n%' %l ='%a d% un 7olGgono +''%gula' ,7o' (%d+o d% *oo'd%nadas ? %l (S&odo d% 7'odu*&os *'u:ados Jun*&+on !'%a0ol+gono2 Rango 3 !s @ou.l% @+( "u(a1 !s @ou.l% @+( "u(a2 !s @ou.l% @+( *o1 !s 5ong ,$al*ula(os las su(a d% los 7'odu*&os *'u:ados Jo' *o1 A 5Bound2 Rango61 3 Ho CBound2 Rango61 3 T 1 "u(a1 A "u(a1 B Rango2*o1613 Rango2*o1B1623 "u(a2 A "u(a2 B Rango2*o1B1613 Rango2*o1623 <%x& *o1 ,!s+gna(os %l '%sul&ado !'%a0ol+gono A !.s2"u(a1 T "u(a23 / 2 End Jun*&+on

Mu- im!or"an"e* observa 6ue !ara acce er a la segun a imensi4n e la ma"riz* es"amos em!ezan o en 1* no se cual sea la raz4n e 6ue al acce er a los valores e un rango e cel as !or me io e una 1unci4n* el limi"e in1erior sea siem!re 1 (!or a/ora)* es la >nica e:ce!ci4n 6ue me /e encon"ra o con el uso e ma"rices* recuer alo+

=.12

Con2i*uracin *lobal de Calc

=n es"e ca!i"ulo* veremos algunas o!ciones 6ue a1ec"an a la con1iguraci4n global e .alc* !or e2em!lo lo 6ue 6ueremos ver - lo 6ue no+
"u. $onf+gu'a'$al*123 @+( o@o* !s >.)%*& @+( o$$ !s >.)%*& o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,Mos&'a(os las fo'(ulas %n 8%: d% su '%sul&ado ,%l 8alo' "no'(al" %s falso 2Jals%3 o$$-sho^Jo'(ulas A H'u% ,>*ul&a(os los 8alo'%s *%'o ,%l 8alo' no'(al %s 8%'dad%'o 2H'u%3 o$$-sho^`%'o1alu%s A Jals% ,0od%(os au&o(=&+*a(%n&% d+f%'%n*+a' los 8alo'%s d% ,fo'(ulas *on %s&a 7'o7+%dad6 los 8alo'%s los 7on% ,%n a:ul ? las fo'(ulas %n 8%'d%6 7%'o &%n *u+dado ,no 7od'=s %s&a.l%*%' %l *olo' d% fu%n&% (+%n&'as ,%s&a 7'o7+%dad %s&% %n 8%'dad%'a 2H'u%3 o$$-#s1alu%H+ghl+gh&+ngEna.l%d A H'u% ,Es&a 7'o7+%dad6 solo o*ul&a %l 7%Fu%\o *uad'o 'o)o

A!ren ien o OOo Basic

?,?

,Fu% nos +nd+*a Fu% una *%lda &+%n% una no&a6 la no&a ,s+gu% %x+s&+%ndo6 %s&a.l%*%lo %n 8%'dad%'o 7a'a 8ol8%' ,a 8%' %s&% 7%Fu%\o *uad'o o$$-sho^<o&%s A Jals% End "u.

Tambi3n !o emos mos"rar u ocul"ar o"ros elemen"os e la /o2a e calculo* en "o os los e2em!los siguien"es* al"ernamos el valor e las !ro!ie a es* es ecir* si es";n visibles se ocul"an - viceversa<
"u. $onf+gu'a'$al*223 @+( o@o* !s >.)%*& @+( o$$ !s >.)%*& o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,>*ul&a(os o (os&'a(os las .a''as d% d%s7la:a(+%n&o ,&an&o 8%'&+*al *o(o ho'+:on&al o$$-Has1%'&+*al"*'ollBa' A <o& o$$-Has1%'&+*al"*'ollBa' o$$-HasHo'+:on&al"*'ollBa' A <o& o$$-HasHo'+:on&al"*'ollBa' ,5as %&+Fu%as d% las ho)as o$$-Has"h%%&Ha.s A <o& o$$-Has"h%%&Ha.s ,5os %n*a.%:ados d% f+las ? *olu(nas o$$-Has$olu(nRo^H%ad%'s A <o& o$$-Has$olu(nRo^H%ad%'s ,5as lGn%as d% d+8+s+Kn d% las *%ldas o$$-sho^D'+d A <o& o$$-sho^D'+d ,5as lGn%as d% a?uda *uando s% (u%8% un o.)%&o g'=f+*o o$$-sho^H%l75+n%s A <o& o$$-"ho^H%l75+n%s ,El +*ono d% an*la)% *uando s% s%l%**+ona un o.)%&o g'=f+*o o$$-sho^!n*ho' A <o& o$$-"ho^!n*ho' ,5os sal&os d% 7=g+na o$$-sho^0ag%B'%a]s A <o& o$$-"ho^0ag%B'%a]s ,5os o.)%&os % +(ag%n%s o$$-sho^>.)%*&s A <o& o$$-sho^>.)%*&s ,5os g'=f+*os o$$-sho^$ha'&s A <o& o$$-sho^$ha'&s ,5as fo'(as o$$-sho^@'a^+ng A <o& o$$-sho^@'a^+ng ,5os sG(.olos d% %sFu%(a ? ag'u7a(+%n&o o$$-#s>u&l+n%"?(.ols"%& A <o& o$$-#s>u&l+n%"?(.ols"%& End "u.

Ten cui a o con ocul"ar algunos elemen"os* !or e2em!lo* si ocul"as las e"i6ue"as e las /o2as* el usuario !ue e cambiarse aun con la combinaci4n e "eclas .T@)R@ePag (AvPag)* los sal"os e !;gina se ocul"an* !ero siguen e:is"ien o* as como los gr;1icos* ob2e"os* 1ormas smbolos e es6uema+ =n el siguien"e e2em!lo* cambiamos el color e las lneas e ivisi4n e las cel as - es"ablecemos el zoom con un !orcen"a2e+

?,E
"u. $onf+gu'a'$al*323 @+( o@o* !s >.)%*& @+( o$$ !s >.)%*& o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,0u%d%s *a(.+a' %l *olo' d% las lGn%as d% d+8+s+Kn d% *%ldas ,%l 8alo' 7'%d%&%'(+nado %s g'+s *la'o A 12632256 o$$-g'+d$olo' A RDB2Rnd23 2556Rnd23 2556Rnd23 2553 ,Es&a.l%*%' %l &+7o d% `oo( , 1 A !n*ho d% 7=g+na , 2 A !)us&a' al an*ho ? al&o , 3 A 1alo' o$$-`oo(H?7% A 3 ,"+ lo %s&a.l%*% %n 3 28alo'36 7u%d%s %s&a.l%*%' ,%l 7o'*%n&a)% d% :oo( %n&'% 20e ? 400e o$$-`oo(1alu% A 130 End "u.

F+1# .on1iguraci4n global e .alc

Si es"ableces el !orcen"a2e 1uera e sus limi"es (#$U a E$$U)* es"e se a2us"ar; al m;s cercano+ )as siguien"es !ro!ie a es* solo "iene e1ec"o sobre una sola /o2a* !ero me !arece 6ue son in"eresan"es e ver+ Po emos consul"ar - es"ablecer la !rimer 1ila - columna visible+
"u. $onf+gu'a'$al*423 @+( o@o* !s >.)%*& @+( o$$ !s >.)%*& o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,5a 7'+(%' f+la ? *olu(na 8+s+.l% a*&ual%s MsgBox "J+la4 " 9 o$$-g%&J+'s&1+s+.l%Ro^ 9 $h'2133 9 "$olu(na4 " 9 o$$-g%&J+'s&1+s+.l%$olu(n ,5o +n&%'%san&%6 %s Fu% 7od%(os %s&a.l%*%'las 7a'a Fu% %l usua'+o ,8%a lo Fu% Fu%'a(os Fu% 8%a o$$-s%&J+'s&1+s+.l%Ro^2 50 3 o$$-s%&J+'s&1+s+.l%$olu(n2 10 3 End "u.

Po emos ob"ener el rango visible* como mos"ramos en el e2em!lo* es"e rango se ve a1ec"a o !or el nivel e zoom es"ableci o en la /o2a+
"u. @+( @+( @+( $onf+gu'a'$al*523 o@o* !s >.)%*& o$$ !s >.)%*& oRango1+s+.l% !s >.)%*&

o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,>.&%n%(os %l 'ango 8+s+.l% oRango1+s+.l% A o$$-g%&1+s+.l%Rang%23 ,Mos&'a(os su d+'%**+Kn MsgBox @+'%**+onRango2 oRango1+s+.l% 3 ,$a(.+a(os %l :oo( o$$-`oo(H?7% A 3

A!ren ien o OOo Basic


o$$-`oo(1alu% A o$$-`oo(1alu% B 25 ,1ol8%(os a *onsul&a' %l 'ango 8+s+.l% oRango1+s+.l% A o$$-g%&1+s+.l%Rang%23 MsgBox @+'%**+onRango2 oRango1+s+.l% 3 End "u.

?,5

Jun*&+on @+'%**+onRango2 @+'Rango !s >.)%*&3 !s "&'+ng @+( oH! !s >.)%*& @+( sH(7 !s "&'+ng oH! A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%& sH(7 A oH!-g%&$olu(ns-g%&B?#nd%x2@+'Rango-"&a'&$olu(n3-g%&<a(%23 9 / @+'Rango-"&a'&Ro^ B 1 9 "4" 9 / oH!-g%&$olu(ns-g%&B?#nd%x2@+'Rango-End$olu(n3-g%&<a(%23 9 / @+'Rango-EndRo^ B 1 @+'%**+onRango A sH(7 End Jun*&+on

Po emos saber si la ven"ana es"a ivi i a+


"u. @+( @+( @+( $onf+gu'a'$al*623 o@o* !s >.)%*& o$$ !s >.)%*& s#nfo !s "&'+ng

o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,$onsul&a(os s+ la 8%n&ana %s&a d+8+d+da #f o$$-g%&#sU+ndo^"7l+& Hh%n ,Mos&'a(os la +nfo'(a*+Kn s#nfo A "5a 8%n&ana %s&a d+8+d+da a4 " 9 $h'2133 9 / o$$-g%&"7l+&Ho'+:on&al 9 " 7+x%l%s d% la +:Fu+%'da ?" 9 $h'2133 9 / o$$-g%&"7l+&1%'&+*al 9 " 7+x%l%s d% la 7a'&% su7%'+o'" 9 $h'2133 9 / "En la *olu(na4 " 9 o$$-g%&"7l+&$olu(n 9 " ? %n la f+la4 " 9 o$$-g%&"7l+&Ro^ MsgBox s#nfo Els% MsgBox "5a 8%n&ana no %s&a d+8+d+da" End #f End "u.

Por su!ues"o !o emos es"ablecer la ivisi4n on e 6uieras+


"u. @+( @+( @+( $onf+gu'a'$al*723 o@o* !s >.)%*& o$$ !s >.)%*& s#nfo !s "&'+ng

o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,"+ no %s&a d+8+d+da la d+8+d+(os #f <o& o$$-g%&#sU+ndo^"7l+& Hh%n ,5as un+dad%s son 7+x%l%s o$$-s7l+&!&0os+&+on2 5006300 3 End #f End "u.

?,F

F+1# .on1iguraci4n global e .alc

Si 6uieres es"ablecer solo un ivisi4n* es"ablece la 6ue no 6uieras en cero* !or e2em!lo* si solo 6uieres la ivisi4n ver"ical usas<
o$$-s7l+&!&0os+&+on2 50060 3

Para la /orizon"al<
o$$-s7l+&!&0os+&+on2 06300 3

Para eliminar la ivisi4n<


o$$-s7l+&!&0os+&+on2 060 3

Tambi3n !o emos saber si la ven"an es"a 1i2a+


"u. @+( @+( @+( $onf+gu'a'$al*823 o@o* !s >.)%*& o$$ !s >.)%*& s#nfo !s "&'+ng

o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,$onsul&a(os s+ la 8%n&ana %s&a f+)a #f o$$-hasJ'o:%n0an%s Hh%n MsgBox "5a 8%n&ana %s&a f+)a" Els% MsgBox "5a 8%n&ana no %s&a f+)a" End #f End "u.

O es"ablecer la !osici4n e es"a* a6u se usa la columna - 1ila esea a+


"u. @+( @+( @+( $onf+gu'a'$al*923 o@o* !s >.)%*& o$$ !s >.)%*& s#nfo !s "&'+ng

o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,Es&a.l%*%(os la d+8+s+Kn %n la *olu(na 5 ? f+la 10 o$$-f'%%:%!&0os+&+on2 56 103 End "u.

Al igual 6ue con la ven"ana ivi i a* si 6uiere es"ablecer solo un sen"i o* es"ablece el o"ro en cero* si es"ableces los os argumen"os en ceros* no eliminaras la ivisi4n* si 6ue la ven"ana se 1i2ara en la !osici4n ac"ual el cursor e cel a+
o$$-f'%%:%!&0os+&+on2 06 03

Si 6uieres 6ui"arla* usa el mismo m3"o o vis"o an"eriormen"e<

A!ren ien o OOo Basic


o$$-s7l+&!&0os+&+on2 060 3

?,%

Si ivi es la ven"ana !or cual6uiera e los os m3"o os vis"os* es";s !ue en "ener # o cua"ro !ar"es* ca a una e es"as !ar"es se llama !anel* - !ue es "ener acceso a ca a rango e ca a !anel* como se mues"ra en el siguien"e e2em!lo<
"u. @+( @+( @+( @+( @+( $onf+gu'a'$al*1023 o@o* !s >.)%*& o$$ !s >.)%*& o0an%l !s >.)%*& *o1 !s B?&% s#nfo !s "&'+ng

o@o* A Hh+s$o(7on%n& o$$ A o@o*-g%&$u''%n&$on&'oll%'23 ,5a 8%n&ans d%.% %s&a' f+)a o d+8+d+da #f o$$-g%&#sU+ndo^"7l+& >' o$$-hasJ'o:%n0an%s Hh%n Jo' *o1 A 0 Ho o$$-g%&$oun& T 1 ,>.&%n%(os a**%so a *ada 7an%l o0an%l A o$$-g%&B?#nd%x2 *o1 3 ,Mos&'a(os su d+'%**+Kn MsgBox "5a d+'%**+Kn d%l 0an%l " 9 *o1B1 9 " %s4 " 9 @+'%**+onRango22 o0an%l-g%&R%f%''%d$%lls 3 <%x& *o1 End #f End "u. Jun*&+on @+'%**+onRango22Rango !s >.)%*&3 !s "&'+ng @+( sH(7 !s "&'+ng "%l%*& $as% Rango-g%&#(7l%(%n&a&+on<a(%23 $as% ""*$%ll>.)" sH(7 A Rango-g%&"7'%adsh%%&-g%&<a(%23 9 "-" 9 / Rango-g%&$olu(ns23-g%&B?#nd%x203-g%&<a(%23 9 / Rango-g%&$%ll!dd'%ss-Ro^ B 1 $as% ""*$%llRang%>.)"6 ""*$%ll$u'so'>.)" sH(7 A Rango-g%&"7'%adsh%%&-g%&<a(%23 9 "-" 9 / Rango-g%&$olu(ns23-g%&B?#nd%x203-g%&<a(%23 9 / Rango-g%&Rang%!dd'%ss-"&a'&Ro^ B 1 9 "4" 9 / Rango-g%&$olu(ns23-g%&B?#nd%x2Rango-g%&$olu(ns23-g%&$oun&23T 13-g%&<a(%23 9 / Rango-g%&Rang%!dd'%ss-EndRo^ B 1 $as% ""*$%llRang%s>.)" sH(7 A [o+n2 "7l+&2Rango-g%&Rang%!dd'%ss%s!s"&'+ng236"f"36$h'2133 3 End "%l%*& @+'%**+onRango2 A sH(7 End Jun*&+on

)a 1unci4n an"erior -a la /emos usa o an"eriormen"e* a6u la re!e"imos !or si no la "ienes a mano* - con es"o amos !or "ermina o un nuevo "ema+

?,G

% Traba2an o con 1ormularios

A 5rabajando con 2ormularios


)os 1ormularios* nos !ermi"en in"erac"uar con el usuario !or me io e con"roles* 6ue son ob2e"os e ibu2o con carac"ers"icas es!eciales - la ca!aci a e !o er asociarles la e2ecuci4n e macros+ =l 1ormulario - la ma-ora e los con"roles* "iene !ro!ie a es es!eciales !ara enlazarse - mani!ular bases e a"os* aun6ue se !ue en usar sin ellas+ =l uso e 1ormularios !ermi"e au"oma"izar* aun m;s* m>l"i!les "areas* "ambi3n !ue en servir !ara a-u ar al usuario con la mani!ulaci4n e a"os* sobre "o o* a los 6ue "ienen !oca e:!eriencia con la /o2a e calculo -a 6ue nos !ermi"e conver"ir una /o2a e .alc* en una nueva - com!le"amen"e !ersonaliza a in"er1az e usuario+ Asumo 6ue no "ienes !roblemas* como usuario* con el uso e los 1ormularios* es ecir* 6ue sabes agregar los con"roles a la in"er1az el usuario - mani!ular sus !ro!ie a es en "iem!o e iseKo* a6u* veremos como mani!ular las !ro!ie a es m;s im!or"an"es e es"os* en "iem!o e e2ecuci4n* es ecir* con c4 igo OOo Basic+

A.1

Formularios ?Forms@

)os 1ormularios - sus con"roles* se colocan sobre la ca!a e ibu2o* !or lo 6ue* a "rav3s e es"a /a- 6ue acce er a ellos* como en el siguien"e e2em!lo* on e mos"ramos los nombres e los 1ormularios e:is"en"es en la /o2a ac"iva+
"u. @+( @+( @+( @+( @+( Jo'(ula'+os123 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& *o1 !s #n&%g%'

,El a'*h+8o d%sd% dond% s% lla(a %s&a (a*'o o@o* A Hh+s$o(7on%n& ,5a ho)a a*&+8a oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,5a 7=g+na d% d+.u)o o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 ,Hodos los fo'(ula'+os oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 ,#&%'a(os %n *ada uno (os&'ando su no(.'% Jo' *o1 A 0 Ho oJo'(ula'+os-g%&$oun&23 T 1 MsgBox oJo'(ula'+os-g%&B?#nd%x2*o13-g%&<a(%23 <%x& *o1 End "u.

.omo en el e2em!lo an"erior* !ue es acce er a un 1ormulario !or su n ice o !or su nombre* en los os casos el 1ormulario L ebeM e e:is"ir* ebes e vali arlo como en<
"u. @+( @+( @+( @+( @+( @+( Jo'(ula'+os223 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& +<u( !s #n&%g%' s<o(.'% !s "&'+ng

,El a'*h+8o d%sd% dond% s% lla(a %s&a (a*'o

A!ren ien o OOo Basic

?,,

o@o* A Hh+s$o(7on%n& ,5a ho)a a*&+8a oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 ,5a 7=g+na d% d+.u)o o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 ,Hodos los fo'(ula'+os oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 +<u( A 1 ,<os as%gu'a(os d% Fu% %x+s&% %l n;(%'o d% fo'(ula'+o #f +<u( X oJo'(ula'+os-g%&$oun&23 Hh%n MsgBox oJo'(ula'+os-g%&B?#nd%x2+<u(3-g%&<a(%23 End #f s<o(.'% A "@+'%*&o'+o" ,<os as%gu'a(os d% Fu% %x+s&% %l no(.'% d%l fo'(ula'+o #f oJo'(ula'+os-hasB?<a(%2s<o(.'%3 Hh%n MsgBox oJo'(ula'+os-g%&B?<a(%2s<o(.'%3-g%&<a(%23 End #f End "u.

Pue es cambiar el nombre el 1ormulario<


"u. @+( @+( @+( @+( @+( Jo'(ula'+os323 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?#nd%x203 MsgBox oJo'(ula'+o-g%&<a(%23 ,$a(.+a(os %l no(.'% d%l 7'+(%' fo'(ula'+o oJo'(ula'+o-s%&<a(%2"<u%8o Jo'(ula'+o"3 End "u.

Pue es cambiar el origen e a"os el 1ormulario<


"u. @+( @+( @+( @+( @+( Jo'(ula'+os423 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?#nd%x203 MsgBox oJo'(ula'+o-@a&a"ou'*%<a(% ,$a(.+a(os la fu%n&% d% da&os oJo'(ula'+o-@a&a"ou'*%<a(% A "@+'%*&o'+o" End "u.

E$$

%+1 'ormularios ('orms)

A6u ebes e "ener algunas consi eraciones im!or"an"es8 los nombres e las 1uen"es e a"os* son nombres e bases e a"os regis"ra as en OOo - -a vis"as en el ca!i"ulo e Bases e a"os* !or lo 6ue no las re!e"iremos a6u* si la 1uen"e e a"os no e:is"e* no "e ar; ning>n error* !ero claro* no ob"en r;s na a e a"os* "en cui a o al cambiar la 1uen"e e a"os* no solo el 1ormulario !ue e es"ar vincula o con es"a* los con"roles el 1ormulario* "ambi3n !ue en es"ar vincula os a ella* !or lo 6ue !er er;s cual6uier vinculo a los a"os* lo m;s com>n* es enlazar una vez al inicio e la con1iguraci4n e un 1ormulario* o !ara corregir esa2us"es realiza os !or los usuarios+ A em;s e la 1uen"e e a"os* !ue es es"ablecer el "i!o e con"eni o* - el con"eni o+
"u. @+( @+( @+( @+( @+( Jo'(ula'+os523 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?#nd%x203 ,Es&a.l%*%(os la .as% d% da&os fu%n&% oJo'(ula'+o-@a&a"ou'*%<a(% A "@+'%*&o'+o" ,$o(o o'+g%n una &a.la oJo'(ula'+o-$o((andH?7% A 0 ,El no(.'% d% la &a.la oJo'(ula'+o-$o((and A "&.l$+udad%s" End "u.

=n el siguien"e e2em!lo es"ablecemos una consul"a como origen e a"os


"u. @+( @+( @+( @+( @+( Jo'(ula'+os623 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?#nd%x203 ,Es&a.l%*%(os la .as% d% da&os fu%n&% oJo'(ula'+o-@a&a"ou'*%<a(% A "@+'%*&o'+o" ,$o(o o'+g%n una *onsul&a oJo'(ula'+o-$o((andH?7% A 1 ,El no(.'% d% la *onsul&a oJo'(ula'+o-$o((and A "F'?$+udad%s" End "u.

Por ul"imo* !o emos es"ablecer un coman o Se) como origen e a"os<


"u. Jo'(ula'+os723

A!ren ien o OOo Basic


@+( @+( @+( @+( @+( o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*&

E$1

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?#nd%x203 ,Es&a.l%*%(os la .as% d% da&os fu%n&% oJo'(ula'+o-@a&a"ou'*%<a(% A "@+'%*&o'+o" ,$o(o o'+g%n una +ns&'u**+Kn "P5 oJo'(ula'+o-$o((andH?7% A 2 ,5a +ns&'u**+Kn "P5 oJo'(ula'+o-$o((and A ""E5E$H JR>M &.l$on&a*&os" End "u.

To as las !recauciones - !ar"iculari a es vis"as en las bases e a"os* son a!licables a los 1ormularios* !or lo 6ue "e recomien o las "engas siem!re !resen"es+ Pue es agregar nuevos 1ormularios a la colecci4n+
"u. @+( @+( @+( @+( @+( Jo'(ula'+os823 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& o<u%8oJo'(ula'+o !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 ,$'%a(os un nu%8o fo'(ula'+o o<u%8oJo'(ula'+o A o@o*-*'%a&%#ns&an*%2 "*o(-sun-s&a'-fo'(-*o(7on%n&-Jo'(" 3 ,5o ag'%ga(os a los fo'(ula'+os oJo'(ula'+os-+ns%'&B?<a(%2"M+@+'%*&o'+o"6 o<u%8oJo'(ula'+o3 End "u.

Pue es agregar 1ormularios con el mismo nombre - no "e ar; ning>n error* !ero no es lo com>n* es me2or 6ue veri1i6ues 6ue el nombre no e:is"a como -a se vio - agregues nombres >nicos a la colecci4n e 1ormularios !ara su 1;cil i en"i1icaci4n+

E$#

%+1 'ormularios ('orms)

A.2

Etiquetas ?3abel@

)as e"i6ue"as son los con"roles m;s sim!les* !ues su 1unci4n es solo mos"rar un "e:"o al usuario sin 6ue es"e !ue a mo i1icarlo* generalmen"e un "i"ulo* un mensa2e o el encabeza o e un cam!o+ Se les !ue e asociar un even"o* !or e2em!lo* el clic el ra"4n* !ero no es usual 6ue se /aga* generalmen"e son con"roles es";"icos+ =l siguien"e e2em!lo* agrega una e"i6ue"a al 1ormulario llama o LMi(irec"orioM+
"u. @+( @+( @+( @+( @+( @+( @+( E&+Fu%&as123 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o<u%8aE&+Fu%&a !s >.)%*& o<u%8aE&+Fu%&aMod%lo !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol o<u%8aE&+Fu%&a A o@o*-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 o<u%8aE&+Fu%&a6 50006 1500 3 $all $a(.+a0os2 o<u%8aE&+Fu%&a6 10006 1000 3 ,$'%a(os una nu%8a %&+Fu%&a o<u%8aE&+Fu%&aMod%lo A o@o*-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-J+x%dH%x&"3 ,Es&a.l%*%(os su no(.'%s o<u%8aE&+Fu%&aMod%lo-<a(% A "l.l#d" ,El &%x&o Fu% 8%'= %l usua'+o o<u%8aE&+Fu%&aMod%lo-5a.%l A "$la8%" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol o<u%8aE&+Fu%&a-$on&'ol A o<u%8aE&+Fu%&aMod%lo ,5o ag'%ga(os al fo'(ula'+o6 %l 7'+(%' a'gu(%n&o6 %n %s&% *aso 06 %s %l Gnd+*% Fu% &%nd'= %l nu%8o *on&'ol ag'%gado oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8aE&+Fu%&aMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% o0ag+na@+.u)o-add2 o<u%8aE&+Fu%&a 3 End "u. ,Ma*'o 7a'a *a(.+a' la 7os+*+Kn d% un o.)%&o "u. $a(.+a0os2 >.) !s >.)%*&6 E !s 5ong6 O !s 5ong 3 @+( o0os !s <%^ *o(-sun-s&a'-a^&-0o+n& o0os-E A E o0os-O A O >.)-s%&0os+&+on2 o0os 3 End "u. ,Ma*'o 7a'a *a(.+a' %l &a(a\o d% un o.)%&o "u. $a(.+aHa(2 >.) !s >.)%*&6 !n*ho !s 5ong6 !l&o !s 5ong 3 @+( oHa( !s <%^ *o(-sun-s&a'-a^&-"+:%

A!ren ien o OOo Basic


oHa(-U+d&h A !n*ho oHa(-H%+gh& A !l&o >.)-s%&"+:%2 oHa( 3 End "u.

E$?

)as subru"inas !ara cambiar e !osici4n - "amaKo* son las mismas usa as en ca!"ulos an"eriores+ Al ser una 1orma (s/a!e)* los con"roles so!or"an la ma-ora e las !ro!ie a es vis"as an"eriormen"e (color* lnea* relleno* 1uen"e* e"c)* !or lo 6ue no las re!e"iremos a6u - nos cen"raremos en la 1orma e mani!ular las !ro!ie a es !ar"iculares e ca a con"rol es e su Lmo eloM* !or e2em!lo* !ara acce er a la e"i6ue"a crea a en el e2em!lo an"erior* usamos el siguien"e c4 igo+
"u. @+( @+( @+( @+( @+( @+( E&+Fu%&as223 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& ol.l$la8% !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado l.l#d ol.l$la8% A oJo'(ula'+o-g%&B?<a(%2"l.l#d"3 ,$a(.+a(os %l &%x&o Fu% 8% %l usua'+o ol.l$la8%-5a.%l A "<u%8o &%x&o" End "u.

O"ras !ro!ie a es 6ue !ue es mani!ular en las e"i6ue"as son<


"u. @+( @+( @+( @+( @+( @+( E&+Fu%&as323 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& ol.l$la8% !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado l.l#d ol.l$la8% A oJo'(ula'+o-g%&B?<a(%2"l.l#d"3 U+&h ol.l$la8% -Jon&<a(% A "5+nux B+ol+nu(" -Jon&H%+gh& A 18 -Ba*]g'ound$olo' A RDB2200620062003 -Bo'd%' A 2 -Bo'd%'$olo' A RDB225560603 -H%x&$olo' A RDB206062003 -!l+gn A 1 ,5a fu%n&% ,El &a(a\o d% fu%n&% ,El *olo' d% fondo ,El &+7o d% .o'd% 22 A 7lano 3 ,El *olo' d%l .o'd% 2solo %f%*&+8o s+ Bo'd%' A 23 ,El *olo' d%l &%x&o ,!l+n%a*+Kn ho'+:on&al

E$E
-1%'&+*al!l+gn A 1 End U+&h End "u. ,!l+n%a*+Kn 8%'&+*al

%+# ="i6ue"as ()abel)

=l bor e (Bor er)* "ambi3n !ue e ser8 sin bor e($) o ?( (1)* la alienaci4n /orizon"al !ue e ser a la iz6uier a ($)* al cen"ro (1) o a la erec/a (#)* la ver"ical* !ue e "omar los valores* arriba ($)* en me io (1) o aba2o (#)+ )a ma-ora e los con"roles* cuen"an con una !ro!ie a !ara ac"ivarlos o esac"ivarlos (=nable )* es ecir* !ara !ermi"ir su in"eracci4n con el usuario o no* en el siguien"e e2em!lo* se invier"a el valor e es"a !ro!ie a e la misma e"i6ue"a+
"u. @+( @+( @+( @+( @+( @+( E&+Fu%&as423 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& ol.l$la8% !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado l.l#d ol.l$la8% A oJo'(ula'+o-g%&B?<a(%2"l.l#d"3 ,#n8%'&+(os %l 8alo' d% la 7'o7+%dad ol.l$la8%-Ena.l%d A <o& ol.l$la8%-Ena.l%d End "u.

=s"a !ro!ie a es m;s >"il en o"ro "i!o e con"roles* 6ue en las e"i6ue"as+

A.

Cuadros de te'to ?5e't&o'@

)os cua ro e "e:"o (Te:"Bo:) son con"roles 6ue nos !ermi"en in"erac"uar con el usuario* "an"o !ara mos"rar in1ormaci4n* como !ara !ermi"irle mo i1icarla* en el siguien"e e2em!lo* agregamos un nuevo cua ro e "e:"o a nues"ro 1ormulario+
"u. @+( @+( @+( @+( @+( @+( @+( $uad'oH%x&o123 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o$uad'oH%x&o !s >.)%*& o$uad'oH%x&oMod%lo !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3

A!ren ien o OOo Basic

E$5

,$'%a(os una nu%8a fo'(a d% *on&'ol o$uad'oH%x&o A o@o*-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 o$uad'oH%x&o6 100006 800 3 $all $a(.+a0os2 o$uad'oH%x&o6 20006 2000 3 ,$'%a(os un nu%8o *uad'o d% &%x&o o$uad'oH%x&oMod%lo A o@o*-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-H%x&J+%ld"3 ,Es&a.l%*%(os su no(.'% o$uad'oH%x&oMod%lo-<a(% A "&x&<o(.'%" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol o$uad'oH%x&o-$on&'ol A o$uad'oH%x&oMod%lo ,5o ag'%ga(os al fo'(ula'+o oJo'(ula'+o-+ns%'&B?#nd%x206 o$uad'oH%x&oMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% o0ag+na@+.u)o-add2 o$uad'oH%x&o 3 End "u.

)os cua ros e "e:"o* com!ar"en algunas !ro!ie a es con las e"i6ue"as+
"u. @+( @+( @+( @+( @+( @+( $uad'oH%x&o223 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o&x&<o(.'% !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado &x&<o(.'% o&x&<o(.'% A oJo'(ula'+o-g%&B?<a(%2"&x&<o(.'%"3 U+&h o&x&<o(.'% -Jon&<a(% A "5+nux B+ol+nu(" -Jon&H%+gh& A 14 -Ba*]g'ound$olo' A RDB2230623062303 -Bo'd%' A 1 -H%x&$olo' A RDB20610062003 -!l+gn A 0 End U+&h End "u. ,5a fu%n&% ,El &a(a\o d% fu%n&% ,El *olo' d% fondo ,El &+7o d% .o'd% 21 A 3@ 3 ,El *olo' d%l &%x&o ,!l+n%a*+Kn ho'+:on&al 2+:Fu+%'da3

=l !rinci!al uso e es"os con"roles es recu!erar su con"eni o o es"ablecerlo+


"u. @+( @+( @+( @+( @+( @+( @+( $uad'oH%x&o323 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o&x&<o(.'% !s >.)%*& s#nfo !s "&'+ng

E$F
o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado &x&<o(.'% o&x&<o(.'% A oJo'(ula'+o-g%&B?<a(%2"&x&<o(.'%"3 ,R%*u7%'a(os %l &%x&o d%l *on&'ol s#nfo A o&x&<o(.'%-H%x& ,5o (os&'a(os MsgBox s#nfo ,"ol+*+&a(os un nu%8o *on&%n+do s#nfo A #n7u&Box2"Es*'+.% un nu%8o *on&%n+do 7a'a %l *on&'ol"3 ,O lo %s&a.l%*%(os o&x&<o(.'%-H%x& A s#nfo End "u.

%+? .ua ros e "e:"o (Te:"Bo:)

Tambi3n !ue es usar la !ro!ie a S"ring !ara recu!erar o es"ablecer el "e:"o el con"rol+ )os cua ros e "e:"o* cuen"an con muc/as m;s !ro!ie a es+
"u. @+( @+( @+( @+( @+( @+( $uad'oH%x&o423 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o&x&<o(.'% !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado &x&<o(.'% o&x&<o(.'% A oJo'(ula'+o-g%&B?<a(%2"&x&<o(.'%"3 U+&h o&x&<o(.'% -E*ho$ha' A 42 -MaxH%x&5%n A 20 -Mul&+5+n% A H'u% -H"*'oll A Jals% -1"*'oll A H'u% -0'+n&a.l% A H'u% -R%ad>nl? A Jals% -@a&aJ+%ld A "<o(.'%" End U+&h End "u. ,El *a'=*&%' d% *on&'as%\a 42 A ,5ong+&ud (=x+(a a*%7&ada ,"+ %s o no (ul&+lGn%a ,"+ s% (u%s&'a o no la .a''a d% d%s7la:a(+%n&o ho'+:on&al ,"+ s% (u%s&'a o no la .a''a d% d%s7la:a(+%n&o 8%'&+*al ,"+ %s +(7'+(% o no %l *on&'ol ,"+ %s o no d% solo l%*&u'a ,Es&a.l%*% %l *a(7o d% la .as% d% da&os (os&'ada

Algunas e es"as !ro!ie a es se con"ra!onen* !or e2em!lo* si es"ableces el con"rol en mul"ilnea (Mul"i)ine)* el car;c"er e con"raseKa (=c/o./ar) no "iene e1ec"o como "am!oco las barras e es!lazamien"o (cscroll - 5scroll)* !or su!ues"o* si es"ableces el con"rol en solo lec"ura (@ea Onl-)* el usuario no !o r; escribir en el+ =l cam!o vincula o ((a"a'iel )* solo ser; e1ec"ivo si !reviamen"e el 1ormulario se relaciono con una base e a"os - con una 1uen"e e a"os ("abla* consul"a o ins"rucci4n Se))* a em;s* el nombre el cam!o 4debe e'istir1 en el origen e a"os+ Si 6uieres 6ui"ar la relaci4n* es"ablece es"a !ro!ie a en vaca+ Pue es vincular el con"rol con una cel a e cual6uier /o2a* es"o "e !ermi"e re1le2ar cual6uier cambio 6ue se /aga en uno en el o"ro* solo !ue es es"ablecer el cam!o vincula o

A!ren ien o OOo Basic

E$%

((a"a'iel ) o la cel a vincula a (5alueBin ing)* "en r; e1ec"o el ul"imo 6ue es"ablezcas como en nues"ro e2em!lo+
"u. @+( @+( @+( @+( @+( @+( @+( @+( @+( $uad'oH%x&o523 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o&x&<o(.'% !s >.)%*& o@+'$%lda1+n*ulada !s >.)%*& (>7*203 !s <%^ "*o(-sun-s&a'-.%ans-<a(%d1alu%" o1+n*ulo !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado &x&<o(.'% o&x&<o(.'% A oJo'(ula'+o-g%&B?<a(%2"&x&<o(.'%"3 ,>.&%n%(os la d+'%**+Kn d% la *%lda B5 o@+'$%lda1+n*ulada A oHo)a!*&+8a-g%&$%llB?0os+&+on21643-g%&$%ll!dd'%ss ,$'%a(os la 7'o7+%dad 7a'a 8+n*ula' (>7*203-<a(% A "Bound$%ll" (>7*203-1alu% A o@+'$%lda1+n*ulada ,$'%a(os la +ns&an*+a d% la *%lda a 8+n*ula' o1+n*uloA o@o*-*'%a&%#ns&an*%U+&h!'gu(%n&s2"*o(-sun-s&a'-&a.l%-$%ll1alu%B+nd+ng"6 (>7*233 ,O la 8+n*ula(os al *uad'o d% &%x&o o&x&<o(.'%-s%&1alu%B+nd+ng2 o1+n*ulo 3 End "u.

Pue es ac"ivar - esac"ivar (=nable ) el con"rol* "oma en cuen"a 6ue ac"ivarlo es i1eren"e e es"ablecerlo en solo lec"ura (@ea Onl-)+
"u. @+( @+( @+( @+( @+( @+( $uad'oH%x&o623 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o&x&<o(.'% !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado &x&<o(.'% o&x&<o(.'% A oJo'(ula'+o-g%&B?<a(%2"&x&<o(.'%"3 ,!*&+8a(os ? d%sa*&+8a(os %l *on&'ol o&x&<o(.'%-Ena.l%d A <o& o&x&<o(.'%-Ena.l%d End "u.

=s"e con"rol* es !osible conver"irlo en cua ro e "e:"o enri6ueci o* ca!az e mos"rar "e:"o con i1eren"es 1orma"os+
"u. $uad'oH%x&o723

E$G
@+( @+( @+( @+( @+( @+( @+( o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o&x&<o(.'% !s >.)%*& o$u'so' !s >.)%*&

%+? .ua ros e "e:"o (Te:"Bo:)

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,R%f%'%n*+a al *on&'ol lla(ado &x&<o(.'% o&x&<o(.'% A oJo'(ula'+o-g%&B?<a(%2"&x&<o(.'%"3 ,Es&a.l%*%(os Fu% s%a (ul&+lGn%a ? Fu% so7o'&% &%x&o %n'+Fu%*+do o&x&<o(.'%-Mul&+l+n% A H'u% o&x&<o(.'%-R+*hH%x& A H'u% ,$'%a(os un *u'so' o$u'so' A o&x&<o(.'%-*'%a&%H%x&$u'so'23 ,#ns%'&a(os una lGn%a d% &%x&o o&x&<o(.'%-+ns%'&"&'+ng2 o$u'so'6 "0'+(%'a lGn%a"6 Jals%3 ,#ns%'&a(os un sal&o d% 7a''afo o&x&<o(.'%-+ns%'&$on&'ol$ha'a*&%'2 o$u'so'6 06 Jals%3 ,#ns%'&a(os o&'a lGn%a d% &%x&o o&x&<o(.'%-+ns%'&"&'+ng2 o$u'so'6 ""%gunda lGn%a"6 Jals%3 End "u.

Una "area mu- com>n al "raba2ar con con"roles* es enviarles el 1oco* es ecir* mover el cursor a es"e* !ara ello* "enemos 6ue a!ren er un nuevo conce!"o* /as"a a/ora !ara acce er a los con"roles e un 1ormulario* nos /a bas"a o como me io el mismo 1ormulario* a es"e mo o e acceso se le llama Lmo eloM* !ero !ara usar o"ras !ro!ie a es - m3"o os* solo es !osible /acer a "rav3s e la Lvis"aM el con"rol* !ara en"rar al mo o Lvis"a* usamos el siguien"e c4 igo+
"u. @+( @+( @+( @+( @+( @+( @+( $uad'oH%x&o823 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o&x&<o(.'% !s >.)%*& o&x&<o(.'%1+s&a !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o&x&<o(.'% A oJo'(ula'+o-g%&B?<a(%2"&x&<o(.'%"3 ,!**%d%(os a la 8+s&a d%l *on&'ol o&x&<o(.'%1+s&a A o@o*-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 o&x&<o(.'% 3 ,5% %n8+a(os %l fo*o o&x&<o(.'%1+s&a-s%&Jo*us23 End "u.

Observa como acce emos al mo o Lvis"aM el con"rol* a "rav3s el con"rola or (getCurrentController) el ocumen"o+ (es e el mo o Lvis"aM* !ue es acce er "ambi3n al con"eni o el con"rol con su !ro!ie a .e*t* !ero algunas o"ras !ro!ie a es solo es";n is!onibles en es"e mo o* como !osibili a e ocul"ar o mos"rar el con"rol+

A!ren ien o OOo Basic

E$,

"u. @+( @+( @+( @+( @+( @+( @+(

$uad'oH%x&o923 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o&x&<o(.'% !s >.)%*& o&x&<o(.'%1+s&a !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o&x&<o(.'% A oJo'(ula'+o-g%&B?<a(%2"&x&<o(.'%"3 ,!**%d%(os a la 8+s&a d%l *on&'ol o&x&<o(.'%1+s&a A o@o*-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 o&x&<o(.'% 3 ,!l&%'na(os %n&'% (os&'a' ? o*ul&a' %l *on&'ol o&x&<o(.'%1+s&a-s%&1+s+.l%2 <o& o&x&<o(.'%1+s&a-+s1+s+.l% 3 End "u.

Toma en cuen"a 6ue si el 1ormulario es"a en mo o L iseKoM* el con"rol e "o os mo os se mos"rar;* es"e m3"o o* solo "iene e1ec"o en "iem!o e Le2ecuci4nM+ .asi "o os los con"roles 6ue veremos* "ienen su mo o Lvis"aM - la !osibili a e enviar el 1oco - ocul"arlos+

A.)

Casilla de ,eri2icacin ?C"ecN&o'@

)as casillas e veri1icaci4n (./ecsBo:)* son con"roles e ver a ero o 1also* es ecir* generalmen"e se usan !ara in icar si se /ace o no una ac"ivi a u o!ci4n+ =l siguien"e e2em!lo agrega una casilla e veri1icaci4n a nues"ro 1ormulario+
"u. @+( @+( @+( @+( @+( @+( @+( $as+lla1%'+f+*a*+on123 o@o* !s >.)%*& oHo)a!*&+8a !s >.)%*& o0ag+na@+.u)o !s >.)%*& oJo'(ula'+os !s >.)%*& oJo'(ula'+o !s >.)%*& o$as+lla !s >.)%*& o$as+llaMod%lo !s >.)%*&

o@o* A Hh+s$o(7on%n& oHo)a!*&+8a A o@o*-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&23 o0ag+na@+.u)o A oHo)a!*&+8a-g%&@'a^0ag%23 oJo'(ula'+os A o0ag+na@+.u)o-g%&Jo'(s23 oJo'(ula'+o A oJo'(ula'+os-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol o$as+lla A o@o*-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 o$as+lla6 80006 800 3 $all $a(.+a0os2 o$as+lla6 30006 5000 3 ,$'%a(os una nu%8a *as+lla d% 8%'+f+*a*+Kn o$as+llaMod%lo A o@o*-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-$h%*]Box"3

E1$
,Es&a.l%*%(os su no(.'% o$as+llaMod%lo-<a(% A "*h]Ma?us" ,O %l &%x&o Fu% 8%'= %l usua'+o o$as+llaMod%lo-5a.%l A "Dua'da' &odo %n M!OC"$C5!"" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol o$as+lla-$on&'ol A o$as+llaMod%lo ,5o ag'%ga(os al fo'(ula'+o oJo'(ula'+o-+ns%'&B?#nd%x206 o$as+llaMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% o0ag+na@+.u)o-add2 o$as+lla 3 End "u.

%+E .asilla e veri1icaci4n (./ecsBo:)

Al con"ar con "e:"o !ara mos"rar al usuario* es"e se !ue e 1orma"ear com!le"amen"e como en las e"i6ue"as (label) - los cua ros e "e:"o ("e:"bo:)+
"u. $as+lla1%'+f+*a*+on223 @+( oJo'(ula'+o !s >.)%*& @+( o*h]Ma?us !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o*h]Ma?us A oJo'(ula'+o-g%&B?<a(%2 "*h]Ma?us" 3 U+&h o*h]Ma?us -!l+gn A 0 -Ba*]g'ound$olo' A RDB2200622062403 -H%x&$olo' A RDB2506706903 -Jon&H%+gh& A 16 -0'+n&a.l% A H'u% -1%'&+*al!l+gn A 1 -H'+"&a&% A Jals% -1+sualEff%*& A 2 End U+&h End "u. ,!l+n%a*+Kn ho'+:on&al ,$olo' d% fondo ,$olo' d% la fu%n&% ,Ha(a\o d% la fu%n&% ,"+ s% +(7'+(% %l *on&'ol ,!l+n%a*+Kn 8%'&+*al ,Es&a.l%*% %l %s&ado &'+7l% ,Jo'(a&o 7lano 21 A 3@3

Pue es ac"ivarlo - esac"ivarlo+


"u. $as+lla1%'+f+*a*+on323 @+( oJo'(ula'+o !s >.)%*& @+( o*h]Ma?us !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o*h]Ma?us A oJo'(ula'+o-g%&B?<a(%2 "*h]Ma?us" 3 ,!l&%'na(os la a*&+8a*+Kn d%l *on&'ol o*h]Ma?us-Ena.l%d A <o& o*h]Ma?us-Ena.l%d End "u.

Para ob"ener o es"ablecer el es"a o el con"rol* se usa la !ro!ie a S"a"e* es"a !ue e "omar los valores $* 1 o #* e!en ien o si8 es"a ac"iva o no* - e la !ro!ie a e "ri!le es"a o (TriS"a"e)* 6ue !ermi"e "ener es"e con"rol en* ac"ivo* esac"iva o o sin selecci4n+
"u. $as+lla1%'+f+*a*+on423 @+( oJo'(ula'+o !s >.)%*& @+( o*h]Ma?us !s >.)%*&

A!ren ien o OOo Basic

E11

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o*h]Ma?us A oJo'(ula'+o-g%&B?<a(%2 "*h]Ma?us" 3 ,1%'+f+*a(os %l %s&ado d% la *as+lla "%l%*& $as% o*h]Ma?us-"&a&% $as% 0 MsgBox "5a *as+lla no %s&a s%l%**+onada" $as% 1 MsgBox "5a *as+lla %s&a s%l%**+onada" $as% 2 MsgBox "5a *as+lla no &+%n% s%l%**+Kn" End "%l%*& ,5a a*&+8a(os o*h]Ma?us-"&a&% A 1 End "u.

)as casillas e veri1icaci4n* "ambi3n las !ue es vincular con un cam!o e a"os ((a"a'iel ) o con una cel a (5alueBin ing)* con el mismo c4 igo e los cua ros e "e:"o+

A.!

Campo 2ormateado ?FormattedField@

)os cam!os 1orma"ea os ('orma""e 'iel )* son con"roles casi in en"icos a los cua ros e "e:"o (Te:"Bo:)* con la i1erencia e 6ue es"os ace!"an "o os los 1orma"os 6ue "enemos is!onibles en el men> 5ormato | Celdas en la 1ic/a N>meros* - se les !ue e es"ablecer un valor m;:imo - un mnimo+
"u. @+( @+( @+( $a(7oJo'(a&%ado123 oJo'(ula'+o !s >.)%*& o$uad'o$onJo'(a&o !s >.)%*& o$uad'o$onJo'(a&oMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol o$uad'o$onJo'(a&o A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 o$uad'o$onJo'(a&o6 80006 800 3 $all $a(.+a0os2 o$uad'o$onJo'(a&o6 30006 5000 3 ,$'%a(os un nu%8o *a(7o fo'(a&%ado o$uad'o$onJo'(a&oMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-Jo'(a&&%dJ+%ld"3 ,Es&a.l%*%(os su no(.'% o$uad'o$onJo'(a&oMod%lo-<a(% A "&x&J1%n&as" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol o$uad'o$onJo'(a&o-$on&'ol A o$uad'o$onJo'(a&oMod%lo ,5o ag'%ga(os al fo'(ula'+o oJo'(ula'+o-+ns%'&B?#nd%x206 o$uad'o$onJo'(a&oMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o$uad'o$onJo'(a&o 3 End "u.

E1#

%+5 .am!o 1orma"ea o ('orma""e 'iel )

Pue e usar las mismas !ro!ie a es 6ue !ara los cua ros e "e:"o (Te:"Bo:)* a6u vemos las !ro!ie a es !ar"iculares !ara es"e con"rol+
"u. $a(7oJo'(a&%ado223 @+( oJo'(ula'+o !s >.)%*& @+( o&x&f1%n&as !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o&x&f1%n&as A oJo'(ula'+o-g%&B?<a(% 2 "&x&J1%n&as" 3 U+&h o&x&f1%n&as -Eff%*&+8%M+n A 1 -Eff%*&+8%Max A 100 -"7+n A H'u% -Jo'(a&I%? A 4 End U+&h End "u. ,El ,El ,"+ ,El 8alo' (Gn+(o 8alo' (=x+(o s% (u%s&'a o no %l *a(7o g+'a&o'+o fo'(a&o 7a'a %l *on&%n+do 2 4 A "m6mm0-00" 3

Si es"ableces 6ue se mues"re el cam!o gira"orio (S!in)* la alienaci4n el con"eni o siem!re ser; a la iz6uier a+ =l valor !ara el 1orma"o ('orma"te-)* es el mismo !ara las cel as* !ue es ob"ener es"os valores con la macro 6ue "e mues"ro en8 )is"ar 1orma"os en un arc/ivo e .alc+ =s"e con"rol "ambi3n lo !ue es ac"ivar - esac"ivar (=nable ) - es"ablecerle un cam!o e a"os origen ((a"a'iel )* as como vincularlo con una cel a (5alueBin ing)+

A.=

&otn de comando ?Command&utton@

)os bo"ones e coman o (.omman Bu""on) son con"roles generalmen"e usa os !ara iniciar una acci4n !or 6ue usualmen"e "ienen asocia a una macro al even"o Lclic el ra"4nM* aun6ue so!or"an varios m;s+ 5eamos como agregar uno a nues"ro 1ormulario+
"u. @+( @+( @+( Bo&on$o(ando123 oJo'(ula'+o !s >.)%*& oBo&on$o(ando !s >.)%*& oBo&on$o(andoMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol oBo&on$o(ando A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 oBo&on$o(ando6 50006 800 3 $all $a(.+a0os2 oBo&on$o(ando6 30006 10000 3 ,$'%a(os un nu%8o .o&Kn d% *o(ando oBo&on$o(andoMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-$o((andBu&&on"3 ,Es&a.l%*%(os su no(.'% oBo&on$o(andoMod%lo-<a(% A "*(dDua'da'" oBo&on$o(andoMod%lo-5a.%l A "nDua'da'" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol oBo&on$o(ando-$on&'ol A oBo&on$o(andoMod%lo ,5o ag'%ga(os al fo'(ula'+o

A!ren ien o OOo Basic

E1?

oJo'(ula'+o-+ns%'&B?#nd%x206 oBo&on$o(andoMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 oBo&on$o(ando 3 End "u.

Observa el smbolo LxM an"es el ""ulo el bo"4n e coman o* es"e* nos !ermi"e subra-ar la le"ra inme ia"a siguien"e !ara usarse como m3"o o abrevia o e "ecla o* "en cui a o* si es"ableces una combinaci4n -a usa a en la in"er1az el usuario* es"a "en r; !re1erencia* en los 1ormularios* es"e m3"o o abrevia o "iene una 1unci4n ligeramen"e i1eren"e* cuan o el L1ocoM* es ecir el cursor* es"a en"ro e alg>n con"rol el 1ormulario* la combinaci4n e "eclas llevar; el cursor a ic/o con"rol* !ero solo eso* solo le lleva el 1oco+ 5eamos las !rinci!ales !ro!ie a es !ar"iculares e es"e con"rol+
"u. Bo&on$o(ando223 @+( oJo'(ula'+o !s >.)%*& @+( o*(dDua'da' !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol o*(dDua'da' A oJo'(ula'+o-g%&B?<a(% 2"*(dDua'da'"3 U+&h o*(dDua'da' -!l+gn A 1 -1%'&+*al!l+gn A 1 -Ba*]g'ound$olo' A RDB2220623062403 -@%faul&Bu&&on A H'u% -Jon&<a(% A "5+nux B+ol+nu(" -Jon&H%+gh& A 18 -H%x&$olo' A RDB2062062503 -0'+n&a.l% A H'u% End U+&h End "u. ,!l+n%a*+Kn ho'+:on&al 2 1 A *%n&'o 3 ,!l+n%a*+Kn 8%'&+*al 2 1 A (%d+o 3 ,$olo' d% fondo ,"+ %s %l .o&Kn 7'%d%&%'(+nado ,5a fu%n&% ,El &a(a\o d% fu%n&% ,El *olo' d%l &%x&o ,"+ s% +(7'+(% %l *on&'ol

=s"e con"rol "ambi3n cuen"a con la !ro!ie a !ara ac"ivar o esac"ivar (=nable )* mu- >"il !ara es/abili"ar momen";neamen"e su uso* cuan o "iene una macro asocia a+

A.A

&otn de opcin ?%ption&utton@

=s"os con"roles generalmen"e "raba2an 2un"os os o m;s* !ues !ermi"en seleccionar solo una o!ci4n e en"re los 6ue /a-a en el 1ormulario* !or ello* generalmen"e se agregan os o m;s como en el siguien"e e2em!lo+
"u. @+( @+( @+( Bo&on>7*+on123 oJo'(ula'+o !s >.)%*& oBo&on>7*+on !s >.)%*& oBo&on>7*+onMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol oBo&on>7*+on A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3

E1E
,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 oBo&on>7*+on6 50006 800 3 $all $a(.+a0os2 oBo&on>7*+on6 30006 11000 3

%+% Bo"4n e o!ci4n (O!"ionBu""on)

,$'%a(os un nu%8o .o&Kn d% o7*+Kn oBo&on>7*+onMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-Rad+oBu&&on"3 ,Es&a.l%*%(os su no(.'% oBo&on>7*+onMod%lo-<a(% A "o7&Es&+lo" oBo&on>7*+onMod%lo-5a.%l A "$olo'" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol oBo&on>7*+on-$on&'ol A oBo&on>7*+onMod%lo ,5o ag'%ga(os al fo'(ula'+o oJo'(ula'+o-+ns%'&B?#nd%x206 oBo&on>7*+onMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 oBo&on>7*+on 3 ,!g'%ga(os un s%gundo *on&'ol oBo&on>7*+on A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 oBo&on>7*+on6 50006 800 3 $all $a(.+a0os2 oBo&on>7*+on6 30006 12000 3 oBo&on>7*+onMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-Rad+oBu&&on"3 oBo&on>7*+onMod%lo-<a(% A "o7&Es&+lo" oBo&on>7*+onMod%lo-5a.%l A "Es*ala d% g'+s%s" oBo&on>7*+on-$on&'ol A oBo&on>7*+onMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 oBo&on>7*+onMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 oBo&on>7*+on 3 ,O un &%'*%'o oBo&on>7*+on A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 oBo&on>7*+on6 50006 800 3 $all $a(.+a0os2 oBo&on>7*+on6 30006 13000 3 oBo&on>7*+onMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-Rad+oBu&&on"3 oBo&on>7*+onMod%lo-<a(% A "o7&Es&+lo" oBo&on>7*+onMod%lo-5a.%l A "Blan*o ? n%g'o" oBo&on>7*+on-$on&'ol A oBo&on>7*+onMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 oBo&on>7*+onMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 oBo&on>7*+on 3 End "u.

Observa 6ue a los "res les /emos es"ableci o el mismo nombre* es"o es im!or"an"e* si 6uieres 6ue se com!or"en como un gru!o* e es"e mo o* !ue es crear "an"os gru!os e con"roles e bo"4n e o!ci4n (O!"ionBu""on) como 6uieras* sim!lemen"e es"ablecien o el mismo nombre !ara ca a gru!o agrega o+ Al "ener "e:"o visible !or el usuario* com!ar"en la ma-ora e las !ro!ie a es vis"as /as"a a/ora (color e 1uen"e - 1on o* "amaKo e 1uen"e* es"ilo e 1uen"e* e"c)* !ero observa 6ue /as"a a/ora* /emos usa o el nombre el con"rol !ara /acer re1erencia a el* !ero a es"os con"roles les /emos a o el mismo nombre* !ara is"inguirlos* a/ora acce eremos a ellos con su n ice* en vez e con su nombre* como en el siguien"e e2em!lo+
"u. Bo&on>7*+on223 @+( oJo'(ula'+o !s >.)%*& @+( oo7&Es&+lo !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 oo7&Es&+lo A oJo'(ula'+o-g%&B?#nd%x203 oo7&Es&+lo-Ba*]g'ound$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 oo7&Es&+lo-H%x&$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 ,$olo' d% fondo ,$olo' d% la fu%n&%

A!ren ien o OOo Basic

E15

oo7&Es&+lo A oJo'(ula'+o-g%&B?#nd%x213 oo7&Es&+lo-Ba*]g'ound$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 oo7&Es&+lo-H%x&$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 oo7&Es&+lo A oJo'(ula'+o-g%&B?#nd%x223 oo7&Es&+lo-Ba*]g'ound$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 oo7&Es&+lo-H%x&$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 End "u.

,$olo' d% fondo ,$olo' d% la fu%n&% ,$olo' d% fondo ,$olo' d% la fu%n&%

O con 2us"a raz4n "e !regun"ar;s* Icomo se 6ue n ice "iene ca a con"rolJ* !ue es /acerlo e varias maneras* visualmen"e en la in"er1az e .alc* en el navega or e 1ormularios* !ara ver es"a ven"ana* "ienes 6ue "ener visible la barra e /erramien"as L.am!os e con"rol e 1ormularioM* visible es e el men> /er | !arra de $erramientas <=* es!u3s solo sigue la secuencia e la imagen siguien"e+

.on c4 igo* !ue es acce er a los con"roles !or el nombre el gru!o* como en el e2em!lo siguien"e<
"u. @+( @+( @+( Bo&on>7*+on323 oJo'(ula'+o !s >.)%*& oD'u7oEs&+lo23 !s >.)%*& oBo&on !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,!**%d%(os al g'u7o *o(7l%&o oJo'(ula'+o-g%&D'ou7B?<a(%2"o7&Es&+lo"6 oD'u7oEs&+lo3 ,#&%'a(os %n&'% los %l%(%n&os d%l g'u7o Jo' Ea*h oBo&on #n oD'u7oEs&+lo23 ,$a(.+a(os %l *olo' d% fondo al%a&o'+a(%n&% oBo&on-Ba*]g'ound$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 <%x& End "u.

E1F

%+% Bo"4n e o!ci4n (O!"ionBu""on)

)o im!or"an"e e los bo"ones e o!ci4n (O!"ionbu""on) es saber cual e ellos* en"ro el gru!o* es"a selecciona o* !ara ello se consul"a su !ro!ie a S"a"e* 6ue solo uno e ellos !ue e "ener en ver a ero (True)+
"u. @+( @+( @+( Bo&on>7*+on423 oJo'(ula'+o !s >.)%*& oD'u7oEs&+lo23 !s >.)%*& oBo&on !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 oJo'(ula'+o-g%&D'ou7B?<a(%2"o7&Es&+lo"6 oD'u7oEs&+lo3 Jo' Ea*h oBo&on #n oD'u7oEs&+lo23 ,$onsul&a(os %l %s&ado d%l .o&Kn #f oBo&on-"&a&% Hh%n ,Mos&'a(os %l Fu% %s&% s%l%**+onado MsgBox ">7*+Kn s%l%**+onada4 " 9 oBo&on-5a.%l Ex+& Jo' End #f <%x& End "u.

.omo veremos m;s a elan"e* cuan o se asocia una macro al even"o clic e los bo"ones e o!ci4n* es mu- sencillo saber cual es el 6ue es"a selecciona o* sin recorrer uno a uno+ =s"os con"roles "ambi3n cuen"a con la !ro!ie a e ac"ivarse o esac"ivarse (=nable ) - la ca!aci a !ara es"ablecerle un cam!o e a"os origen ((a"a'iel )* as como vincularlo con una cel a (5alueBin ing)+

A.E

Cuadro de lista ?3ist&o'@

)os cua ros e lis"a ()is"Bo:)* son con"roles usa os generalmen"e !ara mos"rar un lis"a o - !o er seleccionar una o varias o!ciones e!en ien o e sus !ro!ie a es* en el siguien"e e2em!lo* agregamos un nuevo con"rol e lis"a a nues"ro 1ormulario+
"u. @+( @+( @+( $uad'o5+s&a123 oJo'(ula'+o !s >.)%*& o$uad'o5+s&a !s >.)%*& o$uad'o5+s&aMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol o$uad'o5+s&a A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 o$uad'o5+s&a6 50006 5000 3 $all $a(.+a0os2 o$uad'o5+s&a6 30006 10000 3 ,$'%a(os un nu%8o *uad'o d% l+s&a o$uad'o5+s&aMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-5+s&Box"3 ,Es&a.l%*%(os su no(.'% o$uad'o5+s&aMod%lo-<a(% A "ls&$+udad%s" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol o$uad'o5+s&a-$on&'ol A o$uad'o5+s&aMod%lo

A!ren ien o OOo Basic

E1%

,5o ag'%ga(os al fo'(ula'+o oJo'(ula'+o-+ns%'&B?#nd%x206 o$uad'o5+s&aMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o$uad'o5+s&a 3 End "u.

)as !ro!ie a es !rinci!ales e es"e con"rol son+


"u. $uad'o5+s&a223 @+( oJo'(ula'+o !s >.)%*& @+( ols&$+udad%s !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 U+&h ols&$+udad%s -Ba*]g'ound$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 -Bo'd%' A 2 -Bo'd%'$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 -@'o7do^n A Jals% -Mul&+"%l%*&+on A H'u% End U+&h End "u. ,$olo' d% fondo ,H+7o d% .o'd% 2 1 A 3@ 3 ,"olo s+ Bo'd%' A 2 ,"+ %s d%s7l%ga.l% ,"+ s% 7%'(+&% la (ul&+s%l%**+Kn

Si es"ableces 6ue el con"rol sea es!legable ((ro! o7n)* "e mos"rar; una 1lec/a !ara es!legar el con"eni o* con lo 6ue se com!or"ar; e 1orma similar al cua ro combina o (.omboBo:)* mi recomen aci4n es es"ablecer es"a !ro!ie a siem!re en 1also ('alse)* si 6uieres un cua ro combina o* usa el con"rol vis"o en el siguien"e "ema+ ca-a varias 1ormas e agregar elemen"os a un cua ro e lis"a* la !rimera - m;s sencilla es agregar una ma"riz e a"os+
"u. @+( @+( @+( $uad'o5+s&a323 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& (@a&os23

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 (@a&os A !''a?2"M%x+*o"6 "Mad'+d"6"Bu%nos !+'%s"6"Bogo&a"6"5+(a"3 ols&$+udad%s-"&'+ng#&%(5+s& A (@a&os23 End "u.

=s"e con"rol ace!"a "ambi3n como origen e a"os un cam!o e bases e a"os (-ata5ield)+ O"ra 1orma es vincular el con"rol con un origen e cel as* "an"o !ara el valor selecciona o (/alue!inding)* como !ara los valores mos"ra os (0ist"ntr)Source)+
"u. @+( @+( @+( $uad'o5+s&a423 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& o@+'$%lda1+n*ulada !s >.)%*&

E1G
@+( oRango>'+g%n !s >.)%*& @+( (>7*203 !s <%^ "*o(-sun-s&a'-.%ans-<a(%d1alu%" @+( o1+n*ulo !s >.)%*&

%+G .ua ro e lis"a ()is"Bo:)

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ,>.&%n%(os la d+'%**+Kn d% la *%lda B5 o@+'$%lda1+n*ulada A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&$%llB?0os+&+on236243-g%&$%ll!dd'%ss ,$'%a(os la 7'o7+%dad 7a'a 8+n*ula' (>7*203-<a(% A "Bound$%ll" (>7*203-1alu% A o@+'$%lda1+n*ulada ,$'%a(os la +ns&an*+a d% la *%lda a 8+n*ula' *'%a&%#ns&an*%U+&h!'gu(%n&s o1+n*uloA Hh+s$o(7on%n&-*'%a&%#ns&an*%U+&h!'gu(%n&s2"*o(-sun-s&a'-&a.l%-$%ll1alu%B+nd+ng"6 (>7*233 ,O la 8+n*ula(os al *uad'o d% l+s&a ols&$+udad%s-s%&1alu%B+nd+ng2 o1+n*ulo 3 ,Es&a.l%*%(os %l 'ango d% *%ldas o'+g%n oRango>'+g%n A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&$%llRang%B?<a(%2"@274@40"3-g%&Rang%!dd'%ss (>7*203-<a(% A "$%llRang%" (>7*203-1alu% A oRango>'+g%n ,$'%a(os %l 8+n*ulo o1+n*uloA Hh+s$o(7on%n&-*'%a&%#ns&an*%U+&h!'gu(%n&s2"*o(-sun-s&a'-&a.l%-$%llRang%5+s&"ou'*%"6 (>7*233 ,5o 8+n*ula(os al *uad'o d% l+s&a ols&$+udad%s-s%&5+s&En&'?"ou'*%2 o1+n*ulo 3 End "u.

O"ra 1orma es agregar (- 6ui"ar) los elemen"os e 1orma in;mica* !ara lograr es"o* re!asemos un conce!"o !ara el acceso a !ro!ie a es - m3"o os e los con"roles* /as"a a/ora* con /acer re1erencia al con"rol a "rav3s el 1ormulario nos era su1icien"e* a es"a 1orma e re1erencia se le llama e acceso al Lmo eloM* !ero algunas !ro!ie a es - m3"o os solo es";n is!onibles en el mo o e acceso Lvis"aM* !ara acce er a es"e mo o* usamos el siguien"e c4 igo+
"u. @+( @+( @+( $uad'o5+s&a523 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ,!**%d%(os a la 8+s&a d%l *on&'ol a &'a8Ss d%l *on&'olado' d%l do*u(%n&o ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 ,O 7od%(os %n8+a' %l fo*o6 %s d%*+'6 %l *u'so' a %l ols&$+udad%s1+s&a-s%&Jo*us23 End "u.

=n el acceso Lvis"aM* "enemos una serie e m3"o os - !ro!ie a es !ara mani!ular com!le"amen"e los elemen"os e un cua ro e lis"a ()is"Bo:)* veamos los m;s im!or"an"es+ Para agregar elemen"os usamos el m3"o o add+tem e la siguien"e manera+
"u. @+( @+( @+( $uad'o5+s&a623 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*&

A!ren ien o OOo Basic


@+( s#nfo !s "&'+ng

E1,

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 @o ,"ol+*+&a(os un %l%(%n&o s#nfo A H'+(2 #n7u&Box2"Es*'+.% la *+udad a ag'%ga'"33 ,"+ %s&a 8a*+o sal+(os #f s#nfo A "" Hh%n Ex+& @o ,5o ag'%ga(os *o(o 7'+(%' %l%(%n&o ols&$+udad%s1+s&a-add#&%(2 s#nfo6 03 5oo7 End "u.

=l c4 igo an"erior siem!re agregar; los nuevos elemen"os al inicio e la lis"a* si 6uieres agregarlos al 1inal* "enemos 6ue saber cuan"os elemen"os -a e:is"en en la lis"a* es"o lo logramos con la !ro!ie a +temCount* 6ue "e evuelve el n>mero "o"al e elemen"os ac"uales en el cua ro e lis"a+
"u. @+( @+( @+( @+( $uad'o5+s&a723 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*& s#nfo !s "&'+ng

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 @o s#nfo A H'+(2 #n7u&Box2"Es*'+.% la *+udad a ag'%ga'"33 #f s#nfo A "" Hh%n Ex+& @o ,5o ag'%ga(os *o(o ul&+(o %l%(%n&o ols&$+udad%s1+s&a-add#&%(2 s#nfo6 ols&$+udad%s1+s&a-#&%($oun&3 5oo7 End "u.

Tambi3n !o emos agregar una ma"riz com!le"a+


"u. @+( @+( @+( @+( $uad'o5+s&a823 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*& s#nfo23

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 s#nfo A !''a?2"Ba'*%lona"6"Mon&%8+d%o"6"!'%Fu+7a"3 ,!g'%ga(os una (a&'+: *o(7l%&a ols&$+udad%s1+s&a-add#&%(s2 s#nfo6 03 End "u.

E#$

%+G .ua ro e lis"a ()is"Bo:)

Observa 6ue el m3"o o es add+tems* en !lural+ Solo !ue es agregar ma"rices e una sola imensi4n+ A/ora* vamos a eliminar elemen"os e la lis"a* !ara ellos e:is"e un solo m3"o o* !ero es m;s 6ue su1icien"e+
"u. @+( @+( @+( @+( $uad'o5+s&a923 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*& +R%s !s #n&%g%'

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 +R%s A MsgBox2 "MEs&as s%gu'o d% .o''a' %l s+gu+%n&% %l%(%n&oN A " 9 ols&$+udad%s1+s&a-g%&#&%(2 0 36 43 #f +R%s A 6 Hh%n ,Pu+&a(os %l 7'+(%' %l%(%n&o d% la l+s&a ols&$+udad%s1+s&a-'%(o8%#&%(s2 061 3 End #f +R%s A MsgBox2 "MEs&as s%gu'o d% .o''a' %l s+gu+%n&% %l%(%n&oN A " 9 ols&$+udad%s1+s&a-g%&#&%(2 ols&$+udad%s1+s&a-g%&#&%($oun&T1 36 43 #f +R%s A 6 Hh%n ,Pu+&a(os %l ul&+(o %l%(%n&o d% la l+s&a ols&$+udad%s1+s&a-'%(o8%#&%(s2 ols&$+udad%s1+s&a-g%&#&%($oun&T161 3 End #f End "u.

=l m3"o o !ara eliminar elemen"os (remove9"ems)* re6uiere e os argumen"os* el !rimero es la !osici4n el !rimer elemen"o a borrar* las !osiciones el cua ro e lis"a* como en las ma"rices* siem!re em!ieza en cero* el segun o argumen"o es el n>mero "o"al e elemen"os a borrar+ =n los os e2em!los an"eriores* solo eliminamos un elemen"o* el !rimero ($) - el ul"imo (ge"9"em.oun"-1)* es ecir* con"amos el "o"al e elemen"o - le res"amos uno !ara ob"ener el n ice el ul"imo elemen"o+ Observa como le mos"ramos al usuario el elemen"o a borrar con el m3"o o get+tem* sim!lemen"e !as;n ole el n ice el elemen"o a mos"rar* es"e m3"o o siem!re "e evuelve un "e:"o (s"ring) con el con"eni o el elemen"o in ica o+ .on es"os argumen"os en !osible lim!iar la lis"a com!le"a* es ecir* e2arla en blanco !ara em!ezar e nuevo+
"u. @+( @+( @+( @+( $uad'o5+s&a1023 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*& +R%s !s #n&%g%'

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 +R%s A MsgBox2 "MEs&as s%gu'o d% .o''a' H>@>" los %l%(%n&os d% la l+s&aN"6 4 3 #f +R%s A 6 Hh%n ,Pu+&a(os &odos los %l%(%n&os d% la l+s&a ols&$+udad%s1+s&a-'%(o8%#&%(s2 06 ols&$+udad%s1+s&a-g%&#&%($oun& 3 End #f End "u.

A!ren ien o OOo Basic

E#1

@ecuer a 6ue es una buena !rac"ica e !rogramaci4n* cuan o se realizan o!eraciones 6ue no se !ue an es/acer* sobre "o o si son e borra o* !regun"ar al usuario si es"a seguro e realizarla+ Oa vimos como evolver un elemen"o e la lis"a ( get+tem)* a/ora* veremos como evolver "o os los elemen"os e la lis"a ( get+tems)+
"u. @+( @+( @+( @+( @+( $uad'o5+s&a1123 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*& (@a&os23 *o1 !s #n&%g%'

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 ,@%8ol8%(os &odos los %l%(%n&os a una (a&'+: (@a&os23 A ols&$+udad%s1+s&a-g%&#&%(s23 ,Mos&'a(os los %l%(%n&os %n la (a&'+: Jo' *o1 A 5Bound2(@a&os3 Ho C.ound2(@a&os3 MsgBox (@a&os2*o13 <%x& *o1 End "u.

Un !un"o im!or"an"e es saber 6ue elemen"o o elemen"os selecciono el usuario* !ara ello "enemos varios m3"o os* veamos+
"u. @+( @+( @+( @+( @+( $uad'o5+s&a1223 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*& s"%l%**+onado !s "&'+ng +0os !s #n&%g%'

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 ,>.&%n%(os %l %l%(%n&o s%l%**+onado s"%l%**+onado A ols&$+udad%s1+s&a-g%&"%l%*&%d#&%(23 ,>.&%n%(os la 7os+*+Kn d%l %l%(%n&o s%l%**+onado +0os A ols&$+udad%s1+s&a-g%&"%l%*&%d#&%(0os23 ,Mos&'a(os la +nfo'(a*+Kn MsgBox "Es&a s%l%**+onado4 " 9 s"%l%**+onado 9 " %n la 7os+*+Kn " 9 +0os End "u.

=s"os m3"o os siem!re "e evolver;n un solo elemen"o* si el cua ro e lis"a ()is"Bo:) no "iene Lning>nM elemen"o selecciona o* el m3"o o ge"Selec"e 9"emPos* "e evolver; un valor nega"ivo e -1* si el cua ro e lis"a (0ist!o*) "iene ac"iva a la !ro!ie a !ara selecciones m>l"i!les (MultiSelection)* "ienes 6ue usar o"ros m3"o os+
"u. @+( @+( @+( $uad'o5+s&a1323 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*&

E##
@+( ("%l%**+onados23 !s "&'+ng @+( (0os23 !s #n&%g%' @+( *o1 !s #n&%g%'

%+G .ua ro e lis"a ()is"Bo:)

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 ,>.&%n%(os los %l%(%n&os s%l%**+onados ("%l%**+onados23 A ols&$+udad%s1+s&a-g%&"%l%*&%d#&%(s23 ,>.&%n%(os la 7os+*+Kn d%l los %l%(%n&os s%l%**+onados (0os23 A ols&$+udad%s1+s&a-g%&"%l%*&%d#&%(s0os23 Jo' *o1 A 5Bound2(0os3 Ho CBound2(0os3 ,Mos&'a(os la +nfo'(a*+Kn MsgBox "Es&a s%l%**+onado4 " 9 ("%l%**+onados2*o13 9 " %n la 7os+*+Kn " 9 (0os2*o13 <%x& *o1 End "u.

Observa 6ue en los os casos es"amos ob"enien o ma"rices e a"os+ Para 1inalizar e ver las !ro!ie a es - m3"o os m;s im!or"an"es e los cua ros e lis"a ( 0ist!o*)* "ambi3n es !osible seleccionar elemen"os !or c4 igo* veamos como+
"u. @+( @+( @+( $uad'o5+s&a1423 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 ,"%l%**+ona(os %l 7'+(%' %l%(%n&o d% la l+s&a ols&$+udad%s1+s&a-s%l%*&#&%(0os206 H'u%3 ,"%l%**+ona(os %l ul&+(o %l%(%n&o d% la l+s&a ols&$+udad%s1+s&a-s%l%*&#&%(0os2ols&$+udad%s1+s&a-g%&#&%($oun&T16 H'u%3 End "u.

=n el e2em!lo* seleccionamos el !rimero - el ul"imo elemen"o* e!en ien o e la !ro!ie a e mul"iselecci4n (MultiSelection)* el resul"a o ser; i1eren"e* si es"a en 1also ( 5alse)* la selecci4n reem!lazar; a la an"erior* si es"a en ver a ero ( .rue)* la selecci4n se sumar; a lo -a selecciona o+ Tambi3n !ue es seleccionar varios elemen"os al mismo "iem!o* claro* si la mul"iselecci4n (MultiSelection) es"a en ver a ero (.rue)+
"u. @+( @+( @+( @+( $uad'o5+s&a1523 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*& ("%l%**+ona'23

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 ("%l%**+ona'23 A !''a?2163653

A!ren ien o OOo Basic

E#?

,"%l%**+ona(os los %l%(%n&os d% la (a&'+: ols&$+udad%s1+s&a-s%l%*&#&%(s0os2("%l%**+ona'236 H'u%3 End "u.

Por ul"imo* !ue es seleccionar un elemen"o !or su con"eni o en vez e !or su !osici4n como en el siguien"e e2em!lo+
"u. @+( @+( @+( $uad'o5+s&a1623 oJo'(ula'+o !s >.)%*& ols&$+udad%s !s >.)%*& ols&$+udad%s1+s&a !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ols&$+udad%s A oJo'(ula'+o-g%&B?<a(%2 "ls&$+udad%s" 3 ols&$+udad%s1+s&a A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&$on&'ol2 ols&$+udad%s 3 ,"%l%**+ona(os %l %l%(%n&o "5+(a" ols&$+udad%s1+s&a-s%l%*&#&%(2"5+(a"6 H'u%3 End "u.

Si el elemen"o no e:is"e* no selecciona na a* !or su!ues"o* con los m3"o os a!ren i os en es"e "ema* !ue es asegurar"e e 6ue si e:is"a* Iver a J+ =s"e con"rol "ambi3n ace!"a la ac"ivaci4n o esac"iva o !or c4 igo ( "nabled)+

A.G

Cuadro combinado ?Combo&o'@

)os cua ro combina os (Combo!o*)* son una combinaci4n e un cua ro e lis"a (0ist!o*) - un cua ro e "e:"o (.e*t!o*)* cuen"an con una 1lec/a en el e:"remo erec/o !ara es!legar el con"eni o e la lis"a* !ues es"a* !ermanece ocul"a - solo es visible el elemen"o ac"ualmen"e selecciona o* !ara agregar es"e con"rol a nues"ro 1ormulario* usamos+
"u. @+( @+( @+( $uad'o$o(.+nado123 oJo'(ula'+o !s >.)%*& o$uad'o$o(.+nado !s >.)%*& o$uad'o$o(.+nadoMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol o$uad'o$o(.+nado A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 o$uad'o$o(.+nado6 50006 700 3 $all $a(.+a0os2 o$uad'o$o(.+nado6 30006 10000 3 ,$'%a(os un nu%8o *uad'o *o(.+nado o$uad'o$o(.+nadoMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-$o(.oBox"3 ,Es&a.l%*%(os su no(.'% o$uad'o$o(.+nadoMod%lo-<a(% A "*.o0a+s%s" o$uad'o$o(.+nadoMod%lo-@'o7@o^n A H'u% ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol o$uad'o$o(.+nado-$on&'ol A o$uad'o$o(.+nadoMod%lo

E#E

%+, .ua ro combina o (.omboBo:)

,5o ag'%ga(os al fo'(ula'+o oJo'(ula'+o-+ns%'&B?#nd%x206 o$uad'o$o(.+nadoMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o$uad'o$o(.+nado 3 End "u.

Al ser una combinaci4n e los con"roles menciona os ( 0ist!o* ) .e*t!o*)* com!ar"en con es"os la ma-ora e sus !ro!ie a es - m3"o os* sobre "o o con el cua ro e lis"a (0ist!o*)+ .omo !ro!ie a es !ar"iculares e es"e* "enemos el n>mero e lneas 6ue mues"ra cuan o se es!liega el con"rol+
"u. @+( @+( @+( $uad'o$o(.+nado223 oJo'(ula'+o !s >.)%*& o*.o0a+s%s !s >.)%*& (@a&os23

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o*.o0a+s%s A oJo'(ula'+o-g%&B?<a(%2"*.o0a+s%s"3 ,!g'%ga(os da&os al *uad'o *o(.+nado (@a&os23 A !''a?2"MSx+*o"6"B%l+*%"6"El "al8ado'"6"<+*a'agua"3 U+&h o*.o0a+s%s -"&'+ng#&%(5+s& A (@a&os23 -5+n%$oun& A 5 ,El n;(%'o d% lGn%as a (os&'a' *uando s% d%s7l+%gu% -MaxH%x&5%n A 20 ,El (=x+(o d% *a'a*&%'%s a a*%7&a' End U+&h End "u.

Para agrega - eliminar elemen"os e es"e con"rol* se usan e:ac"amen"e los mismo m3"o os 6ue en el cua ro e lis"a (0ist!o*)* sin olvi ar 6ue /a- 6ue /acerlo es e el mo o Lvis"aM el con"rol* e:ce!"o los relaciona os con la selecci4n e elemen"os ( select+tem& select+tem(os& select+tems(os)* !ues"o 6ue es"e con"rol "raba2a e 1orma un !oco i1eren"e* cuan o se selecciona un elemen"o e la lis"a (no es !osible /acer mul"iselecciones)* es"e valor se es"ablece como valor e su !ro!ie a .e*t* 6ue !ue es cambiar* es"o es* el con"rol !ue e "ener un valor i1eren"e a los e la lis"a e elemen"os+
"u. @+( @+( @+( $uad'o$o(.+nado323 oJo'(ula'+o !s >.)%*& o*.o0a+s%s !s >.)%*& s@a&o !s "&'+ng

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o*.o0a+s%s A oJo'(ula'+o-g%&B?<a(%2"*.o0a+s%s"3 ,Mos&'a(os %l %l%(%n&o s%l%**+onado MsgBox o*.o0a+s%s-H%x& ,$a(.+a(os %l &%x&o o*.o0a+s%s-H%x& A #n7u&Box2"Es*'+.% un nu%8o 8alo' 7a'a %l *on&'ol"3 End "u.

)a !osibili a e agregar elemen"os i1eren"es a los e la lis"a* !ue e "ener os ver"ien"es* la !rimera (nega"iva) !ue e ser 6ue se ca!"ure un a"o no esea o* la segun a

A!ren ien o OOo Basic

E#5

(!osi"iva) es 6ue el usuario !ue e agregar elemen"os nuevos irec"amen"e+ .on los m3"o os vis"os* "u e"erminaras si !ermi"es es"o o no* e!en ien o e "us necesi a es* la !ers!ec"iva e una u o"ra* !ue e cambiar+ Pue es usar la ac"ivaci4n o esac"ivaci4n !ara es"e con"rol ( "nabled)

A.1I

&otn de seleccin ?Spin&utton@

=s"e con"rol nos !ermi"e aumen"ar o isminuir el valor e o"ro con"rol (o cel a)* !or ello generalmen"e "raba2a en con2un"o con o"ro* !ara agregar uno al 1ormulario* usamos+
"u. @+( @+( @+( Bo&on"%l%**+on123 oJo'(ula'+o !s >.)%*& oBo&on"%l%**+on !s >.)%*& oBo&on"%l%**+onMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol oBo&on"%l%**+on A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 oBo&on"%l%**+on6 40006 700 3 $all $a(.+a0os2 oBo&on"%l%**+on6 30006 15000 3 ,$'%a(os un nu%8o .o&Kn d% s%l%**+Kn oBo&on"%l%**+onMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-"7+nBu&&on"3 ,Es&a.l%*%(os su no(.'% oBo&on"%l%**+onMod%lo-<a(% A "s7nEdad" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol oBo&on"%l%**+on-$on&'ol A oBo&on"%l%**+onMod%lo ,5o ag'%ga(os al fo'(ula'+o oJo'(ula'+o-+ns%'&B?#nd%x206 oBo&on"%l%**+onMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 oBo&on"%l%**+on 3 End "u.

)as !rinci!ales !ro!ie a es e es"e con"rol son+


"u. Bo&on"%l%**+on223 @+( oJo'(ula'+o !s >.)%*& @+( os7nEdad !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 os7nEdad A oJo'(ula'+o-g%&B?<a(%2"s7nEdad"3 U+&h os7nEdad -Ba*]D'ound$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 -Bo'd%' A 2 -Bo'd%'$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 ->'+%n&a&+on A 1 -0'+n&a.l% A H'u% -"?(.ol$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 -"7+n1alu%M+n A 0 -"7+n1alu%Max A 20 ,$olo' d% fondo ,H+7o d% .o'd% 2 2 A 0lano6 1 A 3@ 3 ,$olo' d%l .o'd%6 solo s+ Bo'd%' A 2 ,>'+%n&a*+Kn 1 A 8%'&+*al6 0 A ho'+:on&al ,"+ s% +(7'+(% %l *on&'ol ,$olo' d%l sG(.olo 2las fl%*has3 ,1alo' (Gn+(o ,1alo' (=x+(o

E#F
-"7+n#n*'%(%n& A 2 End U+&h End "u.

%+1$ Bo"4n e selecci4n (S!inBu""on)


,#n*'%(%n&o

(e 1orma !re e"ermina a* el con"rol se agrega en 1orma /orizon"al* si cambias su orien"aci4n (Orientation) a ver"ical* "ienes 6ue cambiar su "amaKo* e 1orma 6ue 6ue e m;s al"o 6ue anc/o* si no* veras un con"rol "o"almen"e esa2us"a o+ Para ob"ener el valor ac"ual el con"rol* usamos+
"u. Bo&on"%l%**+on323 @+( oJo'(ula'+o !s >.)%*& @+( os7nEdad !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 os7nEdad A oJo'(ula'+o-g%&B?<a(%2"s7nEdad"3 MsgBox "1alo' a*&ual d%l *on&'ol A " 9 os7nEdad-s7+n1alu% End "u.

=s"e con"rol ace!"a la vinculaci4n con una cel a ( /alue!inding)* as como la ac"ivaci4n - esac"ivaci4n ("nabled)* "ambi3n el envo el 1oco* as como ocul"arlo* recor an o 6ue es"as os ul"imas !ro!ie a es* es";n accesibles es e el mo o Lvis"aM el con"rol+

A.11

&arra de despla9amiento ?Scroll&ar@

=s"e con"rol es mu- similar al bo"4n e selecci4n (Spin!utton)* !ero se usa !ara es!lazamien"os m;s gran es* !or 6ue "iene una ;rea !ara e "raba2o m;s gran e* !ara agregar una a nues"ro 1ormulario* usamos el siguien"e c4 igo+
"u. @+( @+( @+( Ba''a@%s7la:a(+%n&o123 oJo'(ula'+o !s >.)%*& oBa''a@%s7la:a(+%n&o !s >.)%*& oBa''a@%s7la:a(+%n&oMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 ,$'%a(os una nu%8a fo'(a d% *on&'ol oBa''a@%s7la:a(+%n&o A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 ,$a(.+a(os su &a(a\o ? 7os+*+on $all $a(.+aHa(2 oBa''a@%s7la:a(+%n&o6 100006 700 3 $all $a(.+a0os2 oBa''a@%s7la:a(+%n&o6 30006 15000 3 ,$'%a(os una nu%8a .a''a d% d%s7la:a(+%n&o oBa''a@%s7la:a(+%n&oMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-"*'ollBa'"3 ,Es&a.l%*%(os su no(.'% oBa''a@%s7la:a(+%n&oMod%lo-<a(% A "s.I(" ,$on%*&a(os la fo'(a *on %l nu%8o *on&'ol oBa''a@%s7la:a(+%n&o-$on&'ol A oBa''a@%s7la:a(+%n&oMod%lo ,5o ag'%ga(os al fo'(ula'+o

A!ren ien o OOo Basic

E#%

oJo'(ula'+o-+ns%'&B?#nd%x206 oBa''a@%s7la:a(+%n&oMod%lo3 ,!g'%ga(os la fo'(a a la 7=g+na d% d+.u)o 7a'a Fu% s%a 8+s+.l% Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 oBa''a@%s7la:a(+%n&o 3 End "u.

Sus !ro!ie a es son mu- similares al bo"4n e selecci4n (S!inBu""on)* veamos las !ro!ie a es !ar"iculares e es"e con"rol+
"u. Ba''a@%s7la:a(+%n&o223 @+( oJo'(ula'+o !s >.)%*& @+( os.I( !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 os.I( A oJo'(ula'+o-g%&B?<a(%2"s.I("3 U+&h os.I( -Blo*]#n*'%(%n& A 25 -5+n%#n*'%(%n& A 5 -"*'oll1alu%M+n A 1 -"*'oll1alu%Max A 1000 End U+&h End "u. ,$a(.+o g'and% ,$a(.+o 7%Fu%\o ,1alo' (Gn+(o ,1alo' (=x+(o

=l cambio gran e (Blocs9ncremen") se a cuan o !resionamos un ;rea libre e la barra e es!lazamien"o - el cambio !e6ueKo ()ine9ncremen") cuan o !resionamos las 1lec/as e los e:"remos+ Para conocer el valor ac"ual e la barra e es!lazamien"o* usamos+
"u. Ba''a@%s7la:a(+%n&o323 @+( oJo'(ula'+o !s >.)%*& @+( os.I( !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 os.I( A oJo'(ula'+o-g%&B?<a(%2"s.I("3 MsgBox "1alo' a*&ual A " 9 os.I(-"*'oll1alu% End "u.

=s"e con"rol ace!"a la vinculaci4n con una cel a ( /alue!inding)* as como la ac"ivaci4n - esac"ivaci4n ("nabled)* el envo el 1oco* as como ocul"arlo* se "ienen 6ue es"ablecer es e el mo o Lvis"aM el con"rol+

A.12

%tros controles

cas"a a6u* son los con"roles es";n ar !resen"es en los 1ormularios* !ero e:is"en o"ro con2un"o e con"roles 6ue !o emos usar - a los cuales "enemos acceso es e la barra e /erramien"as L.am!os e con"rol e 1ormularioM* como se mues"ra en la siguien"e imagen+

E#G

%+1# O"ros con"roles

=s"os con"roles am!lan las !osibili a es !ara mos"rar - con"rolar nues"ros a"os* veamos las !rinci!ales carac"ers"icas e ca a uno+

A.12.1

&otn *rF2ico ?Ima*e&utton@

=s"e con"rol nos !ermi"e "ener una imagen como 1on o e el+
"u. @+( @+( @+( Bo&onD'af+*o123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 50006 5000 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 17000 3 ,!g'%ga(os un nu%8o .o&Kn g'=f+*o o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-#(ag%Bu&&on"3 o<u%8o$on&'olMod%lo-<a(% A "+.Jo&o" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

O sus !rinci!ales !ro!ie a es+


"u. Bo&onD'af+*o223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"+.Jo&o"3 U+&h o$on&'ol -#(ag%CR5 A $on8%'&HoCR52"/ho(%/(au/fo&o-)7g"3 ,5a 'u&a d% la +(ag%n a (os&'a' -"*al%#(ag% A H'u% ,"+ s% 8a a %s*ala' la +(ag%n -"*al%Mod% A 2 ,El (odo d% %s*ala' 2 2 A !)us&a' al *on&'ol3 End U+&h End "u.

=n su mo o Lvis"aM* !o emos /abili"ar o es/abili"arlo* as como /acerlo invisible o enviarle el 1oco+

A!ren ien o OOo Basic

E#,

A.12.2

Control de ima*en ?Ima*eControl@

=s"e con"rol es mu- similar al bo"4n gr;1ico (+mage!utton)* la i1erencia* es 6ue a es"e con"rol le !ue es asignar el cam!o e una 1uen"e e a"os ( -ata5ield)* si el cam!o es una imagen* la mos"rar; en el con"rol+ Para agregar uno al 1ormulario* usamos+
"u. @+( @+( @+( $on&'ol#(ag%n123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 60006 6000 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 18000 3 ,!g'%ga(os un nu%8o *on&'ol d% +(ag%n o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-@a&a.as%#(ag%$on&'ol"3 o<u%8o$on&'olMod%lo-<a(% A "+*0'odu*&os" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

Pue es asignarle una imagen e 1orma in;mica+


"u. $on&'ol#(ag%n223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"+*0'odu*&os"3 U+&h o$on&'ol -#(ag%CR5 A $on8%'&HoCR52"/ho(%/(au/fo&o-)7g"3 ,5a 'u&a d% la +(ag%n a (os&'a' -"*al%#(ag% A H'u% ,"+ s% 8a a %s*ala' la +(ag%n -"*al%Mod% A 2 ,El (odo d% %s*ala' 2 2 A !)us&a' al *on&'ol3 End U+&h End "u.

=n el mo o Lvis"aM* !ue es enviarle el 1oco* es/abili"arlo - /acerlo invisible+

A.12.

Seleccin de arc"i,o ?FileSelection@

.on"rol 6ue nos !ermi"e mos"rar el cua ro e ialogo com>n !ara seleccionar un arc/ivo* solo "e evuelve la ru"a el arc/ivo* no el arc/ivo en si* !ara agregar un nuevo con"rol* usamos+

E?$
"u. @+( @+( @+( "%l%**+on!'*h+8o123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

%+1# O"ros con"roles

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 100006 700 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 18000 3 ,!g'%ga(os un nu%8o *on&'ol d% s%l%**+Kn d% a'*h+8o o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-J+l%$on&'ol"3 o<u%8o$on&'olMod%lo-<a(% A "f*!'*h+8o" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

Al con"ar con un ;rea e "e:"o* !ue es usar la ma-or !ar"e e las !ro!ie a es vis"as !ara los con"roles 6ue ace!"an ca enas (1uen"e* "amaKo* color* e"c)* !ue es es"ablecer una ru"a !or e1aul"* e es"e mo o* cuan o se abra el ialogo* se abrir; en es"e irec"orio+
"u. "%l%**+on!'*h+8o223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"f*!'*h+8o"3 o$on&'ol-@%faul&H%x& A "/ho(%/(au" End "u.

Para evolver el arc/ivo selecciona o* se usa su !ro!ie a Te:"+


"u. "%l%**+on!'*h+8o323 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"f*!'*h+8o"3 MsgBox "!'*h+8o s%l%**+onado4 " 9 o$on&'ol-H%x& End "u.

Pue e recibir el 1oco - /acerse invisible a "rav3s el mo o Lvis"aM+

A.12.)

Campo de 2ec"a ?DateField@

=s"e con"rol nos !ermi"e "raba2ar con 1ec/as e una 1orma mu- sencilla* incluso !o emos mos"rar un calen ario !ara seleccionar 1ec/as+ Se agrega e la siguien"e manera+

A!ren ien o OOo Basic

E?1

"u. @+( @+( @+(

$a(7oJ%*ha123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 50006 700 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 18000 3 ,!g'%ga(os un nu%8o *a(7o d% f%*ha o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-@a&%J+%ld"3 o<u%8o$on&'olMod%lo-<a(% A "df<a*+(+%n&o" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

Al ser un cam!o con "e:"o* en 1orma"o e 1ec/a !ero no e2a e ser "e:"o* cuen"a con "o a las !ro!ie a es !ara mani!ularlo (color* "amaKo* 1uen"e* e"c)* -a vis"as en o"ros con"roles+ 5eamos las !ro!ie a es !ar"iculares e es"e con"rol+
"u. $a(7oJ%*ha223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"df<a*+(+%n&o"3 U+&h o$on&'ol -@a&%M+n A 19000101 -@a&%Max A 20091231 -@a&%Jo'(a& A 0 -@'o7do^n A H'u% -"7+n A H'u% End U+&h End "u. ,J%*ha (Gn+(a ,J%*ha (=x+(a ,Jo'(a&o (os&'ado ,"+ %s d%s7l%ga.l% ,"+ (u%s&'a %l *a(7o g+'a&o'+o

Observa la 1orma Lsui generisM e es"ablecer los valores e las !ro!ie a es !ara el valor e la 1ec/a mnima (-ateMin) - m;:ima (-ateMa*) el con"rol* es un n>mero* !ero !rimero va el aKo* es!u3s el mes - !or ul"imo el a* si las vas a es"ablecer e 1orma in;mica* !ue es /acerlo a "rav3s e una ca ena (s"ring)* !ero "ienes 6ue arle el 1orma"o e:ac"o* si no* "e ar; 1ec/as err4neas+
-@a&%Max A Jo'(a&2<o^6"OOOOMM@@"3

)a !ro!ie a !ara mos"rar la 1lec/a es!legable ( -ropdo8n)* !ermi"e al usuario mos"rar un calen ario !ara seleccionar la 1ec/a+ )a !ro!ie a !ara es"ablecer el 1orma"o (-ate5ormat)* !ue es "omar los siguien"es valores en"eros< !ombre
=s";n ar (cor"o)

0alor
$

$jemplo
#$0$,0$,

E?#

%+1# O"ros con"roles

!ombre
=s";n ar (cor"o OO) =s";n ar (cor"o OOOO) =s";n ar (largo) ((0MM0OO MM0((0OO OO0MM0(( ((0MM0OOOO MM0((0OOOO OOOO0MM0(( OO-MM-(( OOOO-MM-((

0alor
1 # ? E 5 F % G , 1$ 11

$jemplo
#$0$,0$, #$0$,0#$$, omingo #$ e se!"iembre e #$$, #$0$,0$, $,0#$0$, $,0$,0#$ #$0$,0#$$, $,0#$0#$$, #$$,0$,0#$ $,-$,-#$ #$$,-$,-#$

Para ob"ener la 1ec/a ac"ual el con"rol !ue es /acerlo e os maneras+


"u. $a(7oJ%*ha323 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"df<a*+(+%n&o"3 ,@%8u%l8% la f%*ha s%l%**+onada *o(o n;(%'o MsgBox o$on&'ol-@a&% ,@%8u%l8% %l *on&%n+do d%l *on&'ol *o(o &%x&o MsgBox o$on&'ol-H%x& End "u.

(e!en ien o el 1orma"o 6ue /a-as es"ableci o* "e ser; m;s convenien"e usar una u o"ra 1orma* es"o ser; en 1unci4n e "us necesi a es+ =n su mo o e Lvis"aM* !ue es ac"ivarlo o esac"ivarlo ( "nabled) - /acerlo invisible+ Pue es vincularlo a un cam!o e a"os origen ( -ata5ield)* !ero no im!lemen"a la !osibili a e vincularlo a una cel a* !ero m;s a elan"e a!ren eremos a /acerlo irec"amen"e con c4 igo+

A.12.!

Campo de "ora ?5imeField@

=s"e con"rol es mu- similar al cam!o e 1ec/a (-ate5ield) !ero !ara mane2ar valores e /ora* veamos como agregar uno nuevo en nues"ro 1ormulario+
"u. @+( @+( @+( $a(7oHo'a123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

A!ren ien o OOo Basic

E??

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 50006 700 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 20000 3 ,!g'%ga(os un nu%8o *a(7o d% ho'a o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-H+(%J+%ld"3 o<u%8o$on&'olMod%lo-<a(% A "&fEn&'ada" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

O sus !ro!ie a es !ar"iculares+


"u. $a(7oHo'a223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"&fEn&'ada"3 U+&h o$on&'ol -H+(%M+n A 8300000 -H+(%Max A 15000000 -H+(%Jo'(a& A 1 -"7+n A H'u% End U+&h End "u. ,5a ho'a (Gn+(a 8430 ,5a ho'a (=x+(a 15400 ,24 h' *on s%gundos ,Mu%s&'a %l *on&'ol g+'a&o'+o

=l 1orma"o !ara la /ora mnima (.imeMin) - m;:ima (.imeMa*)* "iene 6ue ser coraMinu"osSegun os* - los segun os ebe ser cua"ro gi"os* el 1orma"o solo ace!"a cua"ro valores8 1orma"o #E /oras sin segun os ($)* 1orma"o #E /oras con segun os (1)* 1orma"o 1# /oras sin segun os (?) - 1orma"o 1# /oras con segun os (E)+ Para recu!erar el valor ac"ual el con"rol* "ienes os o!ciones+
"u. $a(7oHo'a323 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"&fEn&'ada"3 ,@%8u%l8% la f%*ha s%l%**+onada *o(o n;(%'o MsgBox o$on&'ol-H+(% ,@%8u%l8% %l *on&%n+do d%l *on&'ol *o(o &%x&o MsgBox o$on&'ol-H%x& End "u.

=n su mo o e Lvis"aM* !ue es ac"ivarlo o esac"ivarlo ( "nabled) - /acerlo invisible+ Pue es vincularlo a un cam!o e a"os origen ( -ata5ield)* !ero no im!lemen"a la !osibili a e vincularlo a una cel a+

E?E

%+1# O"ros con"roles

A.12.=

Campo num$rico ?/umericField@

=s"e con"rol !ermi"e mane2ar >nicamen"e n>meros* en el siguien"e e2em!lo agregamos un nuevo con"rol al 1ormulario+
"u. @+( @+( @+( $a(7o<u(%'+*o123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 50006 700 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 20000 3 ,!g'%ga(os un nu%8o *a(7o nu(S'+*o o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-<u(%'+*J+%ld"3 o<u%8o$on&'olMod%lo-<a(% A "nf0%sos" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

@ecuer a 6ue "o os los con"roles on e se mues"re in1ormaci4n al usuario* com!ar"en un mnimo e !ro!ie a es (color* 1uen"e* e"c)+ )as !ro!ie a es !ar"iculares e es"e con"rol son<
"u. $a(7o<u(%'+*o223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"nf0%sos"3 U+&h o$on&'ol -1alu%M+n A 100 -1alu%Max A 500 -1alu%"&%7 A 2 -"7+n A H'u% -"ho^Hhousands"%7a'a&o' A H'u% -@%*+(al!**u'a*? A 2 End U+&h End "u. ,El ,El ,El ,"+ ,"+ ,El 8alo' (Gn+(o 8alo' (=x+(o sal&o %n&'% 8alo'%s (u%s&'a %l *on&'ol g+'a&o'+o (u%s&'a %l s%7a'ado' d% (+l%s n;(%'o d% d%*+(al%s

=l se!ara or e miles (S$o8.$ousandsSeparator)* ser; el mismo con1igura o en la in"er1az el OOo+


"u. $a(7o<u(%'+*o323 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3

A!ren ien o OOo Basic


o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"nf0%sos"3

E?5

,@%8ol8%(os %l 8alo' d%l *on&'ol MsgBox "El 8alo' a*&ual d%l *on&'ol %s A " 9 o$on&'ol-1alu% End "u.

=s"e con"rol si ace!"a la vinculaci4n con una cel a* as como con un cam!o e a"os+

A.12.A

Campo moneda ?CurrencyField@

=s"e con"rol es casi i 3n"ico al cam!o num3rico (2umeric5ield)* con al i1erencia e 6ue !ue e mos"rar un smbolo e mone a en su 1orma"o+ Para agregar un con"rol e es"e "i!o a nues"ro 1ormulario* usamos el siguien"e c4 igo+
"u. @+( @+( @+( $a(7oMon%da123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 50006 700 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 20000 3 ,!g'%ga(os un nu%8o *a(7o (on%da o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-$u''%n*?J+%ld"3 o<u%8o$on&'olMod%lo-<a(% A "*f#ng'%sos" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

)as !ro!ie a es !ar"iculares e es"e con"rol son+


"u. $a(7oMon%da223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"*f#ng'%sos"3 U+&h o$on&'ol -$u''%n*?"?(.ol A "Bd" -0'%7%nd$u''%n*?"?(.ol A H'u% -1alu%M+n A 0 -1alu%Max A 1000 -1alu%"&%7 A 5 -"7+n A H'u% -"ho^Hhousands"%7a'a&o' A H'u% -@%*+(al!**u'a*? A 2 End U+&h ,El sG(.olo d% (on%da ,Mu%s&'a %l sG(.olo a la +:Fu+%'da ,El 8alo' (Gn+(o ,El 8alo' (=x+(o ,El sal&o %n&'% 8alo'%s ,"+ (u%s&'a %l *on&'ol g+'a&o'+o ,"+ (u%s&'a %l s%7a'ado' d% (+l%s ,El n;(%'o d% d%*+(al%s

E?F
End "u.

%+1# O"ros con"roles

Para recu!erar el valor ac"ual el con"rol usamos+


"u. $a(7oMon%da323 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"*f#ng'%sos"3 ,@%8ol8%(os %l 8alo' d%l *on&'ol MsgBox "El 8alo' a*&ual d%l *on&'ol %s A " 9 o$on&'ol-1alu% End "u.

=s"e con"rol solo ace!"a el vinculo con un cam!o e a"os+

A.12.E

Campo enmascarado ?+atternField@

=s"e con"rol !ermi"e es"ablecer una mascara e en"ra a !ara los a"os el usuario* es mu- >"il en en"ornos con usuarios con !oca e:!eriencia* !ues !ermi"e limi"ar e 1orma mues"ric"a lo 6ue es"e ca!"ura* !ara agregar uno a nues"ro 1ormulario* usamos+
"u. @+( @+( @+( $a(7oEn(as*a'ado123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 50006 700 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 20000 3 ,!g'%ga(os un nu%8o *a(7o %n(as*a'ado o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-0a&&%'nJ+%ld"3 o<u%8o$on&'olMod%lo-<a(% A "7fRJ$" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

=s"e con"rol "iene !ocas !ro!ie a es !ar"iculares* !ero son vi"ales !ara su correc"o 1uncionamien"o+
"u. $a(7oEn(as*a'ado223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3

A!ren ien o OOo Basic


o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"7fRJ$"3 U+&h o$on&'ol -MaxH%x&5%n A 15 -Ed+&Mas] A "!!!!5<<<<<<5$$$" -5+&%'alMas] A "////T//////T///" -"&'+*&Jo'(a& A H'u% End U+&h End "u.

E?%

,5ong+&ud (=x+(a d%l *on&%n+do ,Mas*a'a d% %n&'ada ,Mas*a'a d% *a'a*&%'%s ,$on&'ol d% fo'(a&o

=s"as cua"ro !ro!ie a es* es esencial 6ue "raba2en "o as 2un"as* la !rimera es au"o escri!"iva !ero es mu- im!or"an"e 6ue "enga la longi"u e:ac"a e la mascara e en"ra a ("ditMas7) - e la mascara e carac"eres (0iteralMas7)* !ara 6ue 1uncione el con"rol e 1orma"o (Strict5ormat) ebe es"ar en ver a ero es"a !ro!ie a + =n la mascar; e en"ra a ( "ditMas7) e"erminamos 6ue !ue e - 6ue no !ue e ca!"urar el usuario en esa e:ac"a !osici4n el carac"er* e acuer o a la siguien"e "abla+ Caracter
) a A c . N p

9estriccin
=l carac"er e es"a !osici4n* se mues"ra "al cual* no !ue e e i"arse* al llegar a es"a !osici4n* el cursor !asa al siguien"e carac"er e i"able+ Se !ermi"en le"ras e la A a la k* se res!e"an ma->sculas min>sculas+ Se !ermi"en le"ras e la A a la k* "o as se convier"en a ma->sculas+ Se !ermi"en le"ras e la A a la k* - "o os los gi"os* $-,* se res!e"an ma->sculas - min>sculas+ Se !ermi"en le"ras e la A a la k* - "o os los gi"os* $-,* "o as las le"ras !asan a ma->sculas+ Solo se !ermi"en los n>meros gi"os* $ a ,+ Se !ermi"en "o os los carac"eres im!rimibles+

)a mascara e carac"eres* es lo 6ue ve el usuario* mien"ras no ca!"ure na a en las res!ec"ivas !osiciones+ 0os+*+Kn Mas*a'a d% %n&'ada Mas*a'a d% *a'a*&%'%s 123456789012345 !!!!5<<<<<<5$$$ ////T//////T///

Para regresar el valor ca!"ura o* usamos+


"u. $a(7oEn(as*a'ado323 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"7fRJ$"3 MsgBox "1alo' a*&ual d%l *on&'ol4 " 9 o$on&'ol-H%x& End "u.

=s"e con"rol so!or"a la vinculaci4n con un cam!o e a"os ( -ata5ield)+

E?G

%+1# O"ros con"roles

A.12.G

Cuadro de *rupo ?Droup&o'@

=s"e con"rol solo es e a!o-o visual !ara enmarcar o"ros gru!os e con"roles* generalmen"e se usa con gru!os e bo"ones e o!ci4n ( Option!utton) aun6ue los !ue es usar con cual6uier o"ro gru!o e con"roles+ Para agregar uno al 1ormulario* usamos+
"u. @+( @+( @+( $uad'oD'u7o123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 50006 5000 3 $all $a(.+a0os2 o<u%8o$on&'ol6 20006 20000 3 ,!g'%ga(os un nu%8o *a(7o %n(as*a'ado o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-D'ou7Box"3 o<u%8o$on&'olMod%lo-<a(% A "g.Es&ado$+8+l" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

Para es"ablecer el "i"ulo el con"rol usamos+


"u. $uad'oD'u7o223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"g.Es&ado$+8+l"3 ,Es&a.l%*%(os %l &+&ulo d%l *on&'ol o$on&'ol-5a.%l A "Es&ado *+8+l" End "u.

A.12.1I

Control de tablas ?5ableControl@

=s"e con"rol nos !ermi"e mos"rar una "abla* consul"a o ins"rucci4n Se) !ara enlazar bases e a"os* !or a/ora solo 1unciona en "iem!o e iseKo - el asis"en"e e con"roles ebe es"ar ac"iva o* el 1ormulario !reviamen"e ebe es"ar enlaza o con los a"os origen* !ara agregar una al 1ormulario* usamos el siguien"e c4 igo* !ero* !or a/ora* no !o r;s enlazarlo !or c4 igo+
"u. Ha.la$on&'ol123 @+( oJo'(ula'+o !s >.)%*&

A!ren ien o OOo Basic


@+( o<u%8o$on&'ol !s >.)%*& @+( o<u%8o$on&'olMod%lo !s >.)%*&

E?,

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 100006 10000 3 $all $a(.+a0os2 o<u%8o$on&'ol6 30006 20000 3 ,!g'%ga(os un nu%8o *a(7o %n(as*a'ado o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-D'+d$on&'ol"3 o<u%8o$on&'olMod%lo-<a(% A "g*$on&a*&os" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

A.12.11

&arra de na,e*acin

=s"e con"rol !ermi"e* cuan o el 1ormulario es"a enlaza o a una base e a"os* con"rolar la navegaci4n en"re los regis"ros* !ara agregarla al 1ormulario usamos+
"u. @+( @+( @+( Ba''a<a8%ga*+on123 oJo'(ula'+o !s >.)%*& o<u%8o$on&'ol !s >.)%*& o<u%8o$on&'olMod%lo !s >.)%*&

oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o<u%8o$on&'ol A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-d'a^+ng-$on&'ol"ha7%"3 $all $a(.+aHa(2 o<u%8o$on&'ol6 200006 1000 3 $all $a(.+a0os2 o<u%8o$on&'ol6 30006 25000 3 ,!g'%ga(os un nu%8o *a(7o %n(as*a'ado o<u%8o$on&'olMod%lo A Hh+s$o(7on%n&-*'%a&%#ns&an*%2"*o(-sun-s&a'-fo'(-*o(7on%n&-<a8+ga&+onHoolBa'"3 o<u%8o$on&'olMod%lo-<a(% A "na8Ba''a" o<u%8o$on&'ol-$on&'ol A o<u%8o$on&'olMod%lo oJo'(ula'+o-+ns%'&B?#nd%x206 o<u%8o$on&'olMod%lo3 Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-add2 o<u%8o$on&'ol 3 End "u.

)as !ro!ie a es !ar"iculares e es"e con"rol son+


"u. Ba''a<a8%ga*+on223 @+( oJo'(ula'+o !s >.)%*& @+( o$on&'ol !s >.)%*& oJo'(ula'+o A Hh+s$o(7on%n&-g%&$u''%n&$on&'oll%'-g%&!*&+8%"h%%&-g%&@'a^0ag%-g%&Jo'(s-g%&B?<a(%2 "M+@+'%*&o'+o" 3 o$on&'ol A oJo'(ula'+o-g%&B?<a(%2"na8Ba''a"3 U+&h o$on&'ol -Ba*]g'ound$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 -H%x&$olo' A RDB2Rnd 2556Rnd 2556Rnd 2553 ,$olo' d% fondo ,$olo' d% &%x&o

EE$
-Bo'd%' A 2 -#*on"+:% A 0 -"ho^0os+&+on A H'u% -"ho^<a8+ga&+on A H'u% -"ho^R%*o'd!*&+ons A H'u% -"ho^J+l&%'"o'& A H'u% End U+&h End "u.

%+1# O"ros con"roles


,Bo'd% 7lano ,0%Fu%\o A 06 D'and% A 1 ,Mu%s&'a la +nfo'(a*+Kn a*&ual d%l *u'so' ,Mu%s&'a las fl%*has d% na8%ga*+Kn ,Mu%s&'a los +*onos 7a'a (an+7ula' '%g+s&'os ,Mu%s&'a los +*onos 7a'a o'd%na' ? f+l&'a'

Si es"ableces las ul"imas cua"ro !ro!ie a es en 1also ( 5alse)* solo veras un marco sin ninguna u"ili a * generalmen"e se mues"ran los cua"ro* el icono !ara mani!ular los regis"ros (S$o8RecordActions)* "e !ermi"e* agregar* e i"ar - borrar regis"ros* en ocasiones es >"il es/abili"ar es"os - con"rolar es"as acciones !or c4 igo* es"o "e !ermi"e un ma-or con"rol e los a"os* !ero re6uiere* "ambi3n* muc/as m;s lneas e c4 igo* - "raba2o* !or su!ues"o* "u eci es 6ue es lo 6ue m;s "e conviene+ .on es"o "erminamos con el mane2o e 1ormularios - sus con"roles* /emos vis"o la 1orma e agregarlos !or c4 igo - mani!ular las !rinci!ales !ro!ie a es e ca a uno* casi "o o el conocimien"o a 6uiri o en es"e ca!i"ulo* nos ser; e muc/a u"ili a !ara el siguien"e* en on e a!ren eremos el mane2o e cua ros e i;logo+

A!ren ien o OOo Basic

EE1

E 5rabajando con cuadros de dialo*o

EE#

, Traba2an o con even"os

G 5rabajando con e,entos


cemos llega o a un "ema cen"ral en la !rogramaci4n e OOo* cen"ral !or 6ue una gran !ar"e e la !rogramaci4n en OOo* "iene 6ue res!on er a la !regun"a Icuan oJ* Icuan o 6ueremos 6ue se e2ecu"e una macroJ*

A!ren ien o OOo Basic

EE?

1I (p$ndices

1I.1

Se*uridad en macros

.omo -a lo /abr;s no"a o* el limi"e !ara lo 6ue se !ue e /acer con macros es solo "u conocimien"o - "u imaginaci4n* !or ello* no "omes como un "ema menor el e la seguri a * es ecir* aseg>ra"e e 6ue las macros 6ue es";s ac"ivan o - e2ecu"an o sean e una 1uen"e con1iable+ Para es"ablecer el nivel e seguri a e las macros* ve al men> 6erramientas 1 Opciones((( en"ro e la secci4n OpenOffice(or,* selecciona la rama 4e,uridad - en"ro e las

o!ciones mos"ra as* a un clic en el bo"4n e coman o 4e,uridad de macro+++ =l nivel e con1ianza es bas"an"e e:!lici"o - creo 6ue no re6uiere aclaraciones* 6ue a a "u cri"erio es"ablecer el nivel a ecua o !ara "u ;rea - en"orno e "raba2o* !ara los 1ines i ;c"icos e es"os a!un"es* el nivel "edio es m;s 6ue su1icien"e+

EEE

1$+1 Seguri a en macros

Si no 6uieres 6ue "e mues"re el cua ro e ialogo e con1irmaci4n ca a vez 6ue abres "u arc/ivo e "raba2o* !ue es agregar su ubicaci4n como un origen e con1ianza* en el mismo cua ro e ialogo an"erior !ero en la 1ic/a Or:,enes de Confian2a* !ue es agregar "an"as ru"as como 6uieras* es e las cuales* se abrir;n los arc/ivos con las macros ac"iva as e 1orma !re e"ermina a sin !e ir"e con1irmaci4n+ .ui a o con es"o* asegura"e e es"ablecer solo ru"as e ver a era con1ianza* como icen en mi !ueblo -sobre a ver"encia no /a- engaKo-+

A!ren ien o OOo Basic

EE5

1I.2

Errores mFs comunes en tiempo de dise<o

.omo -a e:!licamos en el "ema E+1$* es"e "i!o e errores solo se !ro ucen mien"ras !rogramamos - en ese momen"o /a- 6ue corregirlos* es"a es una lis"a incom!le"a e los m;s comunes* !ara es"os e2em!los* solo "e mos"rare la imagen el c4 igo con el error* es!ero 6ue los ""ulos sean lo su1icien"emen"e claro !ara "u consul"a<

No !ue e /aber una macro sin nombre

To a macro ebe cerrarse con =n Sub

No !ue e /aber os macro o 1unciones con el mismo nombre

No !ue es e2ecu"ar irec"amen"e una macro 6ue re6uiera argumen"os

Por su!ues"o* "am!oco llamarla sin los argumen"os correc"os<

EEF

1$+# =rrores m;s comunes en "iem!o e iseKo

Si usas O!"ion =:!lici" (como L ebeM ser)* "ienes 6ue eclara "o as "us variables* sino

To as las es"ruc"uras eben ir com!le"as* a6u 1al"a T/en al 91

Por su!ues"o "ambi3n ebe llevar su corres!on ien"e =n 91

Si usas =lse91* recuer a 6ue "ambi3n "ermina en T/en

)a es"ruc"ura (o* siem!re ebe cerrarse con )oo!* "e cui a o e es"ablecer siem!re la con ici4n e "erminaci4n el bucle* si no lo /aces no "e ar; un error - !ue es 6ue ar en"ro e un bucle in1ini"o

A!ren ien o OOo Basic

EE%

)a es"ruc"ura Selec" ebe "erminar en .ase

O no "e olvi es e es"ablecer la variable a evaluar

O cerrar con su res!ec"ivo =n Selec"

)os ciclos 'or* eben es"ar com!le"a* con su corres!on ien"e To

O su res!ec"ivo Ne:"

Se re6uiere el uso e (im !ara eclarar variables

EEG

1$+# =rrores m;s comunes en "iem!o e iseKo

Algunos a"os no so!or"an la conversi4n e a"os im!lci"a* es ecir* "ienes 6ue es"ablecer correc"amen"e el "i!o e in1ormaci4n 6ue guar as en es"as variables

=s"e es mu- com>n* sobre!asar los limi"es 6ue ace!"a un "i!o e a"o

(ebes e eclarar las corres!on ien"es e"i6ue"as en On =rror &o"o - &o"o

)a macro o 1unci4n llama a ebe e:is"ir

A!ren ien o OOo Basic

EE,

No !ue es /acer re1erencia al in ice e una ma"riz 1uera e sus rangos

eclara os

No !ue es* en"ro e la misma macro* e1inir os vece la misma variable

No !ue es ivi ir !or cero

(ebes e usar la ins"rucci4n =:i"* con su corres!on ien"e !re ica o Sub* (o* 'or o 'unc"ion - en"ro e la es"ruc"ura corres!on ien"e correc"a

O"ra mu- com>n* "o as las ins"rucciones - 1unciones e OOo Basic* "ienes 6ue llamarlas con sus correc"os argumen"os

E5$

1$+? 9ns"alan o S(t

1I.

Instalando SD0

)o !rimero 6ue necesi"amos es escargarlo es e la !;gina e O!enO11ice+org /""!<00 o7nloa +o!eno11ice+org0?+1+$0s s+/"ml

Tienes 6ue seleccionar el arc/ivo correc"o !ara "u sis"ema o!era"ivo* en nues"ro caso usaremos la versi4n !ara )inu:+ Para ins"alar sigue le-en o<

(es e una "erminal ve /as"a la ubicaci4n on e escargas"e el arc/ivo an"erior e2ecu"alo* no necesi"as erec/os e a minis"ra or<

A!ren ien o OOo Basic

E51

.omo no"aras "e !i e un irec"orio* es"o es solo !ara escom!rimir el arc/ivo* as 6ue ale una ru"a sencilla o on e "e sea c4mo o encon"rarlo* "ienes 6ue arle un irec"orio nuevo* e lo con"rario "e ir; 6ue -a e:is"e - no "e escom!ac"ara el arc/ivo+ Mu3ve"e /as"a el irec"orio reci3n crea o - veras una car!e"a 6ue se llama (=BS (o @PMS se Vun el 6ue /a-as escarga o)* en"ro e ella el arc/ivo ooobasis?+1-s sQ?+1+$-11Qam FE+ eb* 6ue sabes* es un arc/ivo !ara ins"alar* si "ienes una is"ribuci4n 6ue so!or"e @MPs ('e ora* O!enSuse* e"c)* lo ins"alas con<
r&m ,i ooobasis-./,sd0_-./.1,//_amd23.r&m

Si "ienes una is"ribuci4n 6ue use (=Bs (Ubun"u* (ebian* e"c)* !ue es ins"alar es e la lnea e coman os<
sudo d7]g T+ ooo.as+s3-1Tsd]/3-1-0T11/a(d64-d%.

O es e una in"er1az gr;1ica si "u is"ribuci4n la im!lemen"a<

A/ora !ue es abrir "u navega or 1avori"o - abrir el arc/ivo

E5#

1$+? 9ns"alan o S(t

1ile<000o!"0o!eno11ice0basis?+10s s0in e:+/"ml (on e* en"re o"ras /erramien"as - e2em!los* "en r;s la re1erencia com!le"a el AP9 e O!enO11ice+org

1I.)

Mostrar in2ormacin de un objeto en un arc"i,o de Calc

"u. @+( @+( @+( @+( @+(

>.&%n%'@a&os2 >.)%&o !s >.)%*& 3 sRu&a !s "&'+ng o@o* !s >.)%*& (!'g23 a123 !s "&'+ng6 a223 !s "&'+ng *o1 !s #n&%g%'6 sH(7 !s "&'+ng sRu&a A "7'+8a&%4fa*&o'?/s*al*" o@o* A "&a'@%s]&o7-5oad$o(7on%n&J'o(CR52 sRu&a6"/d%faul&"606(!'g 3 a1 A "7l+&2 >.)%&o-@BD/0'o7%'&+%s6 "4" 3 a2 A "7l+&2 H'+(2a121336 "f" 3 o@o*-"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 06 0 3-s%&"&'+ng2 a1203 3 Jo' *o1 A 5Bound2 a2 3 Ho CBound2 a2 3 sH(7 A H'+(2a22*o133 #f 5%f&2 sH(76 13 A $h'2103 Hh%n sH(7 A R+gh&2 sH(76 5%n2sH(73T1 3 o@o*-"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 06 *o1B1 3-s%&"&'+ng2 sH(7 3 <%x& *o1 #f R+gh&2 sH(76 13 A $h'2103 Hh%n sH(7 A 5%f&2 sH(76 5%n2sH(73T1 3 o@o*-"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 06 *o1 3-s%&"&'+ng2 sH(7 3 a1 A "7l+&2 >.)%&o-@BD/M%&hods6 "4" 3 a2 A "7l+&2 H'+(2a121336 "f" 3 o@o*-"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 16 0 3-s%&"&'+ng2 a1203 3

A!ren ien o OOo Basic

E5?

Jo' *o1 A 5Bound2 a2 3 Ho CBound2 a2 3 sH(7 A H'+(2a22*o133 #f 5%f&2 sH(76 13 A $h'2103 Hh%n sH(7 A R+gh&2 sH(76 5%n2sH(73T1 3 o@o*-"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 16 *o1B1 3-s%&"&'+ng2 sH(7 3 <%x& *o1 #f R+gh&2 sH(76 13 A $h'2103 Hh%n sH(7 A 5%f&2 sH(76 5%n2sH(73T1 3 o@o*-"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 16 *o1 3-s%&"&'+ng2 sH(7 3 a1 A "7l+&2 >.)%&o-@BD/"u77o'&%d#n&%'fa*%s6 "4" 3 a2 A "7l+&2 H'+(2a121336 $h'2103 3 o@o*-"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 26 0 3-s%&"&'+ng2 a1203 3 Jo' *o1 A 5Bound2 a2 3 Ho CBound2 a2 3 sH(7 A H'+(2a22*o133 #f 5%f&2 sH(76 13 A $h'2103 Hh%n sH(7 A R+gh&2 sH(76 5%n2sH(73T1 3 o@o*-"h%%&s23-g%&B?#nd%x203-g%&$%llB?0os+&+on2 26 *o1 3-s%&"&'+ng2 sH(7 3 <%x& *o1 End "u.

Asegura"e e !asarle como !ar;me"ro una variable e ob2e"o* si el ob2e"o no im!lemen"a m3"o os* la macro "e ar; un error - se e"en r;* !ero "e crear; el arc/ivo con al menos las !ro!ie a es 6ue im!lemen"a+
"u. 0'u%.as @+( o.) !s >.)%*& o.) A Hh+s$o(7on%n& $all >.&%n%'@a&os 2 o.) 3 End "u.

1I.!

Formulas de Calc espa<olKin*les

!.
1 # ? E 5 F % G , 1$ 11 1# 1? 1E 15 1F 1% 1G

$spa;ol
ABS A.OS A.OSc A.OT A.OTc A.TUA) AcO@A A)=ATO@9O A)=ATO@9O+=NT@= AMO@T9k+)9N AMO@T9k+P@O&@= AMO@T9kA.9ON AuO AuOS d@AB= d@=AS AS. AS=NO ABS A.OS A.OSc A.OT A.OTc .U@@=NT NON @AN( com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a PPMT O=A@ com+sun+s"ar+s/ee"+a A@AB9. A@=AS AS. AS9N

)n,les

in+Anal-sis+ge"@an be"7een in+Anal-sis+ge"Amorlinc in+Anal-sis+ge"Amor egrc

in+(a"e'unc"ions+ge"(i11Oears

E5E

1$+5 'ormulas e .alc es!aKol-ingles

!.
1, #$ #1 ## #? #E #5 #F #% #G #, ?$ ?1 ?# ?? ?E ?5 ?F ?% ?G ?, E$ E1 E# E? EE E5 EF E% EG E, 5$ 51 5# 5? 5E 55 5F 5% 5G 5, F$ F1 F# F? FE F5 FF F% FG F, %$ %1 %# %?

$spa;ol
AS=NOc ATAN ATAN# ATANc B BAcTT=pT BAS= B(.ONTA@ B(.ONTA@A B((=S5=ST B((=S5=STP B(=pT@A=@ B(MAp B(M9N B(P@O(U.TO B(P@OM=(9O B(SUMA B(5A@ B(5A@P B=SS=)9 B=SS=)i B=SS=)t B=SS=)O B9N+A+(=. B9N+A+c=p B9N+A+O.T B9NOM+.@9T BUS.A@ BUS.A@c BUS.A@5 .ANT9(A(+@=.9B9(A .A@d.T=@ .=)(A .c9Se(9ST .c9Se9N5 .O.9=NT= .B(9&O .O='+(=+.O@@=) .O='9.9=NT=+AS9M=T@9A .O='9.9=NT=+@# .O9N.9(9@ .O)UMNA .O)UMNAS .OMB9NA@ .OMB9NA@# .OMPA.TA@ .OMP)=iO .ON.AT=NA@ .ONTA@ .ONTA@+B)AN.O .ONTA@+S9 .ONTA@A .ON5=@T9@ .ON5=@T9@QA(( .ON5=@T9@+=U@O AS9Nc ATAN ATAN# ATANc B BAcTT=pT BAS= (.OUNT (.OUNTA (ST(=5 (ST(=5P (&=T (MAp (M9N (P@O(U.T (A5=@A&= (SUM (5A@ (5A@P com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a .@9TB9NOM )OOtUP c)OOtUP 5)OOtUP com+sun+s"ar+s/ee"+a .cA@ .=)) .c9Se(9ST .c9Se9N5 com+sun+s"ar+s/ee"+a .O(= .O@@=) St=N @Se MAT.c .O)UMN .O)UMNS .OMB9N .OMB9NA T@9M com+sun+s"ar+s/ee"+a .ON.AT=NAT= .OUNT .OUNTB)ANt .OUNT9' .OUNTA .ON5=@T com+sun+s"ar+s/ee"+a =U@O.ON5=@T

)n,les

in+Anal-sis+ge"Besseli in+Anal-sis+ge"Bessel2 in+Anal-sis+ge"Bessels in+Anal-sis+ge"Besselin+Anal-sis+ge"Bin#(ec in+Anal-sis+ge"Bin#ce: in+Anal-sis+ge"Bin#Oc"

in+Anal-sis+ge"@eceive

in+Anal-sis+ge"euo"ien"

in+Anal-sis+ge".om!le:

in+Anal-sis+ge".onver"

A!ren ien o OOo Basic

E55

!.
%E %5 %F %% %G %, G$ G1 G# G? GE G5 GF G% GG G, ,$ ,1 ,# ,? ,E ,5 ,F ,% ,G ,, 1$$ 1$1 1$# 1$? 1$E 1$5 1$F 1$% 1$G 1$, 11$ 111 11# 11? 11E 115 11F 11% 11G 11, 1#$ 1#1 1## 1#? 1#E 1#5 1#F 1#% 1#G

$spa;ol
.OS .OSc .OT .OTc .O5A@ .@=.9M9=NTO .UA@T9) .UPON+(9AS .UPON+(9AS+)1 .UPON+(9AS+)# .UPON+'=.cA+)1 .UPON+'=.cA+)# .UPON+NUM .U@TOS9S (B ((B ((= (=.+A+B9N (=.+A+c=p (=.+A+O.T (=.9MA) (=)TA (=@=.cA (=S@=' (=S5=ST (=S5=STA (=S5=STP (=S5=STPA (=S59A# (=S5P@OM (AA (9A+)AB (AAS (9AS+)AB (AAS?F$ (AAS=M (AAS=NAuO (AAS=NM=S (9@=..9BN (9ST+N=9BU)) (9ST@+B=TA (9ST@+B=TA+9N5 (9ST@+B9NOM (9ST@+=pP (9ST@+' (9ST@+'+9N5 (9ST@+&AMMA (9ST@+&AMMA+9N5 (9ST@+c9P=@&=OM (9ST@+i9 (9ST@+)O&+NO@M (9ST@+NO@M (9ST@+NO@M+=STAN( (9ST@+NO@M+=STAN(+9N5 (9ST@+NO@M+9N5 .OS .OSc .OT .OTc .O5A@ &@ONTc eUA@T9)= com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a tU@T (B ((B ((= com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a (=.9MA) com+sun+s"ar+s/ee"+a @9&cT O''S=T ST(=5 ST(=5A ST(=5P ST(=5PA (=5Se A5=(=5 (AO com+sun+s"ar+s/ee"+a (AOS com+sun+s"ar+s/ee"+a (AOS?F$ N==t(AO com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a A((@=SS N=9BU)) B=TA(9ST B=TA9N5 B9NOM(9ST =pPON(9ST '(9ST '9N5 &AMMA(9ST &AMMA9N5 cOP&=OM(9ST .c9(9ST )O&NO@M(9ST NO@M(9ST NO@MS(9ST NO@MS9N5 NO@M9N5

)n,les

in+Anal-sis+ge".ou! a-s in+Anal-sis+ge".ou! a-bs in+Anal-sis+ge".ou! a-snc in+Anal-sis+ge".ou!!c in+Anal-sis+ge".ou!nc in+Anal-sis+ge".ou!num

in+Anal-sis+ge"(ec#Bin in+Anal-sis+ge"(ec#ce: in+Anal-sis+ge"(ec#Oc" in+Anal-sis+ge"(el"a

in+Anal-sis+ge"Nors ain+Anal-sis+ge"Ne"7ors a-s

in+(a"e'unc"ions+ge"(a-s9nOear in+(a"e'unc"ions+ge"(a-s9nMon"/

E5F

1$+5 'ormulas e .alc es!aKol-ingles

!.
1#, 1?$ 1?1 1?# 1?? 1?E 1?5 1?F 1?% 1?G 1?, 1E$ 1E1 1E# 1E? 1EE 1E5 1EF 1E% 1EG 1E, 15$ 151 15# 15? 15E 155 15F 15% 15G 15, 1F$ 1F1 1F# 1F? 1FE 1F5 1FF 1F% 1FG 1F, 1%$ 1%1 1%# 1%? 1%E 1%5 1%F 1%% 1%G 1%, 1G$ 1G1 1G# 1G?

$spa;ol
(9ST@+T (9ST@+T+9N5 (OM9N&OPAS.UA (U@A.9ONQA(( (U@A.9ON+MO(9' (5S =)=&9@ =N.ONT@A@ =NT=@O =@@O@+TAP9.O+pO =S+9MPA@QA(( =SAuOB9S9=STO =SB)AN.O =S=@@ =S=@@O@ =S'B@MU)A =S9MPA@ =S)O&9.O =SNO( =SNOT=pTO =SNqM=@O =SPA@ =SPA@QA(( =S@=' =ST=pTO =ST9)O =ST9MA.9BN+)9N=A) =ST9MA.9BN+)O&A@ATM9.A =pP =pT@A= 'A.T 'A.T+(OB)= 'A)SO '=.cA '=.cA+M=S '=.cANqM=@O '9iO '9)A '9)AS '9N+M=S '9Sc=@ 'O@MU)A '@A.+AuO '@=.U=N.9A 'UN+=@@O@ 'UN+=@@O@+.OMP) &AMMA &AMMA+)N &AUSS &=TP95OT(ATA &@A(OS cA))A@ c=p+A+B9N c=p+A+(=. c=p+A+O.T T(9ST T9N5 =AST=@SUN(AO com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a 5(B .cOOS= '9N( 9NT ST=Op com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a 9SB)ANt 9S=@@ 9S=@@O@ 9S'O@MU)A 9SO(( 9S)O&9.A) 9SNA 9SNONT=pT 9SNUMB=@ 9S=5=N com+sun+s"ar+s/ee"+a 9S@=' 9ST=pT STO)= )9N=ST )O&=ST =pP M9( 'A.T com+sun+s"ar+s/ee"+a 'A)S= (AT= com+sun+s"ar+s/ee"+a (AT=5A)U= '9p=( @ON @ONS com+sun+s"ar+s/ee"+a '9Sc=@ 'O@MU)A com+sun+s"ar+s/ee"+a '@=eU=N.O com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a &AMMA &AMMA)N &AUSS &=TP95OT(ATA (=&@==S S=A@.c com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a

)n,les

in+Anal-sis+ge"(ura"ion in+Anal-sis+ge"M ura"ion

in+Anal-sis+ge"9so in+(a"e'unc"ions+ge"9s)ea!Oear

in+Anal-sis+ge"9seven

in+Anal-sis+ge"'ac" ouble

in+Anal-sis+ge"= a"e

in+Anal-sis+ge"=omon"/

in+Anal-sis+ge"Oear1rac in+Anal-sis+ge"=r1 in+Anal-sis+ge"=r1c

in+Anal-sis+ge"ce:#Bin in+Anal-sis+ge"ce:#(ec in+Anal-sis+ge"ce:#Oc"

A!ren ien o OOo Basic

E5%

!.
1GE 1G5 1GF 1G% 1GG 1G, 1,$ 1,1 1,# 1,? 1,E 1,5 1,F 1,% 1,G 1,, #$$ #$1 #$# #$? #$E #$5 #$F #$% #$G #$, #1$ #11 #1# #1? #1E #15 #1F #1% #1G #1, ##$ ##1 ### ##? ##E ##5 ##F ##% ##G ##, #?$ #?1 #?# #?? #?E #?5 #?F #?% #?G

$spa;ol
c9P=@5AN.U)O cOiA cOiAS cO@A cO@ANqM=@O cOO 9&UA) 9M+ABS 9M+AN&U)O 9M+.ONiU&A(A 9M+.OS 9M+(95 9M+=pP 9M+)N 9M+)O&1$ 9M+)O&# 9M+POT 9M+P@O(U.T 9M+@A9k# 9M+@=A) 9M+S=NO 9M+SUM 9M+SUST@ 9MA&9NA@9O AN(9.= 9N(9@=.TO 9N'O 9NT+A.UM 9NT+A.UM+5 9NT+='=.T95O 9NT+='=.T95OQA(( 9NT+PA&O+(9@ 9NT+@=N(9M9=NTO 9NT=@S=..9BN+=i= 9NT=@5A)O+.ON'9ANkA 9N5+)O& 9keU9=@(A i=@A@eUAA i9S t+=S9MO+MAOO@ t+=S9MO+M=NO@ )A@&O )=T@A+(=+T=S+=e5+A+BONO )=T@A+(=+T=S+P@=.9O )=T@A+(=+T=S+@=N(TO )9MP9A@ )N )O& )O&1$ M+.+( M+.+(QA(( M+.+M M+.+MQA(( Mdp MdpA cOP=@)9Nt Sc==T Sc==TS cOU@ T9M=5A)U= TO(AO =pA.T com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a 9N(=p 9N(9@=.T 9N'O com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a =''=.T95= com+sun+s"ar+s/ee"+a 9SPMT k&k 9NT=@.=PT .ON'9(=N.= )O&9N5 )='T @ANt i9S )A@&= SMA)) )=N com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a .)=AN )N )O&(81 )O&1$ &.( com+sun+s"ar+s/ee"+a ).M com+sun+s"ar+s/ee"+a MAp MApA

)n,les

in+Anal-sis+ge"9mabs in+Anal-sis+ge"9margumen" in+Anal-sis+ge"9mcon2uga"e in+Anal-sis+ge"9mcos in+Anal-sis+ge"9m iv in+Anal-sis+ge"9me:! in+Anal-sis+ge"9mln in+Anal-sis+ge"9mlog1$ in+Anal-sis+ge"9mlog# in+Anal-sis+ge"9m!o7er in+Anal-sis+ge"9m!ro uc" in+Anal-sis+ge"9ms6r" in+Anal-sis+ge"9mreal in+Anal-sis+ge"9msin in+Anal-sis+ge"9msum in+Anal-sis+ge"9msub in+Anal-sis+ge"9maginar-

in+Anal-sis+ge"Accrin" in+Anal-sis+ge"Accrin"m in+Anal-sis+ge"=11ec"

in+Anal-sis+ge"Tbille6 in+Anal-sis+ge"Tbill!rice in+Anal-sis+ge"Tbill-iel

in+Anal-sis+ge"&c in+Anal-sis+ge")cm

E5G

1$+5 'ormulas e .alc es!aKol-ingles

!.
#?, #E$ #E1 #E# #E? #EE #E5 #EF #E% #EG #E, #5$ #51 #5# #5? #5E #55 #5F #5% #5G #5, #F$ #F1 #F# #F? #FE #F5 #FF #F% #FG #F, #%$ #%1 #%# #%? #%E #%5 #%F #%% #%G #%, #G$ #G1 #G# #G? #GE #G5 #GF #G% #GG #G, #,$ #,1 #,# #,?

$spa;ol
MAOO@+O+9&UA) MAOqS. M(=T=@M M=(9A+A.OTA(A M=(9A+A@MO M=(9A+&=OM M=(9ANA M=S M=S=S MAN MANA M9NUS. M9NUTO M9N5=@SA M9@@ MMU)T MO(A MON=(A MON=(A+(=. MON=(A+'@A. MU)T9NOM9A) Mq)T9P)O+9N'=@9O@ Mq)T9P)O+SUP=@9O@ MUN9TA@9A N N=&B9NOM(9ST NO NO( NOMP@OP9O NO@MA)9kA.9BN NP=@ NScO@A NUM+(=+S=MANAQA(( O O.T+A+B9N O.T+A+(=. O.T+A+c=p PA&O PA&O+9NT+=NT@= PA&O+9NT+=NT@=QA(( PA&O+P@9N.+=NT@= PA&O+P@9N.+=NT@=QA(( PA&O9NT P=A@SON P=N(9=NT= P=@.=NT9) P=@MUTA.9ON=S P=@MUTA.9ON=SA Pc9 P9 P)AkO PO9SSON POT=N.9A P@=.9O P@=.9O+(=S.U=NTO com+sun+s"ar+s/ee"+a UPP=@ M(=T=@M T@9MM=AN cA@M=AN &=OM=AN M=(9AN MONTc com+sun+s"ar+s/ee"+a M9N M9NA )ON=@ M9NUT= M9N5=@S= M9@@ MMU)T MO(= (O))A@ com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a ')OO@ .=9)9N& MUN9T N N=&B9NOM(9ST NOT NA P@OP=@ STAN(A@(9k= NP=@ T9M= com+sun+s"ar+s/ee"+a O@ com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a PMT .UM9PMT com+sun+s"ar+s/ee"+a .UMP@9N. com+sun+s"ar+s/ee"+a 9PMT P=A@SON S)OP= P=@.=NT9)= P=@MUT P=@MUTAT9ONA Pc9 P9 (U@AT9ON PO9SSON PON=@ com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a

)n,les
in+Anal-sis+ge"&es"e!

in+(a"e'unc"ions+ge"(i11Mon"/s

in+Anal-sis+ge"(ollar e in+Anal-sis+ge"(ollar1r in+Anal-sis+ge"Mul"inomial

in+Anal-sis+ge"Neesnum in+Anal-sis+ge"Oc"#Bin in+Anal-sis+ge"Oc"#(ec in+Anal-sis+ge"Oc"#ce:

in+Anal-sis+ge".umi!m" in+Anal-sis+ge".um!rinc

in+Anal-sis+ge"Price in+Anal-sis+ge"Price isc

A!ren ien o OOo Basic

E5,

!.
#,E #,5 #,F #,% #,G #,, ?$$ ?$1 ?$# ?$? ?$E ?$5 ?$F ?$% ?$G ?$, ?1$ ?11 ?1# ?1? ?1E ?15 ?1F ?1% ?1G ?1, ?#$ ?#1 ?## ?#? ?#E ?#5 ?#F ?#% ?#G ?#, ??$ ??1 ??# ??? ??E ??5 ??F ??% ??G ??, ?E$ ?E1 ?E# ?E? ?EE ?E5 ?EF ?E% ?EG

$spa;ol
P@=.9O+P=@+9@@=&U)A@+1 P@=.9O+P=@+9@@=&U)A@+# P@=.9O+5=N.9M9=NTO P@OBAB9)9(A( P@O(U.TO P@OM=(9O P@OM=(9OA P@ONBST9.O P@U=BA+' P@U=BA+'9Sc=@+9N5 P@U=BA+i9 P@U=BA+i9+9N5 P@U=BA+T P@U=BA+k @A(9AN=S @AAk @A9k#P9 @AN&O+P=@.=NT9) @=(ON(+MU)T @=(ON(=A+9MPA@ @=(ON(=A+PA@ @=(ON(=A@ @=(ON(=A@+MAS @=(ON(=A@+M=NOS @==MP)AkA@ @=N(TO @=N(TO+(=S. @=N(TO+P=@+9@@=&U)A@+1 @=N(TO+P=@+9@@=&U)A@+# @=N(TO+5=N.TO @=P=T9@ @=S9(UO @OMANO @OT1? S=&UN(O S=M+(=)+AuO S=MANAS S=MANAS=NAuO S=NO S=NOc S9 S9&NO S)N SUBTOTA)=S SUMA SUMA+.UA(@A(OS SUMA+P@O(U.TO SUMA+S=@9=S SUMA@+S9 SUMAp#MASO# SUMAp#M=NOSO# SUMApM=NOSO# SUST9TU9@ SO( T com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a P@OB P@O(U.T A5=@A&= A5=@A&=A 'O@=.AST 'T=ST '9Sc=@9N5 .c9T=ST .c99N5 TT=ST kT=ST @A(9ANS Se@T com+sun+s"ar+s/ee"+a P=@.=NT@ANt com+sun+s"ar+s/ee"+a O(( =5=N @OUN( @OUN(UP @OUN((ONN @=P)A.= com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a @=PT MO( @OMAN com+sun+s"ar+s/ee"+a S=.ON( N==tNUM com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a S9N S9Nc 9' S9&N S)N SUBTOTA) SUM SUMSe SUMP@O(U.T com+sun+s"ar+s/ee"+a SUM9' SUMp#PO# SUMp#MO# SUMpMO# SUBST9TUT= SO( T

)n,les
in+Anal-sis+ge"O 1!rice in+Anal-sis+ge"O l!rice in+Anal-sis+ge"Pricema"

in+Anal-sis+ge"S6r"!i in+Anal-sis+ge"Mroun

in+Anal-sis+ge"Oiel in+Anal-sis+ge"Oiel isc in+Anal-sis+ge"O 1-iel in+Anal-sis+ge"O l-iel in+Anal-sis+ge"Oiel ma"

in+(a"e'unc"ions+ge"@o"1?

in+(a"e'unc"ions+ge"(i11Neess in+(a"e'unc"ions+ge"Neess9nOear

in+Anal-sis+ge"Seriessum

EF$

1$+5 'ormulas e .alc es!aKol-ingles

!.
?E, ?5$ ?51 ?5# ?5? ?5E ?55 ?5F ?5% ?5G ?5, ?F$ ?F1 ?F# ?F? ?FE ?F5 ?FF ?F% ?FG ?F, ?%$ ?%1 ?%# ?%? ?%E ?%5

$spa;ol
TAN TANc TASA TASA+(=S. TASA+9NT TASA+NOM9NA) TASA+NOM9NA)QA(( T=N(=N.9A T=pTO T9PO T9PO+(=+=@@O@ T9@ T9@+NO+P=@ T@ANSPON=@ T@UN.A@ 5A 5A)O@ 5A@ 5A@A 5A@P 5A@PA 5=@(A(=@O 5' 5'+P)AN 5NA 5NA+NO+P=@ O TAN TANc @AT= com+sun+s"ar+s/ee"+a com+sun+s"ar+s/ee"+a NOM9NA) com+sun+s"ar+s/ee"+a T@=N( T=pT TOP= =@@O@TOP= 9@@ com+sun+s"ar+s/ee"+a T@ANSPOS= T@UN. P5 5A)U= 5A@ 5A@A 5A@P 5A@PA T@U= '5 com+sun+s"ar+s/ee"+a NP5 com+sun+s"ar+s/ee"+a AN(

)n,les

in+Anal-sis+ge"(isc in+Anal-sis+ge"9n"ra"e in+Anal-sis+ge"Nominal

in+Anal-sis+ge"pirr

in+Anal-sis+ge"'vsc/e ule in+Anal-sis+ge"pn!v

1I.=

3istar 2uentes en un arc"i,o de Calc

)a siguien"es macros es";n basa as en la 6ue mues"ra An re7 Pi"on-as en su e:celen"e libro e macros (ve la bibliogra1a)* en el original se mues"ran los nombres e las 1uen"es en un cua ro e mensa2e* con unos !e6ueKos cambios las mos"ramos en un arc/ivo nuevo e .alc+ )as os son mu- !areci as* es"a !rimera "e mues"ra el nombre e la 1uen"e 2un"o con los es"ilos o varian"es 6ue so!or"a+
,>'+g+nal d% !nd'%^ 0+&on?a] ,Es&as 8%'s+on%s Mau'+*+o Ba%:a "u. 5+s&a'Ju%n&%s123 @+( oHool]+& !s >.)%*& @+( o@%8+*% !s >.)%*& @+( oJon&@%s*'+7&o's !s >.)%*& @+( *o1 !s 5ong @+( (!'g23 @+( o<u%8o@o*u(%n&o !s >.)%*& @+( $a(7os203 !s <%^ *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ld @+( a"@203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu%

A!ren ien o OOo Basic

EF1

oHool]+& A $'%a&%Cno"%'8+*%2"*o(-sun-s&a'-a^&-Hool]+&"3 o@%8+*% A oHool]+&-*'%a&%"*'%%n$o(7a&+.l%@%8+*%206 03 oJon&@%s*'+7&o's A o@%8+*%-Jon&@%s*'+7&o's23 o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 "7'+8a&%4fa*&o'?/s*al*"6 "/d%faul&"6 06 (!'g23 3 U+&h o<u%8o@o*u(%n&o-g%&"h%%&s23-g%&B?#nd%x203 -g%&$%llB?0os+&+on20603-s%&"&'+ng2 "<Zk" 3 -g%&$%llB?0os+&+on21603-s%&"&'+ng2 "Ju%n&%" 3 Jo' *o1 A 5Bound2oJon&@%s*'+7&o's3 Ho CBound2oJon&@%s*'+7&o's3 -g%&$%llB?0os+&+on206*o1B13-s%&1alu%2 *o1B1 3 -g%&$%llB?0os+&+on216*o1B13-s%&"&'+ng2 oJon&@%s*'+7&o's2*o13-<a(% 9 " " 9 oJon&@%s*'+7&o's2*o13-"&?l%<a(% 3 <%x& $a(7os203-J+%ld A 0 $a(7os203-#s!s*%nd+ng A H'u% a"@203-<a(% A ""o'&J+%lds" a"@203-1alu% A $a(7os23 -g%&$%llRang%B?<a(%2 "B14B" 9 $"&'2*o1B13 3-so'&2 a"@23 3 -g%&$%llRang%B?<a(%2"!14B1"3-g%&$olu(ns23->7&+(alU+d&h A H'u% End U+&h End "u.

)a segun a es similar* e:ce!"o 6ue solo "e mues"ra el nombre e la 1uen"e* sin varian"es* es"o es !or 6ue la ma-ora e es"as varian"es las es"ablecemos !or c4 igo con o"ros m3"o os - !ro!ie a es (negri"a* cursiva* e"c)+
"u. @+( @+( @+( @+( @+( @+( @+( @+( @+( @+( 5+s&a'Ju%n&%s223 oHool]+& !s >.)%*& o@%8+*% !s >.)%*& oJon&@%s*'+7&o's !s >.)%*& *o1 !s 5ong (!'g23 o<u%8o@o*u(%n&o !s >.)%*& oJ@ !s >.)%*& o$u'so' !s >.)%*& $a(7os203 !s <%^ *o(-sun-s&a'-&a.l%-Ha.l%"o'&J+%ld a"@203 !s <%^ *o(-sun-s&a'-.%ans-0'o7%'&?1alu% oHool]+& A $'%a&%Cno"%'8+*%2"*o(-sun-s&a'-a^&-Hool]+&"3 o@%8+*% A oHool]+&-*'%a&%"*'%%n$o(7a&+.l%@%8+*%206 03 oJon&@%s*'+7&o's A o@%8+*%-Jon&@%s*'+7&o's23 o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 "7'+8a&%4fa*&o'?/s*al*"6 "/d%faul&"6 06 (!'g23 3 U+&h o<u%8o@o*u(%n&o-g%&"h%%&s23-g%&B?#nd%x203 -g%&$%llB?0os+&+on20603-s%&"&'+ng2 "Ju%n&%" 3 Jo' *o1 A 5Bound2oJon&@%s*'+7&o's3 Ho CBound2oJon&@%s*'+7&o's3 -g%&$%llB?0os+&+on206*o1B13-s%&"&'+ng2 oJon&@%s*'+7&o's2*o13-<a(% 3 <%x& ,$on un f+l&'o o.&%n%(os '%g+s&'os un+*os %n la *olu(na $ oJ@ A -g%&$%llRang%B?<a(%2 "!14!" 9 $"&'2*o1B13 3-*'%a&%J+l&%'@%s*'+7&o'2 H'u% 3 oJ@-"]+7@u7l+*a&%s A H'u% oJ@-$on&a+nsH%ad%' A H'u% oJ@-$o7?>u&7u&@a&a A H'u% oJ@->u&7u&0os+&+on A -g%&$%llB?0os+&+on22603-g%&$%ll!dd'%ss23 -g%&$%llRang%B?<a(%2 "!14!" 9 $"&'2*o1B13 3-f+l&%'2 oJ@ 3 ,El+(+na(os los da&os o'+g+nal%s6 *olu(na ! -g%&$olu(ns23-'%(o8%B?#nd%x20613 ,$o(o f+l&'a(os6 a8%'+gua(os *uan&as f+las Fu%da'on o$u'so' A -*'%a&%$u'so'B?Rang%2 -g%&$%llB?0os+&+on21603 3 o$u'so'-*olla7s%Ho$u''%n&R%g+on23

EF#

1$+F )is"ar 1uen"es en un arc/ivo e .alc

,>'d%na(os los no(.'%s d% las fu%n&%s $a(7os203-J+%ld A 0 $a(7os203-#s!s*%nd+ng A H'u% a"@203-<a(% A ""o'&J+%lds" a"@203-1alu% A $a(7os23 -g%&$%llRang%B?<a(%2 "B14B" 9 $"&'2o$u'so'-g%&Ro^s-g%&$oun&3 3-so'&2 a"@ 3 ,#ns%'&a(os la nu(%'a*+on d% las fu%n&%s -g%&$%llB?0os+&+on20603-s%&"&'+ng2 "<Zk" 3 -g%&$%llB?0os+&+on20613-s%&1alu%2 1 3 -g%&$%llRang%B?<a(%2"!24!" 9 $"&'2o$u'so'-g%&Ro^s-g%&$oun&3 3-f+ll!u&o2 06 1 3 ,!u&oa)us&a(os %l an*ho d% las *olu(nas -g%&$%llRang%B?<a(%2"!14B1"3-g%&$olu(ns->7&+(alU+d&h A H'u% End U+&h End "u.

1I.A

3istar 2ormatos en un arc"i,o de Calc

Solo "ienes 6ue !asarle la re1erencia al ocumen"o el cual "e in"erese ver sus !ro!ie a es* si le !asas un ocumen"o nuevo* siem!re "e evolver; los mismos 1orma"os* si le !asas alguno e "us ocumen"o* incluir; "o os "us 1orma"o !ersonaliza os+ =s"a macro !ue e "ener os !e6ueKas me2oras 6ue "e 6ue an e "area* !rimero* !ue es iscriminar los ocumen"os !ara 6ue solo so!or"e los 6ue "engan el m3"o o ge"Number'orma"s - segun o* en la columna e e2em!los* !o r;s ver en la columna = un e2em!lo e ca a 1orma"o* e:ce!"o los e la ca"egora (e1ini as !or el usuario* es"o es normal* !ues el nuevo ocumen"o no "iene es"os 1orma"o* !ero !o ras im!lemen"ar la co!ia e es"os 1orma"os !ara 6ue se vea el resul"a o+
,Basada %n %l o'+g+nal d% !nd'%^ 0+&on?a] ,Es&a 8%'s+Kn Mau'+*+o Ba%:a "u. Hodos/5os/Jo'(a&os2@o*u(%n&o !s >.)%*&3 @+( oJo'(a&os !s >.)%*& @+( ($la8%s6 (!'g23 @+( oJo'(a&o !s >.)%*& @+( *o1 !s #n&%g%' @+( a5o*al !s <%^ *o(-sun-s&a'-lang-5o*al% @+( o<u%8o@o*u(%n&o !s >.)%*& @+( sH+7o !s "&'+ng ,0a'a %s*'+.+' los fo'(a&os %n un nu%8o do*u(%n&o d% $al* o<u%8o@o*u(%n&o A "&a'@%s]&o7-load$o(7on%n&J'o(CR52 "7'+8a&%4fa*&o'?/s*al*"6 "/d%faul&"6 06 (!'g23 3 U+&h o<u%8o@o*u(%n&o-g%&"h%%&s23-g%&B?#nd%x203 ,>.&%n%(os los fo'(a&os d%l do*u(%n&o 7asado oJo'(a&os A @o*u(%n&o-g%&<u(.%'Jo'(a&s23 ,>.&%n%(os &odas las *la8%s d% los fo'(a&os ($la8%s A oJo'(a&os-Fu%'?I%?s2 06a5o*al6Jals% 3 Jo' *o1 A 5Bound2 ($la8%s 3 Ho CBound2 ($la8%s 3 ,>.&%n%(os *ada fo'(a&o oJo'(a&o A oJo'(a&os-g%&B?I%?2 ($la8%s2*o13 3 ,<u(%'o s%*u%n*+al -g%&$%llB?0os+&+on2 06*o1 3-s%&1alu%2 *o1B1 3 ,@%f+n+(os la *a&%go'+a d%l fo'(a&o "%l%*& $as% oJo'(a&o-H?7% $as% 2 4 sH+7o A "J%*ha" $as% 4 4 sH+7o A "H+%(7o" $as% 6 4 sH+7o A "J%*ha H+%(7o" $as% 8 4 sH+7o A "Mon%da"

A!ren ien o OOo Basic

EF?
$as% 16 4 sH+7o A "<u(%'o" $as% 32 4 sH+7o A "$+%n&+f+*o" $as% 64 4 sH+7o A "J'a**+on" $as% 128 4 sH+7o A "0o'*%n&a)%" $as% 256 4 sH+7o A "H%x&o" $as% 1024 4 sH+7o A "5og+*a" $as% 2048 4 sH+7o A "#nd%f+n+da" $as% Els% 4 sH+7o A "@%f+n+do 7o' %l usua'+o" End "%l%*& -g%&$%llB?0os+&+on2 16*o1 3-s%&"&'+ng2 sH+7o 3 ,Es*'+.+(os la *ad%na d%l fo'(a&o -g%&$%llB?0os+&+on2 26*o1 3-s%&"&'+ng2 oJo'(a&o-Jo'(a&"&'+ng 3 ,? su *la8% *o''%s7ond+%n&% -g%&$%llB?0os+&+on2 36*o1 3-s%&1alu%2 ($la8%s2*o13 3 ,Es*'+.+(os un nu(%'o al%a&o'+o %n&'% 100 ? 1000 -g%&$%llB?0os+&+on2 46*o1 3-s%&1alu%2 *o1B100B2Rnd 10003 3 ,5% %s&a.l%*%(os %l fo'(a&o *o''%s7ond+%n&% -g%&$%llB?0os+&+on2 46*o1 3-<u(.%'Jo'(a& A ($la8%s2*o13 ,!)us&a(os %l an*ho d% las *olu(nas -g%&$%llRang%B?<a(%2 "!14E1" 3-g%&$olu(ns->7&+(alU+d&h A H'u%

<%x& End U+&h End "u.

EFE

11 Bibliogra1a

11 &iblio*ra2Ca
Una e las mo"ivaciones e es"e libro* es la 1al"a e ocumen"aci4n es es!aKol* son realmen"e escasos los si"ios 6ue "ra"an la !rogramaci4n con OOo Basic en nues"ro i ioma+ =n es!aKol< Ariel .ons"ela es un e:celen"e com!aKero* siem!re is!ues"o a a-u ar en las lis"as e correo* en su !;gina encon"raras in"eresan"es e2em!los e c4 igo en OOo Basic* es"e libro le ebe muc/o a sus e2em!los< 777+arielcons"enla/aile+com+ar0ooo NOTA< al a e /o- $#-Se!-$,* el si"io es"a esac"iva o* es!eremos !ron"o "enerlo e vuel"a+ )a &ua e !rogramaci4n e S"arO11ice G !ara BAS9.* es esencial !ara in"ro ucir"e en la !rogramaci4n con OOo Basic< /""!<00 ocs+sun+com0a!!0 ocs0 oc0G1,-1?#%Jlles =n ingles< =n los 1oros e a-u a e O!enO11ice+org* se !ublica muc/o c4 igo in"eresan"e siem!re /a- gen"e is!ues"a a a-u ar"e< /""!<00user+services+o!eno11ice+org0en01orum0vie71orum+!/!J1l#$ Un si"io con muc/as macros e "o os los niveles - sabores< 777+ooomacros+org =l libro e An re7 Pi"on-as si bien no es !ara nova"os -a es "o o un cl;sico en la re * cui a o* no es un libro 6ue !ue a "omarse como guia !ara a!ren er es e cero* es solo un con2un"o bas"an"e gran e e e2em!los* eso si* mu- buenos* !ero ser;n incom!rensibles si no "ienes las bases elemen"ales+ 777+!i"on-as+org0oo+!/! S"arO11ice G Programming &ui e 1or BAS9. /""!<00 ocs+sun+com0a!!0 ocs0 oc0G1,-$E?,

A!ren ien o OOo Basic

EF5

12 Qndice (l2ab$tico

B
biblio"ecas+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ G

M
m4 ulos++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ G

9(=+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 12

S"an ar +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1I

También podría gustarte