Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

kompilacja exelowej funkcji/makra

0 views
Skip to first unread message

kabaty

unread,
Jul 19, 2000, 3:00:00 AM7/19/00
to
jak mozna skompilowac makro excela napisane w vb?
po co go kompilowac?
gdzie mozna poczytac o add-in's. w ksiazkach, ktore mam pisza jak sie je
robi - nie wyjasnia sie po co. moze ktos z was wie po co robi sie addinsy i
jak je sie je uzywa?

zrobilem wlasna funkcje w excelu. poniewaz pliki ktore ona obsluguje sa
cholernie duze wiec przy otwieraniu program sobie je przelicza (na nowo
wylicza wartosci tych funkcji) no i trwa to pare minut. moje funkcje
wygladaja w taki sposob: =PERSONAL.XLS!nazwafunkcji(argument) jak to zrobic
zeby nie trzeba bylo pisac tego personal.xls tylko od raz
nazwafunkcji(argument). pomozcie mi prosze, bo sie mecze.


Robert Kowalski

unread,
Jul 19, 2000, 3:00:00 AM7/19/00
to

"kabaty" <kab...@free.poltronic.net> wrote in message
news:cAdd5.18956$pD2.3...@news.tpnet.pl...

Jeśli nie chcesz pisać nazwy pliku w którym znajduje się funkcja musisz
umieścić ją w pliku z którego robisz odwołanie.
Kompilować makr Excela nie można.

--
Pozdrówka

Robert Kowalski


Hubert Dołęga

unread,
Aug 1, 2000, 3:00:00 AM8/1/00
to
Witam!

On Wed, 19 Jul 2000 08:23:36 GMT, kabaty wrote:
>jak mozna skompilowac makro excela napisane w vb?
>po co go kompilowac?
Jak już ktoś napisał makr Excel'a nie można kompilować. Jest co prawda
w edytorze VB komenda 'Debug>Compile VBAProject' ale ma ona inne
znaczenie od powszechnie znanej definicji słowa 'kompilacja'.

Można natomiast stworzyć i skompilować bibliotekę DLL (XLL)
zawierającą funkcje, które mają być wykorzystane w Excel'u przy użyciu
języka C lub C++. Podstawową zaletą takiego rozwiązania jest to, że
tak stworzone funkcje są o wiele szybsze od funkcji tworzonych w
edytorze VB Excel'a. No i praktycznie nie ma możliwości dostania się
do kodu źródłowego takiej biblioteki.
Przykładem takiem biblioteki jest standardowy dodatek Excel'a -
Analysis ToolPak (Analys32.xll).


Szerzej proces tworzenia XLLi jest opisany w "Microsoft Excel 97
Developer's Kit", który jest dostępny także online pod adresem:
http://msdn.microsoft.com/library/officedev/office97/SFEF2.htm
a wykorzystywane pliki można ściągnąć z:
http://support.microsoft.com/support/kb/articles/Q152/1/52.asp

Warto także zwrócić uwagę na następujący artykuł z MS KB:
Q178474 - "HOWTO: Build an Add-in (XLL) for Excel Using Visual C++"
http://support.microsoft.com/support/kb/articles/q178/4/74.asp

Można także tworzyć dla Excel'a dodatki COM ale nic na ten temat nie
wiem.

>gdzie mozna poczytac o add-in's. w ksiazkach, ktore mam pisza jak sie je
>robi - nie wyjasnia sie po co. moze ktos z was wie po co robi sie addinsy i
>jak je sie je uzywa?

Nie wiem jakie książki masz. Zaproponuję Ci abyś wybrał się w wolnej
chwili np. do Empik'u i przejrzał książkę John'a Walkenbach'a "Excel
2000 Biblia" (rodział 40 "Tworzenie Własnych dodatków", str. 811-822).

Wymienione tam są następujące powody dla których warto tworzyć
dodatki:
1) Ochrona dostępu do kodu programu,
2) Metoda zmniejszenia chaosu,
3) Uproszczenie dostępu do funkcji arkuszowych,
4) Łatwiejszy dostęp,
5) Lepsza kontrola procesu wczytywania,
6) Brak pytań podczas zamykania pliku.

Ja bym jeszcze dodał brak pytań o otwarcie pliku w trybie tylko do
odczytu gdy dodatek jest używany w środowisku sieciowym jednocześnie
przez kilku użytkowników.

>zrobilem wlasna funkcje w excelu. poniewaz pliki ktore ona obsluguje sa
>cholernie duze wiec przy otwieraniu program sobie je przelicza (na nowo
>wylicza wartosci tych funkcji) no i trwa to pare minut.

Po pierwsze zastanów się czy to przeliczanie przy otwieraniu
skoroszytów jest potrzebne. Jeśli nie, ustaw przeliczanie na ręczne i
wtedy to Ty będziesz decydował kiedy formuły mają być przeliczane
(poprzez wciśnięcie klawisza F9).

Funkcje tworzone przez użytkownika są o wiele wolniejsze niż te
wbudowane (co jest widoczne zwłaszcza przy obliczeniach na dużych
zakresach). Dlatego też zanim zdecydujesz się na zbudowanie własnej
funkcji warto zastanowić się czy nie da się zbudować złożonej formuły
wykorzystującej wbudowane funkcje Excel'a.
Wykorzystanie formuł tablicowych daje naprawdę potężne możliwości.

>moje funkcje
>wygladaja w taki sposob: =PERSONAL.XLS!nazwafunkcji(argument) jak to zrobic
>zeby nie trzeba bylo pisac tego personal.xls tylko od raz
>nazwafunkcji(argument). pomozcie mi prosze, bo sie mecze.

O tym właśnie mówi p.3. Jeżeli z pliku ze swoimi funkcjami zrobisz
dodatek to będziesz z nich mógł korzystać identycznie jak z
wbudowanych funkcji Excel'a. Czyli zamiast:
'=PERSONAL.XLS!nazwafunkcji(argument)' będziesz mógł użyć:
'=NAZWAFUNKCJI(argument)'.

--
Hubert Arkadiusz Dołęga hub...@rava.com.pl
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Grupy MS Office: ms-news.pl.office i ms-news.pl.office2000
Serwer: news.security.net.pl

0 new messages