Artigo: 238972 - Última revisão: quinta-feira, 19 de Abril de 2007 - Revisão: 8.2

Utilizar o Visual C++ para automatizar o Office

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Pode utilizar a automatização para controlo do Microsoft Office componentes de aplicações do Visual C++. Este artigo fornece as informações básicas necessárias automatizar o Office, bem como indicações para recursos e exemplos de código.

Mais Informação

Automatização (anteriormente automatização OLE) é uma tecnologia que lhe permite tirar partido da funcionalidade de um programa existente e incorporar as suas próprias aplicações. Por exemplo, pode utilizar a ortografia do Microsoft Word e capacidades de verificação de gramática à aplicação sem tornar visíveis aos utilizadores o Microsoft Word. Pode mesmo utilizar todas as ferramentas de análise de gráficos, impressão e dados do Microsoft Excel. Esta tecnologia bastante pode simplificar e acelerar o desenvolvimento.

A automatização e COM

Automatização é baseada em COM (Component Object modelo). COM é uma arquitectura de software padrão com base nas interfaces e concebido para separar o código em objectos autónomos. Considere-la como uma extensão do objecto paradigma Oriented Programming (OOP), mas aplica a separar as aplicações. Cada objecto expõe um conjunto de interfaces e todas as comunicações a um objecto, como, por exemplo, inicialização, notificações e transferência de dados, acontece através destas interfaces.

COM também é um conjunto de serviços fornecidos por bibliotecas de ligação dinâmica (DLL) instaladas com o sistema operativo. Automatização utiliza muitos desses serviços. Um exemplo é o serviço "Marshalling", que pacotes de chamadas a aplicação de cliente para as funções de membro de interfaces da aplicação de servidor e passa com os respectivos argumentos para a aplicação de servidor. Interfaces do servidor não parecem ser expostas no espaço de memória do cliente, o que não é o caso quando o cliente é um ficheiro .exe em execução no seu próprio espaço de processo. Marshalling também obtém os valores de retorno de métodos do servidor novamente através de limites de processos e com segurança mãos das chamadas do cliente.

Existem muitos outros serviços essenciais à automatização fornecidos pelas bibliotecas COM vários. Fontes de informação sobre os incluem:
  • Dentro de OLE - segunda edição"por Kraig Brockschmidt, ISBN 1-55615-843-2
  • Dentro COM"por Dale Rogerson - ISBN 1-57231-349-8
  • Referência automatização Programmer,"ISBN 1-57231-584-9

Três formas de utilizar a automatização do Visual C++

Existem três formas básicas, pode utilizar a automatização: MFC, #import e C/C ++:
  • Com MFC, utilize o Visual ClassWizard C++ para gerar "classes de moldagem" a partir de bibliotecas de tipos do Microsoft Office. Estas classes, bem como outras classes MFC, tais como COleVariant COleSafeArray e COleException, simplificam as tarefas de automatização. Este método, normalmente, é recomendado a outros utilizadores e a maior parte dos exemplos da base de dados de conhecimento da Microsoft utiliza MFC.
  • #import, uma directiva nova que ficou disponível com o Visual C++ 5.0, cria VC ++ "ponteiros inteligentes" de uma biblioteca de tipo especificado. É muito poderosa, mas normalmente não recomendado devido a problemas contagem de referência que ocorrem normalmente quando utilizado com o Microsoft Office de aplicações.
  • Automatização de C/C ++ é muito mais difícil, mas por vezes necessário para evitar a sobrecarga com MFC ou problemas com #import. Basicamente, trabalhar com estas APIs como CoCreateInstance() e COM interfaces como IDispatch e IUnknown.
É importante ter em atenção que existem alguns ligeiras diferenças entre automatização a partir de C++ comparado com C simples, uma vez COM foi concebida em torno da classe de C++. Para obter mais informações sobre automatização com C, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
181473  (http://support.microsoft.com/kb/181473/ ) Como utilizar a automatização OLE a partir de uma aplicação C em vez de C++

Como utilizar bibliotecas de tipos do Office

Uma biblioteca de tipos é semelhante a um ficheiro de cabeçalho C/C ++. Contém as interfaces, métodos e propriedades de publicação de um servidor. Pode ver a biblioteca de tipos com o objecto OLE/COM Viewer (Oleview.exe) fornecido com o Visual C++. Segue-se uma lista dos nomes de ficheiro de biblioteca tipo para Microsoft Office 95, Microsoft Office 97, Microsoft Office 2000, Microsoft Office XP, Microsoft Office 2003 e Microsoft Office de 2007.
Reduzir esta tabelaExpandir esta tabela
Aplicação do OfficeBiblioteca de tipos
Word 95 e anterioreswb70en32.tlb
Excel 95 e anterioresxl5en32.olb
PowerPoint 95 e anterioresPowerPoint.tlb
Acesso 95 e anterioresMsaccess.tlb
Arquivador 95Binder.tlb
Schedule +sp7en32.olb
Projectopj4en32.olb
Team Managermstmgr1.olb
Word 97Msword8.olb
Excel 97Excel8.olb
PowerPoint 97msppt8.olb
O Access 97msacc8.olb
Arquivador 97msbdr8.olb
Gráfico 97graph8.olb
O Outlook 97msoutl8.olb
O Outlook 98msoutl85.olb
Word 2000msword9.olb
Excel 2000excel9.olb
PowerPoint 2000msppt9.olb
O Access 2000msacc9.olb
O Outlook 2000msoutl9.olb
Word 2002MSWord.olb
Excel 2002Excel.olb
PowerPoint 2002msppt.olb
O Access 2002msacc.olb
O Outlook 2002msoutl.olb
O Office Word 2003MSWord.olb
O Office Excel 2003Excel.exe
O Office PowerPoint 2003msppt.olb
O Office Access 2003msacc.olb
O Office Outlook 2003msoutl.olb
O Office Word 2007MSWord.olb
O Office Excel 2007Excel.exe
O Office PowerPoint 2007msppt.olb
O Office Access 2007msacc.olb
O Office Outlook 2007msoutl.olb
As bibliotecas de fornecem informações sobre objectos, métodos e propriedades terá de utilizar. A melhor forma de aprender a navegar os modelos de objecto do Word, Excel e PowerPoint consiste em utilizar o gravador de macros nas aplicações do Office.

Para o fazer nos programas do Office de 2007, siga estes passos:
  1. Mostre separador Programador . Para o fazer, clique no Botão do Microsoft Office , clique em Opções de program, clique em Popular , clique para seleccionar a caixa de verificação Mostrar separador Programador no Friso e, em seguida, clique em OK .
  2. Clique no separador Programador .
  3. No grupo código , clique em Gravar Macro e, em seguida, executar a tarefa na qual está interessado.
  4. No grupo de código , clique em Terminar gravação .
  5. Assim que tiver terminado gravar, clique em macros no grupo de código , clique na macro que gravou e, em seguida, clique em Editar .
Para o fazer nos programas do Office 2003 e em versões anteriores do Office, siga estes passos:
  1. No menu Ferramentas , aponte para macro , faça clique sobre Gravar nova macro e, em seguida, efectue a tarefa na qual está interessado.
  2. No menu Ferramentas , aponte para macro e, em seguida, clique em Parar Gravação .
  3. Assim que tiver terminado a gravar, aponte para macro no menu Ferramentas , clique em macros , clique na macro que gravou e, em seguida, clique em Editar .
Este botão leva-o para o gerado código VBA que realiza a tarefa que gravou. Lembre-se de que a macro gravada não ser o melhor código possível na maioria dos casos, mas fornece um exemplo rápido e utilizável.

Automatizar um componente do Office incorporados

Para automatizar um objecto incorporado do Office ou aplicação, terá de obter IDispatch ponteiro o objecto. Este é apresentado o Visual C++ técnico Nota: 39 (TN039). Pode encontrar esta nota técnica no Microsoft Foundation biblioteca de classes de referência Visual C++. Para um exemplo passo a passo, clique no número de artigo existente abaixo para visualizá-lo na Microsoft Knowledge Base:
184663  (http://support.microsoft.com/kb/184663/ ) Como incorporar e automatizar a folha de cálculo Microsoft Excel com MFC

Referências

Capítulo 24 de David Kruglinski "Inside Visual C++" (ISBN:1 565 - 57231- - 2) fornece uma descrição geral, bem como alguns exemplos excelentes. Além disso, a base de dados de conhecimento da Microsoft é uma boa fonte de informações.

Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
152023  (http://support.microsoft.com/kb/152023/ ) Localizar recursos para estudar automatização

A informação contida neste artigo aplica-se a:
  • Microsoft Project 2000 Standard Edition
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000
  • Microsoft Outlook 97 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
Palavras-chave: 
kbmt kbexpertiseinter kbfaq kbinfo KB238972 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 238972  (http://support.microsoft.com/kb/238972/en-us/ )