[SOLVED] Blokada komunikatów

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
heniek
Posty: 1
Rejestracja: pt wrz 27, 2013 10:36 am

[SOLVED] Blokada komunikatów

Post autor: heniek »

Witam Serdecznie!

W VBA stosuje się wyrażenie "Application.Displayalerts = False" do blokowania okna komunikatów na czas wykonywania pewnych poleceń. Analogicznie "Application.Displayalerts = True" odblokowuje okienka. Proszę o podanie odpowiednika w LibreOffice.
Jest mi to potrzebne do wywołania sortowania - by nie pytało o rozszerzenie zakresu, (jeżeli wykonuję sortowanie w pętli - to trwa zbyt długo)
...
args1(0).Name = "ToPoint"
args1(0).Value = "$D$5:$D$466"
disp.executeDispatch(doc, ".uno:GoToCell", "", 0, args1())
disp.executeDispatch(doc, ".uno:SortAscending", "", 0, Array())
po tym wyrażeniu wyskakuje okienko pytające o rozszerzenie zakresu, które blokuje dalsze wykonanie funkcji

z góry dziękuję za podpowiedź



Wszystko działa :) DZIĘKUJĘ i pozdrawiam :)
Ostatnio zmieniony pn wrz 30, 2013 10:39 am przez heniek, łącznie zmieniany 1 raz.
Libre Office v 4, na systemach Windows i Linux
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Blokada komunikatów

Post autor: belstar »

Poczytaj w AndrewMacro (google powie gdzie jest)

Kod: Zaznacz cały

'Author: Sasa Kelecevic 
'email:  scat@teol.net 
Sub SortRange
  Dim oSheetDSC,oDSCRange  As Object
  Dim aSortFields(0) As New com.sun.star.util.SortField
  Dim aSortDesc(0) As New com.sun.star.beans.PropertyValue

  'set your sheet name
  oSheetDSC = ThisComponent.Sheets.getByName("Sheet1")

  'set your range address
  oDSCRange = oSheetDSC.getCellRangeByName("A1:L16")
  ThisComponent.getCurrentController.select(oDSCRange)

  aSortFields(0).Field = 0
  aSortFields(0).SortAscending = FALSE

  aSortDesc(0).Name = "SortFields"
  aSortDesc(0).Value = aSortFields()
  oDSCRange.Sort(aSortDesc())
End Sub
LibreOffice 5.1.2.2 Ubuntu 16 LTS
ODPOWIEDZ