@SpartanBR
Para os casos de OptionButton, ele traz 02 estados 0 = não ativo e 1 = ativo
https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Control_Elements#Option_Buttons
Para que seu OptionButton retorne ativo como a última vez fechado, o Calc precisa de um “start” de informação, ou seja, como o @schiavinatto disse, alguma célula deve conter alguma informação, para a programação avaliar e ativar o OptionButton necessário.
Para que o OptionButton fique ativo, o comando é este:
oDialog1.GetControl("Nome_do_OptionButton").Model.State = 1
É importante que cada OptionButton tenha seu nome particular.
Para jogar a informação do OptionButton na planilha, o comando é este:
REM ***** BASIC *****
Global oDialog1 as Object
Sub Dialog1Show
DialogLibraries.LoadLibrary( "Standard" )
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
oDoc = ThisComponent
oDialog1.SetPosSize(500, 100, 600, 200, 17)
oDialog1.Execute()
oDialog1.Dispose()
End Sub
rem>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Sub Lancar
Dim oDoc, oSheet as Object
Dim Opt001, Opt002 as Long
Dim nOpt001, nOpt002 as String
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName("Planilha1")
Opt001 = oDialog1.GetControl("opt001").Model.State
Opt002 = oDialog1.GetControl("opt002").Model.State
If oDialog1.GetControl("opt001").Model.State = 1 Then
nOpt001 = oDialog1.GetControl("opt001").Model.Label
Else
nOpt001 = "nulo"
End If
If oDialog1.GetControl("opt002").Model.State = 1 Then
nOpt002 = oDialog1.GetControl("opt002").Model.Label
Else
nOpt002 = "nulo"
End If
oSheet.getCellRangebyName("A1").value = Opt001
oSheet.getCellRangebyName("A2").value = Opt002
oSheet.getCellRangebyName("B1").string = nOpt001
oSheet.getCellRangebyName("B2").string = nOpt002
End Sub
Você pode fazer um jogo de comandos “If Else End IF” para verificar se o State do OptionButton é 1 ou 0 e retornar a Label dele para uma variável se preferir. Após isso, a informação deve ser lançada em alguma célula na planilha. Lembrando que para cada Option, deve ter uma célula para cada.