Het controleren en onjuiste projectverwijzingen in de Visual Basic Editor in Word verwijderen


Samenvatting


In Microsoft Word Visual Basic Editor, kunt u verwijzingen aanmaken naar objectbibliotheken of code in een extern document of sjabloon. Hiermee kunt u externe procedures aanroepen als ze zijn geschreven in uw eigen project. Houd er rekening mee dat er problemen kunnen optreden als de bestanden worden verplaatst of beschadigd raken. Macro opslag fouten kunnen optreden en het dialoogvenster verwijzingen kunt ontoegankelijk worden.

In dit artikel wordt beschreven hoe om verwijzingen naar andere Microsoft Visual Basic for Applications (VBA)-projecten te maken, hoe om te controleren of de verwijzingen kloppen en programmatisch onjuiste verwijzingen verwijderen.

Voorkennis is vereist:
  • Fundamentele VB/VBA programmeren
  • Basisvaardigheden voor Microsoft Office
  • Vaardigheden in Windows Verkenner
In dit artikel wordt u de Visual Basic Editor gebruiken om aan te tonen hoe:
  • Een verwijzing maken naar uw eigen aangepaste VBA-project.
  • Code schrijven om te controleren of de verwijzing bestaat.
  • Schrijf code om een onjuiste verwijzing te verwijderen.
  • Schrijf de code terug de verwijzing wilt toevoegen.

De beveiligingsmachtigingen voor het Project instellen

  1. In Microsoft Word in het menu Extra , wijs Macroaan en klik vervolgens op beveiliging om het dialoogvenster beveiliging weer te geven.
  2. Op het tabblad Beveiliging , het beveiligingsniveau instellen op Normaal, zodat u de keuze van uw macro's inschakelen.
  3. Controleer of het selectievakje toegang tot Visual Basic-Project vertrouwen is ingeschakeld op het tabblad Betrouwbare bronnen . Hiermee kunt u VBA-code gebruiken in uw projecten.
  4. Klik op OK.
Ga als volgt te werk in Word 2007:
  1. Op het tabblad ontwikkelaars klikt u in de groep programmacode op Macrobeveiliging .
  2. Klik in het linkerdeelvenster op Instellingen voor macro's.
  3. Klik op alle macro's inschakelenen schakel het selectievakje toegang tot het objectmodel van het VBA-project vertrouwen in het rechterdeelvenster.
  4. Klik op OK.

De verwijzing naar het Project maken

U maakt een project met een procedure en maak vervolgens een verwijzing naar het project van een nieuwe VBA-project.

Het DLL-bestand maken:
  1. Maak een nieuw document in Microsoft Word en vervolgens opslaan als een sjabloon door deze stappen te volgen:
    1. Klik in het menu bestand op OpslaanAls om het dialoogvenster OpslaanAls weer te geven.

      Opmerking In Word 2007, klikt u op de Microsoft Office-knopen klik vervolgens op OpslaanAls.
    2. Refmewijzigen in het vak bestandsnaam .
    3. Het vak Opslaan als type te wijzigen
      Documentsjabloon (* .dot).


      Opmerking Wijzigen in Word 2007, het vak bestand opslaan als
      Word 97-2003-sjabloon (* .dot)
    4. De sjabloon opslaan in de map "C:\TestFiles" is (u moet deze map maken als deze nog niet bestaat).
  2. Druk op ALT + F11 om de Visual Basic-Editor te starten.
  3. Selecteer in de Projectverkenner TemplateProject (Refme). Klik op Module in het menu Invoegen. Hiermee voegt u een nieuwe module met de naam 'Module1' aan het project.
  4. Typ in het venster Code de volgende code voor Module1:
    Public Sub CallMe()

    Msgbox "Hello World!"

    End Sub
  5. Klik op de sub-procedure, en klik vervolgens op Sub/UserForm uitvoerenin het menu uitvoeren . Er verschijnt een berichtvenster 'Hello World!'. Sluit het berichtvenster.
  6. Klik in het menu Beeld op Microsoft Word (ALT + F11) om terug te keren naar Word.
  7. Sla in Word en sluit u het sjabloonbestand.
De verwijzing maken:
  1. Maak een nieuw document in Word, en vervolgens opslaan als 'Myproj.doc' in de map 'C:\TestFiles'.
  2. Start de Visual Basic Editor (druk op ALT + F11). Selecteer in de Projectverkenner het Project (Myproj).
  3. Een verwijzing maken naar de sjabloon Refme als volgt:
    1. Klik op verwijzingenin het menu Extra .
    2. Klik op Bladerenin het dialoogvenster verwijzingen .
    3. Stel in het dialoogvenster Add Reference bestandstype op Word-documenten (* .doc; * .dot).


      Opmerking In Word 2007, zodanig dat de bestanden van het type Word-documenten ('s *.docm; *.dotm.doc; * .dot).
    4. Selecteer de sjabloon Refme in de map 'C:\TestFiles'.
    5. Klik op openen om terug te keren naar het dialoogvenster verwijzingen .
    6. Klik op OK om terug te keren naar de Visual Basic Editor.
  4. Vouw in de Projectverkenner het Project (Myproj). Vouw verwijzingen en controleer of de lijst bevat verwijzing naar Refme.dot.
  5. Klik op de Module een nieuwe module in het project worden ingevoegd in het menu Invoegen . De volgende code in de module de procedure CallMe schrijft:
    Public Sub Test()

    Call CallMe

    End Sub
  6. Test de procedure om te controleren of deze werkt en ga vervolgens terug naar Word.
  7. Opslaan en sluit het bestand en sluit vervolgens Word af.

Programmatisch controleren de Naslaggids voor Project

Nu u opzettelijk verbroken referentie en controleer vervolgens of de juistheid van de verwijzing.

De verwijzing verbreken:
  1. In Windows Verkenner (met de rechtermuisknop op het menu Start en klik vervolgens op verkennen in het snelmenu), wijzig de naam van de sjabloon Refme.dot in 'Refme.old'. U doet dit door met de rechtermuisknop op Refme.dot en klik op naam wijzigen in het snelmenu. Typ refme.old en druk op ENTER.
  2. Terug naar Word en Open het document 'Myproj.doc'.
  3. Omdat het beveiligingsniveau op Gemiddeldis ingesteld, wordt u gevraagd of u wilt in- of uitschakelen van macro's in dit document. Klik op macro's inschakelen.

    Opmerking Dit probleem treedt niet op in Word 2007.
  4. Start de Visual Basic-Editor (druk op ALT + F11) en voer vervolgens de testprocedure. Klik op OK wanneer het volgende foutbericht van compileren:
    Project of bibliotheek niet kunt vinden
  5. U moet in de onderbrekingsmodus (is er een gele band op de regel Sub). Klik op opnieuw instellen om terug te keren naar de ontwerpmodus in het menu uitvoeren .
  6. Klik in het menu Extra op verwijzingen om het dialoogvenster verwijzingen weer te geven. U ziet dat het Refme.dot is gemarkeerd als 'ontbrekende'.
  7. Klik op Annuleren om af te sluiten in het dialoogvenster verwijzingen .
Programmatisch controleren op ontbrekende verwijzingen:
  1. Selecteer in de Projectverkenner het Project (Myproj).
  2. Klik op verwijzingen in het menu Extra en vervolgens een verwijzing naar de Microsoft Visual Basic for Applications Extensibility 5.3 bibliotheek toevoegen. Deze bibliotheek bevat objecten die naar de VBA-projecten verwijzen.
  3. Voordat u op OKklikt, moet u controleren dat de nieuwe verwijzing wordt toegevoegd boven de "ontbrekende" verwijzing. Klik verschillende keren op de pijl om de prioriteit wijzigen en verplaatsen van de nieuwe verwijzing boven de verwijzing 'ontbrekende'.
  4. Maak een nieuwe Sub-procedure met de naam 'CheckReference' en schrijf vervolgens de volgende code in de module:
    Sub CheckReference()

    Dim vbProj As VBProject ' This refers to your VBA project.
    Dim chkRef As Reference ' A reference.

    ' Refer to the activedocument's VBA project.
    Set vbProj = ActiveDocument.VBProject

    ' Check through the selected references in the References dialog box.
    For Each chkRef In vbProj.References

    ' If the reference is broken, send the name to the Immediate Window.
    If chkRef.IsBroken Then
    Debug.Print chkRef.Name
    End If

    Next

    End Sub
  5. Klik in het menu Beeld op Venster Direct (CTRL + G) opent u het venster Direct.
  6. De CheckReference-subprocedure uitvoeren. De naam en locatie van het bestand wordt weergegeven in het venster Direct.

Verwijderen en opnieuw in de Naslaggids voor Project

In deze sectie wordt beschreven hoe via een programma verwijderen en opnieuw in een verwijzing.

Een ontbrekende verwijzing verwijderen:
  1. In de CheckReference-subprocedure de Debug.Print -instructie als volgt te wijzigen. Hiermee verwijdert u de ontbrekende verwijzingen uit het project:
       vbProj.References.Remove chkRef
  2. Voer de procedure CheckReference.
  3. Controleer of de verwijzing is verwijderd in het dialoogvenster verwijzingen (Klik op verwijzingenin het menu Extra ).
Herstellen (toevoegen) een verwijzing:
  1. In Windows Verkenner de naam van Refme.old terug naar 'Refme.dot'.
  2. Terug naar het Myproj-project in de Visual Basic Editor in Word.
  3. Schrijf een nieuwe Sub-procedure met de naam 'AddReference' als volgt:
    Sub AddReference()

    Dim vbProj as VBProject

    Set vbProj = ActiveDocument.VBProject
    vbProj.References.AddFromFile "C:\TestFiles\Refme.dot"

    End Sub
  4. Voer de procedure AddReference.
  5. Controleer of de verwijzing naar Refme.dot is opnieuw ingesteld. U kunt verwijzingen bekijken in Project Explorer of wanneer u klikt op verwijzingen in het menu Extra .

Problemen oplossen

  • Als u verwijzingen naar het oorspronkelijke bestand van een toepassing, moet u de extensie van het oorspronkelijke bestand behouden. Anders kan er problemen optreden wanneer u de verwijzing. Overzicht van deze problemen wilt maken van een verwijzing naar het bestand Refme.old in plaats van het bestand Refme.dot in het voorbeeld eerder in dit artikel.
  • Als u met een geregistreerde component werkt, kunt u een GUID-verwijzing aan het project toevoegen. Gebruik de methode AddFromGUID om dit te doen.