Запись макроса: Действие «добавить слово в пользовательский словарь»

Автор dziglo, 23 июля 2023, 00:53

0 Пользователи и 1 гость просматривают эту тему.

dziglo

Доброй ночи.
Мне нужен макрос, который бы горячей клавишей добавлял текущее слово (т.е. слово под курсором) в пользовательский словарь.



Делаю его с помощью команды «Записать макрос», но LibreOffice сгенерировал такой (неработающий) код:

sub IronDic
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:BasicIDEAppear", "", 0, Array())

end sub

Прошу помочь. Как подправить этот код? Сам пользовательский словарь (файл) называется Iron.dic

sokol92

Добавлять слова в (положительный) пользовательский словарь можно так (детально не тестировал):
' Добавляет слово word в словарь с именем dicName (по умолчанию standard.dic).
' Возвращает True, если слово добавлено.
Function AddWordToDic(ByVal word As String, Optional ByVal dicName As String) As Boolean
  If IsMissing(dicName) Then dicName="standard.dic"
  AddWordToDic=CreateUnoService("com.sun.star.linguistic2.DictionaryList").getDictionaryByName(dicName).Add(word, False, "")
End Function
Владимир.

dziglo

Цитата: sokol92 от 23 июля 2023, 15:05Добавлять слова в (положительный) пользовательский словарь можно так (детально не тестировал):
' Добавляет слово word в словарь с именем dicName (по умолчанию standard.dic).
' Возвращает True, если слово добавлено.
Function AddWordToDic(ByVal word As String, Optional ByVal dicName As String) As Boolean
  If IsMissing(dicName) Then dicName="standard.dic"
  AddWordToDic=CreateUnoService("com.sun.star.linguistic2.DictionaryList").getDictionaryByName(dicName).Add(word, False, "")
End Function

А как этим пользоваться? :-)
Как ваш код можно привязать к горячей клавише? Мне нужно, чтобы при нажатии клавишы (клавиш) слово под курсором было добавлено в словарь.