Professional Documents
Culture Documents
Derechos de autor Este documento tiene derechos de autor 20112012 por sus colaboradores, tal como aparecen en la lista en la seccin titulada Colaboradores. Puede distribuirse o modificarse bajo los t rminos de la GNU General Public License, !ersin " o posterior, o la Creative Commons Attribution License, !ersin ".0 o posterior. #odas las marcas re$istradas %ue aparecen dentro de esta $ua pertenecen a sus due&os le$timos.
Colaboradores
'uan (. )an* 'or$e +. Gu*m,n )oriano
Comentarios y sugerencias
Por fa!or, dirija cual%uier clase de comentario o su$erencia acerca de este documento alocalizacion@oooes org
Agradecimientos
Este captulo est, basado en el captulo 1" de la Gua de comien*o de .pen.ffice.or$. /os colaboradores de este captulos son+ndre0 Piton1a2 'ean 3ollis 4eber 'uan (. )an*
Equivalente en Mac
/ibre.ffice Preferencias (ontrol;clic z !Comando" )hift;z;?@ z;#
Efecto
+cceso a las opciones de confi$uracin +bre men8 conte:tual >tili*ado con otras teclas +bre el na!e$ador +bre la !entana de estilos 1 formato
Contenido
(erec)os de autor Nota para usuarios de Mac +u primera macro Crear una macro simple -.ecutar la macro 0er 1 editar la macro Los comentarios comienzan por 3-M (e&inir subrutinas con +U5 (e&inir variables usando (6M Poniendo toda la macro .unta Crear una macro Un e.emplo complicado -.ecutar la macro r'pidamente A veces la grabadora de macros &alla -l dispatc) &rame9or: C$mo usa la grabadora de macros el dispatc) &rame9or: %tras opciones %rganizaci$n de macros ;($nde se almacenan las macros< 6mportar macros (escargar macros para importar C$mo e.ecutar una macro 5arra de )erramientas -lemento de men> Ata.os de teclado -vento -?tensiones -scribir macros sin la grabadora -ncontrar m's in&ormaci$n Material incluido 3ecursos online Material impreso 1 e5oo:s * * , , / 2 4 4 4 7 7 8 1* 1* 1* 1* 13 13 12 12 17 17 *= *= *= *1 ** *3 *3 *, *, *,
Su primera macro
>na macro1 es una secuencia de comandos o pulsaciones de tecla, $uardados para un uso posterior. >n ejemplo de macro simple es a%uella %ue AescribeB su direccin. El len$uaje de macros de /ibre.ffice es mu1 fle:ible, permitiendo la automati*acin tanto de tareas simples como de tareas complejas. /as macros son especialmente 8tiles para repetir la misma tarea una 1 otra !e*. /as macros de /ibre.ffice se escriben normalmente en un len$uaje llamado )tar7asic, o abre!iando 7asic. +un%ue puede aprender 7asic 1 escribir macros, la cur!a de aprendi*aje para crear macros desde cero es mu1 empinada. El m todo usual de aprendi*aje para un principiante es usar la $rabadora de macros incluida, la cual $raba sus pulsaciones 1 las $uarda para un uso posterior. /a ma1ora de las tareas en /ibre.ffice se lle!an a cabo Aen!iando comandosB los cuales son interceptados 1 usados. /a $rabadora de macros trabaja $rabando los comandos %ue se en!an <!ea AEl dispatch frame0or2B en la p,$ina 12=
1 9acro es una apcope de macroinstruccin, por eso se usa en femenino , Primeros pasos con macros
Contenedores de bibliotecas
Macros
Bibliotecas Mdulos
@igura 1A (ialogo de organizaci$n de macros @= El nombre por defecto del nue!o mdulo es 9odule1E elija un nombre m,s adecuado. +un%ue a8n no es mu1 descripti!o, 1o he usado Grabado. Escriba un nombre descripti!o 1 pulse Aceptar para crear el mdulo. )e muestra el di,lo$o 9acros 7asic de /ibre.ffice de nue!o mostrando el mdulo nue!o.
@igura *A (ar al m$dulo un nombre descriptivo F= Gesalte el mdulo reci n creado. En la es%uina superior i*%uierda escriba el nombre de la macro, como AEscribir9iHombreB 1 ha$a clic en Guardar para $uardar la macro. )i ha se$uido todos los pasos, la biblioteca )tandard ahora contendr, un mdulo llamado Grabado %ue contiene la macro Escribir9iHombre, como se muestra en la ?i$ura ". (uando /ibre.ffice crea un mdulo nue!o, crea autom,ticamente la macro llamada 9ain, como puede !er en la ?i$ura ".
!"ecutar la macro
)eleccione Herramientas Macros !"ecutar macro para abrir el di,lo$o )elector de macro <!er ?i$ura "=. )elecciona la macro reci n creada 1 ha$a clic en !"ecutar.
+u primera macro
@igura 3A +eleccione su macro 1 )aga clic en -.ecutar 3a1 otros m todos de ejecutar una macro. Por ejemplo, use Herramientas Macros Organi ar macros #ibreO$$ice %asic para abrir el or$ani*ador de macros, el cual tiene tambi n un botn !"ecutar. El autor, ,!ido escritor de macros, prefiere el or$ani*ador de macros por%ue el di,lo$o $eneralmente se abre m,s r,pido, aun%ue la seleccin de la macro puede ser li$eramente m,s lenta.
BASIC
*****
sub EscribirMiNombre rem ------------------------------------------------------------rem define variables dim document as object dim dispatcher as object rem ------------------------------------------------------------rem et access to the document document ! "hisComponent#CurrentController#$rame dispatcher ! create%noService&'com#sun#star#frame#(ispatch)elper'* rem ------------------------------------------------------------dim ar s+&,* as ne- com#sun#star#beans#.ropert/0alue
2 Primeros pasos con macros
ar s+&,*#Name ! '"e1t' ar s+&,*#0alue ! 'Andre- .iton/a2' dispatcher#e1ecute(ispatch&document3 '#uno4Insert"e1t'3 ''3 ,3 ar s+&** end sub
/a macro del /istado 1 no es tan complicada como parece al principio. +prender unas pocas cosas a1uda si$nificati!amente a entender las macros $eneradas. /a discusin comien*a con caractersticas en la parte superior del listado 1 su descripcin. )i %uiere e!itar detalles, entonces simplemente cambie el te:to A+ndre0 Piton1a2B por el %ue desee insertar en la posicin actual del cursor.
Sugerencia
Sugerencia
/ibre.ffice crea una subrutina !aca llamada 9ain cuando crea un mdulo.
3a1 temas a!an*ados %ue !an m,s all, del alcance de este documento, pero conocerlos podra ser interesante-
)e puede escribir una macro de modo %ue se puedan pasar !alores a la subrutina. /os
!alores se llaman ar$umentos. /as macros $rabadas no aceptan ar$umentos. .tra clase de subrutina se llama funcin. >na funcin es una subrutina %ue de!uel!e un !alor. Para definir una funcin se utili*a la palabra cla!e ?>H(#C.H en lu$ar de )>7. /as macros $eneradas son siempre del tipo )>7.
una matri* se numeran $eneralmente empe*ando por cero. El n8mero entre par ntesis indica la posicin m,s alta utili*able para almacenamiento. En este ejemplo solamente ha1 un !alor 1 se numera cero.
sub EscribirMiNombre
Declara dos !ariables-
document ! "hisComponent#CurrentController#$rame
/a ma1ora de las tareas en /ibre.ffice se lle!an a cabo en!iando <dispatchin$= un comando. /ibre.ffice !ersin 2.0 introduce el ser!icio dispatch helper el cual hace la ma1ora del trabajo para usar dispatches en macros. El m todo CreateUno+ervice acepta el nombre de un ser!icio e intenta crear una instancia de ese ser!icio. +l completarlo, la !ariable dispatcher contiene una referencia a un Dispatch3elper.
dispatcher ! create%noService&'com#sun#star#frame#(ispatch)elper'*
Declara una matri* de propiedades. (ada propiedad tiene un nombre 1 un !alor. En otras palabras, es un par nombreJ!alor. /a matri* creada tiene una propiedad de ndice cero.
end sub
Quiero %ue la primera columna conten$a el !alor num rico, la se$unda columna el nombre 1 la tercera la descripcin. /o %ue se desea es f,cil lle!arlo a cabo en todas las columnas e:cepto en D.H#NH.4 1 H.G9+/, las cuales no contienen un !alor num rico Ipero 1o se %ue los !alores son 0 1 100, por lo %ue los introducir manualmente. /os datos se pueden limpiar de m8ltiples manerasItodas ellas f,ciles. El primer ejemplo utili*a escritura de teclado %ue asume %ue el cursor est, al principio de la lnea con el te:to #3CH . 1= 2= "= D= >tilice Herramientas Macros Grabar macro para empe*ar a $rabar. Presione CtrlE@lec)a derec)a para mo!er el cursor al comien*o de AspecifiesB. Presione 3etroceso dos !eces para eliminar el tabulador 1 el espacio. Presione #abulador para a&adir el tabulador sin el espacio detr,s del nombre de la constante @= Presione +uprimir para eliminar la s min8scula 1 presione ) para a&adir una ) ma18scula.
Crear una macro 8
F= Presione CtrlE@lec)a derec)a dos !eces para mo!er el cursor al inicio del n8mero. 6= Presione CtrlEMa1>sculasE@lec)a derec)a para seleccionar el n8mero 1 mo!er el cursor delante del si$no O. R= Presione CtrlEC para copiar la seleccin en el portapapeles. P= Presione @in para mo!er el cursor al final de la lnea. 10= Presionar 3etroceso dos !eces para eliminar los dos espacios del final. 11= Presione 6nicio para mo!er el cursor al principio de la lnea. 12= Presione CtrlE0 para pe$ar el n8mero seleccionado al principio de la lnea. 1"= Pe$ar el !alor tambi n pe$a un espacio e:tra, por eso presione 3etroceso para remo!er el espacio e:tra. 1D= Presione #abulador para insertar un tabulador entre el n8mero 1 el nombre. 1@= Presione 6nicio para mo!erse al principio de la lnea. 1F= Presione @lec)a aba.o para mo!erse a la si$uiente lnea. 16= ?inalice la $rabacin 1 $uarde la macro. (uesta mucho m,s tiempo leer 1 escribir los pasos %ue $rabar la macro. #rabaje lentamente 1 piense en los pasos mientras los hace. (on pr,ctica lo har, instinti!amente. /a macro $enerada se ha modificado para contener el n8mero de paso en los comentarios para enla*ar el cdi$o con los pasos de arriba. Listado *A Copiar los valores numFricos al principio de la columna
sub Cop/Num"oCol+ rem ------------------------------------------------------------rem define las variables dim document as object dim dispatcher as object rem ------------------------------------------------------------rem obtiene acceso al documento document ! "hisComponent#CurrentController#$rame dispatcher ! create%noService&'com#sun#star#frame#(ispatch)elper'* rem &5* .resionar Ctrl+Flecha derecha para mover el cursor al comien6o de rem 7specifies8# dispatcher#e1ecute(ispatch&document3 '#uno49o"oNe1t:ord'3 ''3 ,3 Arra/&** rem &;* .resionar Retroceso dos veces para eliminar el tabulador / el espacio# dispatcher#e1ecute(ispatch&document3 '#uno4S-Bac2space'3 ''3 ,3 Arra/&** rem ------------------------------------------------------------dispatcher#e1ecute(ispatch&document3 '#uno4S-Bac2space'3 ''3 ,3 Arra/&** rem &<* .resionar Tabulador para a=adir el tabulador sin el espacio detr>s del rem nombre de la constante dim ar s<&,* as ne- com#sun#star#beans#.ropert/0alue ar s<&,*#Name ! '"e1t' ar s<&,*#0alue ! C)R?&@* dispatcher#e1ecute(ispatch&document3 '#uno4Insert"e1t'3 ''3 ,3 ar s<&** rem &A* .resionar Suprimir para eliminar la s minBscula###
1=
dispatcher#e1ecute(ispatch&document3 '#uno4(elete'3 ''3 ,3 Arra/&** rem &A* ### / .resionar S para a=adir una S ma/Bscula# dim ar sC&,* as ne- com#sun#star#beans#.ropert/0alue ar sC&,*#Name ! '"e1t' ar sC&,*#0alue ! 'S' dispatcher#e1ecute(ispatch&document3 '#uno4Insert"e1t'3 ''3 ,3 ar sC&** rem &C* .resionar Ctrl+Flecha derecha dos veces para mover el cursor al inicio rem del nBmero# dispatcher#e1ecute(ispatch&document3 '#uno49o"oNe1t:ord'3 ''3 ,3 Arra/&** rem ------------------------------------------------------------dispatcher#e1ecute(ispatch&document3 '#uno49o"oNe1t:ord'3 ''3 ,3 Arra/&** rem &D* .resionar Ctrl+Maysculas+Flecha derecha para seleccionar el nBmero# dispatcher#e1ecute(ispatch&document3 '#uno4:ordRi htSel'3 ''3 ,3 Arra/&** rem &E* .resionar Ctrl+C para copiar la selecciFn en el portapapeles# dispatcher#e1ecute(ispatch&document3 '#uno4Cop/'3 ''3 ,3 Arra/&** rem &@* .resionar Fin para mover el cursor al final de la lGnea# dispatcher#e1ecute(ispatch&document3 '#uno49o"oEndHfIine'3 ''3 ,3 Arra/&** rem &+,* .resionar Retroceso para eliminar los dos espacios del final# dispatcher#e1ecute(ispatch&document3 '#uno4S-Bac2space'3 ''3 ,3 Arra/&** rem ------------------------------------------------------------dispatcher#e1ecute(ispatch&document3 '#uno4S-Bac2space'3 ''3 ,3 Arra/&** rem &++* .resionar Inicio para mover el cursor al principio de la lGnea# dispatcher#e1ecute(ispatch&document3 '#uno49o"oStartHfIine'3 ''3 ,3 Arra/&** rem &+5* .resionar Ctrl+V para pe ar el nBmero seleccionado al principio de la lGnea# dispatcher#e1ecute(ispatch&document3 '#uno4.aste'3 ''3 ,3 Arra/&** rem &+;* .resionar Retroceso para remover el espacio e1tra# dispatcher#e1ecute(ispatch&document3 '#uno4S-Bac2space'3 ''3 ,3 Arra/&** rem &+<* .resionar Tabulador para insertar un tabulador entre nBmero / nombre# dim ar s+D&,* as ne- com#sun#star#beans#.ropert/0alue ar s+D&,*#Name ! '"e1t' ar s+D&,*#0alue ! C)R?&@* dispatcher#e1ecute(ispatch&document3 '#uno4Insert"e1t'3 ''3 ,3 ar s+D&** rem &+A* .resionar Inicio para moverse al principio de la lGnea# dispatcher#e1ecute(ispatch&document3 '#uno49o"oStartHfIine'3 ''3 ,3 Arra/&** rem &+C* .resionar Flecha abajo para moverse a la si uiente lGnea# dim ar s+@&+* as ne- com#sun#star#beans#.ropert/0alue ar s+@&,*#Name ! 'Count' ar s+@&,*#0alue ! +
Crear una macro 11
ar s+@&+*#Name ! 'Select' ar s+@&+*#0alue ! false dispatcher#e1ecute(ispatch&document3 '#uno49o(o-n'3 ''3 ,3 ar s+@&** end sub
)e usan mo!imientos del cursor para todas las operaciones <en oposicin a la b8s%ueda=. )i la ejecutamos en la lnea D.H#NH.4 se mue!e la palabra 9eig)t al principio de la lnea 1 el primer A#heB se cambia a A)heB. Esto no es perfecto, pero no debera haber ejecutado la macro en las lneas %ue no tienen el formato adecuadoE necesitara hacerlo manualmente.
!l dispatch $rame,orEl propsito del dispatch frame0or2 es pro!eer acceso uniforme a los componentes <documentos= para los comandos %ue normalmente corresponden a elementos de men8. Puedo usar Archivo Guardar en el men8, el atajo de teclado CtrlEG o hacer clic en el icono Guardar de la barra de herramientas. #odos estos comandos son traducidos en el mismo Adispatch commandB %ue se en!a al documento actual. El dispatch frame0or2 se puede usar tambi n para en!iar AcomandosB de retorno a la C> <interfa* de usuario=. Por ejemplo, despu s de $uardar el documento el comando Guardar arc)ivo se deshabilita. #an pronto como se modifi%ue el documento el comando Guardar arc)ivo se habilita. )i !emos un comando dispatch, es un te:to como .uno-Cnsert.bject o .uno-Go#o)tart.f/ine. El comando se en!a a la macro del documento 1 el macro pasa el comando hasta %ue encuentra un objeto %ue puede manejar el comando.
1*
Cmo usa la grabadora de macros el dispatch $rame,or/a $rabadora de macros $raba los dispatches $enerados. /a $rabadora es relati!amente sencilla de implementar 1 el mismo comando %ue se en!a se $raba para uso posterior. El problema es %ue no todos los comandos en!iados est,n completos. Por ejemplo, insertar un objeto $enera el si$uiente cdi$odispatcher#e1ecute(ispatch&document3 '#uno4InsertHbject'3 ''3 ,3 Arra/&** Ho es posible especificar %ue clase de objeto !a a crear o insertar. )i un objeto se inserta desde un archi!o, usted no puede especificar %u archi!o insertar. Ko $rab una macro 1 us Herramientas Opciones para abrir 1 modificar elementos de confi$uracin. /a macro $enerada no $rab nin$8n cambio, de hecho, el cdi$o $enerado est, comentado por lo %ue ni si%uiera se ejecuta.
Otras opciones
(uando la $rabadora de macros no es capa* de resol!er un problema especfico, la solucin normal es escribir cdi$o utili*ando los objetos de /ibre.ffice. Desafortunadamente la cur!a de aprendi*aje de los objetos de /ibre.ffice es mu1 empinada. Generalmente es mejor empe*ar con ejemplos simples e ir di!ersificando lentamente a medida %ue !a1a aprendiendo. )i $raba macros de (alc 1 la $rabadora puede $enerar correctamente una macro, ha1 un complemento creado por Paolo 9anto!ani, el cual con!ierte las macros de (alc cuando se $raban. El cdi$o final manipula los objetos de /ibre.ffice en !e* de $enerar dispatches. Esto puede ser mu1 8til para aprender el modelo de objetos. Puede descar$ar la $rabadora de macros del sitio 0eb de Paolo directamente o del sitio 0eb de macros de /ibre.ffice. Debera comprobar ambos sitios para !er cual tiene la 8ltima !ersin. )ttpAHH999 paoloImantovani orgHdo9nloadsH(ispatc)#oApi3ecorderH )ttpAHH999 libreo&&icemacros orgHuser p)p
%rganizaci$n de macros
13
@igura ,A JerarGua de bibliotecas de macros >n inform,tico usara la ?i$ura @ para describir precisamente la situacin. El te:to A1..SB si$nifica uno o m,s 1 A0..SB si$nifica cero o m,s. El rombo ne$ro si$nifica est, compuesto o contiene.
>n contenedor de bibliotecas contiene una o m,s bibliotecas 1 cada biblioteca est,
contenida en un contenedor. >na biblioteca contiene cero o m,s mdulos 1 cada mdulo est, contenido en una biblioteca. >n mdulo contiene cero o m,s macros 1 cada macro est, contenida en un mdulo.
Biblioteca
1 1..* 1 0..*
Contenedor de bibliotecas
Mdulo
1 0..*
Macro
@igura /A JerarGua de bibliotecas de macros >tilice Herramientas Macros Organi ar macros #ibreO$$ice %asic para abrir el di,lo$o 9acros 7asic de /ibre.ffice <!er ?i$ura F=. #odas los contenedores de bibliotecas disponibles se muestran en la lista (esde la macro. (ada documento es un contenedor de bibliotecas, capa* de contener m8ltiples bibliotecas. /a aplicacin en s misma act8a como dos contenedores de bibliotecas, un contenedor para macros distribuidas con /ibre.ffice llamado 9acros de /ibre.ffice 1 un contenedor para macros personales llamado 9is macros. (omo se puede !er en la ?i$ura F, solamente ha1 abiertos dos documentos en este momento.
1,
@igura 2A Los contenedores de bibliotecas se muestran a la izGuierda /as macros de /ibre.ffice se almacenan con el cdi$o de tiempo de ejecucin de la aplicacin, el cu,l no se puede editar a menos %ue sea administrador. Esto es as por%ue estas macros no deberan modificarse 1 usted no debera almacenar sus propias macros en el contenedor de /ibre.ffice. + menos %ue sus macros se apli%uen a un 8nico documento 1 solo a ese documento, sus macros deberan se$uramente almacenarse en el contenedor 9is macros. El contenedor mis macros se almacena en su ,rea de usuario o directorio personal. )i una macro est, contenida en un documento, la macro $rabada intentar, ejecutarse en ese documento, principalmente por%ue la macro usa A#his(omponentB para sus acciones. (ada contenedor de bibliotecas contiene una biblioteca llamada +tandard. Es mejor %ue cree sus propias bibliotecas con nombres si$nificati!os %ue usar la biblioteca )tandard. Ho solamente los nombres si$nificati!os son m,s f,ciles de manejar, sino %ue se pueden importar en otros contenedores de bibliotecas mientras %ue en la biblioteca )tandard no se puede.
.recaucin
/ibre.ffice le permite importar bibliotecas en un contenedor de bibliotecas, pero no le permite sobrescribir la biblioteca llamada )tandard. Por lo tanto, si almacena sus macros en la biblioteca )tandard no la podr, importar desde otro contenedor de bibliotecas.
Del mismo modo %ue es sensato dar nombres si$nificati!os a sus bibliotecas, es prudente utili*ar nombres si$nificati!os para los mdulos. Por defecto /ibre.ffice usa nombres como 9odule1. )i ntase libre de utili*ar sus propios nombres si$nificati!os. (uando crea sus macros debe decidir dnde almacenarlas. +lmacenar una macro en un documento es 8til si el documento !a a ser compartido 1 %uiere %ue la macro sea incluida con el documento. /as macros almacenadas se encuentran en el contenedor de bibliotecas llamado 9is macros, sin embar$o, est,n disponibles $lobalmente para todos los documentos. /as macros no est,n disponibles hasta %ue se car$a la biblioteca %ue las contiene. /a biblioteca )tandard 1 la biblioteca de plantilla, sin embar$o, se car$an autom,ticamente. >na biblioteca car$ada se muestra de modo diferente a como la hace una %ue no est, car$ada. Para car$ar una biblioteca 1 los mdulos %ue contiene ha$a doble clic en la biblioteca.
%rganizaci$n de macros
1/
+mportar macros
El di,lo$o .r$ani*ador de macros de /ibre.ffice proporciona funcionalidad para crear, eliminar 1 renombrar bibliotecas, mdulos 1 di,lo$os. )eleccione el contenedor de bibliotecas %ue !a a usar 1 ha$a clic en el botn +mportar para importar bibliotecas de macros <!ea ?i$ura R=
Sugerencia
Ho puede importar la biblioteca llamada )tandard. En /inu:, los archi!os especficos de /ibre.ffice se almacenan en un directorio cu1o nombre comien*a por punto. Directorios 1 archi!os cu1o nombre comien*a por punto no se muestran en un di,lo$o normal de seleccin. Para abrir el directorio 1o na!e$o hasta el directorio padre, escribo el nombre .libreoffice 1 ha$o clic en Abrir. Esto abre el directorio %ue inicialmente no se mostraba.
Sugerencia
12
@igura 7A +eleccionar una biblioteca de macros para importar Ha!e$ar hasta el directorio %ue contiene la biblioteca a importar. Generalmente ha1 dos archi!os para esco$er, dialo$.:lb 1 script.:lb. Ho importa cual de estos archi!os seleccione, se importar,n los dos. )eleccione un archi!o 1 pulse Abrir para continuar <!ea ?i$ura P=
@igura 8A +eleccione las opciones de importar )i la biblioteca 1a e:iste, no se reempla*ar, a menos %ue est marcado 2eempla ar bibliotecas e)istentes. )i est, marcado +nsertar como re$erencia la biblioteca se referencia en su locali*acin actual pero no puede modificarla. En cambio, si +nsertar como re$erencia no est, marcado la biblioteca se copia al directorio de macros del usuario. /as macros se pueden almacenar en bibliotecas dentro de documentos de /ibre.ffice. )eleccione un documento en lu$ar de un directorio del disco <como se muestra en la ?i$ura R= para importar bibliotecas contenidas en un documento.
%rganizaci$n de macros
14
Descripci$n
E:celente coleccin de pa%uetes de macros. 9aterial de referencia relacionado con macros. 9aterial de referencia relacionado con macros de bases de datos. 9ontones de enlaces a todo. 9uchos ejemplos 1 a1uda. .tro foro con muchos ejemplos 1 a1uda.
17
@igura 1=A Utilice el di'logo +elector de macros para e.ecutar las macros +un%ue puede utili*ar Herramientas Macros !"ecutar macros para ejecutar una macro, esto no es eficiente para ejecutar macros frecuentemente. >na t cnica m,s com8n es asi$nar una macro a un botn de una barra de herramientas, a un elemento de men8, a un atajo de teclado o a un botn insertado en un documento. 9ientras selecciona un m todo es bueno pre$untarse cuestiones como-
LDebe estar la macro disponible para un solo documento o $lobalmente para todos los
documentosM LEst, la macro relacionada con un un tipo especfico de documento, como un documento de (alcM L(on %u frecuencia se usar, la macroM
/as respuestas determinaran dnde almacenar la macro 1 cmo estar, disponible. Por ejemplo, se$uramente no a&adir, una macro raramente usada a una barra de herramientas. Para a1udarle a determinar sus elecciones !ea la #abla 2 #abla * MFtodos para iniciar una macro %ipo
7arra de herramientas 9en8 +tajo de teclado E!ento
Libre&ffice
Ho Ho ) )
%ipo de documento
) ) ) Ho
Documento
) ) Ho )
Para a&adir un elemento de men8, atajo de teclado o icono de una barra de herramientas %ue llame a una macro utilice el di,lo$o Personali*ar <!ea ?i$ura 12=. +bra este di,lo$o de cual%uiera de estas formas-
18
Sugerencia
>na cobertura completa del di,lo$o Personali*ar !a m,s all, del alcance de este documento. 3a$a clic en el botn Ayuda para acceder a las p,$inas de a1uda incluidas en /ibre.ffice.
El men8 personali*ar contiene pesta&as para confi$urar men8s, atajos de teclado, barras de herramientas 1 e!entos.
%arra de herramientas
)e pueden a&adir macros a las barras de herramientas. Para m,s informacin de cmo modificar barras de herramientas !ea el captulo 1D <Personali*ar /ibre.ffice=.
*=
!lemento de men3
>tilice Herramientas .ersonali ar para abrir el di,lo$o Personali*ar 1 seleccione la pesta&a 9en8s. Puede modificar un men8 e:istente o crear nue!os men8s %ue llamen a macros. Para saber m,s acerca de modificar men8s !ea el captulo 1D.
Ata"os de teclado
>tilice Herramientas .ersonali ar para abrir el di,lo$o personali*ar 1 seleccione la pesta&a #eclado. (mo asi$nar atajos de teclado se discute en el captulo 1D.
!vento
En /ibre.ffice, cuando sucede al$o decimos %ue ha ocurrido un e!ento. Por ejemplo, se abre un documento, se presiona una tecla o se mue!e el ratn. /ibre.ffice permite %ue los e!entos llamen a macrosE se dice entonces %ue la macro es un manipulador de e!ento. >na cobertura completa de los manipuladores de e!entos est, mu1 por encima del alcance de este documento, pero un poco de conocimiento puede ser 8til.
)ea cuidadoso cuando confi$ure un manipulador de e!entos. Por ejemplo, supon$amos %ue escribe un e!ento %ue se llama cada !e* %ue se presiona una tecla, pero comente un error 1 el e!ento no se manipula adecuadamente. >n resultado posible es %ue su e!ento consuma todas las pulsaciones del teclado obli$,ndole a cerrar /ibre.ffice a la fuer*a.
.recaucin
>tilice Herramientas .ersonali ar para abrir el di,lo$o Personali*ar 1 seleccione la pesta&a E!entos <!ea ?i$ura 11=. /os e!entos en el di,lo$o Personali*ar est,n relacionados con la aplicacin completa o con un documento especfico. >tilice la lista desple$able AGuardar enB para ele$ir /ibre.ffice o un documento especfico.
*1
@igura 1*A Asignar macro a una aplicaci$n a nivel de evento >n uso com8n es asi$nar el e!ento +brir documento para llamar a una macro especfica. /a macro entonces reali*a ciertas tareas de confi$uracin del documento. )eleccione el e!ento deseado 1 ha$a clic en el botn Macro para abrir el di,lo$o )elector de macro <!ea ?i$ura 1"= )eleccione la macro deseada 1 ha$a clic en Aceptar para asi$nar la macro al e!ento. /a pesta&a E!entos muestra %ue el e!ento se ha asi$nado a una macro <!er ?i$ura 1D=. (uando el documento se abre se ejecuta la macro Escribir3ola. 9uchos objetos en un documento se pueden confi$urar para %ue llamen a macros cuando ocurra un e!ento. El uso m,s com8n es a&adir un control, como un botn, en un documento. Cncluso hacer doble clic en un $r,fico abre un di,lo$o con la pesta&a 9acros para %ue pueda asi$nar una macro a un e!ento.
**
!)tensiones
>na e:tensin es un pa%uete %ue se puede instalar en /ibre.ffice para a&adir una nue!a funcionalidad. /as e:tensiones se pueden escribir en casi cual%uier len$uaje de pro$ramacin 1 puede ser simple o sofisticada. /as e:tensiones se pueden a$rupar en los tipos-
(omplementos de (alc, %ue pro!een nue!as funcionalidades para (alc, incluso nue!as
funciones %ue act8an como las funciones inte$radas normales. Hue!os componentes 1 funcionalidad, las cuales normalmente inclu1en al$8n ni!el de inte$racin en la C>, como nue!os men8s o barras de herramientas. Pilotos de datos %ue se usan directamente en (alc
(omplementos de (hart con nue!os tipos de $r,ficos. (omponentes lin$Tsticos como re!isores de orto$rafa. Plantillas de documento e im,$enes.
+un%ue las e:tensiones indi!iduales se pueden encontrar en diferentes lu$ares ha1 un repositorio de e:tensiones en )ttpAHHe?tensions libreo&&ice orgHe?tensionIcenter. Para saber m,s acerca de cmo obtener e instalar e:tensiones !ea el captulo 1D <Personali*ar /ibre.ffice=.
-?tensiones
*3
Sub Append)ello (im o(oc (im s"e1tService? (im oCurs REM "hisComponent se refiere al documento activo actualmente# o(oc ! "hisComponent REM 0erifica Jue esto es un documento de te1to s"e1tService ! 'com#sun#star#te1t#"e1t(ocument' If NH" o(oc#supportsService&s"e1tService* "hen Ms Bo1 'Esta macro solo funciona en documentos de te1to' E1it Sub End If REM Hbtiene la vista del cursor del controlador actual# oCurs ! o(oc#currentController# et0ie-Cursor&* REM Mueve el cursor hasta el final del documento# oCurs# otoEnd&$alse* REM Inserta el te1to ')ola' al final del documento# oCurs#"e1t#insertStrin &oCurs3 ')ola'3 $alse* End Sub
Material incluido
(on /ibre.ffice se inclu1en muchas macros e:celentes. >tilice Herramientas Macros Organi ar macros #ibreO$$ice %asic para abrir el di,lo$o de 9acros. E:tienda la biblioteca #ools en el contenedor de bibliotecas /ibre.ffice. Cnspeccione el mdulo Debu$ algunos buenos ejemplos son WritedbgInfo (documento) y printdbgInfo (hoja de clculo).
*,
2ecursos online
/os si$uientes enlaces 1 referencias continen informacin acerca de pro$ramacin de macros)ttpAHHuser services openo&&ice orgH <?oros de .pen.ffice.or$, mu1 bien soportadoE los !oluntarios tambi n contestan pre$untas de /ibre.ffice= )ttpAHHapi openo&&ice orgHdocsHcommonHre&HcomHsunHstarHmoduleIi? )tml <Geferencia oficial de la CD/E a%u encontrar, la descripcin de casi cual%uier comando= )ttpAHH9i:i services openo&&ice orgH9i:iH(ocumentationH5A+6CMGuide <$ua oficial de pro$ramacin con /ibre.ffice 7+)C(= )ttpAHH9i:i services openo&&ice orgH9i:iH(ocumentationH(evGuideHLibre%&&iceM(evelopersMGuide <Gua oficial de desarrolladores de /ibre.fficeE contiene una e:plicacin detallada= )ttpAHH999 piton1a: orgHoo p)p <P,$ina de macros de +ndre0 Piton1a2= )ttpAHH999 piton1a: orgHAndre9Macro odt <Humerosos ejemplos de trabajar con macros= )ttpAHH999 piton1a: orgHboo:H </ibro sobre macros de +ndre0 Piton1a2= )ttpAHH999 piton1a: orgHdatabaseH <numerosas macros de ejemplo utili*ando 7ase= )ttpAHHdocs sun comHappHdocsHdocH718I=,38 </ibro de )un acerca de la pro$ramacin de macros Imu1 bien escrito 1 ordenadoE la $ua de pro$ramacin de /ibre.ffice 7+)C( 1 la Gua de desarrolladores de /ibre.ffice deri!an de este libro=.
*/