Condividi tramite


Chiamata di codice nei componenti aggiuntivi a livello di applicazione da altre soluzioni Office

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 applicazione

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 esporre un oggetto del componente aggiuntivo ad altre soluzioni Microsoft Office. Ciò è utile se il componente aggiuntivo fornisce un servizio che si desidera possa essere utilizzato da altre soluzioni Office. Se ad esempio si dispone di un componente aggiuntivo per Microsoft Office Excel che effettua i calcoli dei dati finanziari di un servizio Web, le altre soluzioni Office possono effettuare tali calcoli eseguendo la chiamata nel componente aggiuntivo per Excel in fase di esecuzione.

Visual Studio Tools per Office fornisce inoltre una funzionalità simile per le personalizzazioni a livello di documento. Se si sta sviluppando una personalizzazione per Microsoft Office System 2007, è possibile chiamare il codice della personalizzazione dal codice VBA del documento. Per ulteriori informazioni, vedere Chiamata di codice nelle personalizzazioni a livello di documento da VBA.

Soluzioni Office in grado di chiamare il codice di un componente aggiuntivo

È possibile esporre un oggetto di un componente aggiuntivo ai tipi seguenti di soluzioni Office:

  • Altri componenti aggiuntivi Visual Studio Tools per Office.

  • Personalizzazioni a livello di documento caricate nello stesso processo dell'applicazione del componente aggiuntivo.

  • Componenti aggiuntivi COM, ovvero componenti aggiuntivi che implementano direttamente l'interfaccia IDTExtensibility2.

  • Codice Visual Basic, Applications Edition (VBA) di un documento caricato nello stesso processo dell'applicazione del componente aggiuntivo.

Esposizione di oggetti ad altre soluzioni Office

Per esporre un oggetto ad altri componenti aggiuntivi, eseguire l'override del metodo RequestComAddInAutomationService della classe ThisAddIn. Restituire l'oggetto da esporre alle altre soluzioni Office.

Quando il componente aggiuntivo viene caricato, il runtime Visual Studio Tools per Office chiama il metodo RequestComAddInAutomationService. Il runtime assegna l'oggetto restituito alla proprietà Object di un oggetto COMAddIn che rappresenta il componente aggiuntivo. L'oggetto COMAddIn è disponibile per le altre soluzioni Office.

Requisiti dell'oggetto restituito

L'implementazione di RequestComAddInAutomationService deve restituire un'istanza di una classe che soddisfa i seguenti requisiti:

Se l'oggetto restituito non soddisfa tali requisiti, il runtime Visual Studio Tools per Office genererà un'eccezione InvalidCastException dopo avere chiamato l'implementazione.

Per un esempio di una classe che soddisfa questi requisiti, vedere Procedura dettagliata: chiamata di codice in un componente aggiuntivo a livello di applicazione da VBA.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come eseguire l'override dell'oggetto RequestComAddInAutomationService. Nell'esempio si presuppone che sia stata definita una classe denominata AddInUtilities da esporre alle altre soluzioni Office e che la classe AddInUtilities soddisfi i requisiti specificati in precedenza. Per visualizzare il codice nel contesto di una procedura dettagliata di maggiore portata, vedere Procedura dettagliata: chiamata di codice in un componente aggiuntivo a livello di applicazione da VBA.

Private utilities As AddInUtilities

Protected Overrides Function RequestComAddInAutomationService() As Object
    If utilities Is Nothing Then
        utilities = New AddInUtilities()
    End If
    Return utilities
End Function
private AddInUtilities utilities;

protected override object RequestComAddInAutomationService()
{
    if (utilities == null)
        utilities = new AddInUtilities();

    return utilities;
}

Accesso agli oggetti da altre soluzioni Office

Attenersi alla procedura seguente nel codice di una soluzione Office diversa, non nel componente aggiuntivo esposto:

  1. Ottenere l'oggetto COMAddIn che rappresenta il componente aggiuntivo esposto. È possibile accedere a tutti i componenti aggiuntivi disponibili utilizzando la proprietà COMAddIns della classe Application.

  2. Accedere alla proprietà Object dell'oggetto COMAddIn passato.

Nell'esempio di codice seguente viene illustrato come utilizzare VBA per chiamare un metodo in un componente aggiuntivo. Questa macro VBA chiama un metodo denominato ImportData definito in un componente aggiuntivo denominato ExcelImportData. Per visualizzare il codice nel contesto di una procedura dettagliata di maggiore portata, vedere Procedura dettagliata: chiamata di codice in un componente aggiuntivo a livello di applicazione da VBA.

Sub CallVSTOMethod()
    Dim addIn As COMAddIn
    Dim automationbject As Object
    Set addIn = Application.COMAddIns("ExcelImportData")
    Set automationObject = addIn.Object
    automationObject.ImportData
End Sub

Vedere anche

Attività

Procedura dettagliata: chiamata di codice in un componente aggiuntivo a livello di applicazione da VBA

Procedura: creare progetti Visual Studio Tools per Office

Concetti

Programmazione di componenti aggiuntivi a livello di applicazione

Sviluppo di soluzioni Office

Elementi host di componenti aggiuntivi

Personalizzazione delle funzionalità dell'interfaccia utente utilizzando le interfacce di estensibilità

Architettura dei componenti aggiuntivi a livello di applicazione