Strona 1 z 1

Uniwersalny kod makra dla OO i Excel

: czw wrz 11, 2014 12:03 pm
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

Re: Uniwersalny kod makra dla OO i Excel

: czw wrz 11, 2014 3:47 pm
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.

Re: Uniwersalny kod makra dla OO i Excel

: czw wrz 11, 2014 6:32 pm
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