OpenOffice.Org Calc Basic - programando macros para suas planilhas


Se você ainda não teve um primeiro contato com o Basic do OpenOffice.Org Calc, aconselho, antes de começar a ler este artigo, que você leia os artigos abaixo: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=4651 e http://br-linux.org/linux/ooo_calc_basic

- Criando um módulo

Antes de começar, abra o Calc e salve o arquivo, dando o nome desejado. Salvei com o nome de 'CriandoMacro.ods'.

Acessando o editor de macros: Clique em: Ferramentas – Macros – Organizar Macros – OpenOffice.org Basic

Será exibida a janela: 'Macros do BrOffice.org Basic' Nesta janela, clique sobre o nome que você salvou seu arquivo, então, clique sobre o item Standard.

Com o item Standard selecionado, clique sobre o botão 'Novo'.

Será exibida uma janela para informar o nome do novo módulo, informe: 'ModuloBrLinux'.

Então, clique sobre o modulo (ModuloBrLinux) e pressione o botão Editar.

Neste caso, a Macro que criamos, estará vinculada ao seu OpenOffice Calc e poderá ser utilizada em qualquer documento. Caso você queira criar uma macro para utilizar apenas em um determinado documento:

Na janela: 'Macros do BrOffice.org Basic' clique sobre a planilha que você criou, Standard e insira um novo módulo clicando no botão Novo, conforme citado acima.

- Procedimento CaminharSobreCelulas

Primeiramente vamos criar um procedimento chamado CaminharSobreCelulas.

Este procedimento vai possuir três parâmetros.
1º - intColuna : recebe o numero da coluna
2º - intLinha : recebe o numero da linha
3º - Valor : recebe o valor que será adicionado na célula

Veja o procedimento a seguir:

Sub CaminharSobreCelulas(intColuna, intLinha as Integer, Valor)
Dim oMovPasta as Object
Dim oCelula as Object
Dim oPasta as Object
Dim oDocumento as Object

oDocumento = ThisComponent
oPasta = oDocumento.Sheets
oMovPasta = oPasta(0)
oCelula = oMovPasta.GetCellByPosition(intColuna, intLinha)
oCelula.Value = Valor End Sub

Sobre o procedimento:
oDocumento : recebe o documento em que a macro está sendo executada
oPasta : recebe as pastas do documento
oMovPasta : recebe a pasta na qual vamos nos locomover (oPasta(0) é primeira pasta)
oCelula : recebe a posição na célula que o valor será inserido
oCelula.Value : insere o valor na célula indicada (nos parâmetros)

- Procedimento Escrever

Agora vamos criar um novo procedimento, o qual vai chamar o procedimento CaminharSobreCelulas.

Veja o código abaixo:

Sub Escrever
Dim Numero as integer

For Numero = 0 to 10
CaminharSobreCelulas(0, Numero, Numero)
Next
End Sub

O procedimento Escrever, tem um laço que vai de 0 a 10 e ao incrementar, ele chama o procedimento CaminharSobreCelulas passando como parêmetro, a coluna 0 que equivale a 'A', a linha é o Numero do laço (FOR) e o valor que será inserido na célula, é Numero, ou seja, o numero da Linha que ele está.

- Executando seu procedimento

Agora vá até sua planilha e execute o procedimento: Ferramentas - Macros - Executar Macro

Será exibida a janela Seletor de macro: Selecione: Minhas macros - Standard - ModuloBrLinux - Escrever Clique em: Executar

- Conclusão

Com estes procedimentos você pode caminhar sobre as células inserindo valores nelas.

Se ao invés de inserir valores, você quiser ler o valor da célula:

Declare uma variável, ex.: Dim ValorCelula As Integer E no lugar de oCelula.Value = Valor coloque ValorCelula = oCelula.Value

Dê asas ao seu conhecimento e faça do Basic uma poderosa ferramenta.