Hej jag skulle vilja anropa ett externt objekt från MS Word Macro (VBA) I den mottagande proceduren vill jag fånga upp det anropande objektet eligt Jag är inte säker på att jag förstår vad det är du vill uppnå. Rubriken säger en sak, texten en och koden en annan... =) Jag har inte kunnat skicka något objekt från word-macro till .NET. Den tolkar objektet som en sträng. Det jag vill uppnå är följande: Okej, men det funkar alltså inte att skicka ett objekt av typen Document elller Application? Det fungerade faktiskt att sätta objektet via property. Kan inte förståpr vad skillnaden är men det är löst. Man når alla event i .NET. Anropa .dll från word makro
Macro
Sub document_new
Dim oApp as new Myapp.App
oApp.GetDocumentName
End sub
I vb.net vill jag ha något enligt följande
Sub GetDocumentName
Dim oWord as word.application
Sätt från det befintliga objektet
oWord = getthemacroobject()
''Hämtar ut macronamnet
msgbox(oWord.name)
end sub
Dettaär en förenkling av det jag vill uppnå. Det går inte att skicka application objektet som ett argument ifrån makrot till vb.netSv: Anropa .dll från word makro
1. Du använder word och vill göra något från ett makro?
2. Du vill skicka applikationens namn (Word) eller dokumentets namn eller en referens till word eller vad?
3. Du vill skicka det till ett externt objekt som du har hand om.
Och slutligen; var ligger problemet?
Att skicka wordobjekt är väl enkelt, "Application" representerar word-applikationen inuti ett wordmacro.Sv: Anropa .dll från word makro
1. Jag vill öppna en .dot mall
2. I mallen ligger vba-kod som i document_new drar igång .NET-koden
3. Jag vill fånga upp det dokument-objekt jag har skapat och kunna modulera med objektet, dvs kunna skriva tillbaka till word-dokumentet.
Som det är nu öppnas en ny instans av word när man instantierar .NET modulen och jag hittar inte hur man skall nå grundobjektet som öppnade .NET modulen. I office xp går detta att köra helt i .NET med en klass som heter OfficeCodeBehind. När man öppnar dokumentet arbetar man med ett och samma objekt. Jag måste dock programmera detta för Word97 så den biten missar jag. Därav min fråga.Sv: Anropa .dll från word makro
Har du testat med stark bindning?
Funkar inte det är jag rädd att jag inte kan hjälpa dig... =/Sv: Anropa .dll från word makro
Jag sätter en property oApplication i dll:en från makrot enligt
Dim oMyObject as new Myobject.Object
Set oMyObject.oApplication = Application
Vips så kan man nå allt.
Tack för hjälpen!