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çã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
Verifique o Events.xls de intervalo nomeado My pasta de trabalho está aberta no designer de Visual Studio, com Sheet1 exibida.
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.
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.
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.
Adicionar outro NamedRange o controle à célula B3.
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.
Click OK.
Célula B3 torna-se um intervalo chamado namedRange2.
Para adicionar texto a sua planilha
Na célula A1, digite o seguinte texto:
Este é um exemplo de um controle NamedRange.
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
Em Solution Explorer, com o botão direito Sheet1.vb ou Sheet1.cs e selecione Exibir código.
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; }
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çã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çã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.
Pressione F5 para executar seu projeto.
Coloque o cursor na namedRange1e verifique o texto sobre o SelectionChange evento é inserido e um comentário é inserido na planilha.
Clique duas vezes dentro de namedRange1e verifique o texto sobre BeforeDoubleClick eventos é inserido com o texto em itálico em vermelho na namedRange2.
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.
Alterar o texto dentro de namedRange1.
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:
- Implantando o projeto. For more information, see Implantar soluções do Office.
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
Limitações de programação de itens de Host e controles de Host