Wielkie dzięki.
Złożyłem to w całość, usunąłem zdublowane oDocument=this.component, podstawiłem cDirectoryURL.
Ale jednak dostaję "Łącze nie mogło zostać zaktualizowane".
Pomyślałem że to raczej chyba powinno być w użyciu sPath, wtedy calc zaczął mnie informować o tym że makra nie można uruchomić ze względu na poziom zabezpieczeń

Po zredukowaniu poziomu bezpieczeństwa, niestety "Łącze nie mogło zostać zaktualizowane".
Użyłem takiej postaci ostatecznie.
Kod: Zaznacz cały
sub r2
oDocument = ThisComponent
oSelection = oDocument.getCurrentController().getSelection()
oAddress = oSelection.getCellAddress()
oFileDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
oFileDialog.appendFilter( "*.HTML","*.html")
oFileDialog.appendFilter( "*.*", "*.*" )
iAccept = oFileDialog.Execute()
If iAccept = 1 Then 'jeżeli zaznaczono plik i naciśnieto "Otwórz"
oDocument.AreaLinks.insertAtPosition(oAddress,oFileDialog.Files(0),"HTML_pawel","calc_HTML_WebQuery","0 0")
end if
end sub
Abo za bardzo obciąłem albo jednak wywoływanie calc_HTML_WebQuery nie działa tak jak uno:InsertExternalDataSource.
-----------------------
Ok wiem że adres oFileDialog.Files(0) ma złą postać bo jest w zapisie file:///dysk:/folder/plik. A potrzebuję dysk:\folder\plik.
Właściwa postać to sPath. Ale nie łapie.
------------------------
DZIAŁA!
Kod: Zaznacz cały
oDocument.AreaLinks.insertAtPosition(oAddress,oFileDialog.Files(0),"HTML__pawel","calc_HTML_WebQuery","0 0")
Jak najbardziej ma być oFileDialog.Files(0).
Ale dopiero po sprawdzeniu postaci łącz w pliku (menu edycja > łącza) zauważyłem że w nazwie zakresu danych maja być dwa pokreślenia.
Tabelka w pliku html nazywa się "pawel" (zarówno id jak i name dla bezpieczeństwa). Wskazując ją ręcznym wstawianiem zewnętrznych danych nie zwracałem na to uwagi - po prostu był zakres który wskazywałem i miałem dane.
W makro musiało być zapisane w postaci pierwszej.
I teraz mam makro importujące

Kłaniam się nisko.