Programmazione di componenti aggiuntivi a livello di applicazione

Quando si estende un'applicazione di Microsoft Office creando un componente aggiuntivo a livello di applicazione, si scrive il codice direttamente a fronte della classe ThisAddIn del progetto.È possibile utilizzare questa classe per eseguire attività quali l'accesso al modello a oggetti dell'applicazione host di Microsoft Office, la personalizzazione dell'interfaccia utente (UI) dell'applicazione e l'esposizione di oggetti del componente aggiuntivo alle altre soluzioni Office.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di applicazione per Microsoft Office 2013 e Microsoft Office 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Alcuni aspetti della scrittura di codice in progetti di componenti aggiuntivi presentano delle differenze rispetto ad altri tipi di progetti in Visual Studio.Molte di queste differenze dipendono dal modo in cui i modelli a oggetti di Office sono esposti al codice gestito.Per ulteriori informazioni, vedere Scrittura di codice nelle soluzioni Office.

Per informazioni generali sui componenti aggiuntivi a livello di applicazione e su altri tipi di soluzioni che è possibile creare tramite gli strumenti di sviluppo di Office in Visual Studio, vedere Cenni preliminari sullo sviluppo di soluzioni Office.

Utilizzo della classe ThisAddIn

È possibile avviare la scrittura del codice del componente aggiuntivo 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 del componente aggiuntivo.Nel Runtime di Visual Studio Tools per Office viene automaticamente creata un'istanza di questa classe quando il componente aggiuntivo viene caricato dall'applicazione di Microsoft Office.

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

[!NOTA]

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

Bb157876.collapse_all(it-it,VS.110).gifAccesso al modello a oggetti dell'applicazione host

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

Applicazione host

Tipo di valore restituito

Microsoft Office Excel

Microsoft.Office.Interop.Excel.Application

Microsoft Office InfoPath

Microsoft.Office.Interop.InfoPath.Application

Microsoft Office Outlook

Microsoft.Office.Interop.Outlook.Application

Microsoft Office PowerPoint

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

Nell'esempio di codice seguente viene mostrato come utilizzare il campo Application per creare una nuova cartella di lavoro in un componente aggiuntivo per Microsoft Office Excel.Questo esempio deve essere eseguito dall'interno della classe ThisAddIn.

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

Per eseguire lo stesso esempio dall'esterno della classe ThisAddIn, utilizzare l'oggetto Globals per accedere alla classe ThisAddIn.Per ulteriori informazioni sull'oggetto Globals, vedere Accesso globale a oggetti nei progetti di Office.

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

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

Bb157876.collapse_all(it-it,VS.110).gifAccedere a un documento quando l'applicazione di Office avvio

Non tutte le applicazioni Office 2010 automaticamente aprire un documento quando viene avviata e nessuna delle applicazioni Office 2013 aprire un documento quando viene avviato.Pertanto, non aggiungere il codice nel gestore eventi ThisAdd-In_Startup se il codice richiede un documento venga aperto.Al contrario, aggiungere il codice a un evento che l'applicazione di Office viene generato quando un utente crea o si apre un documento.In questo modo, è possibile garantire che è aperto un documento prima che il codice eseguire operazioni.

I l'esempio di codice riportato di seguito funzionerà con un documento di Word solo quando l'utente crea un documento o apre un documento esistente.

Private Sub ThisAddIn_Startup() Handles Me.Startup

    AddHandler Application.NewDocument, AddressOf WorkWithDocument

End Sub

Private Sub WorkWithDocument(ByVal Doc As Microsoft.Office.Interop.Word.Document) _
    Handles Application.DocumentOpen

    Dim rng As Word.Range = Doc.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    rng.Select()

End Sub

Bb157876.collapse_all(it-it,VS.110).gifMembri della classe ThisAddIn da utilizzare per altre attività

Nella tabella seguente vengono illustrate altre attività comuni e viene indicato quali membri della classe ThisAddIn è possibile utilizzare per eseguirle.

Task

Membro da utilizzare

Eseguire il codice per inizializzare il componente aggiuntivo quando viene caricato.

Aggiungere codice al metodo ThisAddIn_Startup.È il gestore eventi predefinito per l'evento Startup.Per ulteriori informazioni, vedere Eventi nei progetti di Office.

Eseguire il codice per liberare le risorse utilizzate dal componente aggiuntivo prima che questo venga scaricato.

Aggiungere codice al metodo ThisAddIn_Shutdown.Si tratta del gestore eventi predefinito per l'evento Shutdown.Per ulteriori informazioni, vedere Eventi nei progetti di Office.

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

Visualizzare un riquadro attività personalizzato.

Utilizzare il campo CustomTaskPanes.Per ulteriori informazioni, vedere Riquadri attività personalizzati.

Esporre gli oggetti del componente aggiuntivo ad altre soluzioni Microsoft Office.

Eseguire l'override del metodo RequestComAddInAutomationService.Per ulteriori informazioni, vedere Chiamata di codice nei componenti aggiuntivi a livello di applicazione da altre soluzioni Office.

Personalizzare una funzionalità in Microsoft Office System implementando un'interfaccia di estensibilità.

Eseguire l'override del metodo RequestService in modo da ottenere un'istanza della classe che implementa l'interfaccia.Per ulteriori informazioni, vedere Personalizzazione delle funzionalità dell'interfaccia utente utilizzando le interfacce di estensibilità.

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

Bb157876.collapse_all(it-it,VS.110).gifInformazioni sulla progettazione della classe ThisAddIn

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 base reindirizza tutte le chiamate effettuate ai relativi membri a un'implementazione interna dell'interfaccia Microsoft.Office.Tools.AddIn nel Runtime di Visual Studio Tools per Office.

Nei progetti di componenti aggiuntivi di 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 base forniscono alcune funzionalità aggiuntive per il supporto delle aree del modulo.Per ulteriori informazioni sulle aree di modulo, vedere Creazione di aree di modulo di Outlook.

Personalizzazione dell'interfaccia utente delle applicazioni di Microsoft Office

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

Visual Studio fornisce le finestre di progettazione e classi utilizzabili per creare riquadri attività personalizzati, personalizzazioni della barra multifunzione e aree di modulo di Outlook.Queste finestre di progettazione e classi aiutano a semplificare il processo di personalizzazione di queste funzionalità.Per ulteriori 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 dalle classi e dalle finestre di progettazione, è possibile implementare un'interfaccia di estensibilità nel componente aggiuntivo.Per ulteriori informazioni, vedere Personalizzazione delle funzionalità dell'interfaccia utente utilizzando le interfacce di estensibilità.

Inoltre, è possibile modificare l'interfaccia utente delle cartelle di lavoro di Excel documenti di Word e generazione di elementi host che estendono il comportamento di documenti e cartelle di lavoro.Ciò consente di aggiungere controlli gestiti a documenti e fogli di lavoro.Per ulteriori informazioni, vedere Estensione in fase di esecuzione di documenti di Word e di cartelle di lavoro di Excel in componenti aggiuntivi a livello di applicazione.

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

È possibile esporre gli oggetti del componente aggiuntivo ad altre soluzioni, incluse le soluzioni Office.Questa possibilità risulta utile se il componente aggiuntivo fornisce un servizio che si desidera possa essere utilizzato da altre soluzioni.Ad esempio, se un componente aggiuntivo per Microsoft Office Excel che esegue calcoli sui dati finanziari da un servizio web, altre soluzioni possono eseguire i calcoli chiamando il componente aggiuntivo di Excel in fase di esecuzione.

Per ulteriori informazioni, vedere Chiamata di codice nei componenti aggiuntivi a livello di applicazione da altre soluzioni Office.

Vedere anche

Attività

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

Procedura: creare progetti di Office in Visual Studio

Concetti

Estensione in fase di esecuzione di documenti di Word e di cartelle di lavoro di Excel in componenti aggiuntivi a livello di applicazione

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

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

Architettura dei componenti aggiuntivi a livello di applicazione

Scrittura di codice nelle soluzioni Office

Altre risorse

Sviluppo di soluzioni Office