Condividi tramite


Combinazione di VBA con le personalizzazioni a livello di documento

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

  • Microsoft Office 2003

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

È possibile utilizzare il codice di Visual Basic, Applications Edition (VBA) in un documento incluso in una personalizzazione a livello di documento Visual Studio Tools per Office per Microsoft Office Word o Microsoft Office Excel. In tutti i progetti a livello di documento è possibile chiamare il codice VBA nel documento dall'assembly di personalizzazione. Nei progetti a livello di documento per Microsoft Office System 2007 è inoltre possibile configurare il progetto in modo da consentire al codice VBA nel documento di chiamare il codice nell'assembly di personalizzazione. Per ulteriori informazioni, vedere Chiamata di codice nelle personalizzazioni a livello di documento da VBA.

Comportamento del codice VBA in una personalizzazione a livello di documento

Quando si apre il progetto in Visual Studio, il documento viene aperto in modalità progettazione. Nella modalità progettazione, il codice VBA non viene eseguito, quindi è possibile lavorare con il documento e il codice senza eseguire il codice VBA.

Quando si esegue la soluzione, i gestori eventi in VBA e nell'assembly Visual Studio Tools per Office selezionano eventi generati nel documento e vengono eseguiti entrambi i gruppi di codice. È impossibile stabilire in anticipo quale dei due codici verrà eseguito per primo. Per ottenere questa informazione è necessario verificare ogni singolo caso. Se i due gruppi di codice non vengono coordinati e testati attentamente, il risultato potrebbe non essere quello previsto.

Chiamata di codice VBA dall'assembly di personalizzazione

È possibile chiamare le macro nei documenti di Word nonché le macro e le funzioni nelle cartelle di lavoro di Excel. A tale scopo, adottare uno dei metodi seguenti:

Per ogni metodo, il primo parametro identifica il nome della macro o della funzione da chiamare e i parametri facoltativi rimanenti specificano i parametri da passare alla macro o alla funzione. Il primo parametro può avere formati diversi per Word e Excel:

  • Per Word, il primo parametro è una stringa che può essere qualsiasi combinazione di nome di modello, modulo e macro. Se si specifica il nome del documento, il codice può eseguire solo le macro nei documenti relativi al contesto corrente anziché non qualsiasi macro in qualsiasi documento.

  • Per Excel, il primo parametro può essere una stringa che specifica il nome della macro, Range che indica dove è la funzione o un identificatore di registro per una funzione DLL registrata (XLL). La stringa, se passata, verrà valutata nel contesto del foglio attivo.

Nell'esempio di codice seguente viene illustrato come chiamare una macro denominata MyMacro da un progetto a livello di documento per Excel. In questo esempio si presuppone che MyMacro sia definito in Sheet1.

Globals.Sheet1.Application.Run("MyMacro")
Globals.Sheet1.Application.Run("MyMacro", missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing, 
    missing, missing, missing, missing, missing, missing);
Nota:

Per informazioni sull'utilizzo della variabile globale missing in posto di parametri facoltativi in Visual C#, vedere Confronto tra programmazione Visual Basic e programmazione C#.

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 Basic

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

Concetti

Chiamata di codice nelle personalizzazioni a livello di documento da VBA

Creazione di soluzioni Office in Visual Studio

Confronto tra soluzioni VBA e Visual Studio Tools per Office

Cenni preliminari sugli assembly nelle soluzioni Office