Condividi tramite


Procedura dettagliata: chiamata di codice da VBA in un progetto Visual Basic

Aggiornamento: novembre 2007

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

Versione Microsoft Office

  • Microsoft Office System 2007

Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione.

Questa procedura dettagliata illustra come chiamare un metodo di una personalizzazione a livello di documento di Microsoft Office Word 2007 da codice Visual Basic, Applications Edition (VBA) contenuto nel documento. La procedura comporta tre passaggi di base: aggiungere un metodo alla classe dell'elemento host ThisDocument, esporre il metodo al codice VBA e quindi chiamare il metodo dal codice VBA contenuto nel documento.

Benché in questa procedura dettagliata si utilizzi Word in modo specifico, i concetti illustrati sono applicabili anche ai progetti a livello di documento di Microsoft Office Excel 2007.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Creazione di un documento contenente codice VBA.

  • Concessione dell'attendibilità al percorso del documento tramite il Centro protezione di Word.

  • Aggiunta di un metodo alla classe dell'elemento host ThisDocument.

  • Esposizione del metodo al codice VBA.

  • Chiamata del metodo dal codice VBA.

Nota:

Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. L'edizione di Visual Studio in uso e le impostazioni utilizzate determinano questi elementi. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Prerequisiti

Per completare questa procedura dettagliata, è necessario disporre dei seguenti componenti:

  • Visual Studio Tools per Office (componente facoltativo di Visual Studio 2008 Professional e Visual Studio Team System).

  • Microsoft Office Word 2007.

Visual Studio Tools per Office viene installato per impostazione predefinita con le versioni di Visual Studio elencate. Per controllare se è installato, vedere Installazione di Visual Studio Tools per Office.

Creazione di un documento contenente codice VBA

Il primo passaggio consiste nel creare un documento con attivazione macro contenente una macro VBA semplice. Per poter creare un progetto di Visual Studio basato su un determinato documento è necessario che quest'ultimo contenga un progetto VBA. In caso contrario, Visual Studio Tools per Office non è in grado di modificare il progetto VBA per consentire al codice VBA di eseguire chiamate nell'assembly di Visual Studio Tools per Office.

Se si dispone già di un documento contenente codice VBA che si desidera utilizzare, è possibile ignorare questo passaggio.

Per creare un documento contenente codice VBA

  1. Avviare Word 2007.

  2. Salvare il documento attivo come Documento di Word con attivazione macro (* .docm) con il nome DocumentWithVBA. Salvarlo in un percorso di facile accesso, ad esempio il desktop.

  3. Sulla barra multifunzione, fare clic sulla scheda Sviluppatore.

    Nota:

    Se la scheda Sviluppatore non è visibile, è necessario prima visualizzarla. Per ulteriori informazioni, vedere Procedura: visualizzare la scheda Sviluppo nella barra multifunzione.

  4. Nel gruppo Codice, fare clic su Visual Basic.

    Verrà aperto Visual Basic Editor.

  5. Nella finestra Progetto, fare doppio clic su ThisDocument.

    Viene aperto il file di codice per l'oggetto ThisDocument.

  6. Aggiungere al file di codice il codice VBA seguente. Questo codice definisce una funzione semplice che non esegue alcuna operazione. L'unico scopo di questa funzione è garantire l'esistenza di un progetto VBA nel documento. Tale requisito dovrà essere soddisfatto in alcuni passaggi successivi di questa procedura dettagliata.

    Sub EmptySub()
    End Sub
    
  7. Salvare il documento e uscire da Word.

Creazione del progetto

A questo punto è possibile creare un progetto a livello di documento di Word 2007 che utilizza il documento con attivazione macro appena creato.

Per creare un nuovo progetto

  1. Avviare Visual Studio.

  2. Scegliere Nuovo dal menu File e quindi fare clic su Progetto. Se l'IDE è configurato per utilizzare le impostazioni di sviluppo di Visual Basic, scegliere Nuovo progetto dal menu File.

  3. Nel riquadro Tipi progetto espandere Visual Basic e quindi Office.

  4. Selezionare la cartella 2007.

  5. Nel riquadro Modelli, selezionare il progetto Documento di Word.

  6. Nella casella Nome, digitare ChiamataCodiceDaVBA.

  7. Scegliere OK.

    Verrà avviata la Creazione guidata progetto Visual Studio Tools per Office.

  8. Selezionare Copia un documento esistente e, nella casella Percorso completo del documento esistente, specificare il percorso del documento DocumentWithVBA creato in precedenza. Se si dispone già di un documento con attivazione macro che si desidera utilizzare, specificare invece il percorso di questo documento.

  9. Scegliere Fine.

    In Visual Studio viene aperto il documento DocumentWithVBA nella finestra di progettazione e viene aggiunto il progetto ChiamataCodiceDaVBA a Esplora soluzioni.

Concessione dell'attendibilità al percorso del documento

Per poter esporre il codice contenuto nella soluzione al codice VBA contenuto nel documento è necessario che quest'ultimo sia impostato come attendibile per l'esecuzione. Esistono diversi modi per eseguire tale operazione. Questa procedura dettagliata prevede la concessione dell'attendibilità al percorso del documento tramite il Centro protezione di Word.

Per concedere l'attendibilità al percorso del documento

  1. Avviare Word.

  2. Fare clic sul pulsante Microsoft Office.

  3. Fare clic sul pulsante Opzioni Word.

  4. Nel riquadro delle categorie fare clic su Centro protezione.

  5. Nel riquadro dei dettagli fare clic su Impostazioni Centro protezione.

  6. Nel riquadro delle categorie, fare clic su Percorsi attendibili.

  7. Nel riquadro dei dettagli, fare clic su Aggiungi nuovo percorso.

  8. Nella finestra di dialogo Percorso attendibile di Microsoft Office, passare alla cartella contenente il progetto ChiamataCodiceDaVBA.

  9. Selezionare Considera attendibili anche le sottocartelle di questo percorso.

  10. Nella finestra di dialogo Percorso attendibile di Microsoft Office, fare clic su OK.

  11. Scegliere OK nella finestra di dialogo Centro protezione.

  12. Scegliere OK nella finestra di dialogo Opzioni Word.

  13. Uscire da Word.

Aggiunta di un metodo alla classe ThisDocument

Ora che il progetto VBA è configurato, aggiungere un metodo alla classe dell'elemento host ThisDocument che è possibile chiamare dal codice VBA.

Per aggiungere un metodo alla classe ThisDocument

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su ThisDocument.vb, quindi scegliere Visualizza codice.

    Il file ThisDocument.vb verrà aperto nell'editor di codice.

  2. 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 nella procedura dettagliata questo metodo verrà chiamato dal codice VBA contenuto 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 Sub
    
  3. Compilare il progetto.

Esposizione del metodo al codice VBA

Per esporre il metodo CreateTable al codice VBA contenuto nel documento, impostare la proprietà EnableVbaCallers dell'elemento host ThisDocument su True.

Per esporre il metodo al codice VBA

  1. In Esplora soluzioni fare doppio clic su ThisDocument.vb.

    Il file DocumentWithVBA verrà aperto nella finestra di progettazione.

  2. Nella finestra Proprietà, selezionare la proprietà EnableVbaCallers e modificarne il valore impostandola su True.

  3. Fare clic su OK nel messaggio visualizzato.

  4. Compilare il progetto.

Chiamata del metodo dal codice VBA

A questo punto è possibile chiamare il metodo CreateTable dal codice VBA contenuto nel documento.

Nota:

Questa procedura dettagliata prevede l'aggiunta di codice VBA al documento durante l'esecuzione del debug del progetto. Se si ricompila il progetto, il codice VBA aggiunto a questo documento verrà sovrascritto. Infatti, Visual Studio sostituisce il documento contenuto nella cartella dell'output di compilazione con una copia del documento contenuto nella cartella del progetto principale. Se si desidera salvare il codice VBA è possibile copiarlo nel documento contenuto nella cartella del progetto. Per ulteriori informazioni, vedere Chiamata di codice nelle personalizzazioni a livello di documento da VBA.

Per chiamare il metodo dal codice VBA

  1. Premere F5 per eseguire il progetto.

  2. Nella scheda Sviluppatore, fare clic su Visual Basic nel gruppo Codice.

    Verrà aperto Visual Basic Editor.

  3. Scegliere Modulo dal menu Inserisci.

  4. Aggiungere al nuovo modulo il codice seguente.

    Questo codice chiama il metodo CreateTable dell'assembly di Visual Studio Tools per Office. Per accedere a tale metodo, la macro utilizza la proprietà CallVSTOAssembly dell'oggetto ThisDocument. Questa proprietà è stata generata automaticamente nel passaggio precedente della procedura dettagliata in cui è stata impostata la proprietà EnableVbaCallers.

    Sub CreateTable()
        Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date")
    End Sub
    
  5. Premere F5.

  6. Verificare che nel documento sia stata aggiunta una nuova tabella.

  7. Uscire da Word senza salvare le modifiche.

Passaggi successivi

Ulteriori informazioni su come chiamare elementi di codice di soluzioni Visual Studio Tools per Office da VBA sono disponibili negli argomenti seguenti:

Vedere anche

Attività

Procedura: esporre il codice a VBA in un progetto Visual Basic

Procedura: esporre il codice a VBA in un progetto Visual C#

Procedura dettagliata: chiamata di codice da VBA in un progetto Visual C#

Concetti

Combinazione di VBA con le personalizzazioni a livello di documento

Programmazione delle personalizzazioni a livello di documento