Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Programmazione di 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 sono valide per i progetti di componenti aggiuntivi VSTO per Word. Per altre informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

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 Scrittura di codice nelle soluzioni Office.

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

È 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.Runtime di Visual Studio Tools per Office crea automaticamente l'istanza di questa classe quando l'applicazione di Microsoft Office 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.

System_CAPS_noteNota

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.

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

Microsoft.Office.Interop.Excel.Application

Microsoft Office InfoPath

T:Microsoft.Office.Interop.InfoPath.Application

Microsoft Office Outlook

T:Microsoft.Office.Interop.Outlook.Application

Microsoft Office PowerPoint

T:Microsoft.Office.Interop.PowerPoint.Application

Microsoft Office Project

Microsoft.Office.Interop.MSProject.Application

Microsoft Office Visio

Microsoft.Office.Interop.Visio.Application

Microsoft Office Word

Microsoft.Office.Interop.Word.Application

L'esempio di codice seguente mostra come usare il campo Application 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 a 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:

Non tutte le applicazioni di Office 2010 aprono automaticamente un documento all'avvio e nessuna applicazione di Office 2013 apre un documento all'avvio. Pertanto, non aggiungere il codice nel gestore eventi ThisAdd-In_Startup 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.
        }
    }

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.

System_CAPS_noteNota

In Outlook, per impostazione predefinita, il gestore eventi ThisAddIn_Startup non viene chiamato sempre 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 Chiamata di 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 Personalizzazione delle funzionalità dell'interfaccia utente usando le interfacce di estensibilità.

System_CAPS_noteNota

Per personalizzare l'interfaccia utente della barra multifunzione è inoltre possibile eseguire l'override del metodo CreateRibbonExtensibilityObject.

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

Nei progetti di componente aggiuntivo VSTO per Outlook la classe ThisAddIn deriva dalla classe Microsoft.Office.Tools.Outlook.OutlookAddIn nei progetti destinati a .NET Framework 3.5 e da Microsoft.Office.Tools.Outlook.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 Creazione di aree di modulo di Outlook.

È 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, Finestra di progettazione della barra multifunzione e Creazione di aree di 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 Personalizzazione delle funzionalità dell'interfaccia utente usando le interfacce di estensibilità.

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 Estensione in fase di esecuzione di documenti di Word e di cartelle di lavoro di Excel in componenti aggiuntivi VSTO.

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 un componente aggiuntivo VSTO per Microsoft Office Excel esegue calcoli sui dati finanziari da un servizio Web, altre soluzioni possono eseguire tali calcoli chiamando il componente aggiuntivo VSTO di Excel in fase di esecuzione.

Per altre informazioni, vedere Chiamata di codice nei componenti aggiuntivi VSTO da altre soluzioni Office.

Mostra: