Как я могу написать макрос для OpenOffice Writer, который получает слова / символы, которые я выделил мышью, с меткой выделения, например точкой над словами / символами?
Я пытался записать макрос, но не получилось.
Я надеюсь, что кто-то здесь может помочь мне
Я пытаюсь написать макрос для OpenOffice Writer и LibreOffice Writer. Этот макрос добавит панель инструментов в Writer, аналогично китайской панели инструментов пунктуации в китайской версии MS Word. Кнопки панели инструментов являются китайскими знаками препинания. Одной из кнопок будет знак подчеркивания, используемый на китайском упрощенном языке. Метка выделения - это точка под китайским символом, которая выделяется, когда направление текста горизонтальное, и точка справа от выделенного символа, когда направление текста вертикальное.
Я не знаю OpenOffice Basic или других языков, используемых для написания компьютерных программ, но я знаю, что рекордер макросов Writer может записывать некоторые коды, которые можно использовать для написания нужного мне макроса. И я продолжаю гуглить, чтобы найти больше информации и научиться писать макросы. Для большинства знаков препинания коды просты.
Например, чтобы вставить метку остановки, используйте следующие коды:
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
Но рекордер макросов LibreOffice 3.4 не смог записать работающий макрос для метки выделения. На самом деле Writer неожиданно закрылся, как только я изменил метку выделения с «(Без)» на "Dot" в диалоговом окне "Эффекты шрифта" в символе Writer. Я был вынужден загрузить и установить OpenOffice.org 3.3 и 3.4.
Макро-рекордер OpenOffice.org 3.3 также не может записывать, но один из 3.4 сделал это. Макрос это:
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
Этот макрос не работает.