Met behulp van Call to Run VBA Macro's

Hoewel het mogelijk is om een ​​VBA-macro van een andere macro uit te voeren met behulp van de in de vorige tip aanpak, er zijn momenten waarop een dergelijke aanpak zal het gewoon niet het werk doen. In plaats daarvan moet je op zoek naar een oplossing die een fail-safe methode van het runnen van een macro maakt. Een benadering is om de opdracht Call gebruiken in VBA. Voordat u de opdracht kunt gebruiken, echter, moet u een verwijzing project toe te voegen aan de roeping project. (Projecten zijn hoe VBA verwijst naar de verzameling van VBA-modules, formulieren, enz. In een sjabloon. Bijvoorbeeld, VBA verwijst naar de sjabloon Normal als het project "Normaal".) Referenties tussen projecten zorgen voor een eenduidig ​​gedefinieerde koppeling tussen een roeping project en het project te noemen.

Bijvoorbeeld, laten we zeggen dat de MyMacro macro (degene die je wilde lopen) was een deel van de CoolDoc sjabloon. Om Call goed te gebruiken in VBA, moet u een verwijzing naar de CoolDoc.dotm project om de macro die MyMacro zal noemen. Helaas, dit is een beetje makkelijker gezegd dan gedaan als gevolg van een mogelijke "gottcha" in VBA: ". TemplateProject" Anders dan het project "Normaal", VBA geeft alle door gebruikers gemaakte sjabloon projecteert de standaard project naam van Dit kan problemen veroorzaken omdat het hebben van een unieke naam van het project is het beste als die specifiek over de macro uit te voeren. Om CoolDoc.dotm een ​​unieke naam van het project te geven, volgt u deze stappen:

  1. Zorg ervoor dat de CoolDoc.dotm template is geopend.
  2. Toon de VBA-editor door op Alt + F11.
  3. In het venster Project op de linkerbovenhoek van de VBA-editor, klik met de rechtermuisknop op de map voor de sjabloon. Sinds CoolDoc is een sjabloon, wordt de map met de naam TemplateProject (CoolDoc). Word verschijnt een contextmenu.
  4. Kies de optie TemplateProject Eigenschappen in het contextmenu. Het dialoogvenster Eigenschappen wordt weergegeven.
  5. In het veld Project Naam een ​​geschikte naam voor uw project. (CoolDoc zou fijn naam zijn, zolang als uniek.)
  6. Klik op OK. Het dialoogvenster verdwijnt en het project wordt omgedoopt tot CoolDoc.

Als u alle objecten onder CoolDoc uit te breiden, moet u een module of twee in het project te zien. (Vergeet niet; VBA-macro's worden opgenomen in modules.) Omwille van deze discussie, laten we aannemen dat MyMacro (degene die u wilt uitvoeren) is opgenomen in de hotstuff module van de CoolDoc project. (Al deze objecten namen zullen binnenkort worden gebruikt. Op dit punt moet u enkel de namen die worden gebruikt voor uw project en de module met de macro mee.)

Nu bent u klaar om daadwerkelijk toe te voegen het CoolDoc project verwijzing naar het project waaruit de macro zal worden genoemd. In dit geval, laten we aannemen dat u het zult moeten bellen vanuit een macro in de Normal-project. U kunt de verwijzing toe te voegen door de volgende stappen (in de veronderstelling dat de VBA-editor is nog open):

  1. In het venster Project op de linkerbovenhoek van de VBA-editor, selecteer de normale map.
  2. Kies Verwijzingen in het menu Extra. Het dialoogvenster Verwijzingen wordt weergegeven. (Zie figuur 1.)

    Met behulp van Call to Run VBA Macro's

    Figuur 1. Het dialoogvenster Verwijzingen.

  3. In de lijst met beschikbare referenties, vinden CoolDoc.
  4. Zorg ervoor dat het selectievakje aan de linkerkant van de optie CoolDoc is geselecteerd.
  5. Klik op OK.

Tot slot bent u klaar om de Call verklaring toe te voegen aan de macro van waaruit u wilt MyMacro noemen. De opdrachtregel zou er als volgt uitzien:

Bel CoolDoc.HotStuff.MyMacro

Deze opdrachtregel zorgt ervoor dat VBA om de gewenste macro uit te voeren, zonder enige kans op ambiguïteit. Er is iets belangrijk op te merken, echter. Het plaatsen van een verwijzing naar de CoolDoc project in Normal maakt Normale belasting een kopie van CoolDoc elke keer Word wordt gestart, zelfs als er geen documenten openen die zijn gebaseerd op de CoolDoc.dotm sjabloon.

Dit laden van CoolDoc verhoogt en voor de hand liggende vraag: Wat is het punt, in VBA, van zetten MyMacro in CoolDoc.dotm omdat het niet zal redden laadtijd of het gebruik van bronnen? Het korte antwoord is dat er geen enkel punt, anders dan CoolDoc.dotm mogelijk sprake van een meer voor de hand liggende plek om code die alleen betrekking heeft op de dingen in CoolDoc.dotm zetten. (Dit hele onderwerp van verstandige opzet van het project is veel te groot een onderwerp te bespreken in deze enkele tip.)

WordTips is uw bron voor kosteneffectieve Microsoft Word training. (Microsoft Word is de meest populaire tekstverwerker in de wereld.) Deze tip (11.412) is van toepassing op Microsoft Word 2007 en 2010. U kunt een versie van deze tip voor de oudere menu-interface van Word hier vinden: Met behulp van Call to Run VBA Macro's.