Programmazione delle personalizzazioni a livello di documento

Quando si estende Microsoft Office Word o Microsoft Office Excel utilizzando una personalizzazione a livello di documento è possibile eseguire le attività seguenti:

  • Automazione dell'applicazione mediante il relativo modello a oggetti.

  • Aggiunta di controlli all'area di un documento.

  • Chiamata a codice Visual Basic, Applications Edition (VBA) contenuto nel documento dall'assembly di personalizzazione.

  • Chiamata a codice contenuto nell'assembly di personalizzazione da VBA.

  • Gestione di determinati aspetti di un documento anche se si trova in un server in cui non è stato installato Microsoft Office.

  • Personalizzazione dell'interfaccia utente di un'applicazione.

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

Alcuni aspetti della scrittura del codice nei progetti a livello di documento presentano delle differenze rispetto ad altri tipi di progetti in Visual Studio. Molte di queste differenze sono causate 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 sulle personalizzazioni a livello di documento 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 delle classi generate nei progetti a livello di documento

Quando si crea un progetto a livello di documento, in Visual Studio viene generata automaticamente nel progetto una classe utilizzabile come base iniziale di scrittura del codice. In Visual Studio vengono generate classi specifiche per Word ed Excel:

  • Per impostazione predefinita, nei progetti a livello di documento di Word la classe viene denominata ThisDocument.

  • Per i progetti a livello di documento di Excel vengono generate più classi: una per la cartella di lavoro e una per ogni foglio di lavoro. Per impostazione predefinita, queste classi vengono denominate come segue:

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

La classe generata contiene gestori eventi che vengono chiamati quando il documento viene aperto o chiuso. Per eseguire un blocco di codice all'apertura del documento, aggiungere tale blocco nel gestore eventi Startup. Per eseguire un blocco di codice subito prima della chiusura del documento, aggiungere tale blocco al gestore eventi Shutdown. Per ulteriori informazioni, vedere Eventi nei progetti di Office.

Informazioni sulla progettazione delle classi generate

Nei progetti destinati a .NET Framework 3.5, le classi generate derivano la maggior parte dei loro membri e del loro comportamento dalle classi di elementi host in Runtime di Visual Studio Tools per Office: 

  • ThisDocument: deriva da Microsoft.Office.Tools.Word.Document.

  • ThisWorkbook: deriva da Microsoft.Office.Tools.Excel.Workbook.

  • Sheetn: deriva da Microsoft.Office.Tools.Excel.Worksheet

Gli elementi host sono tipi posizionati all'inizio delle gerarchie dei modelli a oggetti nei progetti di Office ed estendono il comportamento degli oggetti corrispondenti negli assembly di interoperabilità primari di Office. Per ulteriori informazioni sugli elementi host, vedere Cenni preliminari sugli elementi e sui controlli host.

Nei progetti destinati a .NET Framework 4, i tipi di elementi host in Runtime di Visual Studio Tools per Office sono dati da interfacce, pertanto le classi generate non possono derivare da essi la loro implementazione. Al contrario, le classi generate derivano la maggior parte dei loro membri dalle classi base seguenti:

Queste classi base reindirizzano tutte le chiamate ai loro membri a implementazioni interne delle interfacce di elementi host corrispondenti in Runtime di Visual Studio Tools per Office. Ad esempio, se si chiama il metodo Protect della classe ThisDocument, la classe Microsoft.Office.Tools.Word.DocumentBase reindirizzerà questa chiamata all'implementazione interna dell'interfaccia Microsoft.Office.Tools.Word.Document in 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 .NET Framework 4, vedere Cenni preliminari su Visual Studio Tools per Office Runtime.

Accesso al modello a oggetti dell'applicazione host

Per accedere al modello a oggetti dell'applicazione host occorre utilizzare i membri della classe generata nel progetto. Ognuna di queste classi corrisponde a un oggetto nel modello a oggetti di Excel o Word. In particolare, le classi sono quasi identiche in termini di proprietà, metodi ed eventi. Ad esempio, la classe ThisDocument di un progetto a livello di documento di Word fornisce la maggior parte dei membri disponibili nell'oggetto Microsoft.Office.Interop.Word.Document del modello a oggetti di Word.

Nell'esempio di codice seguente viene illustrato come utilizzare il modello a oggetti di Word per salvare il documento appartenente a una personalizzazione a livello di documento di Word. Questo esempio deve essere eseguito dall'interno della classe ThisDocument.

Me.Save()
this.Save();

Per eseguire lo stesso esempio dall'esterno della classe ThisDocument, utilizzare l'oggetto Globals per accedere alla classe ThisDocument. Ad esempio, per includere un pulsante Salva nell'interfaccia utente del riquadro delle azioni è possibile aggiungere questo codice a un file di codice del riquadro delle azioni.

Globals.ThisDocument.Save()
Globals.ThisDocument.Save();

Poiché la classe ThisDocument ottiene la maggior parte dei suoi membri dall'elemento host Microsoft.Office.Tools.Word.Document, il metodo Save chiamato in questo codice è di fatto il metodo Save dell'elemento host Microsoft.Office.Tools.Word.Document. Questo metodo corrisponde al metodo Save dell'oggetto Microsoft.Office.Interop.Word.Document del modello a oggetti di Word.

Per ulteriori informazioni sull'utilizzo dei modelli a oggetti di Word ed Excel, vedere Cenni preliminari sul modello a oggetti di Word e Cenni preliminari sul modello a oggetti di Excel.

Per ulteriori informazioni sull'oggetto Globals, vedere Accesso globale a oggetti nei progetti di Office.

Aggiunta di controlli ai documenti

Per personalizzare l'interfaccia utente di un documento è possibile aggiungere controlli Windows Form o controlli host all'area del documento. Combinando opportunamente codice e diversi gruppi di controlli è possibile associare i controlli a dati, ottenere informazioni dall'utente e rispondere alle azioni dell'utente.

I controlli host sono classi che estendono alcuni degli oggetti del modello a oggetti di Word ed Excel. Ad esempio, il controllo host Microsoft.Office.Tools.Excel.ListObject fornisce tutte le funzionalità dell'oggetto Microsoft.Office.Interop.Excel.ListObject di Excel. Tuttavia, il controllo host Microsoft.Office.Tools.Excel.ListObject presenta inoltre eventi e funzionalità di associazione dati aggiuntivi.

Per ulteriori informazioni, vedere Cenni preliminari sugli elementi e sui controlli host e Cenni preliminari sui controlli Windows Form nei documenti di Office.

Combinazione di VBA con le personalizzazioni a livello di documento

È possibile utilizzare codice VBA in un documento appartenente a una personalizzazione a livello di documento. È possibile chiamare codice VBA nel documento dall'assembly di personalizzazione ed è anche possibile configurare il progetto in modo da consentire al codice VBA nel documento di chiamare il codice nell'assembly di personalizzazione.

Per ulteriori informazioni, vedere Combinazione di VBA con le personalizzazioni a livello di documento.

Gestione di documenti in un server

Diversi aspetti della personalizzazione a livello di documento possono essere gestiti anche nei server in cui non è stato installato Microsoft Office Word oppure Microsoft Office Excel. È ad esempio possibile accedere e apportare modifiche ai dati memorizzati nella cache dei dati di un documento. È inoltre possibile gestire l'assembly di personalizzazione associato al documento. Ad esempio, è possibile rimuovere a livello di codice l'assembly da un documento affinché quest'ultimo non esegua più il codice. È inoltre possibile collegare un assembly a un documento a livello di codice.

Per ulteriori informazioni, vedere Gestione dei documenti di un server utilizzando la classe ServerDocument.

Personalizzazione dell'interfaccia utente delle applicazioni di Microsoft Office

È possibile personalizzare l'interfaccia utente di Word ed Excel nei modi seguenti utilizzando una personalizzazione a livello di documento:

Per ulteriori informazioni sulla personalizzazione dell'interfaccia utente delle applicazioni di Microsoft Office, vedere Personalizzazione dell'interfaccia utente di Office.

Vedere anche

Concetti

Gestione dei documenti di un server utilizzando la classe ServerDocument

Recupero di oggetti estesi da oggetti nativi di Office nelle personalizzazioni a livello di documento

Scrittura di codice nelle soluzioni Office

Altre risorse

Controlli nei documenti di Office

Combinazione di VBA con le personalizzazioni a livello di documento