Estava fazendo uns testes de Function para acionar Macros e deparei com o seguinte problema/erro:
Tenho como ponto inicial as células A3 e B3 e a function TESTE
Function TESTE( a, b )
TESTE = a + b
End Function
OK funcionando =TESTE(A3;B3)
Tenho também esta macro SOMAR, soma A3+B3 na célula C3 ( ela cola a fórmula e converte para numero, isso não é importante é só para teste)
Sub SOMAR
Dim document As Object, dispatcher As Object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "Plan1.C3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "StringName"
args3(0).Value = "=A3+b3"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
Dim args2(5) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Flags"
args2(0).Value = "SVD"
args2(1).Name = "FormulaCommand"
args2(1).Value = 0
args2(2).Name = "SkipEmptyCells"
args2(2).Value = false
args2(3).Name = "Transpose"
args2(3).Value = false
args2(4).Name = "AsLink"
args2(4).Value = false
args2(5).Name = "MoveMode"
args2(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
end Sub
Também funcionando se acionada diretamente.
Mas se inserir a chamada da macro na função:
Function TESTE( a, b )
TESTE = a + b
SOMAR
End Function
Ao alterar A3 ou B3 gera este erro:
Lembrando que nada esta protegido, alguém saberia dizer o motivo ?