Estou tentando criar uma função macro básica no calc para executar uma conversão hexadecimal em binária com mais de 10 bits. Mas eu tenho muitos problemas.
Primeiro, onde posso encontrar a documentação real? Encontrei apenas poucos exemplos que não ajudaram muito e o guia BASIC também é bastante sucinto.
E principalmente (se o primeiro não responder), como você pode ver no exemplo abaixo, estou tentando usar CONCATENATE
dentro da macro. Qual é uma função que funciona perfeitamente dentro da planilha. Mas eu recebo a seguinte mensagem de erro:
Sub-procedure or function procedure not defined.
Então, como usar essa função dentro da macro, é possível?
Aqui está o código da minha macro:
Function HEX2BINREAL(hexIn as string) as string
n = len(hexIn)
Dim binOut as string
binOut = ""
For i = 1 to n
ActChar = Mid(hexIn,i,1)
Select Case ActChar
Case "0"
binOut = CONCATENATE(binOut,"0000")
Case "1"
binOut = CONCATENATE(binOut,"0001")
Case "2"
binOut = CONCATENATE(binOut,"0010")
Case "3"
binOut = CONCATENATE(binOut,"0011")
Case "4"
binOut = CONCATENATE(binOut,"0100")
Case "5"
binOut = CONCATENATE(binOut,"0101")
Case "6"
binOut = CONCATENATE(binOut,"0110")
Case "7"
binOut = CONCATENATE(binOut,"0111")
Case "8"
binOut = CONCATENATE(binOut,"1000")
Case "9"
binOut = CONCATENATE(binOut,"1001")
Case "a", "A"
binOut = CONCATENATE(binOut,"1010")
Case "b", "B"
binOut = CONCATENATE(binOut,"1011")
Case "c", "C"
binOut = CONCATENATE(binOut,"1100")
Case "d", "D"
binOut = CONCATENATE(binOut,"1101")
Case "e", "E"
binOut = CONCATENATE(binOut,"1110")
Case "f", "F"
binOut = CONCATENATE(binOut,"1111")
End Select
next i
HEX2BINREAL = binOut
end Function
obrigado
import
função? Caso isso aconteça, você precisará importar a definição de função Concatenate para sua função antes de poder usá-la.Respostas:
O idioma da macro não tem acesso às funções da planilha, a menos que você gaste várias linhas carregando a que deseja.
Para o objetivo aqui, seria muito mais simples usar apenas o operador de concatenação Básica de
&
. Igual a:fonte
.computeFunction
6.28. Use FunctionAccess to call Calc Functions
.