Programação personalizações em nível de documento

Quando você estende o Microsoft Office Word ou Excel de Microsoft Office usando uma personalização em nível de documento, você pode executar as seguintes tarefas:

  • Automatize o aplicativo usando o seu modelo de objeto.

  • Adicione controles para a superfície do documento.

  • Chame Visual Basic for Applications código VBA () no documento a partir do assembly de personalização.

  • Chame o código do VBA, o assembly de personalização.

  • Gerencie determinados aspectos do documento enquanto ele estiver em um servidor que não tenha de Microsoft Office instalado.

  • Personalize 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 2007 e Excel 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Alguns aspectos de escrever código em projetos de nível de documento são diferentes dos outros tipos de projetos em Visual Studio. Muitas dessas diferenças são causadas pela maneira como o Office em modelos de objeto são expostos ao código gerenciado. For more information, see Escrevendo código em soluções do Office.

Para obter informações gerais sobre as personalizações em nível de documento e de outros tipos de soluções que você pode criar usando as ferramentas de desenvolvimento do Office em Visual Studio, consulte Visão geral de desenvolvimento de soluções do Office.

Usando as Classes geradas em projetos de nível de documento

Quando você cria um projeto de nível de documento, o Visual Studio automaticamente gera uma classe no projeto que você pode usar para começar a escrever seu código. Visual Studio gera classes diferentes para o Word e Excel:

  • Em projetos de nível de documento do Word, a classe é chamada ThisDocument por padrão.

  • Projetos de nível de documento para o Excel tem várias classes geradas: uma pasta de trabalho propriamente dito e uma para cada planilha. Por padrão, essas classes têm os seguintes nomes:

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

A classe gerada contém os manipuladores de eventos são chamados quando o documento está aberto ou fechado. Para executar código quando o documento é aberto, adicione código para o Startup manipulador de eventos. Para executar código antes do documento é fechado, adicione código para o Shutdown manipulador de eventos. For more information, see Eventos em projetos do Office.

Noções básicas sobre o Design das Classes geradas

Em projetos destinados a.NET Framework 3.5, as classes geradas derivam a maioria dos seus membros e o comportamento a seguir o item de host classes de Visual Studio Tools for Office runtime: 

  • ThisDocument: derivaMicrosoft.Office.Tools.Word.Document

  • ThisWorkbook: derivaMicrosoft.Office.Tools.Excel.Workbook

  • Sheetn: derivaMicrosoft.Office.Tools.Excel.Worksheet

Itens de host são tipos que estão na parte superior das hierarquias de modelo de objeto em projetos do Office, e eles estendem o comportamento de objetos correspondentes na assemblies de interoperabilidade primários (PIAs) do Office. Para obter mais informações sobre itens de host, consulte Itens de host e a visão geral sobre controles de Host.

Em projetos destinados a .NET Framework 4, tipos de item de host na Visual Studio Tools for Office runtime são as interfaces, para que as classes geradas não podem derivar sua implementação deles. Em vez disso, as classes geradas derivam a maioria dos seus membros as seguintes classes base:

Essas classes base redirecionar todas as chamadas para seus membros para as implementações internas das interfaces de item de host correspondente na Visual Studio Tools for Office runtime. Por exemplo, se você chamar o Protect método do ThisDocument classe, o Microsoft.Office.Tools.Word.DocumentBase classe redireciona esta chamada para a implementação interna da Microsoft.Office.Tools.Word.Document interface o Visual Studio Tools for Office runtime. Para obter mais informações sobre as diferenças na Visual Studio Tools for Office runtime para projetos destinados a.NET Framework 3.5 e o .NET Framework 4, consulte Visual Studio Tools for Office visão geral sobre o tempo de execução.

Acessando o modelo de objeto do aplicativo Host

Para acessar o modelo de objeto do aplicativo host, use os membros da classe gerada em seu projeto. Cada uma dessas classes corresponde a um objeto no modelo de objeto do Excel ou Word e contêm a maioria das mesmas propriedades, métodos e eventos. Por exemplo, o ThisDocument de classe em um projeto de nível de documento do Word fornece a maioria dos mesmos membros como o Microsoft.Office.Interop.Word.Document o objeto no modelo de objeto do Word.

O exemplo de código a seguir mostra como usar o modelo de objeto do Word para salvar o documento que faz parte de uma personalização em nível de documento do Word. Este exemplo se destina a ser executado a partir de ThisDocument classe.

Me.Save()
this.Save();

Para fazer a mesma coisa de fora a ThisDocument da classe, use o Globals o objeto para o acesso a ThisDocument classe. Por exemplo, você pode adicionar esse código em um arquivo de código do painel de ações se você deseja incluir um Salvar botão no painel de ações da interface do usuário.

Globals.ThisDocument.Save()
Globals.ThisDocument.Save();

Porque o ThisDocument classe obtém a maioria de seus membros da Microsoft.Office.Tools.Word.Document item de host, o Save método é chamado neste código é realmente a Save método da Microsoft.Office.Tools.Word.Document item de host. Esse método corresponde do Save método o Microsoft.Office.Interop.Word.Document objeto no modelo de objeto do Word.

Para obter mais informações sobre como usar os modelos de objeto do Word e Excel, consulte Palavra Overview do modelo de objeto e Visão geral do modelo de objeto do Excel.

Para obter mais informações sobre o Globals de objeto, consulte Acesso global a objetos em projetos do Office.

Adicionando controles a documentos

Para personalizar a interface do usuário do documento, você pode adicionar controles Windows Forms ou controles de host para a superfície do documento. Combinando a diferentes conjuntos de controles e escrevendo o código, que você pode vincular controles a dados, coletar informações do usuário e responder a ações do usuário.

Os controles de host são classes que estendem a alguns dos objetos no modelo de objeto do Word e Excel. Por exemplo, o Microsoft.Office.Tools.Excel.ListObject o controle de host fornece toda a funcionalidade da Microsoft.Office.Interop.Excel.ListObject no Excel. No entanto, o Microsoft.Office.Tools.Excel.ListObject o controle de host também tem eventos adicionais e recursos de ligação de dados.

For more information, see Itens de host e a visão geral sobre controles de Host and Controles do Windows Forms em Visão geral de documentos do Office.

Combinando o VBA e personalizações em nível de documento

Você pode usar o código do VBA em um documento que faz parte de uma personalização em nível de documento. Você pode chamar o código do VBA no documento do assembly de personalização e você também pode configurar o seu projeto para habilitar o código do VBA no documento para chamar o código no assembly de personalização.

For more information, see Combinando o VBA e personalizações em nível de documento.

Gerenciamento de documentos em um servidor

Você pode gerenciar vários aspectos diferentes de personalizações em nível de documento em um servidor que não tem o Microsoft Office Word ou Excel de Microsoft Office instalado. Por exemplo, você pode acessar e modificar dados no cache de dados do documento. Você também pode gerenciar o assembly de personalização associado ao documento. Por exemplo, você pode remover programaticamente o assembly do documento para que o documento não executa o seu código, ou você programaticamente pode anexar um assembly em um documento.

For more information, see Gerenciamento de documentos em um servidor usando a classe ServerDocument.

Personalizando a Interface de usuário de aplicativos de Microsoft Office

Você pode personalizar a interface do usuário do Word e o Excel das seguintes maneiras, usando uma personalização em nível de documento:

Para obter mais informações sobre como personalizar os aplicativos de interface do usuário do Microsoft Office, consulte Personalização de interface do usuário do Office.

Consulte também

Conceitos

Gerenciamento de documentos em um servidor usando a classe ServerDocument

Obtendo Extended objetos a partir de objetos nativos do Office no nível do documento personalizações

Escrevendo código em soluções do Office

Outros recursos

Controles em documentos do Office

Combinando o VBA e personalizações em nível de documento