Oi @JorgeThomaz, separei os melhores pedaços e juntei tudo…
Com as ajudas do @Grafeno, sempre se aprende algo novo, obrigado.
Macro principal:
sub IRAM
ImprimirRegistro
RegistrarFerias
ApagarDados
ir_nome 'retorna ao Campo: nome.
Mensagem
Salvar
end sub
As filhas:
Sub ImprimirRegistro
Dim oDoc As Object
Dim oDocFrame As Object
Dim oDispatcher As Object
'Chamar Janela Imprimir'
oDoc = ThisComponent
oDocFrame = oDoc.CurrentController.Frame
oDispatcher = createUnoService( "com.sun.star.frame.DispatchHelper" )
oDispatcher.executeDispatch( oDocFrame, ".uno:Print", "", 0, Array() )
End Sub
.
sub RegistrarFerias
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 args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "DADOS_COPIAR"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "IrLista"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "By"
args4(0).Value = 1
args4(1).Name = "Sel"
args4(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args4())
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args4())
rem ----------------------------------------------------------------------
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 = 6
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())
rem ----------------------------------------------------------------------
end Sub
.
Sub ApagarDados
Dim oDoc As Object
Dim oDocFrame As Object
Dim oDispatcher As Object
Dim oPlan As Object
Dim oIntervalo As Object
'Deletar o conteúdo do intervalo'
oDoc = ThisComponent
oDocFrame = oDoc.CurrentController.Frame
oDispatcher = createUnoService( "com.sun.star.frame.DispatchHelper" )
oPlan = oDoc.Sheets.getByName( "LICENÇA-PRÊMIO" )
oIntervalo = oPlan.getCellRangeByName( "nome" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "quinquenio" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "matricula" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "dias" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "perinicio" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "pertermino" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "retorno" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "adiasalarial" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "Substituto" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "nsubstituto")
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "idsubstituto" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "Deferido" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
oIntervalo = oPlan.getCellRangeByName( "Indeferido" )
oIntervalo.ClearContents( 5 ) 'String (1) + Values (4)'
End Sub
.
sub ir_nome
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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "nome"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
end sub
.
sub Mensagem
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 args14(0) as new com.sun.star.beans.PropertyValue
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args14())
msgbox "Licença Prêmio Registrada"
end Sub
.
sub Salvar
'Salvar o documento'
Dim oDoc As Object
oDoc = ThisComponent
oDocFrame = oDoc.CurrentController.Frame
oDoc.Store()
end sub
Arquivo teste.