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
-
In Microsoft Word, dal menu Strumenti , scegliere Macroe quindi fare clic su protezione per visualizzare la finestra di dialogo protezione .
-
Nella scheda Livello di protezione , è possibile impostare il livello di protezione su medio, in modo che è possibile scegliere di attivare le macro.
-
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.
-
Fare clic su OK.
In Word 2007, attenersi alla seguente procedura:
-
Nella scheda Developer , fare clic su Protezione Macro nel gruppo di codice .
-
Nel riquadro sinistro, fare clic su Impostazioni Macro.
-
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 .
-
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:-
Creare un nuovo documento in Microsoft Word e quindi salvarlo come modello attenendosi alla procedura seguente:
-
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. -
Nella casella Nome File per Refme.
-
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) -
Salvare il modello nella cartella "C:\TestFiles" (è necessario creare questa cartella se non esiste).
-
-
Premere ALT + F11 per avviare l'Editor di Visual Basic.
-
In Esplora progetti, selezionare TemplateProject (Refme). Scegliere modulodal menu Inserisci . Aggiunge un nuovo modulo denominato "Module1" al progetto.
-
Nella finestra del codice, digitare il seguente codice di Module1:
Public Sub CallMe()
Msgbox "Hello World!" End Sub -
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.
-
Dal menu Visualizza , fare clic su Microsoft Word (ALT + F11) per tornare a Word.
-
In Word, salvare e chiudere il file modello.
Per creare il riferimento:
-
In Word, creare un nuovo documento e salvarlo come "Myproj.doc" nella cartella "C:\TestFiles".
-
Avviare l'Editor di Visual Basic (premere ALT + F11). In Esplora progetti, selezionare progetto (Prog).
-
Creare un riferimento al modello di Refme come segue:
-
Scegliere riferimentidal menu Strumenti .
-
Nella finestra di dialogo riferimenti , fare clic su Sfoglia.
-
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). -
Nella cartella "C:\TestFiles", selezionare il modello Refme .
-
Fare clic su Apri per tornare alla finestra di dialogo riferimenti .
-
Fare clic su OK per tornare all'Editor di Visual Basic.
-
-
In Esplora progetti espandere il progetto (Prog). Espandere i riferimenti e verificare che l'elenco di riferimento include riferimenti a Refme.dot.
-
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 -
Verificare la procedura per verificare che funzioni e quindi tornare a Word.
-
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:-
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.
-
Tornare a Word e quindi riaprire il documento "Myproj.doc".
-
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. -
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
-
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.
-
Dal menu Strumenti , fare clic su riferimenti per visualizzare la finestra di dialogo riferimenti . Vedere che Refme.dot è contrassegnato come "mancante".
-
Fare clic su Annulla per chiudere la finestra di dialogo riferimenti .
Per controllare a livello di riferimenti mancanti:
-
In Esplora progetti, selezionare progetto (Prog).
-
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.
-
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.
-
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 -
Dal menu Visualizza , scegliere Finestra immediata (CTRL + G) per aprire la finestra immediata.
-
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:-
Nella routine sub CheckReference, modificare come segue l'istruzione Print . Consente di rimuovere gli eventuali riferimenti mancanti dal progetto:
vbProj.References.Remove chkRef
-
Eseguire la routine CheckReference.
-
Verificare che il riferimento è stato rimosso nella finestra di dialogo riferimenti (scegliere riferimentidal menu Strumenti ).
Per ripristinare (aggiungere) un riferimento:
-
In Esplora risorse, rinominare Refme.old in "Refme.dot".
-
Tornare al progetto Prog in Visual Basic Editor in Word.
-
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 -
Eseguire la routine AddReference.
-
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.