Programmare componenti aggiuntivi VSTO

Quando si estende un'applicazione di Microsoft Office creando un componente aggiuntivo VSTO, si scrive il codice direttamente per la classe ThisAddIn nel progetto. È possibile usare questa classe per eseguire attività quali l'accesso al modello a oggetti dell'applicazione host di Microsoft Office, la personalizzazione dell'interfaccia utente dell'applicazione e l'esposizione di oggetti nel componente aggiuntivo VSTO ad altre soluzioni Office.

Si applica a: le informazioni contenute in questo argomento si applicano ai progetti di componente aggiuntivo VSTO. Per altre informazioni, vedere Funzionalità disponibili per app Office lication e tipo di progetto.

Alcuni aspetti della scrittura del codice nei progetti di componente aggiuntivo VSTO presentano delle differenze rispetto ad altri tipi di progetti in Visual Studio. Molte di queste differenze sono causate dalla modalità di esposizione dei modelli a oggetti di Office al codice gestito. Per altre informazioni, vedere Scrivere codice nelle soluzioni Office.

Per informazioni generali sui componenti aggiuntivi VSTO e su altri tipi di soluzioni che è possibile creare usando gli strumenti di sviluppo di Office in Visual Studio, vedere Panoramica dello sviluppo di soluzioni Office (VSTO).

Usare la classe ThisAddIn

È possibile iniziare a scrivere il codice del componente aggiuntivo VSTO nella classe ThisAddIn . Visual Studio genera automaticamente questa classe nel file di codice ThisAddIn.vb (in Visual Basic) o ThisAddIn.cs (in C#) nel progetto di componente aggiuntivo VSTO. Il Strumenti di Visual Studio per il runtime di Office crea automaticamente un'istanza di questa classe quando microsoft app Office lication carica il componente aggiuntivo VSTO.

Sono disponibili due gestori eventi predefiniti nella classe ThisAddIn . Per eseguire il codice quando viene caricato il componente aggiuntivo VSTO, aggiungere il codice al gestore eventi ThisAddIn_Startup . Per eseguire il codice poco prima che il componente aggiuntivo VSTO venga scaricato, aggiungere il codice al gestore eventi ThisAddIn_Shutdown . Per altre informazioni su questi gestori eventi, vedere Eventi nei progetti di Office.

Nota

In Outlook, per impostazione predefinita, il gestore eventi ThisAddIn_Shutdown non viene chiamato sempre quando il componente aggiuntivo VSTO viene scaricato. Per altre informazioni, vedere Eventi nei progetti di Office.

Accedere al modello a oggetti dell'applicazione host

Per accedere il modello a oggetti dell'applicazione host, usare il campo Application della classe ThisAddIn . Questo campo restituisce un oggetto che rappresenta l'istanza corrente dell'applicazione host. La tabella seguente elenca il tipo di valore restituito per il campo Application in ogni progetto di componente aggiuntivo VSTO.

Applicazione host Tipo di valore restituito
Microsoft Office Excel Application
Microsoft Office InfoPath Application
Microsoft Office Outlook Application
Microsoft Office PowerPoint Applicazione
Microsoft Office Project Microsoft.Office.Interop.MSProject.Application
Microsoft Office Visio Microsoft.Office.Interop.Visio.Application
Microsoft Office Word Application

Nell'esempio di codice seguente viene illustrato come utilizzare il Application campo per creare una nuova cartella di lavoro in un componente aggiuntivo VSTO per Microsoft Office Excel. Questo esempio è destinato a essere eseguito dalla classe ThisAddIn .

Excel.Workbook newWorkbook = this.Application.Workbooks.Add(System.Type.Missing);

Per eseguire la stessa operazione dall'esterno della classe ThisAddIn , usare l'oggetto Globals per accedere alla classe ThisAddIn . Per altre informazioni sull'oggetto Globals , vedere Accesso globale agli oggetti nei progetti di Office.

Excel.Workbook newWorkbook = Globals.ThisAddIn.Application.Workbooks.Add(System.Type.Missing);

Per altre informazioni sui modelli a oggetti di applicazioni specifiche di Microsoft Office, vedere gli argomenti seguenti:

Accedere a un documento all'avvio della app Office lication

Non tutte le applicazioni di Office 2010 aprono automaticamente un documento all'avvio e nessuna delle applicazioni di Office 2013 apre un documento all'avvio. Pertanto, non aggiungere codice nel ThisAdd-In_Startup gestore eventi se il codice richiede l'apertura di un documento. Al contrario, aggiungere tale codice a un evento generato dall'applicazione di Office quando un utente crea o apre un documento. In questo modo, è possibile garantire che un documento venga aperto prima che il codice esegua le relative operazioni.

Nell'esempio di codice seguente si usa un documento di Word solo quando l'utente crea un documento o si apre un documento esistente.

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.DocumentOpen +=
new Word.ApplicationEvents4_DocumentOpenEventHandler(WorkWithDocument);

        ((Word.ApplicationEvents4_Event)this.Application).NewDocument +=
            new Word.ApplicationEvents4_NewDocumentEventHandler(WorkWithDocument);  
    }
    
    private void WorkWithDocument(Microsoft.Office.Interop.Word.Document Doc)
    {
        try
        {
            Word.Range rng = Doc.Range(0, 0);
            rng.Text = "New Text";
            rng.Select();
        }
        catch (Exception ex)
        {
            // Handle exception if for some reason the document is not available.
        }
    }

Membri ThisAddIn da usare per altre attività

Nella tabella seguente vengono descritte altre attività comuni e i membri della classe ThisAddIn che si possono usare per eseguire le attività.

Attività Membro da usare
Eseguire il codice per inizializzare il componente aggiuntivo VSTO quando viene caricato. Aggiungere il codice al metodo ThisAddIn_Startup . Questo metodo è il gestore eventi predefinito per l'evento Startup . Per altre informazioni, vedere Eventi nei progetti di Office.
Eseguire il codice per pulire le risorse usate dal componente aggiuntivo VSTO prima che venga scaricato. Aggiungere il codice al metodo ThisAddIn_Shutdown . Questo metodo è il gestore eventi predefinito per l'evento Shutdown . Per altre informazioni, vedere Eventi nei progetti di Office. Nota: per impostazione predefinita, il ThisAddIn_Shutdown gestore eventi non viene sempre chiamato quando il componente aggiuntivo VSTO viene scaricato. Per altre informazioni, vedere Eventi nei progetti di Office.
Visualizzare un riquadro attività personalizzato. Usare il campo CustomTaskPanes . Per altre informazioni, vedere Riquadri attività personalizzati.
Esporre gli oggetti nel componente aggiuntivo VSTO ad altre soluzioni Microsoft Office. Eseguire l'override del metodo RequestComAddInAutomationService. Per altre informazioni, vedere Chiamare il codice nei componenti aggiuntivi VSTO da altre soluzioni Office.
Personalizzare una funzionalità nel sistema Microsoft Office implementando un'interfaccia di estensibilità. Eseguire l'override del metodo RequestService in modo da ottenere un'istanza della classe che implementi l'interfaccia. Per altre informazioni, vedere Personalizzare le funzionalità dell'interfaccia utente usando interfacce di estendibilità. Nota: per personalizzare l'interfaccia utente della barra multifunzione, è anche possibile eseguire l'override del CreateRibbonExtensibilityObject metodo .

Informazioni sulla progettazione della classe ThisAddIn

Nei progetti destinati a .NET Framework 4 è AddIn un'interfaccia. La classe ThisAddIn deriva dalla classe AddInBase . Questa classe di base reindirizza tutte le chiamate ai relativi membri a un'implementazione interna dell'interfaccia AddIn nel Strumenti di Visual Studio per il runtime di Office .

Nei progetti di componente aggiuntivo VSTO per Outlook la ThisAddIn classe deriva dalla Microsoft.Office.Tools.Outlook.OutlookAddIn classe nei progetti destinati a .NET Framework 3.5 e da OutlookAddInBase nei progetti destinati a .NET Framework 4. Queste classi di base forniscono funzionalità aggiuntive per supportare le aree del modulo. Per altre informazioni sulle aree del modulo, vedere Creare aree del modulo di Outlook.

Personalizzare l'interfaccia utente delle app Office licazioni Microsoft

È possibile personalizzare l'interfaccia utente delle applicazioni di Microsoft Office a livello di codice usando un componente aggiuntivo VSTO. Ad esempio, è possibile personalizzare la barra multifunzione, visualizzare un riquadro attività personalizzato o creare un'area del modulo personalizzata in Outlook. Per altre informazioni, vedere Personalizzazione dell'interfaccia utente di Office.

Visual Studio fornisce le finestre di progettazione e le classi che si usano per creare riquadri attività personalizzati, personalizzazioni della barra multifunzione e aree del modulo di Outlook. Le finestre di progettazione e le classi consentono di semplificare il processo di personalizzazione di queste funzionalità. Per altre informazioni, vedere Riquadri attività personalizzati, Progettazione barra multifunzione e Crea aree del modulo di Outlook.

Per personalizzare una di queste funzionalità in un modo non supportato da classi e finestre di progettazione, è possibile implementare un' interfaccia di estendibilità nel componente aggiuntivo VSTO. Per altre informazioni, vedere Personalizzare le funzionalità dell'interfaccia utente usando interfacce di estendibilità.

Inoltre, è possibile modificare l'interfaccia utente di documenti di Word e di cartelle di lavoro di Excel generando elementi host che estendono il comportamento dei documenti e delle cartelle di lavoro. In tal modo è possibile aggiungere controlli gestiti a documenti e fogli di lavoro. Per altre informazioni, vedere Estendere documenti di Word e cartelle di lavoro di Excel nei componenti aggiuntivi VSTO in fase di esecuzione.

Chiamare il codice nei componenti aggiuntivi VSTO da altre soluzioni

Gli oggetti nel componente aggiuntivo VSTO possono essere esposti ad altre soluzioni, ad esempio ad altre soluzioni Microsoft Office. Questa funzionalità è utile se il componente aggiuntivo VSTO fornisce un servizio che si vuole usare anche in altre soluzioni. Ad esempio, se si dispone di un componente aggiuntivo VSTO per Microsoft Office Excel che esegue calcoli sui dati finanziari da un servizio Web, altre soluzioni possono eseguire questi calcoli chiamando il componente aggiuntivo VSTO di Excel in fase di esecuzione.

Per altre informazioni, vedere Chiamare il codice nei componenti aggiuntivi VSTO da altre soluzioni Office.