チュートリアル: NamedRange コントロールのイベントのプログラムWalkthrough: Program against events of a NamedRange control

このチュートリアルは、追加する方法を示します、 NamedRange Microsoft Office Excel ワークシートと Visual Studio での Office 開発ツールを使用して、そのイベントに対してプログラミングを制御します。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.

適用対象: このトピックの情報は、ドキュメントに適用されます-Excel のレベルのプロジェクト。Applies to: The information in this topic applies to document-level projects for Excel. 詳細については、「Office アプリケーションおよびプロジェクトの種類で使用できる機能」を参照してください。For more information, see Features available by Office application and project type.

このチュートリアルでは、次の作業を行う方法について説明します。During this walkthrough, you will learn how to:

  • 追加、NamedRangeコントロールをワークシートにします。Add a NamedRange control to a worksheet.

  • に対するプログラミングNamedRangeイベントを制御します。Program against NamedRange control events.

  • プロジェクトをテストします。Test your project.

Note

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。The Visual Studio edition that you have and the settings that you use determine these elements. 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。For more information, see Personalize the Visual Studio IDE.

必須コンポーネントPrerequisites

このチュートリアルを実行するには、次のコンポーネントが必要です。You need the following components to complete this walkthrough:

プロジェクトの作成Create the project

この手順では、Visual Studio を使用して Excel ブック プロジェクトを作成します。In this step, you will create an Excel workbook project using Visual Studio.

新しいプロジェクトを作成するにはTo create a new project

  1. 名前の Excel ブック プロジェクトを作成するマイという名前の範囲イベントします。Create an Excel Workbook project with the name My Named Range Events. 必ず新しい文書を作成が選択されています。Make sure that Create a new document is selected. 詳細については、「方法 :Visual Studio で Office プロジェクトを作成する方法」を参照してください。For more information, see How to: Create Office projects in Visual Studio.

    デザイナーで新しい Excel ブックを開き、マイという名前の範囲イベントプロジェクトをソリューション エクスプ ローラーします。Visual Studio opens the new Excel workbook in the designer and adds the My Named Range Events project to Solution Explorer.

テキストを追加し、名前付き範囲をワークシートAdd text and named ranges to the worksheet

ホスト コントロールでは、Office オブジェクトに拡張するため、追加すると同じように、ドキュメントには、ネイティブ オブジェクトを追加します。Because host controls are extended Office objects, you can add them to your document in the same manner you would add the native object. たとえば、Excel を追加することができますNamedRangeコントロールをワークシートに開くことで、挿入 メニューのをポイント名前を選択して定義します。For example, you can add an Excel NamedRange control to a worksheet by opening the Insert menu, pointing to Name, and choosing Define. 追加することも、NamedRangeコントロールからドラッグすることで、ツールボックスワークシートにします。You can also add a NamedRange control by dragging it from the Toolbox onto the worksheet.

この手順を使用してワークシートに 2 つの名前付き範囲コントロールを追加します、ツールボックス、し、ワークシートにテキストを追加します。In this step, you will add two named range controls to the worksheet using the Toolbox, and then add text to the worksheet.

ワークシートに範囲を追加するにはTo add a range to your worksheet

  1. いることを確認、マイ名前付き範囲 Events.xlsx 、Visual Studio デザイナーで開いているブックでSheet1が表示されます。Verify that the My Named Range Events.xlsx workbook is open in the Visual Studio designer, with Sheet1 displayed.

  2. Excel コントロール、ツールボックスのタブ、NamedRangeコントロールをセルA1Sheet1します。From the Excel Controls tab of the Toolbox, drag a NamedRange control to cell A1 in Sheet1.

    NamedRange コントロールの追加 ダイアログ ボックスが表示されます。The Add NamedRange Control dialog box appears.

  3. いることを確認 $A$ 1編集可能なテキスト ボックスに、そのセルに表示されるA1が選択されています。Verify that $A$1 appears in the editable text box, and that cell A1 is selected. そうでない場合は、セルをクリックします。 A1をオンにします。If it is not, click cell A1 to select it.

  4. [OK] をクリックします。Click OK.

    セルA1という名前の範囲になりますnamedRange1します。Cell A1 becomes a range named namedRange1. ワークシートの表示を示す値はありませんが、namedRange1に表示されます、名前ボックス (左側にあるワークシートの真上にあります) セルA1が選択されています。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. もう 1 つ追加NamedRangeコントロールをセルB3します。Add another NamedRange control to cell B3.

  6. いることを確認 $B$ 3編集可能なテキスト ボックスに、そのセルに表示されるB3が選択されています。Verify that $B$3 appears in the editable text box, and that cell B3 is selected. そうでない場合は、セルをクリックします。 B3をオンにします。If it is not, click cell B3 to select it.

  7. [OK] をクリックします。Click OK.

    セルB3という名前の範囲になりますnamedRange2します。Cell B3 becomes a range named namedRange2.

ワークシートにテキストを追加するにはTo add text to your worksheet

  1. セルにA1、次のテキストを入力します。In Cell A1, type the following text:

    これは、NamedRange コントロールの例です。This is an example of a NamedRange control.

  2. セルにA3 (の左側にnamedRange2)、次のテキストを入力します。In Cell A3 (to the left of namedRange2), type the following text:

    イベント:Events:

    テキストを挿入するコードを記述する次のセクションでnamedRange2のプロパティを変更し、namedRange2コントロールへの応答、 BeforeDoubleClickChange、およびSelectionChangeのイベント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.

BeforeDoubleClick イベントに応答するコードを追加します。Add code to respond to the BeforeDoubleClick event

BeforeDoubleClick イベントに基づいて NamedRange2 にテキストを挿入するにはTo insert text into NamedRange2 based on the BeforeDoubleClick event

  1. ソリューション エクスプ ローラー、右クリックSheet1.vbまたはSheet1.cs選択とコードの表示します。In Solution Explorer, right-click Sheet1.vb or Sheet1.cs and select View Code.

  2. コードを追加するため、namedRange1_BeforeDoubleClickイベント ハンドラーは、次のようにします。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. C# でのように、名前付き範囲のイベント ハンドラーを追加する必要があります、Startupイベント。In C#, you must add event handlers for the named range as shown in the Startup event below. イベント ハンドラーの作成方法の詳細については、次を参照してください。方法。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);
    

変更イベントに応答するコードを追加します。Add code to respond to the Change event

変更イベントに基づく namedRange2 にテキストを挿入するにはTo insert text into namedRange2 based on the Change event

  1. コードを追加するため、NamedRange1_Changeイベント ハンドラーは、次のようにします。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

    編集モードでは、Excel の範囲内のセルをダブルクリックすると入力したため、Changeイベント テキストに変更が発生していない場合でも、選択範囲が範囲外で移動するときに発生します。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.

SelectionChange イベントに応答するコードを追加します。Add code to respond to the SelectionChange event

SelectionChange イベントに基づいて namedRange2 にテキストを挿入するにはTo insert text into namedRange2 based on the SelectionChange event

  1. コードを追加するため、 NamedRange1_SelectionChangeイベント ハンドラーは、次のようにします。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

    Excel の範囲内のセルをダブルクリックすると、範囲に移動が発生するため、SelectionChangeイベントが発生する前に、BeforeDoubleClickイベントが発生します。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.

アプリケーションをテストするTest the application

イベントを表すテキストを確認するブックをテストして、NamedRangeイベントが発生したときに、コントロールが別の名前付き範囲に挿入されます。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.

文書をテストするにはTo test your document

  1. キーを押してF5プロジェクトを実行します。Press F5 to run your project.

  2. カーソルを置くnamedRange1、いることを確認し、テキストに関する、SelectionChangeイベントが挿入されると、ワークシートにコメントを挿入します。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. 内でダブルクリックnamedRange1、ことを確認しますテキストに関するBeforeDoubleClickの赤色の斜体テキストと共にイベントが挿入されますnamedRange2します。Double click inside namedRange1, and verify that the text regarding BeforeDoubleClick events is inserted with red italicized text in namedRange2.

  4. 外側をクリックしてnamedRange1テキストに変更が加えられなかった場合でも、編集モードの変更イベントが終了するときに発生する注意してください。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. 内のテキストを変更するnamedRange1します。Change the text within namedRange1.

  6. 外側をクリックしてnamedRange1、いることを確認し、テキストに関するChangeに青色のテキストと共にイベントが挿入されますnamedRange2します。Click outside of namedRange1, and verify that the text regarding Change event is inserted with blue text into namedRange2.

次の手順Next steps

このチュートリアルでのイベントのプログラミングの基礎をNamedRangeコントロール。This walkthrough shows the basics of programming against events of a NamedRange control. 次のタスクを次に示します。Here is a task that might come next:

関連項目See also