Для успешного "выделения" контрола нужно получить
View контрола. Помним что
Model, View, Control - это три стороны одной медальки. Найти вью проще всего с помощью готовой LO-либы
Tools, которую стоит подключить макросом при открытии документа:
If GlobalScope.BasicLibraries.hasByName("Tools") Then
GlobalScope.BasicLibraries.LoadLibrary("Tools")
End If
Ну а дальше просто:
sNameControl = "Имя моего контрола"
oForm = ThisComponent.drawpage.forms.GetByName("Имя Формы") ' для Writer/Calc, в Base - иначе!
cControl = oForm.GetByName(sNameControl) ' получили контрлл
oController = ThisComponent.CurrentController ' получили контрллер
oControlView = oController.GetControl(cControl) ' получили вью контрола
oControlView.SetFocus ' установили фокус
Фокус выглядит по разному для режима Разработки и Обычного. Чтобы код заработал в Base - нужно переписать строку с oForm = ...