Programação personalizações em nível de documento
Quando você estender o Microsoft Office Word e Microsoft Office Excel usando uma personalização da nível de usuário, você pode executar as seguintes tarefas:
Automatizar o aplicativo usando o modelo de objeto.
Adicionar controles a superfície do documento.
Chamar código do Visual Basic é VBA Applications () no documento do assembly de personalização.
Chamar código no assembly de personalização de VBA.
Gerenciar determinados aspectos do documento enquanto estiver em um servidor que não tenha Microsoft Office instalar o.
Personalizar a interface do usuário (UI) do aplicativo.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para os seguintes aplicativos: Excel 2013 e Excel 2010; Word 2013 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Alguns aspectos de escrita de código em projetos de um documento nível são diferentes de outros tipos de projetos no Visual Studio.Muitas dessas diferenças são causadas os modelos de objeto do Office são expostos a relação ao código gerenciado.Para obter mais informações, consulte Escrevendo código em soluções do Office.
Para obter informações gerais sobre as personalizações da nível e outros tipos de soluções que você pode criar usando as ferramentas de desenvolvimento do Office no Visual Studio, consulte o Visão geral de desenvolvimento de soluções do Office.
Usando as classes geradas em projetos de um documento nível
Quando você cria um projeto de um documento nível, o Visual Studio gera automaticamente uma classe no projeto que você pode usar para iniciar a escrita do seu código.O Visual Studio gera classes diferentes para Word e Excel:
Em um documento nível para projetos Word, a classe é chamado ThisDocument por padrão.
Os projetos da nível do excel têm várias classes geradas: um para a pasta de trabalho em si, e um para cada planilha.Por padrão, essas classes possuem os seguintes nomes:
ThisWorkbook
Sheet1
Sheet2
Sheet3
A classe gerada inclui os manipuladores de eventos que são chamados quando o documento está aberto ou fechada.Para executar o código quando o documento está aberto, adicione código ao manipulador de eventos de Startup .Para executar o código imediatamente antes do documento é fechado, adicione código ao manipulador de eventos de Shutdown .Para obter mais informações, consulte Eventos em projetos do Office.
Entendendo o design das classes geradas
Em projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5, os tipos de itens de host em Visual Studio Tools for Office Runtime são interfaces, para que as classes geradas não podem derivar sua implementação de eles.Em vez disso, as classes derivam gerados a maioria dos membros das seguintes classes base:
ThisDocument: deriva de Microsoft.Office.Tools.Word.DocumentBase.
ThisWorkbook: deriva de Microsoft.Office.Tools.Excel.WorkbookBase.
Sheetem: deriva de Microsoft.Office.Tools.Excel.WorksheetBase.
Essas classes base reorientam todas as chamadas a seus membros para implementações internas de interfaces de host item correspondente em Visual Studio Tools for Office Runtime.Por exemplo, se você chamar o método de Protect da classe de ThisDocument , a classe de Microsoft.Office.Tools.Word.DocumentBase redireciona esta chamada para a implementação interna de interface de Microsoft.Office.Tools.Word.Document em Visual Studio Tools for Office Runtime.
Acessando o modelo de objeto do aplicativo host
Para acessar o modelo de objeto do aplicativo host, use membros da classe gerada em seu projeto.Cada uma dessas classes corresponde a um objeto no modelo de objeto ou do excel Word, e contém a maioria das mesmas propriedades, métodos, eventos e.Por exemplo, a classe de ThisDocument em um projeto de um documento nível para Word fornece a maioria dos mesmos membros que o objeto de Microsoft.Office.Interop.Word.Document no modelo de objeto de Word.
O exemplo de código a seguir mostra como usar o modelo de objeto de Word para salvar o documento que é parte de um nível para a personalização do Word.Este exemplo destina-se a ser executado da classe de ThisDocument .
Me.Save()
this.Save();
Para fazer a mesma coisa fora da classe de ThisDocument , use o objeto de Globals para acessar a classe de ThisDocument .Por exemplo, você pode adicionar este código a um arquivo de código do painel de ações se você deseja incluir um botão de Salvar interface do usuário no painel de ações.
Globals.ThisDocument.Save()
Globals.ThisDocument.Save();
Porque a classe de ThisDocument obtém a maioria dos membros de item host de Microsoft.Office.Tools.Word.Document , o método de Save que é chamado nesse código é realmente o método de Save de item host de Microsoft.Office.Tools.Word.Document .Este método corresponde ao método de Save do objeto de Microsoft.Office.Interop.Word.Document no modelo de objeto de Word.
Para obter mais informações sobre como usar os modelos de objeto de Word e o excel, consulte Visão geral do modelo de objeto do WordVisão geral sobre o modelo de objeto do Excel.
Para obter mais informações sobre o objeto Globals, consulte Acesso global a objetos em projetos do Office.
Adicionando controles aos documentos
Para personalizar a interface do usuário do documento, você pode adicionar controles de formulários do Windows ou controles de host para o documento surgem.Combinando diferentes conjuntos de controles e escrevendo código, você pode associar controles a dados, colete informações do usuário, e responder às ações do usuário.
Os controles de host são classes que estendem alguns dos objetos no modelo de objeto de Word e Excel.Por exemplo, o controle hospedeiro de Microsoft.Office.Tools.Excel.ListObject fornece toda a funcionalidade de Microsoft.Office.Interop.Excel.ListObject Excel.No entanto, o controle hospedeiro de Microsoft.Office.Tools.Excel.ListObject também tem eventos adicionais e os recursos de associação de dados.
Para obter mais informações, consulte Itens de host e visão geral sobre controles de Host e Controles do Windows Forms em Visão geral de documentos do Office.
Combinando VBA e personalizações da nível
Você pode usar o código de VBA em um documento que é parte de uma personalização da nível.Você pode chamar código de VBA no documento do assembly de personalização, e você também pode configurar seu projeto ativar o código de VBA no documento para chamar código no assembly de personalização.
Para obter mais informações, consulte Combinando o VBA e personalizações em nível de documento.
Gerenciando documentos em um servidor
Você pode gerenciar vários aspectos diferentes personalizações de nível de um documento em um servidor que não tenha Microsoft Office Word e Microsoft Office Excel instalar o.Por exemplo, você pode acessar e modificar dados no cache de dados do documento.Você também pode gerenciar o assembly de personalização que está associado com o documento.Por exemplo, você pode programaticamente remover o assembly do documento de modo que o documento não executa seu código, ou você pode programaticamente anexar um assembly em um documento.
Para obter mais informações, consulte Gerenciamento de documentos em um servidor, usando a classe ServerDocument.
Personalizando a interface do usuário de aplicativos do Microsoft Office
Você pode personalizar a interface do usuário de Word e Excel usando uma das seguintes maneiras da personalização nível:
Adicionar controles do host ou de formulários do Windows para a superfície do documento.
Para obter mais informações, consulte Automação do Word utilizando o Extended objetos, Automatizar o Excel usando o Extended objetos, e Controles do Windows Forms em Visão geral de documentos do Office.
Adicionar um painel de ações do documento.
Para obter mais informações, consulte Visão geral do painel de ações.
Adicione guias personalizados a fita.
Para obter mais informações, consulte Visão geral da faixa de opções.
Adicione grupos personalizados a um guia interno em fita.
Para obter mais informações, consulte Como: personalizar a guia interna.
Para obter mais informações sobre como personalizar a interface do usuário de aplicativos do Microsoft Office, consulte Personalização de interface do usuário do Office.
Obtendo objetos estendidos de objetos do Office de nativo na personalizações de nível
Vários manipuladores de eventos para eventos do Office recebem um objeto nativo do Office que representa a pasta de trabalho, a planilha, ou documento que gerou o evento.Em alguns casos, convém executar alguns códigos somente se a pasta de trabalho ou o documento em sua personalização da nível aumentaram o evento.Por exemplo, em um nível para a personalização do excel, você pode desejar executar alguns códigos quando o usuário alterna uma das planilhas na pasta de trabalho personalizado, mas não quando o usuário alterna uma planilha de alguma outra pasta de trabalho que acontece estar aberto ao mesmo tempo.
Quando você tiver um objeto nativo do Office, você pode testar se o objeto esteve estendido em um item de host ou em um controle hospedeiro em uma personalização da nível.Os itens host e controles host são os tipos fornecidos por Visual Studio Tools for Office Runtime que adicionam funcionalidade para objetos de forma nativa que existem nos modelos de objeto do Word ou Excel (chamados Objetos nativos do Office).Coletivamente, os itens host e controles host também são chamados objetos estendidos. Para obter mais informações sobre os itens host e controles host, consulte Itens de host e visão geral sobre controles de Host.
Entendendo os métodos de GetVstoObject e de HasVstoObject
Para testar um objeto nativo do Office, use os métodos de HasVstoObject e de GetVstoObject em seu projeto:
Use o método de HasVstoObject se você quiser determinar se o objeto do Office de ambos tem um objeto estendido em sua personalização.Esse método retorna true se o objeto do Office de ambos tem um objeto estendido, e false caso contrário.
Use o método de GetVstoObject se você deseja obter o objeto estendido para um objeto nativo do Office.Esse método retorna Microsoft.Office.Tools.Excel.ListObject, Microsoft.Office.Tools.Excel.Workbook, Microsoft.Office.Tools.Excel.Worksheet, ou o objeto de Microsoft.Office.Tools.Word.Document se o objeto especificado do Office de ambos tem um.Caso contrário, GetVstoObject retornará null.Por exemplo, o método de GetVstoObject retorna Microsoft.Office.Tools.Word.Document se Microsoft.Office.Interop.Word.Document especificado é o objeto subjacente para o documento em seu projeto de documento do Word.
Em projetos de um documento nível, você não pode usar o método de GetVstoObject para criar em tempo de execução novo Microsoft.Office.Tools.Excel.Workbook, Microsoft.Office.Tools.Excel.Worksheet, ou o item host de Microsoft.Office.Tools.Word.Document .Você pode usar esse método para acessar somente os itens existentes host que são gerados em seu projeto em tempo de design.Se você deseja criar em tempo de execução novos itens host, você deve desenvolver um projeto de aplicativo.Para obter mais informações, consulte Limitações de programação de itens de Host e controles de Host e Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução.
Usando os métodos e de GetVstoObject de HasVstoObject
Para chamar o método de HasVstoObject e de GetVstoObject , use o método de Globals.Factory.GetVstoObject ou de Globals.Factory.HasVstoObject , e passar no objeto nativo de Word ou Excel (como Microsoft.Office.Interop.Word.Document ou Microsoft.Office.Interop.Excel.Worksheet) que você deseja testar.
Consulte também
Conceitos
Gerenciamento de documentos em um servidor, usando a classe ServerDocument
Escrevendo código em soluções do Office