Como criar macro para que o texto em um formulário fique sempre em maiúscula

Tenho um formulário no LibreOffice Writer que permite inserir dados em uma tabela do Base, porém há um campo em que o usuário precisa inserir texto apenas em letras maiúsculas.

Não encontrei uma maneira de limitar a entrada do texto apenas em maiúsculas. Como é um campo de formulário, o recurso de transformar em maiúsculas do Writer não funciona.

Penso em uma macro, mas não sei como criá-la. Alguém sabe como fazer uma macro para que o texto digitado dentro do campo do formulário se transforme automaticamente em maiúsculas?

Boa tarde! O que exatamente vai neste campo? Possui tamanho fixo de caracteres? Se for o caso, talvez nem precise de macro, mas sim utilizar o controle “campo de padrão”. Atte, Grafeno.

Não possui tamanho fixo de caracteres.
Como faço para definir que somente entre letras maiúsculas no campo

Boa tarde,


Atribua a macro abaixo ao evento **Ao perder o foco** do controle caixa de texto. Ela foi adaptada [desta contribuição aqui (em inglês)](https://forum.openoffice.org/en/forum/viewtopic.php?f=39&t=48234#p222013).
Sub UPPER_case (oEvent As Object) 'Text Box > Events > When Losing Focus
   oTextBox = oEvent.Source.Model
   sText = Ucase(oTextBox.Text)
   oTextBox.BoundField.updateString(sText)
End Sub 


Atte,
Grafeno

1 Like

Funcionou perfeitamente. Obrigado.

Que ótimo! Obrigado pelo retorno, mas, então, vc poderia assinalar a resposta como correta, clicando no √? Assim contribuímos para o Ask ficar mais organizado.