Antes de começar, abra o Calc e salve o arquivo, dando o nome desejado. Salvei com o nome de "artigoDrausioHChiarotti.ods".l
Acessando o edito de macros:
Clique em: Ferramentas Macros Organizar Macros BrOffice.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.
Observe que quando você cria uma macro, ela vem com um procedimento (Sub) chamado Main.
No decorrer deste artigo, conforme as funções forem sendo criadas, o nome delas serão exibidos na caixa que está exibindo o procedimento Main.
Para aquecer, vamos exibir uma caixa de inserção de dados, em seguida uma caixa de mensagem, e para finalizar, os dados digitados serão inseridos na planilha.
Abaixo do "End Sub", do "Sub Main", vamos criar uma nova função e inserir o código, conforme abaixo:
Function BemVindo() As String
Dim strInfo As String 'variavel do tipo string
strInfo = InputBox("Digite seu nome") 'Caixa de entrada
msgbox strInfo 'Caixa de mensagem
BemVindo = strInfo 'Retorno da função
End Function
Clique em: Arquivo - Salvar
Va até sua planilha, clique em: Arquivo - Salvar
E então execute a função:
Digite em alguma célula: "=BemVindo(" e pressione enter (não feche o parêntese).
Obs.: O intuito deste artigo é mostrar como funciona a lógica, mostrando simples exemplos (asas) para que você, através destes exemplos, consiga construir suas próprias ferramentas (voar).
Volte para o editor:
Acessando o editor de macros: Clique em: Ferramentas Macros Organizar Macros OpenOffice.org Basic ...
Observe que agora serão exibidas a função Main e a função BemVindo.
Logo abaixo de "End Sub" da função BemVindo, vamos criar uma nova função chamada Lacos. Nesta função vamos fazer uma macro para ilustrar os laços If e While.
- Vamos digitar o numero inicial e final.
A macro vai verificar se o numero inicial é menor que o final, utilizando o "if", se for, avisa o usuário e termina a macro. Se estiver correto, o numero inicial será incrementado (exibido) até chegar no numero final.
Obs.: Na hora de testar a macro, coloque números pequenos ex.: Inicial = 1 e Final = 10 (senão você vai cansar de apertar o Enter).
Insira a função a seguir:
'Função para ilustrar os Laços If e While
Function Lacos() As String
Dim intNumInicial, intNumFinal, intContador As Integer
intNumInicial = Val(InputBox("Digite o numero inicial"))
intNumFinal = Val(InputBox("Digite o numero inicial"))
if intNumInicial > intNumFinal then
print "O Numero Inicial deve ser Menor que o Final"
Lacos = "Erro"
exit function 'Encerra a macro
endif
'O while vai do numero Inial até o final, imprimindo os numeros
While intNumInicial <= intNumFinal
msgbox intNumInicial 'Imprime o numero
intNumInicial = intNumInicial + 1
Wend 'Fim do While
Lacos = "Funcao executada corretamente"
End function
Obs.: Note a utilização da função Val() que converte o texto em numero.
Agora Salve, feche o editor, vá até sua planilha e execute a macro "=Lacos(" pressione Enter.
A seguir estão descritas algumas funções que você pode utilizar em seus códigos:
Funções Numéricas
- Cos : Calcula o coseno
- Sin : Calcula o seno
- Tan : Calcula a tangente
- Atn : Calcula a arctangente de um valor numérico
- Exp : Calcula o exponencial (e = 2.718282)
- Log : Calcula o log
- Sqr : Calcula a raiz quadrada
- Abs : Calcula o valor absoluto
- Sgn : Retorna -1 se se o valor passado for negativo, 1 se for positivo e 0 se for zero
Funções de String
- Asc : retorna o valor Unicode.
- Chr : Retorna uma String que contem o caráter que é especificado pelo ASCII. Ex.: Chr(13) = Enter.
- Str : Converte uma expressão numérica em uma String
- Val : Converte uma String em um valor
- LCase : Converte em minúscula
- UCase : Converte em maiúscula
- Left : Retorna caracteres da esquerda
- Mid : Retorna caracteres de uma determinada posição
- Right : Retorna caracteres da direita
- Trim : Remove o lixo (espaço em branco sobrando) de uma string
No exemplo a seguir:
1º - Vamos criar uma função que chama um procedimento.
2º - Vamos utilizar algumas funções de string para entender o funcionamento.
Vá até o editor do Basic.
Crie o função Palavra e o procedimento Recortando, conforme a seguir:
Function Palavra() As String
Recortando(InputBox("Digite uma palavra grande"))
Palavra = "Ok"
End Function
'Este é um procedimento privadoa, ele só pode ser usado aqui no Módulo
'O procedimento não retorna nada
Private Sub Recortando(strNome As String)
Dim strMsg As String
strMsg = "3 Letras da esquerda: " + Left(strNome, 3)
strMsg = strMsg + Chr(13) + "3 Letras da direita: " + Right(strNome, 3)
strMsg = strMsg + Chr(13) + "3 Letras do meio: " + Mid(strNome, 4, 3) 'Começa na 4 letra e pega + 3
msgbox strMsg 'Exibe a mensagem
End Sub
Agora vá até sua planilha e execute a macro: " =Palavra(" pressione Enter.
Observe que você chama a função Palavra. A função "Palavra" chama o Procedimento (Sub) Recortando, e passa como parâmetro a palavra digitada por você. O procedimento Recortando utiliza algumas funções do Basic para extrair partes da String.
Neste artigo engatinhamos um pouco sobre o Basic
Com estes exemplos, você pode montar cálculos, rotinas, exibir mensagem, etc.
Dê asas ao seu conhecimento e faça do Basic uma poderosa ferramenta.
Abraços
Drausio Henrique Chiarotti
Bebedouro/SP
E-mail : drausio.henrique@gmail.com