Como posso escrever uma macro para o OpenOffice writer, que obtém as palavras / caracteres que eu selecionei com o mouse uma marca de ênfase como ponto sobre as palavras / caracteres?
Eu tentei gravar a macro, mas falhei.
Espero que alguém aqui possa me ajudar
Estou tentando escrever uma macro para o OpenOffice Writer e o LibreOffice Writer. Essa macro adicionará uma barra de ferramentas no Writer, semelhante à barra de ferramentas de pontuação chinesa na versão chinesa do MS Word. Os botões da barra de ferramentas são sinais de pontuação chineses. Um dos botões será a marca de ênfase usada em chinês simplificado na China. A marca de ênfase é um ponto sob o caractere chinês que é enfatizado quando a direção do texto é horizontal, um ponto à direita do caractere enfatizado quando a direção do texto é vertical.
Não conheço o OpenOffice Basic ou outros idiomas usados para escrever programas de computador, mas sei que o gravador de macro do Writer pode gravar alguns códigos que podem ser usados para gravar a macro de que preciso. E eu continuo googling para encontrar mais informações e aprender a escrever a macro. Para a maioria dos sinais de pontuação, os códigos são simples.
Por exemplo, para inserir uma marca de parada, os códigos são:
rem U+3002
sub cp01
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = "。"
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
end sub
Mas o gravador de macro do LibreOffice 3.4 não conseguiu gravar uma macro viável para a marca de ênfase. Na verdade, a gravadora fechou inesperadamente assim que mudei a marca de ênfase de "(sem)" para "ponto" na caixa de diálogo "Efeitos de fonte da caixa de diálogo de caracteres" do gravador. Fui forçado a baixar e instalar o OpenOffice.org 3.3 e 3.4.
O gravador de macro do OpenOffice.org 3.3 também não pode gravar, mas o do 3.4 o fez. A macro é:
sub Test20120206_1
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 -------------------------------
dispatcher.executeDispatch(document, ".uno:EmphasisMark", "", 0, Array())
end sub
Esta macro não funciona.