Como mudar posição do cursor dentro de uma caixa de texto

Quando digito algo dentro de uma caixa de texto o cursor se desloca para a direita, estou utilizando a função UCase para que o texto fique sempre em maiúsculo. No excel coloca-se textbox1.Text = UCase( textbox1.Text) e atribui a macro ao modificar, porém no libreoffice calc quando faço isso ele simplesmente trava e fecha, então resolvi atribuir a macro ao evento tecla pressionada, porém o cursor volta para o início da textbox, ele até converte em tempo real, mas o curso volta ao início, posso utilizar no evento ao perder o foco, porém esteticamente não fica legal, pois enquanto o usuário digita, as letras aparecem em maiúsculo, alguém sabe se é possível controlar a posição do cursor dentro da textbox?

Boa noite,

A solução que pesquisei é possível adaptando os códigos aqui e aqui:

Sub UPPER_case (oEvento As Object) 'Textfield > Eventos > Tecla pressionada'
   oTextBox = oEvento.Source.Model
   sText = Ucase(oTextBox.Text)
   oTextBox.Text = sText
   
'Colocar o cursor no final do texto através da seleção'   
Dim oSelecao As New com.sun.star.awt.Selection
   oSelecao.Min = Len(sText)
   oSelecao.Max = Len(sText)
   
   oTextBoxView = oEvento.Source
   oTextBoxView.setSelection( oSelecao )
End Sub

Atte,

Muito obrigado Grafeno, na minha macro estava faltando apenas definir o valor mínimo para seleção, sua resposta me ajudou muito.