Toon posts:

[vba] code includen in word macro?

Pagina: 1
Acties:
  • 118 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb hier een aantal bestanden die allemaal dezelfde code gebruiken. Nu lijkt het mij erg handig als ik op een of andere manier die code in een bestand op de server kan zetten en dan vanuit de macro deze code kan aanroepen. anders moet ik in al die bestanden die code gaan zitten plakken. Stel dat er iets verandert, ben ik weer ik weet niet hoe lang bezig om dit te wijzigen. Is zoiets mogelijk met vba? Ik heb even gezocht, maar ik krijg het idee dat dit standaard niet mogelijk is. Miss heeft iemand hier iets op gevonden?

  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
Naar mijn weten is het onmogelijk in VBA...

Maar als iemand weet hoe het moet zal hij/zij ook mij daar gelukkig mee maken...

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


Verwijderd

Een directe Include is niet mogelijk.

Twee manieren om dit soort herbruikbare code te maken zijn (1) een DLL met functies die je vaak gebruikt of, (2) d./m.v. het scriptcontrol van VB een soort van macro ondersteuning aan je eigen code toevoegen.

Verwijderd

Topicstarter
Verwijderd schreef op 27 april 2004 @ 15:37:
Een directe Include is niet mogelijk.

Twee manieren om dit soort herbruikbare code te maken zijn (1) een DLL met functies die je vaak gebruikt of, (2) d./m.v. het scriptcontrol van VB een soort van macro ondersteuning aan je eigen code toevoegen.
misschien kan ik op een andere manier een macro in een sjabloon zetten? Als ik op een of andere manier een macro in een dot file kan "duwen" ben ik er ook natuurlijk..

[ Voor 23% gewijzigd door Verwijderd op 27-04-2004 15:41 ]


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Word sjabloon met je standaard functies in je startup directory van Word zetten (zodat hij als add-in geladen wordt bij het starten can Word. Vervolgens in je VBA project een reference zetten via tools|references naar dat VBA project en voila je kan alle functies uit het add-in sjabloon aanroepen. :)

It’s nice to be important but it’s more important to be nice


Verwijderd

Topicstarter
JonkieXL schreef op 27 april 2004 @ 15:40:
Word sjabloon met je standaard functies in je startup directory van Word zetten (zodat hij als add-in geladen wordt bij het starten can Word. Vervolgens in je VBA project een reference zetten via tools|references naar dat VBA project en voila je kan alle functies uit het add-in sjabloon aanroepen. :)
klinkt goed..gelijk testen

Verwijderd

Topicstarter
JonkieXL schreef op 27 april 2004 @ 15:40:
Word sjabloon met je standaard functies in je startup directory van Word zetten (zodat hij als add-in geladen wordt bij het starten can Word. Vervolgens in je VBA project een reference zetten via tools|references naar dat VBA project en voila je kan alle functies uit het add-in sjabloon aanroepen. :)
Dit heb ik dus geprobeerd maar ik loop nog tegen wat problemen. De situatie is nu als volgt:

Ik heb op de server een directory met daarin de sjablonen die gebruikt worden. Ik heb ook op de server een sjabloon gemaakt waarin dus via de functie autonew() (wordt met deze naam automatisch gestart bij openen van sjabloon). Alle clients krijgen via een registersleutel een verwijzing naar deze startupfolder. Als je dit terugzoekt via "bestandslocaties" in Word, dan werkt dat inderdaad goed. Als ik het sjabloon startup.dot zelf op de server opzoek en open dan wordt direct het script uitgevoerd. Tot zover dus alles koek en ei. Maar dan...

Nu heb ik dus die map met alle sjablonen op de server staan. Hierin moet ik volgens JonkieXL een reference (verwijzing) aanmaken, klinkt logisch. Ik open een sjabloon, alt+f11. Ik ga naar "Extra" -> "verwijzing" -> klik op de knop bladeren, blader naar het pad waar het bestand startup.dot staat. Selecteer de optie " alle bestanden *.*" bij bestandstypen. Startup.dot wordt weergegeven -> klik erop en VOILA, daar is een nieuwe verwijzing in mijn lijstje. vinkje dat erbij staat staat aan. De verwijzing is door Word "TemplateProject" genoemd. Ik sla het sjabloon op op de server. Wanneer ik nu een nieuw document open en klik op het daarnet opgeslagen sjabloon wordt er dus geen macro uitgevoerd. Ik heb de macrosecurity al op laag gezet. Iemand ideeen? dit moet toch kunnen werken?

Windows XP en Office XP, mocht je dit willen weten

Moet ik soms in al die sjablonen na het aanmaken van de verwijzing, nog in visual basic de functie uit het startup.dot AANROEPEN ofzo?

[ Voor 10% gewijzigd door Verwijderd op 07-05-2004 13:24 ]


Verwijderd

Topicstarter
:'( dit moet toch een bekend iets zijn? Ik wil gewoon een macro uitvoeren elke keer dat er een sjabloon wordt geopend.

Ik heb inmiddels geprobeerd of ik deze macro niet gewoon in normal.dot kan opnemen, maar dit wil ook niet lukken. zodra ik het bestand normal.dot noem werkt de macro niet meer...getting desperate here...

[ Voor 48% gewijzigd door Verwijderd op 07-05-2004 14:49 ]


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Verwijderd schreef op 07 mei 2004 @ 13:07:
[...]

Moet ik soms in al die sjablonen na het aanmaken van de verwijzing, nog in visual basic de functie uit het startup.dot AANROEPEN ofzo?
Yep, dat is de manier.
Die AutoNew functie in Startup.dot wordt alleen gestart als je op basis van Startup.dot een nieuw document aanmaakt en doet niets als er gewoon gelinkt wordt naar Startup.dot.
In elke template moet je dus in ieder geval een AutoNew functie zetten die de standaard functie in je Startup.dot template aanroept.

Verwijderd

Topicstarter
hmm maar als ik die code automatisch wil laten uitvoerne dan moet ik dus een autonewfunctie gebruiken. dit betekend dat ik dubbele namen heb. Ik moet dan denk ik het macro in startup.dot hernoemen naar sub printerscript() ofzo en dan in alle sjablonen de volgende code opnemen
code:
1
2
3
sub autonew()
   printerscript
end sub


en moet ik dan ook nog een reference aanmaken of is het plaatsen van startup.dot in de office startup folder voldoende? Volgens mij is een ref dan niet meer nodig..ik zal hier lokaal eens wat testen..zou wel ideaal zijn, want om nou 50x een scriptin een sjabloon te zetten is een drama..stel je voor dat ze een nieuw sjabloon gaan maken ofdat er iets aan de instellingen van het script moet worden verandert..nee dat wil je niet...


/edit: getest met en zonder reference, maar dit werkt dus niet...sub or function not defined..ofwel hij kan de functie niet vinden :S

[ Voor 9% gewijzigd door Verwijderd op 14-05-2004 10:17 ]


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Je moet de code in je algemene sjabloon dan wel uit het document object halen en in een losse VBA module zetten en als Public Sub definieren.

Hoe ziet je code er nu dan precies uit en in welke objecten (document, modules) staan ze?
Pagina: 1