Macro writer: como transferir conteúdo de seleção para variável?

Tento eliminar quebras de parágrafo incorretas (como as que aparecem em textos do projeto gutenberg), para corrigir a formatação (parágrafos verdadeiros justificados).

Como não é possível selecionar o sinal paragraph-break e eliminá-lo, quero chegar ao fim da linha e, se ali não tiver um ponto final, é sinal de que essa linha deve incorporar a próxima linha. Posso fazer isto deletando a última posição, depois de desmarcar o último caractere.

Mas o programa precisa se informar qual é o último caractere da linha. E para isto, é preciso transportar esse caractere para uma variável.

Isto feito, pretendo lançar um If do tipo: “se a variável não contiver um ponto-final, delete”.

Talvez seja legal conhecer essa extensão:Alternative dialog Find & Replace for Writer
Vamos ver se eu entendi corretamente o que você quer.
Pelo que eu entendi você tem um texto como o que fica quando copiamos e colamos de um PDF, com um parágrafo para cada linha e nas linhas onde não termina por ponto você quer que a quebra de parágrafo seja eliminada e que fique somente uma linha. Mas nas linhas onde finalizar por ponto é para manter a quebra.
Se for isso o código abaixo deverá resolver.

Function LimpaQuebrasLinhas()
Dim oReplace, oSearch, oResult as Object
Dim oViewCursor, oCursor as Object
Dim oDocument, oDispatcher as Object
' Primeiro tira todos os parágrafos corretos mas com espaço no final
oReplace = ThisComponent.createReplaceDescriptor()
oReplace.setSearchString( "\. $" )
oReplace.setReplaceString( "." )
oReplace.SearchRegularExpression = True
ThisComponent.replaceAll( oReplace )

' Depois tira todas as marcas de parágrafo que a linha terminha por espaço
' Configura o cursor para chegar na posição dos espços no fim de parágrafo
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oCursor = oViewCursor.getText().createTextCursorByRange(oViewCursor)
oViewCursor.gotoStart(False)
oSearch = ThisComponent.createSearchDescriptor()
oSearch.SearchString = " $" ' busca primeiro parágrafos corretos mas que terminam em espaços
oSearch.SearchRegularExpression = True
' Definição dos argumentos do Dispatcher
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Count"
args1(0).Value = 1
args1(1).Name = "Select"
args1(1).Value = true
'Executa enquanto a busca retornar resultado
Do 
	oResult = ThisComponent.findFirst(oSearch) ' encontra a ocorrência
	if isNull(oResult) Then Exit Do ' se for nula sai
	oViewCursor.gotoRange(oResult, False) ' move o cursor para o resultado
            ' colocar o cursor de texto na posição do cursor de visão
	oCursor = oViewCursor.getText().createTextCursorByRange(oViewCursor)
	oCursor.String = " "  ' escreve um espaço sobre o espaço selecionado
	oDocument = ThisComponent.CurrentController.Frame
	oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
                    ' Estende a seleção em um caractere para pegar a marca de parágrafo
		oDispatcher.executeDispatch(oDocument, ".uno:GoRight", "", 0, args1()) 
		oDispatcher.executeDispatch(oDocument, ".uno:Delete", "", 0, Array()) ' deleta a seleção
Loop Until isNull(oResult)
oViewCursor.gotoStart(False) ' move o cursor para o início
End Function

Espero ter ajudado.

Abraço,

Kadu Leite