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

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

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

Durante este explicação passo a passo, você aprenderá como:

  • adicionar um controle de NamedRange a uma planilha.

  • Programa com eventos de controle de NamedRange .

  • Teste seu projeto.

ObservaçãoObservação

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário Visual Studio nas instruções a seguir.A edição Visual Studio que você possui e as configurações que você usa determinam esses elementos.Para obter mais informações, consulte Configurações de Visual Studio.

Pré-requisitos

Para completar este passo-a-passo, são necessários os seguintes componentes:

-

Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).
  • Excel 2013 ou Excel 2010.

Criando o projeto

Em esta etapa, você criará um projeto de pasta de trabalho do Excel usando Visual Studio.

para criar um novo projeto

  • Crie um projeto de pasta de trabalho do Excel com o nome my eventos de intervalo nomeado.certifique-se de que Criar um novo documento está selecionado.Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.

    O Visual Studio abre a nova pasta de trabalho do Excel no designer e adiciona my eventos de intervalo nomeado projetos a Gerenciador de Soluções.

Adicionando o texto e os intervalos nome da planilha

Como controles host são objetos estendidos do Office, você pode adicioná-los ao seu documento da mesma maneira que você adicionaria o objeto nativo.Por exemplo, você pode adicionar um controle a uma planilha do excel NamedRange abrindo o menu de Inserir , apontando para Nome, e escolhendo Definir.Você também pode adicionar um controle de NamedRange arrastando o Caixa de Ferramentas da planilha.

Em esta etapa, você adicionará dois controles de intervalo nomeado usando a planilha Caixa de Ferramentasem seguida, adicione o texto à planilha.

Para adicionar um intervalo para sua planilha

  1. Verifique se a pasta de trabalho de meu intervalo nomeado Events.xlsx é aberta no designer do Visual Studio, com Sheet1 exibida.

  2. De a guia de Controles do excel da caixa de ferramentas, arraste um controle para a célula de NamedRangeA1 em Sheet1.

    a caixa de diálogo de Adicione o controle de NamedRange aparece.

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

  4. Clique em OK.

    A célula A1 torna-se um intervalo nomeado namedRange1.Não há nenhuma indicando visível na planilha, mas namedRange1 aparece na caixa de Nome (localizada logo acima da planilha no lado esquerdo) quando a célula A1 é selecionada.

  5. Adicione outro controle de NamedRange para a célula B3.

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

  7. Clique em OK.

    A célula B3 torna-se um intervalo nomeado namedRange2.

Para adicionar texto a sua planilha

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

    este é um exemplo de um controle de NamedRange.

  2. A3 (Em a célula à esquerda de namedRange2), digite o seguinte texto:

    eventos:

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

Adicionando código para responder ao evento de BeforeDoubleClick

Para inserir texto em NamedRange2 baseado no evento de BeforeDoubleClick

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse Sheet1.vb ou Sheet1.cs e selecione Exibir Código.

  2. Adicione código para o manipulador de eventos de namedRange1_BeforeDoubleClick como 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. Em C#, você deve adicionar manipuladores de eventos para o intervalo nomeado como mostrado no evento de Startup 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 namedRange2 baseado no evento de alteração

  • Adicione código para o manipulador de eventos de NamedRange1_Change como 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 clique duas vezes em uma célula em um intervalo Excel inserir o modo de edição, um evento de Change ocorre quando a seleção é movido para fora do intervalo mesmo se nenhuma alteração ocorreu ao texto.

Adicionando código para responder ao evento de SelectionChange

Para inserir texto em namedRange2 baseado no evento de SelectionChange

  • Adicione código para o manipulador de eventos de NamedRange1_SelectionChange como 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 clique duas vezes em uma célula em um intervalo Excel faz com que a seleção para mover o intervalo, um evento de SelectionChange ocorre antes que o evento de BeforeDoubleClick ocorra.

Testando o aplicativo

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

para testar seu documento

  1. Pressione F5 para executar o seu projeto.

  2. Coloque o cursor em namedRange1, e verifique se o texto em relação ao evento de SelectionChange seja inserido e um comentário que é inserido na planilha.

  3. Clique duas vezes em namedRange1interno, e verifique se o texto em relação a eventos de BeforeDoubleClick está inserido em itálico com texto vermelho em namedRange2.

  4. Clique fora de namedRange1 e observe que o evento de mudança ocorre no sair do modo de edição mesmo que nenhuma alteração é feita ao texto.

  5. Altere o texto dentro de namedRange1.

  6. Clique fora de namedRange1, e verifique se o texto em relação ao evento de Change seja inserido com texto azul em namedRange2.

Próximas etapas

Essa explicação passo a passo mostra as noções básicas de programação com eventos de um controle de NamedRange .Aqui está uma tarefa que pode vir em seguida:

Consulte também

Tarefas

Como: redimensionar controles NamedRange

Como: adicionar controles de NamedRange às planilhas

Como: criar manipuladores de eventos em projetos do Office

Conceitos

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

Automatizar o Excel usando o Extended objetos

Controle NamedRange

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