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çã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
Verifique se a pasta de trabalho de meu intervalo nomeado Events.xlsx é aberta no designer do Visual Studio, com Sheet1 exibida.
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.
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.
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.
Adicione outro controle de NamedRange para a célula B3.
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.
Clique em OK.
A célula B3 torna-se um intervalo nomeado namedRange2.
Para adicionar texto a sua planilha
Em a célula A1, digite o seguinte texto:
este é um exemplo de um controle de NamedRange.
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
Em Gerenciador de Soluções, clique com o botão direito do mouse Sheet1.vb ou Sheet1.cs e selecione Exibir Código.
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; }
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çã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çã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
Pressione F5 para executar o seu projeto.
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.
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.
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.
Altere o texto dentro de namedRange1.
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:
- implantando o projeto.Para obter mais informações, consulte Implantando uma solução do Office.
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
Limitações de programação de itens de Host e controles de Host