Procedura dettagliata: programmazione per eventi di un controllo NamedRange

Aggiornamento: novembre 2007

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

Versione Microsoft Office

  • Excel 2007

  • Excel 2003

Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione.

In questa procedura dettagliata viene illustrata la modalità di aggiunta di un controllo NamedRange a un foglio di lavoro di Microsoft Office Excel e di programmazione per i relativi eventi con Visual Studio Tools per 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 Impostazioni di Visual Studio.

Prerequisiti

Per completare questa procedura dettagliata, è necessario disporre dei seguenti elementi:

  • Visual Studio Tools per Office (componente facoltativo di Visual Studio 2008 Professional e Visual Studio Team System).

  • Microsoft Office Excel 2003 o Microsoft Office Excel 2007.

Creazione del progetto

In questo passaggio verrà creata una cartella di lavoro di Excel con Visual Studio Tools per Office.

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 la classe Procedura: creare progetti Visual Studio Tools per Office.

    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

  1. 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.

  2. 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.

  3. 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.

  4. 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 A1namedRange1 verrà visualizzato nella casella Nome, che si trova sul lato sinistro del foglio di lavoro.

  5. Aggiungere un altro controllo NamedRange alla cella B3.

  6. 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.

  7. Scegliere OK.

    La cella B3 diventerà un intervallo denominato namedRange2.

Per aggiungere testo al foglio di lavoro

  1. Digitare il testo riportato di seguito nella cella A1:

    This is an example of a NamedRange control.

  2. 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

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Sheet1.vb o Sheet1.cs e scegliere Visualizza codice.

  2. 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;
    }
    
  3. 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 Visual Studio Tools per 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.

Test 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

  1. Premere F5 per eseguire il progetto.

  2. 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.

  3. 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.

  4. 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.

  5. Cambiare il testo all'interno di namedRange1.

  6. 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. Di seguito sono elencate alcune procedure che potrebbero essere necessarie per estendere il progetto:

Vedere anche

Attività

Procedura: eliminare i controlli in fase di progettazione

Procedura: ridimensionare i controlli NamedRange

Procedura: aggiungere controlli NamedRange a fogli di lavoro

Procedura: creare gestori eventi in Visual Studio Tools per Office

Concetti

Cenni preliminari sugli elementi e sui controlli host

Controllo NamedRange

Limitazioni a livello di codice degli elementi e dei controlli host

Altre risorse

Controlli host di Excel