Como fazer referência ao valor de uma Barra De Rolagem (Scrollbar) em uma macro?

O que eu preciso é criar uma macro que faça a barra de rolagem “funcionar” sozinha.
Observação: a barra de rolagem a que me refiro é um controle de formulário, que pode ser vinculada a uma célula.

A partir da versão 4 do LibreOffice já vem incorporado a extensão “access2base”, se a sua versão for anterior a 4, vc pode ir no site w.w.w.access2base.c.o.m (tive que botar pontos pq o karma não deixa inserir link) e baixar e instalar normalmente ( no help do Libreoffice tem como instalar a extensão access2base ), ela faz com que vc possa programar uma sintaxe próxima ao VBA como era no MSAcess

Uma vez instalada no LibreOffice, para ativá-la vc vai no LibreOffice Base ( banco de dados ) e faz os seguintes procedimentos:

  • Criar uma nova macro → Ferramentas–>Macro–>Organizar Macros–>LibreOffice Basic
  • Na janela que se abrir, expanda o ícone do seu arquivo de banco de dados.odt -->Standard ( selecione-o clicando com o mouse sobre ele
  • Clique no Botão novo e vai abrir um editor de código
  • Cole o seguinte código:

Sub DBOpen(Optional poEvent As Object) If GlobalScope.BasicLibraries.hasByName("Access2Base") then GlobalScope.BasicLibraries.LoadLibrary("Access2Base") Call OpenConnection(ThisDatabaseDocument) End Sub

( O nome dessa função será DBOpen )

  • Salve e feche a janela do editor de código

  • Vá no Menu Ferramentas → Personalizar–>Aba Eventos–>selecione o evento “Ao inicar o aplicativo”–>clique no botão Macro

    • Na janela que se abrir ( na coluna Biblioteca ), expanda o ícone do seu arquivo de banco de dados.odt -->Standard ( selecione-o clicando com o mouse sobre ele)–> na coluna “nome da macro” selecione a macro DBOpen–> e clique no botão “OK”
  • Salve, fecha o banco de dados e abra novamente para efetivar a mudança, ao fazê-lo o Libreoffice incorpora a biblioteca acess2base.

Agora pra resolver seu problema vc:

  • Faz o mesmo procedimento acima até a parte que ensina a criar um nova macro.
  • Cole o seguinte código:

’ declara 2 variáveis tipo “Object” ( uma pro form e outra pro control) que tem os métodos dos objetos tipo .text, '.value, etc

`Dim ofFormA As Object, ocControl As Object

  ofFormA = Forms("nome do formulário")
  ocControl = Controls(ofFormA, "nome_do_controle") 'Ex: skrl_rolagem
  ocControl.Value = 50 `

'A Barra de rolagem vai pro valor 50 ( no meio, pois varia de 0 a 100) e vc pode mudar nas propriedades do controle no modo design, é a propriedade .Value que vc pode manipular, não testei se vc pode "capturar o valor de onde ela estiver no momento, faça vc esse teste.
’ já pode trabalhar com os métodos e propriedades dos objetos como no VBA do MSAccess

No Access quando vc digitava o “ponto” (.) aparecia uma lista deles automaticamente, no Libre não

O problema é que não tem em português algo que fale quais os métodos e propriedade dos objetos no formulário, mas no site do access2base tem descrito como funciona tudo, mas está em inglês.

Nome meu caso que não sei inglês eu acesso o site com o google crhome que tem o recurso de tradução automática
junto com a versão em inglês caso os códigos de exemplo também sejam trazidos.

Espero ter ajudado…