Condividi tramite


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 2010 e Microsoft Office System 2007. 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 2010, 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.

Accesso 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:

Membri 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 2010, 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 Cenni preliminari sui riquadri attività personalizzati.

Creare uno smart tag che possa essere riconosciuto in qualsiasi cartella di lavoro di Excel o documento di Word aperto.

NotaNota
Gli smart tag sono deprecati in Excel 2010 e Word 2010.Per ulteriori informazioni, vedere Cenni preliminari sugli smart tag.

Utilizzare il campo VstoSmartTags in un componente aggiuntivo per Excel o Word. Per ulteriori informazioni, vedere Cenni preliminari sugli smart tag.

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 è anche possibile eseguire l'override del metodo CreateRibbonExtensibilityObject.

Informazioni sulla progettazione della classe ThisAddIn

Nei progetti destinati a .NET Framework 3.5, la classe ThisAddIn deriva dalla classe Microsoft.Office.Tools.AddIn nel Runtime di Visual Studio Tools per Office.

Nei progetti destinati a .NET Framework 4, Microsoft.Office.Tools.AddIn è un'interfaccia, pertanto la classe ThisAddIn generata non può derivare da essa alcuna implementazione. Al contrario, 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. Per ulteriori informazioni sulle differenze in Runtime di Visual Studio Tools per Office per i progetti destinati a .NET Framework 3.5 e a .NET Framework 4, vedere Cenni preliminari su Visual Studio Tools per Office Runtime.

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.

In Visual Studio sono disponibili finestre di progettazione e classi che è possibile utilizzare per creare riquadri attività personalizzati, personalizzazioni della barra multifunzione e aree del modulo di Outlook. Queste finestre di progettazione e classi aiutano a semplificare il processo di personalizzazione di queste funzionalità. Per ulteriori informazioni, vedere Cenni preliminari sui 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 di documenti di Word e di cartelle di lavoro di Excel mediante la generazione di elementi host che estendono il comportamento di documenti e cartelle di lavoro. In questo modo è possibile aggiungere controlli e smart tag gestiti in 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. 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 possono effettuare tali calcoli eseguendo la chiamata nel componente aggiuntivo per 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