Demonstra Passo a passo: Programação de eventos de um controle NamedRange

Esta explicação passo a passo demonstra como adicionar um NamedRange o controle a uma planilha do Excel de Microsoft Office e o programa de seus eventos usando as ferramentas de desenvolvimento do Office em Visual Studio.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para Excel 2007 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

During this walkthrough, you will learn how to:

  • Adicionar um NamedRange o controle para uma planilha.

  • Programar NamedRange eventos de controle.

  • Teste seu projeto.

ObservaçãoObservação

Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. The Visual Studio edition that you have and the settings that you use determine these elements. For more information, see Trabalhando com configurações.

Pré-requisitos

You need the following components to complete this walkthrough:

-

Uma edição do Visual Studio 2010 que inclua as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.100\).md).
  • Excel 2007 ou Excel 2010.

Creating the Project

Nesta etapa, você irá criar um projeto de pasta de trabalho do Excel usando o Visual Studio.

Para criar um novo projeto.

  • Crie um projeto de pasta de trabalho do Excel com os eventos de intervalo de chamada meu do nome. Certifique-se de que criar um novo documento está selecionada. For more information, see Como: Criar projetos do Office em Visual Studio.

    Abre a nova pasta de trabalho do Excel no designer de Visual Studio e adiciona o projeto de Meus eventos de intervalo de chamada para Solution Explorer.

Adicionar texto e intervalos nomeados para a planilha.

Porque os controles de host são estendidos de objetos do Office, você pode adicioná-los ao seu documento da mesma maneira, você adicionaria o objeto nativo. Por exemplo, você pode adicionar um Excel NamedRange o controle para uma planilha, abrindo o Inserir menu, apontando para nomee escolhendo Definir. Você também pode adicionar um NamedRange controle, arrastando-a partir de Toolbox para a planilha.

Nesta etapa, você irá adicionar dois controles de intervalo nomeado à planilha usando o caixa de ferramentase em seguida, adicione texto à planilha.

Para adicionar um intervalo para sua planilha

  1. Verifique o Events.xls de intervalo nomeado My pasta de trabalho está aberta no designer de Visual Studio, com Sheet1 exibida.

  2. Do Excel controles guia da caixa de ferramentas, arraste um NamedRange controle à célula A1 na Sheet1.

    O Adicionar o controle de NamedRange caixa de diálogo aparece.

  3. Verifique $A$ 1 aparece na caixa de texto editável e que a célula A1 está selecionada. Se não estiver, clique na célula A1 para selecioná-lo.

  4. Click OK.

    Célula A1 torna-se um intervalo chamado namedRange1. Não há nenhuma indicação visível na planilha, mas namedRange1 aparece no nome caixa (localizada logo acima da planilha no lado esquerdo) quando a célula A1 está selecionada.

  5. Adicionar outro NamedRange o controle à célula B3.

  6. Verifique $B$ 3 aparece na caixa de texto editável e que a célula B3 está selecionada. Se não estiver, clique na célula B3 para selecioná-lo.

  7. Click OK.

    Célula B3 torna-se um intervalo chamado namedRange2.

Para adicionar texto a sua planilha

  1. Na célula A1, digite o seguinte texto:

    Este é um exemplo de um controle NamedRange.

  2. Na célula A3 (à esquerda da namedRange2), digite o seguinte texto:

    Eventos:

Nas seções a seguir, você irá escrever o código que insere texto no namedRange2 e modifica as propriedades da namedRange2 controle em resposta para o BeforeDoubleClick, Change, e SelectionChange eventos de namedRange1.

Adicionando código para responder ao evento BeforeDoubleClick

Para inserir texto em NamedRange2, baseado no evento BeforeDoubleClick

  1. Em Solution Explorer, com o botão direito Sheet1.vb ou Sheet1.cs e selecione Exibir código.

  2. Adicione código para que as namedRange1_BeforeDoubleClick manipulador de eventos se parece com o seguinte:

    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. C#, você deve adicionar manipuladores de eventos para o intervalo nomeado como mostra a Startup evento abaixo. Para obter informações sobre como criar manipuladores de eventos, consulte Como: Criar manipuladores de eventos em projetos do 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);
    

Adicionando código para responder ao evento de alteração

Para inserir texto em baseado no evento de alteração de namedRange2

  • Adicione código para que as NamedRange1_Change manipulador de eventos se parece com o seguinte:

    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;
    }
    
    ObservaçãoObservação

    Porque duas vezes em uma célula no intervalo do Excel entra em modo de edição, um Change evento ocorre quando a seleção é movida fora do intervalo, mesmo que nenhuma alteração ao texto ocorreu.

Adicionando código para responder ao evento SelectionChange

Para inserir texto em namedRange2, baseado no evento SelectionChange

  • Adicione código para que as NamedRange1_SelectionChange manipulador de eventos se parece com o seguinte:

    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);
    }
    
    ObservaçãoObservação

    Porque duas vezes em uma célula no intervalo do Excel faz com que a seleção Mover para o intervalo, uma SelectionChange evento ocorre antes do BeforeDoubleClick evento ocorre.

Testing the Application

Agora você pode testar a sua pasta de trabalho para verificar que o texto que descreve os eventos de um NamedRange controle é inserido no outro intervalo nomeado quando os eventos são disparados.

Para testar seu documento.

  1. Pressione F5 para executar seu projeto.

  2. Coloque o cursor na namedRange1e verifique o texto sobre o SelectionChange evento é inserido e um comentário é inserido na planilha.

  3. Clique duas vezes dentro de namedRange1e verifique o texto sobre BeforeDoubleClick eventos é inserido com o texto em itálico em vermelho na namedRange2.

  4. Clique fora da namedRange1 e observe que o evento change ocorre quando sair do modo de edição, mesmo que não foi feita nenhuma alteração ao texto.

  5. Alterar o texto dentro de namedRange1.

  6. Clique fora da namedRange1e verifique o texto sobre Change evento é inserido com texto azul em namedRange2.

Próximas etapas

Esta explicação passo a passo mostra noções básicas de programação de eventos de um NamedRange de controle. Esta é uma tarefa que pode vie em seguida:

Consulte também

Tarefas

Como: Redimensionar controles de NamedRange

Como: Adicionar controles de NamedRange para planilhas

Como: Criar manipuladores de eventos em projetos do Office

Conceitos

Itens de host e a visão geral sobre controles de Host

Automatizar o Excel usando o Extended objetos

Controle de NamedRange

Limitações de programação de itens de Host e controles de Host