Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

IN QUESTA ATTIVITÀ

Riepilogo

Nell'Editor di Visual Basic di Microsoft Word, è possibile creare riferimenti a librerie di oggetti o di codice in un documento esterno o un modello. In questo modo è possibile chiamare le routine esterne come se fossero state scritte nel progetto. Si noti che possono verificarsi problemi se i file di riferimento vengono spostati o danneggiati. Possono verificarsi errori di archiviazione di macro e la finestra di dialogo riferimenti può diventare inaccessibile.

In questo articolo viene illustrato come creare riferimenti a altri Microsoft Visual Basic, Applications Edition Edition (VBA), come verificare che i riferimenti siano corretti e come rimuovere i riferimenti non corretti a livello.

Conoscenza necessaria:

  • Abilità di programmazione VB/VBA

  • Competenze di base Microsoft Office

  • Competenze di Esplora risorse

In questo articolo, si utilizza l'Editor di Visual Basic per illustrare come:

  • Creare un riferimento al progetto VBA personalizzato.

  • Scrivere codice per verificare l'esistenza del riferimento.

  • Scrivere codice per rimuovere un riferimento errato.

  • Scrivere il codice per aggiungere nuovamente il riferimento.

Impostare le autorizzazioni di sicurezza del progetto

  1. In Microsoft Word, dal menu Strumenti , scegliere Macroe quindi fare clic su protezione per visualizzare la finestra di dialogo protezione .

  2. Nella scheda Livello di protezione , è possibile impostare il livello di protezione su medio, in modo che è possibile scegliere di attivare le macro.

  3. Nella scheda Fonti attendibili , verificare che sia selezionata la casella di controllo Considera attendibile l'accesso al progetto Visual Basic . In questo modo è possibile utilizzare codice VBA nei progetti.

  4. Fare clic su OK.

In Word 2007, attenersi alla seguente procedura:

  1. Nella scheda Developer , fare clic su Protezione Macro nel gruppo di codice .

  2. Nel riquadro sinistro, fare clic su Impostazioni Macro.

  3. Nel riquadro di destra, fare clic su Attiva tutte le macroe quindi fare clic per selezionare la casella di controllo Considera attendibile l'accesso al modello a oggetti dei progetti VBA .

  4. Fare clic su OK.

Creare il riferimento al progetto

Si crea un progetto che contiene una routine e quindi creare un riferimento a tale progetto da un nuovo progetto VBA.

Per creare il file di libreria:

  1. Creare un nuovo documento in Microsoft Word e quindi salvarlo come modello attenendosi alla procedura seguente:

    1. Scegliere Salva con nome per visualizzare la finestra di dialogo Salva con nome dal menu File .

      Nota: In Word 2007, fare clic sul Pulsante Microsoft Officee quindi fare clic su Salva con nome.

    2. Nella casella Nome File per Refme.

    3. Nella casella Salva come tipo di
      Modelli di documento (* dot).


      Nota: Nella finestra di Word 2007, nella casella Salva come tipo a
      Modello di Word 97-2003 (* dot)

    4. Salvare il modello nella cartella "C:\TestFiles" (è necessario creare questa cartella se non esiste).

  2. Premere ALT + F11 per avviare l'Editor di Visual Basic.

  3. In Esplora progetti, selezionare TemplateProject (Refme). Scegliere modulodal menu Inserisci . Aggiunge un nuovo modulo denominato "Module1" al progetto.

  4. Nella finestra del codice, digitare il seguente codice di Module1:

    Public Sub CallMe()

    Msgbox "Hello World!"

    End Sub
  5. Scegliere la routine sub e quindi scegliere Esegui Sub/UserFormdal menu Esegui . Verrà visualizzata una finestra di messaggio "Hello World!". Chiudere questa finestra di messaggio.

  6. Dal menu Visualizza , fare clic su Microsoft Word (ALT + F11) per tornare a Word.

  7. In Word, salvare e chiudere il file modello.

Per creare il riferimento:

  1. In Word, creare un nuovo documento e salvarlo come "Myproj.doc" nella cartella "C:\TestFiles".

  2. Avviare l'Editor di Visual Basic (premere ALT + F11). In Esplora progetti, selezionare progetto (Prog).

  3. Creare un riferimento al modello di Refme come segue:

    1. Scegliere riferimentidal menu Strumenti .

    2. Nella finestra di dialogo riferimenti , fare clic su Sfoglia.

    3. Nella finestra di dialogo Aggiungi riferimento , impostare i file di tipo documenti di Word (*. doc; * dot).


      Nota: In Word 2007, impostare i file di tipo documenti di Word (*. docm; *.dotm.doc; * dot).

    4. Nella cartella "C:\TestFiles", selezionare il modello Refme .

    5. Fare clic su Apri per tornare alla finestra di dialogo riferimenti .

    6. Fare clic su OK per tornare all'Editor di Visual Basic.

  4. In Esplora progetti espandere il progetto (Prog). Espandere i riferimenti e verificare che l'elenco di riferimento include riferimenti a Refme.dot.

  5. Dal menu Inserisci , fare clic su modulo per inserire un nuovo modulo nel progetto. Scrivere il codice seguente nel modulo per chiamare la routine CallMe:

    Public Sub Test()

    Call CallMe

    End Sub
  6. Verificare la procedura per verificare che funzioni e quindi tornare a Word.

  7. Salvare e chiudere il file di documento e quindi uscire da Word.

Verificare a livello di codice il riferimento al progetto

A questo punto verrà deliberatamente interrompere il riferimento e quindi verificare l'esattezza di riferimento.

Per inserire il riferimento:

  1. In Esplora risorse (destro del mouse sul menu Start di Windows e quindi fare clic su Esplora dal menu di scelta rapida), modificare il nome del modello di Refme.dot in "Refme.old". A tale scopo, fare Refme.dot e quindi scegliere Rinomina dal menu di scelta rapida. Digitare refme.old e quindi premere INVIO.

  2. Tornare a Word e quindi riaprire il documento "Myproj.doc".

  3. Poiché il livello di protezione è impostato su medio, verrà richiesto se si desidera attivare o disattivare le macro in questo documento. Fare clic su Attiva macro.

    Nota: Questo comportamento si verifica in Word 2007.

  4. Avviare l'Editor di Visual Basic (premere ALT + F11) e quindi eseguire la procedura di prova. Il seguente messaggio di errore di compilazione, fare clic su OK :

    Impossibile trovare progetto o libreria

  5. Dovrebbe essere in modalità di interruzione (vi è una banda di colore gialla lungo la riga Sub). Dal menu Esegui , fare clic su Reimposta per tornare alla modalità progettazione.

  6. Dal menu Strumenti , fare clic su riferimenti per visualizzare la finestra di dialogo riferimenti . Vedere che Refme.dot è contrassegnato come "mancante".

  7. Fare clic su Annulla per chiudere la finestra di dialogo riferimenti .

Per controllare a livello di riferimenti mancanti:

  1. In Esplora progetti, selezionare progetto (Prog).

  2. Dal menu Strumenti , fare clic su riferimenti e quindi aggiungere un riferimento a Visual Basic, Applications Edition Microsoft libreria Extensibility 5.3. Questa libreria contiene oggetti che fanno riferimento ai progetti VBA.

  3. Prima di scegliere OK, è necessario verificare che il nuovo riferimento verrà aggiunta sopra il riferimento "mancante". Fare clic sulla freccia più volte per modificare la priorità, spostare il nuovo riferimento sopra il riferimento "mancante" e quindi fare clic su OK.

  4. Nel modulo, creare una nuova routine sub denominata "CheckReference" e quindi scrivere il codice riportato di seguito:

    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. Dal menu Visualizza , scegliere Finestra immediata (CTRL + G) per aprire la finestra immediata.

  6. Eseguire la routine sub CheckReference. Il nome e il percorso del file viene visualizzato nella finestra immediata.

Rimuovere e ripristinare il riferimento al progetto

In questa sezione viene descritto come rimuovere e ripristinare un riferimento a livello di codice.

Per rimuovere un riferimento mancante:

  1. Nella routine sub CheckReference, modificare come segue l'istruzione Print . Consente di rimuovere gli eventuali riferimenti mancanti dal progetto:

       vbProj.References.Remove chkRef
  2. Eseguire la routine CheckReference.

  3. Verificare che il riferimento è stato rimosso nella finestra di dialogo riferimenti (scegliere riferimentidal menu Strumenti ).

Per ripristinare (aggiungere) un riferimento:

  1. In Esplora risorse, rinominare Refme.old in "Refme.dot".

  2. Tornare al progetto Prog in Visual Basic Editor in Word.

  3. Scrivere una nuova routine sub denominata "AddReference" come segue:

    Sub AddReference()

    Dim vbProj as VBProject

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

    End Sub
  4. Eseguire la routine AddReference.

  5. Verificare che il riferimento a Refme.dot ricollegato. È possibile visualizzare i riferimenti in Esplora progetti o quando si fa clic su riferimenti dal menu Strumenti .

Risoluzione dei problemi

  • Se si fanno riferimento a un file dell'applicazione nativa, è consigliabile mantenere l'estensione di file nativo. In caso contrario, si potrebbero verificarsi problemi quando si utilizza il riferimento. Per visualizzare questi problemi, provare a creare un riferimento al file Refme.old anziché il file Refme.dot nell'esempio in precedenza in questo articolo.

  • Se si lavora con un componente registrato, è possibile aggiungere un riferimento al progetto GUID. Utilizzare il metodo AddFromGUID per effettuare questa operazione.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×