Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa procedura dettagliata illustra come chiamare un metodo in una personalizzazione a livello di documento per Microsoft Office Word tramite il codice Visual Basic, Applications Edition (VBA) nel documento. La procedura prevede tre passaggi di base: aggiungere un metodo alla ThisDocument classe dell'elemento host, esporre il metodo al codice VBA e quindi chiamare il metodo dal codice VBA nel documento.
Si applica a: Le informazioni contenute in questo argomento si applicano ai progetti a livello di documento per Excel e Word. Per altre informazioni, vedere Funzionalità disponibili per l'applicazione e il tipo di progetto di Office.
Anche se questa procedura dettagliata usa word in modo specifico, i concetti illustrati nella procedura dettagliata si applicano anche ai progetti a livello di documento per Excel.
In questa procedura dettagliata sono illustrati i task seguenti:
Creazione di un documento contenente codice VBA.
Attendibilità dell'ubicazione del documento utilizzando il Centro di protezione in Word.
Aggiungere un metodo alla classe dell'elemento host
ThisDocument.Esposizione del metodo al codice VBA.
Chiamata del metodo dal codice VBA.
Annotazioni
I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE di Visual Studio.
Prerequisiti
Per completare questa procedura dettagliata sono necessari i componenti seguenti:
Edizione di Visual Studio che include gli strumenti di sviluppo di Microsoft Office. Per altre informazioni, vedere Configurare un computer per sviluppare soluzioni Office.
Microsoft Word
Creare un documento contenente codice VBA
Il primo passaggio consiste nel creare un documento abilitato alle macro che contenga una semplice macro VBA. Il documento deve contenere un progetto VBA prima di creare un progetto di Visual Studio basato su tale documento. In caso contrario, Visual Studio non può modificare il progetto VBA per consentire al codice VBA di chiamare nell'assembly di personalizzazione.
Se si dispone già di un documento contenente codice VBA da usare, è possibile ignorare questo passaggio.
Per creare un documento contenente codice VBA
Avvia Word.
Salvare il documento attivo come documento di Word abilitato per macro (*.docm) con il nome DocumentWithVBA. Salvarlo in una posizione comoda, ad esempio il desktop.
Sulla barra multifunzione fare clic sulla scheda Sviluppo .
Annotazioni
Se la scheda Sviluppatore non è visibile, è prima necessario visualizzarla. Per altre informazioni, vedere Procedura: Visualizzare la scheda sviluppatore sulla barra multifunzione.
Nel gruppo Codice fare clic su Visual Basic.
Verrà aperto Visual Basic Editor.
Nella finestra Progetto fare doppio clic su ThisDocument.
Verrà aperto il file di codice per l'oggetto
ThisDocument.Aggiungere il codice VBA seguente al file di codice. Questo codice definisce una funzione semplice che non esegue alcuna operazione. L'unico scopo di questa funzione è garantire che nel documento esista un progetto VBA. Questa operazione è necessaria per i passaggi successivi di questa procedura dettagliata.
Sub EmptySub() End SubSalvare il documento e uscire da Word.
Creare il progetto
È ora possibile creare un progetto a livello di documento per Word che usa il documento abilitato per la macro creato in precedenza.
Per creare un nuovo progetto
Avvia Visual Studio.
Scegliere Nuovo dal menu File e quindi fare clic su Progetto. Se l'IDE è impostato per usare le impostazioni di sviluppo di Visual Basic, scegliere Nuovo progetto dal menu File.
Nel riquadro modelli espandere Visual Basic e quindi Office/SharePoint.
Selezionare il nodo Componenti aggiuntivi di Office .
Nell'elenco dei modelli di progetto selezionare il progetto Documento di Word 2010 o Word 2013.
Nella casella Nome digitare CallingCodeFromVBA.
Fare clic su OK.
Si apre la Creazione guidata per progetti di Visual Studio Tools for Office.
Selezionare Copia un documento esistente e nella casella Percorso completo del documento esistente specificare il percorso del documento DocumentWithVBA creato in precedenza. Se si utilizza un proprio documento abilitato alle macro, indicare invece il percorso di questo documento.
Fare clic su Fine.
Visual Studio apre il documento DocumentWithVBA nella finestra di progettazione e aggiunge il progetto CallingCodeFromVBA a Esplora soluzioni.
Fidarsi della posizione del documento
Prima di poter esporre il codice della soluzione al codice VBA nel documento, è necessario autorizzare l'esecuzione di VBA nel documento. Esistono diversi modi per eseguire questa operazione. Per questa procedura dettagliata, considera attendibile la posizione del documento nel Centro di fiducia in Word.
Per considerare attendibile la posizione del documento
Avvia Word.
Fare clic sulla scheda File .
Fare clic sul pulsante Opzioni di Word .
Nel riquadro delle categorie fare clic su Centro protezione.
Nel riquadro dei dettagli fare clic su Impostazioni centro protezione.
Nel riquadro delle categorie fare clic su Percorsi attendibili.
Nel riquadro dei dettagli fare clic su Aggiungi nuova posizione.
Nella finestra di dialogo Percorso attendibile di Microsoft Office passare alla cartella contenente il progetto CallingCodeFromVBA .
Selezionare Le sottocartelle di questo percorso sono anch'esse attendibili.
Nella finestra di dialogo Percorso attendibile di Microsoft Office fare clic su OK.
Nella finestra di dialogo Centro protezione fare clic su OK.
Nella finestra di dialogo Opzioni di Word fare clic su OK.
Uscire da Word.
Aggiungere un metodo alla classe ThisDocument
Ora che il progetto VBA è configurato, aggiungere un metodo alla classe dell'elemento ThisDocument host che è possibile chiamare dal codice VBA.
Per aggiungere un metodo alla classe ThisDocument
In Esplora soluzioni fare clic con il pulsante destro del mouse su ThisDocument.vb e quindi scegliere Visualizza codice.
Il file ThisDocument.vb viene aperto nell'editor di codice.
Aggiungere il seguente metodo alla classe
ThisDocument. Questo metodo crea una tabella con due righe e due colonne all'inizio del documento. I parametri specificano il testo visualizzato nella prima riga. Più avanti in questa guida richiamerai questo metodo dal codice VBA nel documento.Public Sub CreateTable(ByVal firstColumnHeader As String, _ ByVal secondColumnHeader As String) Me.Paragraphs(1).Range.InsertParagraphBefore() Dim table1 As Word.Table = Me.Tables.Add(Me.Paragraphs(1).Range, 2, 2) With table1 .Style = "Table Professional" .Cell(1, 1).Range.Text = firstColumnHeader .Cell(1, 2).Range.Text = secondColumnHeader End With End SubCostruisci il progetto.
Esporre il metodo al codice VBA
Per esporre il CreateTable metodo al codice VBA nel documento, impostare la proprietà EnableVbaCallers per l'elemento ThisDocument host su True.
Per esporre il metodo al codice VBA
In Esplora soluzioni fare doppio clic su ThisDocument.vb.
Il file DocumentWithVBA viene aperto nella finestra di progettazione.
Nella finestra Proprietà selezionare la proprietà EnableVbaCallers e impostare il valore su True.
Fare clic su OK nel messaggio visualizzato.
Costruisci il progetto.
Chiamare il metodo dal codice VBA
È ora possibile chiamare il CreateTable metodo dal codice VBA nel documento.
Annotazioni
In questa procedura dettagliata si aggiungerà codice VBA al documento durante il debug del progetto. Il codice VBA aggiunto a questo documento verrà sovrascritto alla successiva compilazione del progetto, perché Visual Studio sostituisce il documento nella cartella di output della compilazione con una copia del documento dalla cartella del progetto principale. Se si desidera salvare il codice VBA, è possibile copiarlo nel documento nella cartella del progetto. Per altre informazioni, vedere Combinare personalizzazioni a livello di documento e VBA.
Per chiamare il metodo dal codice VBA
Premere F5 per eseguire il progetto.
Nel gruppo Codice della scheda Sviluppo fare clic su Visual Basic.
Verrà aperto Visual Basic Editor.
Scegliere Modulo dal menu Inserisci.
Aggiungere il codice seguente al nuovo modulo.
Questo codice chiama il metodo
CreateTablenell'assembly di personalizzazione. La macro accede a questo metodo utilizzando laCallVSTOAssemblyproprietà dell'oggettoThisDocument. Questa proprietà è stata generata automaticamente quando si imposta la proprietà EnableVbaCallers in precedenza in questa procedura dettagliata.Sub CreateTable() Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date") End SubPremere F5.
Verificare che al documento sia stata aggiunta una nuova tabella.
Uscire da Word senza salvare le modifiche.
Passaggi successivi
Per altre informazioni sulla chiamata di codice nelle soluzioni Office da VBA, vedere gli argomenti seguenti:
Chiamare il codice in una personalizzazione di Visual C# da VBA. Questo processo è diverso dal processo di Visual Basic. Per altre informazioni, vedere Procedura dettagliata: Chiamare il codice da VBA in un progetto Visual C#.
Chiamare il codice in un componente aggiuntivo VSTO da VBA. Per altre informazioni, vedere Procedura dettagliata: Chiamare il codice in un componente aggiuntivo VSTO da VBA.
Contenuti correlati
- Combinare personalizzazioni a livello di documento e VBA
- Programmare personalizzazioni a livello di documento
- Procedura: Esporre codice a VBA in un progetto Visual Basic
- Procedura: Esporre codice a VBA in un progetto Visual C#
- Procedura dettagliata: Chiamare il codice da VBA in un progetto Visual C#