Procédure pas à pas : Programmer par rapport aux événements d’un contrôle NamedRangeWalkthrough: Program against events of a NamedRange control

Cette procédure pas à pas montre comment ajouter un NamedRange contrôle à une feuille de calcul Microsoft Office Excel et le programmer ses événements à l’aide des outils de développement Office dans Visual Studio.This walkthrough demonstrates how to add a NamedRange control to a Microsoft Office Excel worksheet and program against its events by using Office development tools in Visual Studio.

S’applique à : Les informations contenues dans cette rubrique s’applique au document-niveau des projets pour Excel.Applies to: The information in this topic applies to document-level projects for Excel. Pour plus d’informations, consultez fonctionnalités disponibles par type d’application et de projet Office.For more information, see Features available by Office application and project type.

Pendant cette procédure pas à pas, vous allez apprendre à :During this walkthrough, you will learn how to:

  • Ajouter un NamedRange contrôle à une feuille de calcul.Add a NamedRange control to a worksheet.

  • Programmer NamedRange contrôler des événements.Program against NamedRange control events.

  • Votre projet de test.Test your project.

Note

Il est possible que pour certains des éléments de l’interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. L’édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments.The Visual Studio edition that you have and the settings that you use determine these elements. Pour plus d’informations, consultez Personnaliser l’IDE Visual Studio.For more information, see Personalize the Visual Studio IDE.

PrérequisPrerequisites

Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :You need the following components to complete this walkthrough:

Créer le projetCreate the project

Dans cette étape, vous allez créer un projet de classeur Excel à l’aide de Visual Studio.In this step, you will create an Excel workbook project using Visual Studio.

Pour créer un projetTo create a new project

  1. Créer un projet de classeur Excel portant le nom My Events de plage nommée.Create an Excel Workbook project with the name My Named Range Events. Assurez-vous que l’option créer un nouveau document est sélectionné.Make sure that Create a new document is selected. Pour plus d'informations, voir Procédure : Créer des projets Office dans Visual Studio.For more information, see How to: Create Office projects in Visual Studio.

    Visual Studio ouvre le nouveau classeur Excel dans le concepteur et ajoute le My Events de plage nommée projet l’Explorateur de solutions.Visual Studio opens the new Excel workbook in the designer and adds the My Named Range Events project to Solution Explorer.

Ajouter du texte et plages nommées à la feuille de calculAdd text and named ranges to the worksheet

Étant donné que les contrôles hôtes sont des objets Office étendus, vous pouvez les ajouter à votre document de la même manière, vous devez ajouter l’objet natif.Because host controls are extended Office objects, you can add them to your document in the same manner you would add the native object. Par exemple, vous pouvez ajouter un Excel NamedRange contrôle à une feuille de calcul en ouvrant le insérer menu, pointez sur nomet en choisissant définir.For example, you can add an Excel NamedRange control to a worksheet by opening the Insert menu, pointing to Name, and choosing Define. Vous pouvez également ajouter un NamedRange contrôle en le faisant glisser à partir de la boîte à outils sur la feuille de calcul.You can also add a NamedRange control by dragging it from the Toolbox onto the worksheet.

Dans cette étape, vous allez ajouter deux contrôles de plage nommée à la feuille de calcul en utilisant le boîte à outils, puis ajoutez le texte à la feuille de calcul.In this step, you will add two named range controls to the worksheet using the Toolbox, and then add text to the worksheet.

Pour ajouter une plage à votre feuille de calculTo add a range to your worksheet

  1. Vérifiez que le mes Events.xlsx de plage nommée classeur est ouvert dans le concepteur Visual Studio, avec Sheet1 affiché.Verify that the My Named Range Events.xlsx workbook is open in the Visual Studio designer, with Sheet1 displayed.

  2. À partir de la contrôles Excel onglet de la boîte à outils, faites glisser un NamedRange contrôle de cellule A1 dans Sheet1.From the Excel Controls tab of the Toolbox, drag a NamedRange control to cell A1 in Sheet1.

    Le ajouter un contrôle NamedRange boîte de dialogue s’affiche.The Add NamedRange Control dialog box appears.

  3. Vérifiez que $A$ 1 apparaît dans la zone de texte modifiable et que la cellule A1 est sélectionné.Verify that $A$1 appears in the editable text box, and that cell A1 is selected. Si elle n’est pas le cas, cliquez sur cellule A1 pour le sélectionner.If it is not, click cell A1 to select it.

  4. Cliquez sur OK.Click OK.

    Cellule A1 devient une plage nommée namedRange1.Cell A1 becomes a range named namedRange1. Il n’existe aucune indication visible sur la feuille de calcul, mais namedRange1 s’affiche dans le nom boîte (situé juste au-dessus de la feuille de calcul sur le côté gauche) quand la cellule A1 est sélectionné.There is no visible indication on the worksheet, but namedRange1 appears in the Name box (located just above the worksheet on the left side) when cell A1 is selected.

  5. Ajoutez un autre NamedRange contrôle de cellule B3.Add another NamedRange control to cell B3.

  6. Vérifiez que $B$ 3 apparaît dans la zone de texte modifiable et que la cellule B3 est sélectionné.Verify that $B$3 appears in the editable text box, and that cell B3 is selected. Si elle n’est pas le cas, cliquez sur cellule B3 pour le sélectionner.If it is not, click cell B3 to select it.

  7. Cliquez sur OK.Click OK.

    Cellule B3 devient une plage nommée namedRange2.Cell B3 becomes a range named namedRange2.

Pour ajouter du texte à votre feuille de calculTo add text to your worksheet

  1. Dans la cellule A1, tapez le texte suivant :In Cell A1, type the following text:

    Il s’agit d’un exemple d’un contrôle NamedRange.This is an example of a NamedRange control.

  2. Dans la cellule A3 (à gauche de namedRange2), tapez le texte suivant :In Cell A3 (to the left of namedRange2), type the following text:

    Événements :Events:

    Dans les sections suivantes, vous allez écrire du code qui insère du texte dans namedRange2 et modifie les propriétés de la namedRange2 contrôle en réponse à la BeforeDoubleClick, Change, et SelectionChange événements de namedRange1.In the following sections, you will write code that inserts text into namedRange2 and modifies properties of the namedRange2 control in response to the BeforeDoubleClick, Change, and SelectionChange events of namedRange1.

Ajoutez du code pour répondre à l’événement BeforeDoubleClickAdd code to respond to the BeforeDoubleClick event

Pour insérer du texte dans NamedRange2 selon l’événement BeforeDoubleClickTo insert text into NamedRange2 based on the BeforeDoubleClick event

  1. Dans l’Explorateur de solutions, avec le bouton droit Sheet1.vb ou Sheet1.cs et sélectionnez afficher le Code.In Solution Explorer, right-click Sheet1.vb or Sheet1.cs and select View Code.

  2. Ajoutez le code afin que la namedRange1_BeforeDoubleClick Gestionnaire d’événements ressemble à ceci :Add code so the namedRange1_BeforeDoubleClick event handler looks like the following:

    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;
    }
    
    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
    
  3. En c#, vous devez ajouter des gestionnaires d’événements pour la plage nommée comme indiqué dans le Startup événement ci-dessous.In C#, you must add event handlers for the named range as shown in the Startup event below. Pour plus d’informations sur la création de gestionnaires d’événements, consultez Comment : Créer des gestionnaires d’événements dans les projets Office.For information on creating event handlers, see How to: Create event handlers in Office projects.

    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);
    

Ajoutez du code pour répondre à l’événement de modificationAdd code to respond to the Change event

Pour insérer du texte dans namedRange2 selon l’événement de modificationTo insert text into namedRange2 based on the Change event

  1. Ajoutez le code afin que la NamedRange1_Change Gestionnaire d’événements ressemble à ceci :Add code so the NamedRange1_Change event handler looks like the following:

    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;
    }
    
    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
    

    Note

    Étant donné que le double-clic sur une cellule dans une plage Excel en mode édition, un Change événement se produit lorsque la sélection est déplacée en dehors de la plage, même si aucune modification au texte s’est produite.Because double-clicking a cell in an Excel range enters edit mode, a Change event occurs when the selection is moved outside of the range even if no changes to text occurred.

Ajoutez du code pour répondre à l’événement SelectionChangeAdd code to respond to the SelectionChange event

Pour insérer du texte dans namedRange2 selon l’événement SelectionChangeTo insert text into namedRange2 based on the SelectionChange event

  1. Ajoutez le code afin que la NamedRange1_SelectionChange Gestionnaire d’événements ressemble à ceci :Add code so the NamedRange1_SelectionChange event handler looks like the following:

    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);
    }
    
    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
    

    Note

    Étant donné que le double-clic sur une cellule dans une plage Excel entraîne la sélection se déplace dans la plage, un SelectionChange événement se produit avant le BeforeDoubleClick événement se produit.Because double-clicking a cell in an Excel range causes the selection to move into the range, a SelectionChange event occurs before the BeforeDoubleClick event occurs.

Tester l’applicationTest the application

Vous pouvez désormais tester votre classeur pour vérifier que le texte décrivant les événements d’un NamedRange contrôle est inséré dans une autre plage nommée lorsque les événements sont déclenchés.Now you can test your workbook to verify that text describing the events of a NamedRange control is inserted into another named range when the events are raised.

Pour tester votre documentTo test your document

  1. Appuyez sur F5 pour exécuter votre projet.Press F5 to run your project.

  2. Placez votre curseur dans namedRange1et vérifiez que le texte concernant le SelectionChange événement est inséré et qu’un commentaire est inséré dans la feuille de calcul.Place your cursor in namedRange1, and verify that the text regarding the SelectionChange event is inserted and that a comment is inserted into the worksheet.

  3. Double-cliquez sur à l’intérieur de namedRange1et vérifiez que le texte concernant BeforeDoubleClick événements est inséré avec du texte en italique rouge dans namedRange2.Double click inside namedRange1, and verify that the text regarding BeforeDoubleClick events is inserted with red italicized text in namedRange2.

  4. Cliquez en dehors de namedRange1 et notez que l’événement de modification se produit lors de la sortie en mode édition, même si aucune modification au texte.Click outside of namedRange1 and note that the change event occurs when exiting edit mode even though no change to the text was made.

  5. Modifier le texte de namedRange1.Change the text within namedRange1.

  6. Cliquez en dehors de namedRange1et vérifiez que le texte concernant Change événement est inséré avec du texte en bleu dans namedRange2.Click outside of namedRange1, and verify that the text regarding Change event is inserted with blue text into namedRange2.

Étapes suivantesNext steps

Cette procédure pas à pas montre les principes fondamentaux de la programmation des événements d’un NamedRange contrôle.This walkthrough shows the basics of programming against events of a NamedRange control. Voici une tâche susceptibles de venir :Here is a task that might come next:

Voir aussiSee also