Procedura dettagliata: programmazione per eventi di un controllo NamedRange
In questa procedura dettagliata viene illustrato come aggiungere un controllo NamedRange a un foglio di lavoro di Microsoft Office Excel e come programmare in base ai relativi eventi utilizzando gli strumenti di sviluppo di Office in Visual Studio.
Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento per Excel 2007 ed Excel 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.
In particolare, vengono illustrate le seguenti operazioni:
Aggiunta di un controllo NamedRange a un foglio di lavoro.
Programmazione per eventi del controllo NamedRange.
Test del progetto.
Nota
Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. L'edizione di Visual Studio in uso e le impostazioni utilizzate determinano questi elementi. Per ulteriori informazioni, vedere Gestione delle impostazioni.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
-
Una versione di Visual Studio 2010 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](bb398242\(v=vs.100\).md).
- Excel 2007 o Excel 2010.
Creazione del progetto
In questo passaggio verrà creato un progetto cartella di lavoro di Excel con Visual Studio.
Per creare un nuovo progetto
Creare un progetto Cartella di lavoro di Excel con il nome My Named Range Events. Verificare che l'opzione Crea nuovo documento sia selezionata. Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.
La nuova cartella di lavoro di Excel verrà aperta nella finestra di progettazione e il progetto My Named Range Events verrà aggiunto a Esplora soluzioni.
Aggiunta di testo e di intervalli denominati al foglio di lavoro
Poiché i controlli host sono oggetti estesi di Office, è possibile aggiungerli al documento utilizzando la stessa procedura prevista per gli oggetti nativi. È possibile aggiungere, ad esempio, un controllo NamedRange di Excel a un foglio di lavoro aprendo il menu Inserisci, scegliendo Nome, quindi facendo clic su Definisci. È inoltre possibile aggiungere un controllo NamedRange trascinandolo dalla Casella degli strumenti sul foglio di lavoro.
In questo passaggio verranno aggiunti al foglio di lavoro due controlli Range denominati mediante la Casella degli strumenti, quindi verrà aggiunto testo al foglio di lavoro.
Per aggiungere un intervallo al foglio di lavoro
Verificare che la cartella di lavoro My Named Range Events.xls sia aperta nella finestra di progettazione di Visual Studio e che sia visualizzato il foglio Sheet1.
Trascinare un controllo NamedRange dalla scheda Controlli Excel della Casella degli strumenti alla cella A1 in Sheet1.
Verrà visualizzata la finestra di dialogo Aggiungi controllo NamedRange.
Verificare che nella casella di testo modificabile sia visualizzato $A$1 e che sia selezionata la cella A1. In caso contrario, fare clic sulla cella A1 per selezionarla.
Scegliere OK.
La cella A1 diventerà un intervallo denominato namedRange1. Anche se non esiste alcuna indicazione visibile sul foglio di lavoro, quando viene selezionata la cella A1 namedRange1 verrà visualizzato nella casella Nome, che si trova sul lato sinistro del foglio di lavoro.
Aggiungere un altro controllo NamedRange alla cella B3.
Verificare che nella casella di testo modificabile sia visualizzato $B$3 e che sia selezionata la cella B3. In caso contrario, fare clic sulla cella B3 per selezionarla.
Scegliere OK.
La cella B3 diventerà un intervallo denominato namedRange2.
Per aggiungere testo al foglio di lavoro
Digitare il testo riportato di seguito nella cella A1:
This is an example of a NamedRange control.
Digitare il testo riportato di seguito nella cella A3 (a sinistra di namedRange2):
Events:
Negli scenari successivi verrà creato codice che consente di inserire testo in namedRange2 e modificare le proprietà del controllo namedRange2 in risposta agli eventi BeforeDoubleClick, Change e SelectionChange di namedRange1.
Aggiunta di codice in risposta all'evento BeforeDoubleClick
Per inserire testo nel controllo NamedRange2 in base all'evento BeforeDoubleClick
In Esplora soluzioni fare clic con il pulsante destro del mouse su Sheet1.vb o Sheet1.cs e scegliere Visualizza codice.
Aggiungere il codice in modo che il gestore eventi di namedRange1_BeforeDoubleClick rispecchi l'esempio seguente:
Private Sub NamedRange1_BeforeDoubleClick( _ ByVal Target As Microsoft.Office.Interop.Excel.Range, ByRef Cancel As Boolean) _ Handles NamedRange1.BeforeDoubleClick With Me.NamedRange2 .Value2 = "The BeforeDoubleClick event occurred." .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red) .Font.Italic = True End With End Sub
private void namedRange1_BeforeDoubleClick( Microsoft.Office.Interop.Excel.Range Target, ref bool Cancel) { this.namedRange2.Value2 = "The BeforeDoubleClick event occurred."; this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); this.namedRange2.Font.Italic = true; }
In C#, è necessario aggiungere gestori eventi per l'intervallo con nome, come illustrato nell'evento Startup che segue. Per informazioni sulla creazione dei gestori eventi, vedere Procedura: creare gestori eventi in progetti di Office.
this.namedRange1.BeforeDoubleClick += new Microsoft.Office.Interop.Excel. DocEvents_BeforeDoubleClickEventHandler(namedRange1_BeforeDoubleClick); this.namedRange1.Change += new Microsoft.Office.Interop.Excel. DocEvents_ChangeEventHandler(namedRange1_Change); this.namedRange1.SelectionChange +=new Microsoft.Office.Interop.Excel. DocEvents_SelectionChangeEventHandler(namedRange1_SelectionChange);
Aggiunta di codice in risposta all'evento Change
Per inserire testo nel controllo namedRange2 in base all'evento Change
Aggiungere il codice in modo che il gestore eventi NamedRange1_Change rispecchi l'esempio seguente:
Private Sub NamedRange1_Change(ByVal Target As Microsoft.Office.Interop.Excel.Range) _ Handles NamedRange1.Change With Me.NamedRange2 .Value2 = "The Change event occurred." .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue) .Font.Italic = False End With End Sub
private void namedRange1_Change(Microsoft.Office.Interop.Excel.Range Target) { this.namedRange2.Value2 = "The Change event occurred."; this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue); this.namedRange2.Font.Italic = false; }
Nota
Poiché la selezione con doppio clic di una cella in un intervallo di Excel attiva la modalità di modifica, si verifica un evento Change quando la selezione si sposta all'esterno dell'intervallo, anche se non sono state apportate modifiche al testo.
Aggiunta di codice in risposta all'evento SelectionChange
Per inserire testo nel controllo namedRange2 in base all'evento SelectionChange
Aggiungere il codice in modo che il gestore eventi NamedRange1_SelectionChange rispecchi l'esempio seguente:
Private Sub NamedRange1_SelectionChange(ByVal Target As Microsoft.Office.Interop.Excel.Range) _ Handles NamedRange1.SelectionChange With Me.NamedRange2 .Value2 = "The SelectionChange event occurred." .AddComment("SelectionChange always occurs before BeforeDoubleClick.") .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black) End With End Sub
private void namedRange1_SelectionChange(Microsoft.Office.Interop.Excel.Range Target) { this.namedRange2.Value2 = "The SelectionChange event occurred."; this.namedRange2.AddComment("SelectionChange always occurs before BeforeDoubleClick."); this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black); }
Nota
Poiché la selezione con doppio clic di una cella in un intervallo di Excel comporta lo spostamento della selezione all'interno dell'intervallo, si verifica un evento SelectionChange prima dell'evento BeforeDoubleClick.
Verifica dell'applicazione
A questo punto è possibile eseguire il test della cartella di lavoro per verificare che il testo che descrive gli eventi di un controllo NamedRange venga inserito in un altro intervallo denominato quando vengono generati gli eventi.
Per testare il documento
Premere F5 per eseguire il progetto.
Posizionare il cursore in namedRange1 e verificare che venga visualizzato il testo relativo all'evento SelectionChange e che nel foglio di lavoro venga inserito un commento.
Fare doppio clic all'interno di namedRange1 e verificare che il testo relativo agli eventi BeforeDoubleClick venga visualizzato in corsivo e di colore rosso in namedRange2.
Fare clic all'esterno di namedRange1 e verificare se viene generato l'evento Change quando si esce dalla modalità di modifica anche se non è stata apportata alcuna modifica al testo.
Cambiare il testo all'interno di namedRange1.
Fare clic all'esterno di namedRange1 e verificare che il testo relativo all'evento Change venga visualizzato di colore blu in namedRange2.
Passaggi successivi
In questa procedura dettagliata sono state fornite le informazioni di base sulla programmazione per eventi di un controllo NamedRange. Un'attività successiva potrebbe essere la seguente:
- Distribuzione del progetto. Per ulteriori informazioni, vedere Distribuzione di soluzioni Office.
Vedere anche
Attività
Procedura: ridimensionare i controlli NamedRange
Procedura: aggiungere controlli NamedRange a fogli di lavoro
Procedura: creare gestori eventi in progetti di Office
Concetti
Cenni preliminari sugli elementi e sui controlli host
Automazione di Excel utilizzando oggetti estesi
Limitazioni a livello di codice degli elementi e dei controlli host