Combinazione di VBA con le personalizzazioni a livello di documento
È possibile utilizzare il codice di Visual Basic, Applications Edition (VBA) in un documento incluso in una personalizzazione a livello di documento per Microsoft Office Word o Microsoft Office Excel. È possibile chiamare codice VBA nel documento dall'assembly di personalizzazione oppure configurare il progetto in modo da consentire al codice VBA nel documento di chiamare il codice nell'assembly di personalizzazione. Per ulteriori informazioni sulla seconda attività, vedere Chiamata di codice nelle personalizzazioni a livello di documento da VBA.
Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento per Excel 2007, Excel 2010, Word 2007 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.
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 di personalizzazione selezionano eventi generati nel documento e vengono eseguiti entrambi i set 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 Word, chiamare il metodo Run della classe Microsoft.Office.Interop.Word.Application.
Per Excel, chiamare il metodo Run della classe Microsoft.Office.Interop.Excel.Application.
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 con Visual Basic e con Visual C# nelle soluzioni Office.
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
Confronto tra soluzioni VBA e Office in Visual Studio
Cenni preliminari sugli assembly nelle soluzioni Office