A linguagem das macros no BrOffice / Openoffice e aquela contida em macros do MS Office é muito semelhante. As poucas funções que deixam de ter suporte dá pra criar na mão, a exemplo do InStrRev... Aos poucos estou adaptando minhas macros para o OpenOffice e estão funcionando muito bem e até bem mais rápidas.
Há algumas coisas que aprendi na unha, para quem for fazer conversão de macros do Visual Basic do Ms-Office para o OpenOffice... Primeiro, em Functions e Subs que recebem valores, deixe um espaço " " antes do "(", pois do contrário não funciona. Exemplo no OpenOffice:
Function Teste (variavel1, variavel 2 etc). Já no MS-Office seria assim
Function Teste(variavel1, variavel2 etc). Notar o espaço após o nome da Função (ou Sub) para o OpenOffice.
Ainda, geralmente, as Functions e as Subs alteram os valores das variáveis de origem, ainda que o nome da variável herdada seja diferente. Exemplo:
Sub Main
a = 1
MudaVariavelOrigem (a)
' o valor de a foi alterado pela Sub, conforme explicado acima... confira com um MsgBox
End Sub
Sub MudaVariavelOrigem (ValorRecebido as integer)
ValorRecebido = ValorRecebido * 2
' Obs: a mesma alteração se aplica para Functions, demonstrando serem as variáveis ByRef (tentei colocar ByVal, mas não funcionou)...
' Por isso, usei uma outra variável para receber o valor recebido, como, por Exemplo,
' b = Valor Recebido
' para continuar a conta com b... Deve ter um jeito mais fácil, mas foi o que consegui até agora...
End Sub
Outra coisa que notei é o seguinte... a linguagem Python, a qual estou aprendendo agora é um canivete suiço no linux... Ela é simples para aqueles que sabem Visual Basic e, ainda, melhor e mais fácil... Essa linguagem roda no Openoffice, em outros aplicativos e até diretamente no terminal ou, ainda, via nautilus...
Aos membros acima, informo que após verem a performance das macros no linux, vão se surpreender positivamente... O único problema que acho é a carencia de livros de programação em Visual Basic no BrOffice / OpenOffice ou outra mais abrangente em Python, especialmente em portugues.
Aliás, caso alguém saiba de algo para indicar, aceito sugestões (Visual Basic / Python).
Finalmente, aos amantes do Access do Ms-Office, apresento o fantástico Kexi (que vem no pacote KOffice). No quesito banco de dados, creio que o kexi é muito melhor que o Openoffice Base, pois as tabelas do OpenOffice Base exigem chave primária para serem editadas, já o kexi é realmente um clone do MS-Access e o melhor, caso se instale o pacote da lingua portuguesa do KOffice, ele fica automaticamente todo em portugues... Ainda, importante dizer que não é necessário instalar o resto do pacote KOffice, pode-se instalar apenas o Kexi via Gerenciador Synaptic e a tradução do Koffice para o portugues.
Para aqueles que estão migrando, como eu, espero que essas poucas dicas sejam uteis e lembro, caso conheçam livros de Visual Basic no OpenOffice ou, ainda, Python em Portugues, agradeço por indicações.
Um grande abraço,
Alexandre