Szybkie otwieranie edycji makra

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
Awatar użytkownika
antekg
Posty: 18
Rejestracja: śr sie 25, 2010 6:18 pm
Lokalizacja: Warszawa

Szybkie otwieranie edycji makra

Post autor: antekg »

Zamierzałem zrobić makro, które otwiera IDE z Basic'iem z pominięciem menu OO.
Oto rozwiązanie jakie znalazłem:

Kod: Zaznacz cały

createUnoService("com.sun.star.frame.DispatchHelper").executeDispatch(ThisComponent.CurrentController.Frame, ".uno:BasicIDEAppear", "", 0, Array())
Rzeczywiście, IDE otwiera się natychmiast i w edytorze jest Module1 z "Moje makra".
Jednak chciałem od razu edytować makra zapisane wraz z bieżącym dokumentem. Po przestudiowaniu źródeł i eksperymentach doszedłem do następujący kodu:

Kod: Zaznacz cały

Dim args(2) As new com.sun.star.beans.PropertyValue
args(0).Name = "Document"
args(0).Value = ThisComponent.URL
args(1).Name = "LibName"
args(1).Value = "Standard"
args(2).Name = "Name"
args(2).Value = "Module1"

createUnoService("com.sun.star.frame.DispatchHelper").executeDispatch(ThisComponent.CurrentController.Frame, ".uno:BasicIDEAppear", "", 0, args())
Open Basic IDE via macro
https://forum.openoffice.org/en/forum/v ... ar#p340819
Możliwe jest też otwieranie do edycji okien dialogowych, ustawienia kursora edytora na wybranej pozycji, itd.
Mnie ciekawią Wasze doświadczenia z poleceniem BasicIDEAppear. Zwłaszcza to jakie są warianty użycia parametru "Document". Czy można tą metodą wczytać kod z innego dokumentu?
AOO 4.1.4 (Polish) na Windows 10 (64b) / AOO 4.1.0 na Windows Vista / LibreOffice na Mageia Linux
ODPOWIEDZ