Schiavinatto, o que posso fazer momentaneamente é compartilhar a macro para copiar e colar a fórmula seguindo a lógica de B4 ser utilizada para inserir o código e A4 estar livre para execução:
sub formato
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
rem fórmula
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "=EXT.TEXTO(B4;1;3)&"+CHR$(34)+" "+CHR$(34)+"&EXT.TEXTO(B4;4;3)&"+CHR$(34)+" "+CHR$(34)+"&EXT.TEXTO(B4;7;3)"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "By"
args5(0).Value = 1
args5(1).Name = "Sel"
args5(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args5())
rem colar somente texto
dim args6(5) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVD"
args6(1).Name = "FormulaCommand"
args6(1).Value = 0
args6(2).Name = "SkipEmptyCells"
args6(2).Value = false
args6(3).Name = "Transpose"
args6(3).Value = false
args6(4).Name = "AsLink"
args6(4).Value = false
args6(5).Name = "MoveMode"
args6(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())
end sub
Para acionar a macro automaticamente por evento, o que encontrei mais próximo foi em VBA, mas não sei adaptar ao Basic, quem poder contribuir:
Public Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.EnableEvents = False
If Target.Address = "$A$1" Then
Select Case Target.Value
Case 1
MsgBox "macro1"
Case 2
MsgBox "macro2"
Case "dd"
MsgBox "macro3"
End Select
End If
Application.EnableEvents = True
End Sub
Fonte: Tomasvasquez