SlideShare a Scribd company logo
1 of 69
Download to read offline
Programação de Macros com 
LibreOffice Basic 
Palestrante: 
Marcio Junior Vieira
Marcio Junior Vieira 
● 15 anos de experiência em informática, vivência em 
desenvolvimento e análise de sistemas de Gestão empresarial. 
● Trabalhando com Software Livre desde 2000 com serviços de 
consultoria e treinamento. 
● Graduado em Tecnologia em Informática(2004) e pós-graduado 
em Software Livre(2005) ambos pela UFPR. 
● Palestrante em diversos Congressos relacionados a Software 
Livre tais como: CONISLI, SOLISC, FISL, LATINOWARE, SFD, 
JDBR, Pentaho Day. 
● Fundador e atual CEO da Ambiente Livre. 
● Programador de Macros desde 2001
Uma empresa de Software 
Livre e Software Aberto
Sobre a Ambiente Livre 
● Fundada em 2004 com foco de atuar em 
consultoria com software livre. 
● 2009 ampliou sua soluções para atender ao 
mercado de gestão empresarial com software 
livre. 
● Tem 14 soluções distintas para geração de 
negócios com software livre.
Soluções 
● Consultoria. 
● Desenvolvimento. 
● Suporte. 
● Treinamento. 
● Transferência de Tecnologia.
Ecosistema
LibreOffice 
● Writer - É o editor de textos. 
● Calc - Planilha eletrônica com todos os recursos para 
calcular, analisar, resumir e apresentar seus dados em relatórios 
numéricos ou em gráficos. 
● Impress – Criação de apresentações multimídia 
eficientes. 
● Draw – Desenho vetoriais, produz desde simples 
diagramas até ilustrações com aparência 3D. 
● Math - Editor de fórmulas. Extremamente útil para 
trabalhos científicos ou escolares. 
● Base - Permite manipular bancos de dados.
Macros 
● Uma macro é um programa escrito numa 
linguagem suportada pelo LibreOffice com a 
finalidade de automatizar tarefas. Atualmente, 
as linguagens suportadas são: 
- LibreOffice Basic; 
- JavaScript; 
- JavaBeans; 
- Java; 
- Python;
LibreOffice Basic 
● Mantém as principais características do BASIC: sintaxe, tipos 
de dados, operadores, comandos, funções internas e 
organização geral do programa. 
● Permite o acesso a uma grande quantidade de objetos, com 
seus métodos e propriedades, específicos do LibreOffice. 
● IDE (Integrated Development Environment - Ambiente de 
Desenvolvimento Integrado) completo: edição de código fonte, 
verificação de erros, criação de diálogos e gerenciamento de 
bibliotecas.
Onde posso rodas as 
Macros
Organização de Macros
IDE Basic
IDE Basic - Inspecionar 
● Permite visualizar valores de variáveis das 
macros em tempo de execução.
IDE Basic - Chamadas 
● Mostra a chamada a procedimentos da macro 
em tempo de execução.
IDE Basic 
● Compilar – Compila o código-fonte Basic. 
● Executar o Basic – Executa uma macro até um 
pondo te interrupção. 
● Parar Macro - termina a execução de uma 
macro. Somente será ativado quando a execução da 
macro iniciar. 
● Passar ao Seguinte – Executa a macro 
linha a linha – passo a passo
IDE Basic 
● Ativar/desativar pontos de Interrupção - define 
um ponto de interrupção. 
● Gerenciar Pontos de Interrupção 
● Inserir código-fonte BASIC – Abre e insere o 
conteúdo de um arquivo Basic ( *.bas ) 
● Salvar BASIC – Salva o modulo com o código-fonte 
em arquivo Basic ( *.bas) 
● Importar caixa de dialogo
Características 
● Linguagem Interpretada 
● Case-insensitive (*1)
SubRotinas 
● Uma macro executa uma subrotina; 
● Subrotinas são blocos de instrução; 
● Uma subrotina começa com Sub e termina 
com End Sub. 
● Uma subrotina pode receber parâmetros.
Linhas de Programação 
● LongExpression = (Expression1 * Expression2) + _ 
● (Expression3 * Expression4) + _ 
● (Expression5 * Expression6) + _ 
● (Expression7 * Expression8)
Linhas de Programação 
a = 1 
a = a + 1 
a = a + 1 
● Ou 
a = 1 : a = a + 1 : a = a + 1
Comentários 
' este é um comentário da linha 
REM este é um comentário usando a chave REM 
<expressão> ' este é um comentário que por 
' ser extenso usa três linhas para 
' ser escrito.
Marcadores 
● Podem ser usados caracteres LATIN , 
números e underscores ( _ ) 
● Não pode ser usados caracteres especiais 
● O tamanho máximo é 255 Caracteres 
● Não é case-sensitive 
● Não é permitida acentuação
Marcadores 
● Surname ' OK 
● Surname5 ' OK 
● First Name ' Incorreto espaço não é permitido 
● DéjàVu ' acentuação não permitida 
● 5Surnames ' incorreto primeiro caracter não 
pode ser um numero 
● First,Name ' incorreta
Marcadores 
Dim [First Name] As String 
Dim [DéjàVu] As Integer 
[First Name] = "Andrew" 
[DéjàVu] = 2
Tipos de Variáveis 
● numéricas, 
● lógicas, 
● strings, 
● Datas e objetos.
Variáveis Implícitas 
● a = b + c 
● Option Explicit – Adicionado ao inicio 
das macros obriga que as variáveis 
sejam definidas.
Implícitas 
● MyVar = "Hello World" ' string 
● MyVar = 1 ' numero 
● MyVar = 1.0 ' float / decimal 
● MyVar = True 'Booleana
Varíaveis Dimencionais 
● É possível definir novos tipos, que combinam tipos 
existentes 
● Dim é a forma de declarar uma variável; Serve para 
declarar vetores, matrizes ou arrays. 
Dim x As tipo­da­variável 
Dim m(3,5) As tipo­da­variável 
● O que é declarado é o valor final da dimensão, que 
começa com zero. Então, uma declaração do tipo : 
Dim m(3,5) As Integer 
Declara uma matriz de (3 + 1) x (5 + 1) inteiros.
Variáveis Númericas 
● Integer; 
● Long Integer; 
● Decimal; 
● Single (ponto flutuante, precisão simples); 
● Double (ponto flutuante, precisão dupla); 
● Currency (para guardar valores monetários 
com alta precisão )
SIGIL 
● Variáveis também podem ser declaradas 
usando um sigil após o Dim. 
Dim x$ ' x é uma String 
Dim y% ' y é um Inteiro 
Dim z# ' z é um Double
Variáveis 
● String 
Dim sVar as String 
● Dim a,b,c,d as String 
● Boolean 
Dim bVar as Boolean 
● Date 
Dim dVar as Date
Simples Array 
● Dim MyArray(3)
Global – Privada - 
Constantes 
● Global 
Global A As Integer 
● Private 
Private C As Integer 
● Constante 
Const A = 10 
Const B As Double = 10
Operadores Matemáticos 
● + - Adição – Números , datas e strings 
● & - liga strings 
● - - Subtração – números , datas 
● * - Multiplicação de números. 
● / - Divisão de números 
●  - Divisão de números com um resultado inteiro 
(arredondado) 
● MOD - operação módulo (cálculo do resto de uma 
divisão) Ex.: MyVar = 3 MOD 2
Operadores de 
Comparação 
● = Igualdade de números, datas e strings 
● <> Desigualdade de números, datas e strings 
● > Maior que 
● >= Maior igual 
● < Menor que 
● <= Menor igual 
● LibreBasic não suporta comparador Like - VBA
If...Then...Else 
If A > 3 Then 
B = 2 
Else 
B = 0 
End If
Select...Case 
Select Case DayOfWeek 
Case 1: 
NameOfWeekday = "Domingo" 
Case 2: 
NameOfWeekday = "Segunda" 
Case 3: 
NameOfWeekday = "Terça" 
End Select
Repetição - For...Next 
Dim I 
For I = 1 To 10 
' ... Código para repetição 
Next I 
● Incrementação automática!
For Each 
Const d1 = 2 
Const d2 = 3 
Const d3 = 2 
Dim i 
Dim a(d1, d2, d3) 
For Each i In a() 
'... passará 36 vezes neste loop 
Next i
Do Until / Do loop 
Do Until A > 10 
' ... loop body 
Loop 
Do 
' ... loop body 
Loop While A > 10
Object 
● Usado para o tratamento de estruturas complexas. 
● Ao se rodar o BASIC em um documento do Writer ou 
Calc, o documento em si é um objeto, associado à 
variável ThisComponent. 
● Em um documento do Calc, a totalidade das planilhas é 
o objeto ThisComponent.Sheets. 
● Para acessar, por exemplo, uma planilha de nome 
"Alunos", pode-se declarar: 
Dim alunos As Object 
alunos = ThisComponent.Sheets.GetByName("Alunos")
Estruturas 
● Forma complexa de definir variáveis 
Type ... End Type 
Type Timedefutebol 
Nome as String 
V as Integer 
E as Integer 
D as Integer 
GP as Integer 
GC as Integer 
End Type
Estruturas 
Dim MeuCampeonato(10) as New Timedefutebol 
MeuCampeonato(1).Nome = "BROFFICE F.C." 
MeuCampeonato(1).V = 54 
MeuCampeonato(1).E = 1 
MeuCampeonato(1).D = 0 
MeuCampeonato(1).GP = 283 
MeuCampeonato(1).GC = 2
Segurança Execução de 
Macros 
● Por padrão a execução de macros encontra-se “protegido” na instalação 
do LibreOffice 
● Para ativar acesse o Menu Ferramentas - Opções –LibreOffice – 
Segurança – (Segurança de Macros...) 
● 
● 
● 
● 
● 
● 
●
Mensagem de alerta - 
Segurança
LibreOffice Basic 
● Procedimentos 
● Funções 
● Recursos de recursividade 
● Conversões de Tipo 
● Manipulação e Formatação de String 
● Acesso ao sistema de arquivos/diretório 
● Comandos de desvio 
●
API LibreOffice 
● Serviços. 
● Objetos. 
● Interfaces. 
● Métodos 
● Propriedades
API LibreOffice 
● A chave para a criação de programas que usam 
a API do LibreOffice são os serviços. 
● Um serviço é uma especificação de um objeto, 
que engloba um conjunto de interfaces e 
propriedades. 
● Uma interface é uma coleção de métodos. 
● Uma propriedade é um valor que determina uma 
característica de um serviço e é formada por um 
nome e um valor.
Universal Network Objects 
(UNO) 
● A variável de objeto deve ser criada e inicializado para que ele 
possa ser usado. CreateUnoService 
Dim Obj As Object 
Obj = createUnoService("com.sun.star.frame.Desktop")
UNO
VBA X LOBasic 
● A estrutura de um objeto no VBA é definida 
pela classe à qual ele pertence 
● Em LOBasic a estrutura é definida através dos 
serviços que ele suporta. 
● Um objeto VBA é sempre atribuído a 
exatamente uma única classe. 
● O objeto LOBasic objeto pode ter apoio de 
vários serviços.
Termologia VBA X LOBasic 
● VBA OOoBasic 
● O objeto documento 
● Workbook - 
SpreadsheetDocument 
● Páginas Individuais 
● Worksheets - Sheet
VBA to LOBasic 
● http://www.business-spreadsheets.com/vba2oo.asp 
●
Propriedades 
● As propriedades são definidas por meio de uma 
atribuição simples: 
Document.Title = "{{OOo}} Treinamento OOoBasic" 
Document.Filename = "treina_ooobasic.odt" 
● A propriedade, assim como uma variável normal, tem 
um tipo que define que valores ela pode registrar. 
● As propriedades Filename e Title são do tipo string.
Métodos 
● Os métodos podem ser entendidos como 
funções que se relacionam diretamente entre 
objeto que fazem chamadas uns aos outros. 
● O Objeto documento poderia, por exemplo, 
fornecem um método Save, que pode ser 
chamado como segue: 
Document.Save()
Módulos 
● com.sun.star.awt - interface do usuário 
● com.sun.star.beans - acesso a propriedades 
● com.sun.star.container - coleções e recipientes 
● com.sun.star.document - documentos do office 
● com.sun.star.drawing - desenho 
● com.sun.star.text - documentos texto 
● com.sun.star.sdb - banco de dados 
● com.sun.star.sheet - planilhas 
● com.sun.star.util - utilidade diversa
Trabalhando com planilhas 
● ThisComponent - documento em que a 
macro está sendo executada 
● <Objeto>.Sheets.(n) - ' recebe as pastas do 
documento 
● <Objeto>.GetCellByPosition(Coluna, Linha) 
● <objetocelula>.Value 'valor na célula
Criando Planilhas 
Sheet = 
Doc.createInstance("com.sun.star.sheet.Sprea 
dsheet") 
Doc.Sheets.insertByName("PlanilhaN", Sheet)
Linhas e Colunas nas 
Planilhas 
● Sheet = Doc.Sheets(0) 
● FirstCol = Sheet.Columns(0) 
● FirstRow = Sheet.Rows(0) 
● Nota - As listas de linhas e colunas podem ser 
acessados através de um índice em LOBasic. 
Diferente do VBA, a primeira coluna tem 
índice 0 e não o Índice 1.
Células 
Dim Doc As Object 
Dim Sheet As Object 
Dim Cell As Object 
Doc = Thiscomponent 
Sheet = Doc.Sheets(0) 
Cell = Sheet.getCellByPosition(0, 0) 
Cell.String = "Test" 
Cell.Value = 100 
Cell.Formula = "=A1+A2"
Gráficos 
Dim Rect As New com.sun.star.awt.Rectangle 
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress 
Doc = ThisComponent 
Charts = Doc.Sheets(0).Charts 
Rect.X = 8000 
Rect.Y = 1000 
Rect.Width = 10000 
Rect.Height = 7000 
RangeAddress(0).Sheet = 0 
RangeAddress(0).StartColumn = 0 
RangeAddress(0).StartRow = 0 
RangeAddress(0).EndColumn = 2 
RangeAddress(0).EndRow = 12 
Charts.addNewByName("MeuGrafico", Rect, RangeAddress(), True, 
True)
Shell 
● Shell(Pathname, Windowstyle, Param) 
● Windowstyle 
0 – Programa recebe o foco e inicia janela escondida 
1 – programa recebe o foco e inicia janela normal 
● Param: Parametro enviado ao programa externo. 
● Paramâtros opcionais 
● Exemplo 
Shell (“calc”)
IDE - Dialog
Banco da Dados - Base 
● Connection = 
DataSource.GetConnection("usuariodobanco", 
"senhadobanco") 
● ... 
● Statement = Connection.createStatement() 
● ResultSet = Statement.executeQuery(" 
COMANDO SQL DESEJADO") '
ResultSet - Navegando nos 
registro 
If Not IsNull(ResultSet) Then 
While ResultSet.next 
MsgBox ResultSet.getString(1) 
Wend 
● next() – próximo registro de dados. 
● previous() – registro de dados anterior. 
● first() – primeiro registro de dados. 
● last() – último registro de dados. 
● beforeFirst() – registro de dados anterior ao primeiro. 
● afterLast() – próximo registro de dados após o último.
Eventos
Gravação de Macros 
● Permite gravar ações no LibreOffice em 
Macros 
● Dever ser ativados recursos experimentais 
● Tem algumas limitações.
Referências 
● LibreOffice 3 Basic Guide
Contatos 
● e-mail: 
● marcio @ ambientelivre.com.br 
● http://twitter.com/ambientelivre 
● @ambientelivre 
● @marciojvieira 
● Blog 
blogs.ambientelivre.com.br/marcio

More Related Content

What's hot

Excel Básico
Excel BásicoExcel Básico
Excel Básicoaprcds
 
Desenvolvimento Pessoal - Etiqueta Profissional
Desenvolvimento Pessoal - Etiqueta ProfissionalDesenvolvimento Pessoal - Etiqueta Profissional
Desenvolvimento Pessoal - Etiqueta ProfissionalLuis Antonio Cezar Junior
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL BásicoIgor Alves
 
Arquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 BitsArquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 BitsCleber Ramos
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaDaniel Arndt Alves
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraNatanael Simões
 
Linguagens de programação para controladores lógicos programáveis copia - c...
Linguagens de programação para controladores lógicos programáveis   copia - c...Linguagens de programação para controladores lógicos programáveis   copia - c...
Linguagens de programação para controladores lógicos programáveis copia - c...Juremir Almeida
 
Apostila Microsoft Office Power Point 2016
Apostila Microsoft Office Power Point 2016Apostila Microsoft Office Power Point 2016
Apostila Microsoft Office Power Point 2016Cibele Kanegae
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++PeslPinguim
 

What's hot (20)

pneumatica
pneumaticapneumatica
pneumatica
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
 
Desenvolvimento Pessoal - Etiqueta Profissional
Desenvolvimento Pessoal - Etiqueta ProfissionalDesenvolvimento Pessoal - Etiqueta Profissional
Desenvolvimento Pessoal - Etiqueta Profissional
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Desenvolvimento pessoal
Desenvolvimento pessoalDesenvolvimento pessoal
Desenvolvimento pessoal
 
fazer um currículo atualizado, correto, simplificado.
fazer um currículo atualizado, correto, simplificado.fazer um currículo atualizado, correto, simplificado.
fazer um currículo atualizado, correto, simplificado.
 
Arquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 BitsArquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 Bits
 
Visualg
VisualgVisualg
Visualg
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 
Manual Word 2010
Manual Word 2010Manual Word 2010
Manual Word 2010
 
Preparo para mercado de trabalho
Preparo para mercado de trabalhoPreparo para mercado de trabalho
Preparo para mercado de trabalho
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da Disciplina
 
Ofício
OfícioOfício
Ofício
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Linguagens de programação para controladores lógicos programáveis copia - c...
Linguagens de programação para controladores lógicos programáveis   copia - c...Linguagens de programação para controladores lógicos programáveis   copia - c...
Linguagens de programação para controladores lógicos programáveis copia - c...
 
Apostila Microsoft Office Power Point 2016
Apostila Microsoft Office Power Point 2016Apostila Microsoft Office Power Point 2016
Apostila Microsoft Office Power Point 2016
 
T 20-operacoes-com-serra-circular
T 20-operacoes-com-serra-circularT 20-operacoes-com-serra-circular
T 20-operacoes-com-serra-circular
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
Guia para produção de fichamento 2010
Guia para produção de fichamento 2010Guia para produção de fichamento 2010
Guia para produção de fichamento 2010
 

Similar to Programação de Macros com LibreOffice Basic

Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em RubyDaniel Andrade
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Elvis Araújo
 
Python_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfPython_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfValter moreira
 
JS FUNDAMENTOS - AULA 01.pdf
JS FUNDAMENTOS - AULA 01.pdfJS FUNDAMENTOS - AULA 01.pdf
JS FUNDAMENTOS - AULA 01.pdfAntonioSvio1
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaSérgio Souza Costa
 
TDC2016SP - Kotlin 1.0: Evolua seu código Java
TDC2016SP - Kotlin 1.0: Evolua seu código JavaTDC2016SP - Kotlin 1.0: Evolua seu código Java
TDC2016SP - Kotlin 1.0: Evolua seu código Javatdc-globalcode
 
Kotlin - Evolua seu código Java (TDC-2016) Alex Magalhaes
Kotlin - Evolua seu código Java (TDC-2016) Alex MagalhaesKotlin - Evolua seu código Java (TDC-2016) Alex Magalhaes
Kotlin - Evolua seu código Java (TDC-2016) Alex MagalhaesAlex Magalhaes
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoronaldoferraz
 

Similar to Programação de Macros com LibreOffice Basic (20)

Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em Ruby
 
Aula python
Aula pythonAula python
Aula python
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2
 
Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 
Python_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfPython_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdf
 
JS FUNDAMENTOS - AULA 01.pdf
JS FUNDAMENTOS - AULA 01.pdfJS FUNDAMENTOS - AULA 01.pdf
JS FUNDAMENTOS - AULA 01.pdf
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
2006 - Linguagem VB.ppt
2006 - Linguagem VB.ppt2006 - Linguagem VB.ppt
2006 - Linguagem VB.ppt
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo Lua
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 
TDC2016SP - Kotlin 1.0: Evolua seu código Java
TDC2016SP - Kotlin 1.0: Evolua seu código JavaTDC2016SP - Kotlin 1.0: Evolua seu código Java
TDC2016SP - Kotlin 1.0: Evolua seu código Java
 
Kotlin - Evolua seu código Java (TDC-2016) Alex Magalhaes
Kotlin - Evolua seu código Java (TDC-2016) Alex MagalhaesKotlin - Evolua seu código Java (TDC-2016) Alex Magalhaes
Kotlin - Evolua seu código Java (TDC-2016) Alex Magalhaes
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Python
PythonPython
Python
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 

More from Ambiente Livre

Low Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceLow Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceAmbiente Livre
 
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.  Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics. Ambiente Livre
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataAmbiente Livre
 
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...Ambiente Livre
 
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration Ambiente Livre
 
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...Ambiente Livre
 
Metodologia Hacker de Ensino na Ambiente Livre
Metodologia Hacker de Ensino na Ambiente LivreMetodologia Hacker de Ensino na Ambiente Livre
Metodologia Hacker de Ensino na Ambiente LivreAmbiente Livre
 
Integrando o Drupal com o ECM Alfresco usando CMIS
Integrando o Drupal com o ECM Alfresco usando CMISIntegrando o Drupal com o ECM Alfresco usando CMIS
Integrando o Drupal com o ECM Alfresco usando CMISAmbiente Livre
 
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Ambiente Livre
 
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Ambiente Livre
 
TDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosTDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosAmbiente Livre
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesAmbiente Livre
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Ambiente Livre
 
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoPostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoAmbiente Livre
 
Pentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesPentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesAmbiente Livre
 
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoBig Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoAmbiente Livre
 
SEBRAETEC - Inteligência Empresarial com CRM BI ECM e BPM
SEBRAETEC -  Inteligência Empresarial com CRM BI ECM e BPMSEBRAETEC -  Inteligência Empresarial com CRM BI ECM e BPM
SEBRAETEC - Inteligência Empresarial com CRM BI ECM e BPMAmbiente Livre
 
Carreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI PentahoCarreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI PentahoAmbiente Livre
 
Suporte a Geo-Mapping no Pentaho Report
Suporte a Geo-Mapping no Pentaho ReportSuporte a Geo-Mapping no Pentaho Report
Suporte a Geo-Mapping no Pentaho ReportAmbiente Livre
 

More from Ambiente Livre (20)

Low Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceLow Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine Intelligence
 
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.  Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big Data
 
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
 
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
 
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
 
Metodologia Hacker de Ensino na Ambiente Livre
Metodologia Hacker de Ensino na Ambiente LivreMetodologia Hacker de Ensino na Ambiente Livre
Metodologia Hacker de Ensino na Ambiente Livre
 
Integrando o Drupal com o ECM Alfresco usando CMIS
Integrando o Drupal com o ECM Alfresco usando CMISIntegrando o Drupal com o ECM Alfresco usando CMIS
Integrando o Drupal com o ECM Alfresco usando CMIS
 
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
 
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
 
TDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosTDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativos
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data Lakes
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre
 
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoPostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
 
Pentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesPentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data Lakes
 
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoBig Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
 
SEBRAETEC - Inteligência Empresarial com CRM BI ECM e BPM
SEBRAETEC -  Inteligência Empresarial com CRM BI ECM e BPMSEBRAETEC -  Inteligência Empresarial com CRM BI ECM e BPM
SEBRAETEC - Inteligência Empresarial com CRM BI ECM e BPM
 
Carreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI PentahoCarreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI Pentaho
 
Suporte a Geo-Mapping no Pentaho Report
Suporte a Geo-Mapping no Pentaho ReportSuporte a Geo-Mapping no Pentaho Report
Suporte a Geo-Mapping no Pentaho Report
 

Programação de Macros com LibreOffice Basic

  • 1. Programação de Macros com LibreOffice Basic Palestrante: Marcio Junior Vieira
  • 2. Marcio Junior Vieira ● 15 anos de experiência em informática, vivência em desenvolvimento e análise de sistemas de Gestão empresarial. ● Trabalhando com Software Livre desde 2000 com serviços de consultoria e treinamento. ● Graduado em Tecnologia em Informática(2004) e pós-graduado em Software Livre(2005) ambos pela UFPR. ● Palestrante em diversos Congressos relacionados a Software Livre tais como: CONISLI, SOLISC, FISL, LATINOWARE, SFD, JDBR, Pentaho Day. ● Fundador e atual CEO da Ambiente Livre. ● Programador de Macros desde 2001
  • 3. Uma empresa de Software Livre e Software Aberto
  • 4. Sobre a Ambiente Livre ● Fundada em 2004 com foco de atuar em consultoria com software livre. ● 2009 ampliou sua soluções para atender ao mercado de gestão empresarial com software livre. ● Tem 14 soluções distintas para geração de negócios com software livre.
  • 5. Soluções ● Consultoria. ● Desenvolvimento. ● Suporte. ● Treinamento. ● Transferência de Tecnologia.
  • 7. LibreOffice ● Writer - É o editor de textos. ● Calc - Planilha eletrônica com todos os recursos para calcular, analisar, resumir e apresentar seus dados em relatórios numéricos ou em gráficos. ● Impress – Criação de apresentações multimídia eficientes. ● Draw – Desenho vetoriais, produz desde simples diagramas até ilustrações com aparência 3D. ● Math - Editor de fórmulas. Extremamente útil para trabalhos científicos ou escolares. ● Base - Permite manipular bancos de dados.
  • 8. Macros ● Uma macro é um programa escrito numa linguagem suportada pelo LibreOffice com a finalidade de automatizar tarefas. Atualmente, as linguagens suportadas são: - LibreOffice Basic; - JavaScript; - JavaBeans; - Java; - Python;
  • 9. LibreOffice Basic ● Mantém as principais características do BASIC: sintaxe, tipos de dados, operadores, comandos, funções internas e organização geral do programa. ● Permite o acesso a uma grande quantidade de objetos, com seus métodos e propriedades, específicos do LibreOffice. ● IDE (Integrated Development Environment - Ambiente de Desenvolvimento Integrado) completo: edição de código fonte, verificação de erros, criação de diálogos e gerenciamento de bibliotecas.
  • 10. Onde posso rodas as Macros
  • 13. IDE Basic - Inspecionar ● Permite visualizar valores de variáveis das macros em tempo de execução.
  • 14. IDE Basic - Chamadas ● Mostra a chamada a procedimentos da macro em tempo de execução.
  • 15. IDE Basic ● Compilar – Compila o código-fonte Basic. ● Executar o Basic – Executa uma macro até um pondo te interrupção. ● Parar Macro - termina a execução de uma macro. Somente será ativado quando a execução da macro iniciar. ● Passar ao Seguinte – Executa a macro linha a linha – passo a passo
  • 16. IDE Basic ● Ativar/desativar pontos de Interrupção - define um ponto de interrupção. ● Gerenciar Pontos de Interrupção ● Inserir código-fonte BASIC – Abre e insere o conteúdo de um arquivo Basic ( *.bas ) ● Salvar BASIC – Salva o modulo com o código-fonte em arquivo Basic ( *.bas) ● Importar caixa de dialogo
  • 17. Características ● Linguagem Interpretada ● Case-insensitive (*1)
  • 18. SubRotinas ● Uma macro executa uma subrotina; ● Subrotinas são blocos de instrução; ● Uma subrotina começa com Sub e termina com End Sub. ● Uma subrotina pode receber parâmetros.
  • 19. Linhas de Programação ● LongExpression = (Expression1 * Expression2) + _ ● (Expression3 * Expression4) + _ ● (Expression5 * Expression6) + _ ● (Expression7 * Expression8)
  • 20. Linhas de Programação a = 1 a = a + 1 a = a + 1 ● Ou a = 1 : a = a + 1 : a = a + 1
  • 21. Comentários ' este é um comentário da linha REM este é um comentário usando a chave REM <expressão> ' este é um comentário que por ' ser extenso usa três linhas para ' ser escrito.
  • 22. Marcadores ● Podem ser usados caracteres LATIN , números e underscores ( _ ) ● Não pode ser usados caracteres especiais ● O tamanho máximo é 255 Caracteres ● Não é case-sensitive ● Não é permitida acentuação
  • 23. Marcadores ● Surname ' OK ● Surname5 ' OK ● First Name ' Incorreto espaço não é permitido ● DéjàVu ' acentuação não permitida ● 5Surnames ' incorreto primeiro caracter não pode ser um numero ● First,Name ' incorreta
  • 24. Marcadores Dim [First Name] As String Dim [DéjàVu] As Integer [First Name] = "Andrew" [DéjàVu] = 2
  • 25. Tipos de Variáveis ● numéricas, ● lógicas, ● strings, ● Datas e objetos.
  • 26. Variáveis Implícitas ● a = b + c ● Option Explicit – Adicionado ao inicio das macros obriga que as variáveis sejam definidas.
  • 27. Implícitas ● MyVar = "Hello World" ' string ● MyVar = 1 ' numero ● MyVar = 1.0 ' float / decimal ● MyVar = True 'Booleana
  • 28. Varíaveis Dimencionais ● É possível definir novos tipos, que combinam tipos existentes ● Dim é a forma de declarar uma variável; Serve para declarar vetores, matrizes ou arrays. Dim x As tipo­da­variável Dim m(3,5) As tipo­da­variável ● O que é declarado é o valor final da dimensão, que começa com zero. Então, uma declaração do tipo : Dim m(3,5) As Integer Declara uma matriz de (3 + 1) x (5 + 1) inteiros.
  • 29. Variáveis Númericas ● Integer; ● Long Integer; ● Decimal; ● Single (ponto flutuante, precisão simples); ● Double (ponto flutuante, precisão dupla); ● Currency (para guardar valores monetários com alta precisão )
  • 30. SIGIL ● Variáveis também podem ser declaradas usando um sigil após o Dim. Dim x$ ' x é uma String Dim y% ' y é um Inteiro Dim z# ' z é um Double
  • 31. Variáveis ● String Dim sVar as String ● Dim a,b,c,d as String ● Boolean Dim bVar as Boolean ● Date Dim dVar as Date
  • 32. Simples Array ● Dim MyArray(3)
  • 33. Global – Privada - Constantes ● Global Global A As Integer ● Private Private C As Integer ● Constante Const A = 10 Const B As Double = 10
  • 34. Operadores Matemáticos ● + - Adição – Números , datas e strings ● & - liga strings ● - - Subtração – números , datas ● * - Multiplicação de números. ● / - Divisão de números ● - Divisão de números com um resultado inteiro (arredondado) ● MOD - operação módulo (cálculo do resto de uma divisão) Ex.: MyVar = 3 MOD 2
  • 35. Operadores de Comparação ● = Igualdade de números, datas e strings ● <> Desigualdade de números, datas e strings ● > Maior que ● >= Maior igual ● < Menor que ● <= Menor igual ● LibreBasic não suporta comparador Like - VBA
  • 36. If...Then...Else If A > 3 Then B = 2 Else B = 0 End If
  • 37. Select...Case Select Case DayOfWeek Case 1: NameOfWeekday = "Domingo" Case 2: NameOfWeekday = "Segunda" Case 3: NameOfWeekday = "Terça" End Select
  • 38. Repetição - For...Next Dim I For I = 1 To 10 ' ... Código para repetição Next I ● Incrementação automática!
  • 39. For Each Const d1 = 2 Const d2 = 3 Const d3 = 2 Dim i Dim a(d1, d2, d3) For Each i In a() '... passará 36 vezes neste loop Next i
  • 40. Do Until / Do loop Do Until A > 10 ' ... loop body Loop Do ' ... loop body Loop While A > 10
  • 41. Object ● Usado para o tratamento de estruturas complexas. ● Ao se rodar o BASIC em um documento do Writer ou Calc, o documento em si é um objeto, associado à variável ThisComponent. ● Em um documento do Calc, a totalidade das planilhas é o objeto ThisComponent.Sheets. ● Para acessar, por exemplo, uma planilha de nome "Alunos", pode-se declarar: Dim alunos As Object alunos = ThisComponent.Sheets.GetByName("Alunos")
  • 42. Estruturas ● Forma complexa de definir variáveis Type ... End Type Type Timedefutebol Nome as String V as Integer E as Integer D as Integer GP as Integer GC as Integer End Type
  • 43. Estruturas Dim MeuCampeonato(10) as New Timedefutebol MeuCampeonato(1).Nome = "BROFFICE F.C." MeuCampeonato(1).V = 54 MeuCampeonato(1).E = 1 MeuCampeonato(1).D = 0 MeuCampeonato(1).GP = 283 MeuCampeonato(1).GC = 2
  • 44. Segurança Execução de Macros ● Por padrão a execução de macros encontra-se “protegido” na instalação do LibreOffice ● Para ativar acesse o Menu Ferramentas - Opções –LibreOffice – Segurança – (Segurança de Macros...) ● ● ● ● ● ● ●
  • 45. Mensagem de alerta - Segurança
  • 46. LibreOffice Basic ● Procedimentos ● Funções ● Recursos de recursividade ● Conversões de Tipo ● Manipulação e Formatação de String ● Acesso ao sistema de arquivos/diretório ● Comandos de desvio ●
  • 47. API LibreOffice ● Serviços. ● Objetos. ● Interfaces. ● Métodos ● Propriedades
  • 48. API LibreOffice ● A chave para a criação de programas que usam a API do LibreOffice são os serviços. ● Um serviço é uma especificação de um objeto, que engloba um conjunto de interfaces e propriedades. ● Uma interface é uma coleção de métodos. ● Uma propriedade é um valor que determina uma característica de um serviço e é formada por um nome e um valor.
  • 49. Universal Network Objects (UNO) ● A variável de objeto deve ser criada e inicializado para que ele possa ser usado. CreateUnoService Dim Obj As Object Obj = createUnoService("com.sun.star.frame.Desktop")
  • 50. UNO
  • 51. VBA X LOBasic ● A estrutura de um objeto no VBA é definida pela classe à qual ele pertence ● Em LOBasic a estrutura é definida através dos serviços que ele suporta. ● Um objeto VBA é sempre atribuído a exatamente uma única classe. ● O objeto LOBasic objeto pode ter apoio de vários serviços.
  • 52. Termologia VBA X LOBasic ● VBA OOoBasic ● O objeto documento ● Workbook - SpreadsheetDocument ● Páginas Individuais ● Worksheets - Sheet
  • 53. VBA to LOBasic ● http://www.business-spreadsheets.com/vba2oo.asp ●
  • 54. Propriedades ● As propriedades são definidas por meio de uma atribuição simples: Document.Title = "{{OOo}} Treinamento OOoBasic" Document.Filename = "treina_ooobasic.odt" ● A propriedade, assim como uma variável normal, tem um tipo que define que valores ela pode registrar. ● As propriedades Filename e Title são do tipo string.
  • 55. Métodos ● Os métodos podem ser entendidos como funções que se relacionam diretamente entre objeto que fazem chamadas uns aos outros. ● O Objeto documento poderia, por exemplo, fornecem um método Save, que pode ser chamado como segue: Document.Save()
  • 56. Módulos ● com.sun.star.awt - interface do usuário ● com.sun.star.beans - acesso a propriedades ● com.sun.star.container - coleções e recipientes ● com.sun.star.document - documentos do office ● com.sun.star.drawing - desenho ● com.sun.star.text - documentos texto ● com.sun.star.sdb - banco de dados ● com.sun.star.sheet - planilhas ● com.sun.star.util - utilidade diversa
  • 57. Trabalhando com planilhas ● ThisComponent - documento em que a macro está sendo executada ● <Objeto>.Sheets.(n) - ' recebe as pastas do documento ● <Objeto>.GetCellByPosition(Coluna, Linha) ● <objetocelula>.Value 'valor na célula
  • 58. Criando Planilhas Sheet = Doc.createInstance("com.sun.star.sheet.Sprea dsheet") Doc.Sheets.insertByName("PlanilhaN", Sheet)
  • 59. Linhas e Colunas nas Planilhas ● Sheet = Doc.Sheets(0) ● FirstCol = Sheet.Columns(0) ● FirstRow = Sheet.Rows(0) ● Nota - As listas de linhas e colunas podem ser acessados através de um índice em LOBasic. Diferente do VBA, a primeira coluna tem índice 0 e não o Índice 1.
  • 60. Células Dim Doc As Object Dim Sheet As Object Dim Cell As Object Doc = Thiscomponent Sheet = Doc.Sheets(0) Cell = Sheet.getCellByPosition(0, 0) Cell.String = "Test" Cell.Value = 100 Cell.Formula = "=A1+A2"
  • 61. Gráficos Dim Rect As New com.sun.star.awt.Rectangle Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress Doc = ThisComponent Charts = Doc.Sheets(0).Charts Rect.X = 8000 Rect.Y = 1000 Rect.Width = 10000 Rect.Height = 7000 RangeAddress(0).Sheet = 0 RangeAddress(0).StartColumn = 0 RangeAddress(0).StartRow = 0 RangeAddress(0).EndColumn = 2 RangeAddress(0).EndRow = 12 Charts.addNewByName("MeuGrafico", Rect, RangeAddress(), True, True)
  • 62. Shell ● Shell(Pathname, Windowstyle, Param) ● Windowstyle 0 – Programa recebe o foco e inicia janela escondida 1 – programa recebe o foco e inicia janela normal ● Param: Parametro enviado ao programa externo. ● Paramâtros opcionais ● Exemplo Shell (“calc”)
  • 64. Banco da Dados - Base ● Connection = DataSource.GetConnection("usuariodobanco", "senhadobanco") ● ... ● Statement = Connection.createStatement() ● ResultSet = Statement.executeQuery(" COMANDO SQL DESEJADO") '
  • 65. ResultSet - Navegando nos registro If Not IsNull(ResultSet) Then While ResultSet.next MsgBox ResultSet.getString(1) Wend ● next() – próximo registro de dados. ● previous() – registro de dados anterior. ● first() – primeiro registro de dados. ● last() – último registro de dados. ● beforeFirst() – registro de dados anterior ao primeiro. ● afterLast() – próximo registro de dados após o último.
  • 67. Gravação de Macros ● Permite gravar ações no LibreOffice em Macros ● Dever ser ativados recursos experimentais ● Tem algumas limitações.
  • 69. Contatos ● e-mail: ● marcio @ ambientelivre.com.br ● http://twitter.com/ambientelivre ● @ambientelivre ● @marciojvieira ● Blog blogs.ambientelivre.com.br/marcio