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: 35.921 ]

Por: Perfil removido em 22/12/2016


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

O jeito fácil e o jeito difícil de inserir paginação no Open/LibreOffice

Por que existem mais games para Windows do que para Linux?

Pesquisa com slocate, locate e updatedb

Configurando várias contas de e-mail no Thunderbird

Um tour pelos ripadores de CDs para Linux

Leitura recomendada

Instalando LibreOffice 3.3.0 no Debian 6 Squeeze

Turbinando sua apresentação no LibreOffice Impress

Slackbuilds para leigos

Recuperação de arquivos do LibreOffice

Campos no LibreOffice: usos e abusos

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts