Uniwersalny kod makra dla OO i Excel

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
Lestat
Posty: 2
Rejestracja: czw wrz 11, 2014 12:00 pm

Uniwersalny kod makra dla OO i Excel

Post autor: Lestat »

Cześć,

mam takie pytanie bo pewnie wielu z Was spotkało się z tym tematem. Mam sobie plik w Excelu zawierający UserForm'y no i oczywiście kod vba który obsługuje poszczególne zdarzenia. Plik działa pod Excelem bez zarzutu, no ale wywala się na niektórych komendach w OpenOffice Calc.

Pytanie jest następujące czy jest możliwość napisania uniwersalnego kodu który działał by i tu i tu.

Zdaję sobie sprawę, że polecenia się różnią i trzeba je w razie czego napisać dwa razy, ale chodzi mi o to czy jest możliwość napisania procedury która sprawdziłaby w jakim programie otwarto plik a potem to już pójdzie gładko - jak Excel to idzie taki kod a jak OpenOffice to idzie taki kod. Nie chce tworzyć dwóch odrębnych plików jeden dla OpenOffice' a drugi dla Excela.

pozdrawiam i dzięki za pomoc
OpenOffice.ux.pl 3.4
Jan_J
Posty: 4653
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Uniwersalny kod makra dla OO i Excel

Post autor: Jan_J »

Teoretycznie się da. Ale
* idealnie byłoby korzystać z funkcji, której wynik zwraca wartość specyficzną dla danego środowiska pakietu. O ile wiem, nie ma takiej funkcji o wspólnej dla Excela i OpenOffice składni. W samym Open | Libre jest np. funkcja GetSolarVersion().
* w takim razie trzeba by liczyć na wyjątek spowodowany próbą wykonania kodu dla innego środowiska i obsłużyć go tak, by odpalał kod dla drugiego środowiska. W nieprzyzwoitym uproszczeniu, w pseudokodzie

Kod: Zaznacz cały

on error goto chybaExcel
c = thisComponent.currentController
: chybaOpenOffice
  on error goto
  obsługa OpenOffice
  goto koniec
: chybaExcel
  obsługa Excela
: koniec
* wobec koszmarnej konwencji obsługi wyjątków w Basicu (skoki) nie wróżę powodzenia
* jeszcze żeby wystarczyło napisać jedo rozwidlenie, dla funkcji inicjującej programistyczną warstwę dokumentu. Ale nie, kod będzie rozproszony: tu podpięte jedno makro, tam inne. Fakt podpięcia zarejestrowany przez GUI, czyli kodu aktywującego nie pisaliśmy sami i nie mamy na niego wpływu. Tym bardziej nie widzę szans powodzenia.

Ale mogę nie mieć racji.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Lestat
Posty: 2
Rejestracja: czw wrz 11, 2014 12:00 pm

Re: Uniwersalny kod makra dla OO i Excel

Post autor: Lestat »

Niestety doszedłem do podobnego wniosku, ale liczyłem, że może ktoś bardziej doświadczony w OO już coś takiego przerabiał.

Dzięki za pomoc
pozdrawiam
OpenOffice.ux.pl 3.4
ODPOWIEDZ