Usar UserForm con checkbox en Libre Writer

¡Hola! Muy buen día. Me gustaría consultar si es posible vincular un userform dentro de LibreOffice Writer para llamar textos o imágenes utilizando casillas de verificación. Estas casillas de verificación deberían estar vinculadas a un botón llamado “Seleccionar” para generar la acción de recopilar todas las selecciones realizadas y guardarlas automáticamente en un nuevo documento de LibreOffice Writer. Además, me gustaría saber cómo implementar esto utilizando varios userforms. Cabe resaltar que no tengo conocimientos sobre el código VBA, por lo que necesitaría una explicación detallada o un ejemplo de código que pueda seguir. Agradezco mucho su atención y ayuda con esta consulta. Gracias.

Tu pregunta es demasiado general y la programación es muy particular. Si no tienes conocimientos de programación, alguien lo tendrá que hacer por ti.

Intenta editar tu mensaje y anexar un archivo con lo que tienes, y lo que esperas obtener de la forma más detallados y especifica posible,

Poder se puede:
En principio deberías leer sobre la programación en Basic de LibreOffice aquí: Programación con LibreOffice Basic

Como sugerencia, para simplificar el trabajo los textos deberían, pasando por pdf guardarse como imágenes, y estos y las imágenes, todos con la misma extensión jpg, por ejemplo, estar alojadas en un directorio (carpeta) accesible al usuario del documento.

Conociendo a Basic de LibreOffice, en un documento nuevo pulsando en Herramientas —> Macros —> Organizar macros —> LibreOffice Basic.
Crear un nuevo módulo seleccionando en el cuadro de diálogo Mis Macros —> Standard —> Nuevo Módulo.
Agregar el código del formulario conforme lo leído en el sitio.

Diseñar el formulario de usuario, en el editor de macros, pulsar Diálogos —> Standard —> Nuevo.
Agregar casillas de verificación, por ejemplo tres casillas de verificación nombradas CheckBox1, CheckBox2, y CheckBox3.
Agregar un botón nombrado Seleccionar.
Asignar la macro al botón, seleccionar sus propiedades, asignar la macro al evento Ejecutar acción.

Cerrado el editor de macros al volver al documento de Writer, pulsando en Herramientas —> Macros —> Ejecutar Macro, seleccionada la creada ejecutarla.

Un ejemplo de código para crear el formulario podría ser:

Sub MostrarFormulario
    DialogLibraries.LoadLibrary("Standard")
    oDialog1 = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
    oDialog1.Execute()
End Sub

Para insertar las imágenes seleccionadas en un nuevo documento, un ejemplo sería algo así como:

Sub InsertImage(oDoc As Object, sImagePath As String)
    Dim oText As Object
    oText = oDoc.getText()
    Dim oCursor As Object
    oCursor = oText.createTextCursor()
    Dim oGraph As Object
    oGraph = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
    oGraph.GraphicURL = ConvertToURL(sImagePath)
    oDoc.Text.insertTextContent(oCursor, oGraph, False)
End Sub
1 Like

cual es la caracteristica principal a tener en cuenta para que el checbox funcione o tenga alguna accion

La característica principal es que tengas claro que quieres lograr exactamente. Las casillas de verificación (checkbox) pueden reaccionar a los siguientes eventos:

pero… en mi experiencia, son más usados en relación con otros controles y eventos. Por ejemplo, como selector de ciertas opciones binarias (Si o No) y procesar luego con un botón de comando.

1 Like

si bien entiendo a lo que te refieres, aun no logro entender como hago que el checkbox funcione de manera grupa, mediante un solo click, dicha seleccion se ejecutara con ayuda un boton llamado ejecutar

¿A que te refieres exactamente cuando dices: funcione de manera grupa, mediante un solo click?

y tengo otra pregunta.

es posible vincular mi formulario hecho directamente en la hoja de libre write, en un userform en ventana emergente?

Por favor, una pregunta por tema, una respuesta por tema. Si te he entendido la respuesta es si, pero, un formulario en una ventana emergente se convierte en un cuadro de diálogo, que son muy parecidos, pero son diferentes.

osea si hay mas de tres checkboxes, y solo selecciono dos el solo me mostrara esos dos checkboxes ya previamente seleccionado. claro tener en cuenta que esta funcionara con el boton ejecutar

¿A que te refieres exactamente cuando dices: el solo me mostrara esos dos checkboxes ya previamente seleccionado?

Cuando tu agregas casillas de verificación a un formulario, se espera que estos sean seleccionados (o no) por el usuario. Tu puedes tener valores predeterminados para estos controles, pero este valor solo será válido al crearlo.

Lo mejor, es que prepares un archivo de ejemplo, con lo que quieres y lo que esperas obtener.