Haz tu Pregunta
0

Grabar macro "ir a marcador".

preguntado 2021-03-04 05:30:44 +0200

Imagen Gravatar de mae007

Saludos cordiales. Utilizo LO 7.1.0.3, en Windows 10 (ver 2004). Deseo hacer macros para ir a marcadores específicos en Writer. En Word, lo puedo hacer con Visual Basic. Sin embargo, lo he intentado en LO y no lo logro. Una vez que concluyo la secuencia de comandos para ir al marcador deseado y pulsar el botón "Finalizar grabación", se cierra el grabador de macro, sin dar la opción de poner el nombre al macro y grabarlo. Agradeceré cualquier ayuda para resolver este problema.

edit re-etiquetar marcar como ofensivo cerrar fusionar delete

2 Respuestas

Ordenar por » viejos nuevas más votado
0

respondido 2021-04-09 13:08:16 +0200

updated 2021-04-09 13:10:55 +0200

Utiliza el código siguiente: pero ten en cuenta dos cosas: El nombre del marcador tiene que ser exacto (sensible a mayúsculas y espacios) Si la macro la ejecutas desde el IDE el cursor va al marcador pero en el documento no ves el desplazamiento, Tienes que crear un control en barra de herramientas, diálogo, formulario etc.. y lanzar la macro desde ese botón, entonces verás el desplazamiento y el cursor estará en el marcador)

Sub Ir_a_Marcador

dim oVCursor as Object, oMarca as Object, Nombre_Marcador as string

Nombre_Marcador = "Marcador 1"

oVcursor =ThisComponent.currentcontroller.getViewCursor

if Not ThisComponent.Bookmarks.hasByName(Nombre_Marcador) then 'compruebo existencia

Msgbox "No hay marcadores con ese nombre."

else

oMarca = ThisComponent.getBookmarks.getByName(Nombre_Marcador) '

oVCursor.gotoRange(oMarca.getAnchor,false) 'voy al marcador

endIf

end sub

edit marcar como ofensivo delete enlace mas
0

respondido 2021-03-05 01:14:16 +0200

Imagen Gravatar de Kyodake

El procedimiento para crear una macro en LibreOffice Writer usando la grabadora, que funciona en mi PC es:

Hacer clic sobre el menú “Herramientas --- Opciones”

En el cuadro contextual hacer clic sobre el apartado “Avanzado” del panel izquierdo

A continuación hacer clic sobre las casillas de verificación de:

“Activar las características experimentales” (podrían provocar inestabilidades)

“Activar grabación de macros (limitada)”.

Finalmente, hacer clic sobre el botón “Aceptar”

Iniciar la grabación de la macro, haciendo clic sobre el menú “Herramientas --- Macro ---Grabar macro”

Una vez iniciada la grabación de la macro, se deben realizar todos los pasos que se siguen para ejecutar las tareas requeridas.

Finalizadas estas tareas, se detiene la grabación de la macro, haciendo clic sobre el botón “Finalizar grabación” del cuadro contextual flotante “Grabar macro”.

En el siguiente cuadro contextual se debe guardar la macro en cualquiera de las dos opciones:

Guardarla en mis macros

Guardarla dentro del archivo en que se está trabajando.

Para, guardarla en mis macros, se la guarda en el apartado “Mis macros”, dentro de la sección “Standard --- Module1”

A continuación se le da un nombre a la macro y se la guarda haciendo clic sobre el botón “Guardar”.

Realizado en MX Linux 19.3 con XFCE 4.16 y Libreoffice 7.1.1.2 /Libreffice Community

edit marcar como ofensivo delete enlace mas

Comments

Muchas gracias por tu respuesta, Kyodake. El procedimiento que indicas es el que utilizo siempre. Tengo grabados muchos macros. El problema que tengo es con un macro que me permita ir a un marcador, lo cual me resultaría muy útil porque en documentos con muchos marcadores, títulos, tablas e imágenes, desplazarse por el panel de navegación hasta el macro correspondiente toma su tiempo. Cuando intento grabar un macro para ir a un marcador, sigo la secuencia de pasos que corresponden: activo la grabación de macros, voy al panel de navegación, doy doble clic sobre el marcador al que quiero ir, y cuando quiero terminar de grabar, pulso sobre el botón flotante "Fnalizar grabacion", y en ese momento se cierra el proceso de grabación, sin abrir el cuadro de diálogo para ponerle nombre y guardarlo. Otro procedimiento que sigo es grabar la secuencia de pasos para ir al marcador buscándolo en ...(mas)

Imagen Gravatar de mae007 mae007 ( 2021-03-05 06:15:57 +0200 )edit

(Continúo): ... y guardarlo, efectivamente se graba, pero al intentar ejecutarlo no pasa nada, es decir, no se realiza la secuencia de comandos deseada. Lo único que se genera en el macro (que he llamado "IR_A_M1") es lo siguiente:

sub IR_A_M1 rem ---------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem ---------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ---------------------------------------------------------------------- rem dispatcher.executeDispatch(document, ".uno:InsertBookmark", "", 0, Array()) end sub

Quedo atento. Gracias, de nuevo.

Imagen Gravatar de mae007 mae007 ( 2021-03-05 06:23:39 +0200 )edit
Ingresa/Regístrate para Contestar

Herramientas de Preguntas

1 seguidor

Estadisticas

Preguntado: 2021-03-04 05:30:44 +0200

Visto: 27 veces

Ultima actualización: 2 días atrás