LibreOffice - Utilizando macro para preencher um documento no Writer

Quando temos um documento que precisamos apenas mudar alguns dados pré-demarcados, geralmente fazemos este processo manualmente, localizando o dado a ser substituído no documento, não é mesmo? Mas, que tal fazer isso usando um formulário para facilitar e a Macro para operar no documento? É o que vou demonstrar agora.

[ Hits: 23.081 ]

Por: Bilufe em 22/12/2016 | Blog: https://www.vivaolinux.com.br/~bilufe


Programando a Macro



Agora, na janela principal do documento, clique em:

→ Ferramentas → Macros → Organizar Macros → LibreOffice Basic

Na janela que surge, você deverá selecionar o documento atual (pois a Macro deverá ser salva no documento) e clicar em "Novo", nomeando a Macro. No caso, eu nomeei como "macro01".
Linux: Utilizando macro para preencher um documento no Writer
Depois de criada a Macro, é exibido o editor de código do LibreOffice Basic, que é onde vamos inserir o código da Macro. O código será inserido entre.

Não quero me ater a explicar a linguagem Basic, pois infelizmente não sou expert em programação e também estou apenas compartilhando conhecimento que adquiri, mesmo que eu não domine o assunto, explorando a internet e adaptando códigos que encontrei para o meu uso.

Este é o código que inseri no editor, que funcionará para mim, espero que você consiga adaptar para seu uso:

REM  *****  BASIC  *****

'declarações de variáveis que serão usadas globalmente
Dim dlg As object
dim doc   as object
dim dispatcher as object

Sub Main
   ' carrega a bilioteca Standard (não modifiquei o nome da biblioteca já definida pelo LibreOffice), cria e exibe o diálogo
   DialogLibraries.LoadLibrary("Standard")
   dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1) 'altere Dialog1 para o nome da caixa de diálogo que você criou
   dlg.Execute() 'exibe a caixa de diálogo
End Sub

' Função criada para ser executada pelo botão Ok
Sub btnOk_click
   'declaração de variáveis
   doc   = ThisComponent
   dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

   ' recupera os controles no diálogo
   texto1 = dlg.getControl("TextField1") 'troque "TextField1" pelo nome da caixa de texto que você definiu
   texto2 = dlg.getControl("TextField2")

   'insere o texto nos indicadores
   doc.Bookmarks.getByName("texto1").Anchor.setString(texto1.Text) 'troque "texto1" pelo nome do indicador que você definiu
   doc.Bookmarks.getByName("texto2").Anchor.setString(texto2.Text)

   'encerra a execução da caixa de diálogo
   dlg.endExecute()
   End

End Sub

Veja uma imagem do editor de códigos com a Macro:
Linux: Utilizando macro para preencher um documento no Writer
Feche o LibreOffice Basic e salve as alterações.

Página anterior     Próxima página

Páginas do artigo
   1. Preparando o LibreOffice
   2. Preparando o documento
   3. Criando o diálogo para definir os textos a serem inseridos
   4. Programando a Macro
   5. Atribuindo a função ao botão Ok da caixa de diálogo
   6. Finalizando o documento
Outros artigos deste autor

LibreOffice Writer 5 vs. Microsoft Word 2010

Trabalhos gráficos no Biglinux

Minha experiência com Linux

Instalação de softwares no Debian Linux e derivados

Instalando e usando o GNUstep no Linux

Leitura recomendada

Instalando LibreOffice 3.3.0 no Debian 6 Squeeze

LibreOffice 3.4.5 no Ubuntu 11.04

Os Mistérios da Fonte Wingdings do Windows

Suítes de escritório com corretor ortográfico e gramatical no GNU/Linux

Turbinando sua apresentação no LibreOffice Impress

  
Comentários
[1] Comentário enviado por madrugada em 26/12/2016 - 17:29h

Parabéns Rodrigo.
O artigo está descrito de uma forma tão clara que até um leigo em office consegue compreender


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts