Hvordan kan jeg gjøre bruk av .NET gjenstander fra i Excel VBA?

stemmer
7

Kan VBA-kode instantiate og bruk NET gjenstander? Den spesifikke klassen jeg er interessert i er System.IO.Compression.GZipStream.

For informasjon GAC er .NET global Assembly Cache

Publisert på 07/10/2008 klokken 15:08
kilden bruker
På andre språk...                            


2 svar

stemmer
3

VBA kan gjøre bruk av NET gjenstander som er utsatt for COM. Jeg vet ikke om GZipStream er eller ikke, men jeg vil gjette at det ville være lettere for deg å opprette en egen NET objekt som er en wrapper rundt funksjonaliteten GZipStream som du vil bruke. Du kan deretter utsette objekt til COM, og deretter VBA bør gjøre bruk av den.

Legg merke til at forsamlingen som inneholder COM-objekt (og sin type bibliotek også, tror jeg, selv om jeg er ikke positivt på det) må enten være i samme katalog som hoved kjørbar (winword.exe, eller hva) eller i GAC. Dette er på grunn av CLR er lasting regler for forsamlinger.

Svarte 07/10/2008 kl. 15:18
kilden bruker

stemmer
10

Jeg tror Andy spikret dette svaret, men jeg er ikke sikker på at aspektet angående CLR lasting regler er helt riktig.

.NET Assembly som holder klassen fungerer som wrapper for GZipStream ville bli utsatt for COM og registrert akkurat som alle andre COM prosjekt bibliotek og klasse. I denne forbindelse vil VBA finne plasseringen av COM-eksponerte NET montering via registeret. Det kan være smart å sette menigheten i GAC, slik at den ikke kan bevege seg (siden han flyttet forsamlingen ville ugyldig registret info), men så lenge register peker til riktig sted, bør det være i orden.

En god nybegynner tutorial om emnet er her

Håper dette hjelper...

Svarte 07/10/2008 kl. 15:40
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more