Hola a todos:
Creo que esta pregunta debería ir en «Programación en otros lenguajes», pero, como no he encontrado dónde, pues la dejo aquí, a merced de lo que diga el administrador.
La cuestión es que tengo que hacer una macro en LibreOffice BASIC que recorra los párrafos de determinados tipos —«Estilos» mejor que tipos— de todo un documento LO Writer y vea el contenido, el texto, de cada uno. Pero resulta que la cosa ha cambiado mucho desde la última vez que hice cosas de éstas tanto con el LOB como con el VBA y soy incapaz de manejarme en condiciones con el UNO. ¿Alguien podría echarme una mano?
Gracias.
 
Bueno, tras arduas horas persiguiendo StarBASIC y UNO, creo que lo he logrado. Los estilos CC_Página y CC_Viñeta se pueden cambiar, obviamente, por otros:
Código:
Sub DibujaEsquema
    Dim Doc As Object
    Dim Enu As Object
    Dim Tex As Object
    Dim Pag as Integer
    Dim Vin as Integer
    
    Dim Paso As String
    
    ' Aquí tamaño y orientación de la página. Dibuja los marcos
    
    Doc=ThisComponent
    Enu=Doc.Text.createEnumeration
    
    While Enu.hasMoreElements
        Tex=Enu.nextElement
        If Tex.supportsService("com.sun.star.text.Paragraph") Then
            
            If Tex.ParaStyleName=("CC_Página") Then
                Pag=Pag+1
                Vin=0
                'Dibuja la página: Aquí hará «cosas» con la página
                Paso=Paso & "Página: " & Pag & CHr(13)
            End If
            If Tex.ParaStyleName=("CC_Viñeta") Then
                Vin=Vin+1
                'Dibuja la viñeta: Aquí hará «cosas» con la viñeta
                Paso=Paso & "   Viñeta: " & Pag & "." & Vin & " " & Tex.String & Chr(13)
            End If
                    
        End If
    Wend
    MSGBOX (Paso)
End Sub