Tomek Kuchta

Tomek Kuchta Księgowy, xyz

Temat: Dzielenie przez zero bez jeżeli

Przemysław R. >robienie z tego dodatku to lekka przesada, wystarczy zwykły dll<

inaczej nie umiem - ale, jak Ci starczy chęci, będę wdzięczny za wszelkie sugestji co (w czym) i jak :-)

Przemysław R. >osoba średnio zaawansowana może mieć problem z ideologicznym pojęciem tworzenia kopii obiektu Excel-a<

nie tworzę kopii obiektu Excela
Gdy Excel ładuje dodatek automatyzacji, sprawdza, czy dodatek zaimplementował interfejs o nazwie IDTExtensibility2. Jeżli tak, Excel wywołuje metodę OnConnection zdefiniowaną w interfejsie, przekazuje wskaźnik do siebie.*

Aby użyć obiektu Excel'a (choćby Application.Volatile) we własnym dodatku automatyzacji, trzeba pobrać referencję do niego, którą można przechować w prywatnej zmiennej w klasie dodatku.

*Excel 2007Pl Programowanie w VBA J.Green, s.Bullen, B.Bovey, M.AlexanderTomek Kuchta edytował(a) ten post dnia 22.01.10 o godzinie 20:40

konto usunięte

Temat: Dzielenie przez zero bez jeżeli

ok, masz rację to nie kopia tylko referencja

kod VB bez obsługi dodatku był by o wiele krótszy i prostsszy
Option Explicit

Public Function JeżeliBłąd(odwołanie As Variant, _

Optional vArg As Variant = vbNullString)

JeżeliBłąd = IIf(IsError(odwołanie), vArg, odwołanie)

End Function


kompilujemy do DLL-a, bibliotekę linkujemy do projektu i po krzyku
a dodatek musielibyśmy integrować z Office, a to nie o to chodz ;)
Tomek Kuchta

Tomek Kuchta Księgowy, xyz

Temat: Dzielenie przez zero bez jeżeli

Eeee to to to wiem :-))

a cały interfejs i jego implementacja jest spowodowana skłądnia Function Korekta Wojciech Gardziński a dokładnie użytego Application.Volatile (True) w jej skłądni.

Chciałem wskazać co jest konieczne żeby użyć w funkcji, zapisanej w Dll, obiektu docelowej aplikacji.

konto usunięte

Temat: Dzielenie przez zero bez jeżeli

a po co tak?
skoro można zrobić event-a i obsługę błędów na poziomie samej klasy bez potrzeby mieszania do tego Excel-a

dzięki temu klasa ruszy np z accessem albo czymkolwiek innym co obsługuje model COM
Tomek Kuchta

Tomek Kuchta Księgowy, xyz

Temat: Dzielenie przez zero bez jeżeli

Ok :-)

wszystko fajnie jeżeli w kodzie funkcji wykorzystujesz tylko funkcje VB.

Ale żeby użyć Excel.Application.Volatile (pomińmy fakt że w w.w. funkcjach jest to zbędne) czy .Caller czy (czasem używane) .WorksheetFunction potrzebujesz tej referencji - nie? :-)Tomek Kuchta edytował(a) ten post dnia 22.01.10 o godzinie 21:59

konto usunięte

Temat: Dzielenie przez zero bez jeżeli

oczywiście że potrzebujesz tej referencji, tyle że w ww. ćwiczeniu jest ona absolutnie zbędna, bo nie ma potrzeby korzystania z dobrodziejstw Excel-a

bo moim zdaniem powinno być tak że jak się robi bibliotekę DLL to nie ładuje się do niej czegoś co swobodnie można załatwić poza. człowiek później robi jakieś potworki tylko - ale to moje subiektywne zdanie



Wyślij zaproszenie do