ID do artigo: 238972 - Última revisão: quinta-feira, 19 de abril de 2007 - Revisão: 8.2

Usando 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 | Recolher tudo

Sumário

Você pode usar automação para controle do Microsoft Office componentes de seus aplicativos do Visual C++. Este artigo fornece as informações básicas necessárias automatizar o Office, bem como ponteiros para os recursos e código de exemplo.

Mais Informações

Automação (anteriormente denominadas automação OLE) é uma tecnologia que lhe permite aproveitar a funcionalidade de um programa existente e incorporar seus próprios aplicativos. Por exemplo, você pode utilizar a ortografia do Microsoft Word e recursos de verificação gramatical em seu aplicativo sem tornar o Microsoft Word visível para os usuários. Você ainda pode usar todos os as ferramentas de análise de gráficos, impressão e dados do Microsoft Excel. Essa tecnologia pode simplificar bastante e acelerar o desenvolvimento.

Automação e COM

Automação é baseada no COM (modelo de objeto de componente). COM é uma arquitetura de software padrão com base em interfaces e projetado para separar o código em objetos independentes. Pense nisso como uma extensão do objeto paradigma orientado a programação (OOP), mas aplicável a separar aplicativos. Cada objeto expõe um conjunto de interfaces e todas as comunicações a um objeto, como inicialização, notificações e transferência de dados, acontece através dessas interfaces.

COM é também um conjunto de serviços fornecidos pelas bibliotecas de vínculo dinâmico (DLLs) instaladas com o sistema operacional. Automação usa muitos desses serviços. Um exemplo é o serviço de "Empacotamento", que pacotes chamadas do aplicativo cliente para as funções de membro das interfaces do aplicativo de servidor e passa aquelas com seus argumentos para o aplicativo do servidor. Interfaces do servidor parecem ser exposto no espaço de memória do cliente, que não é o caso quando o cliente é um arquivo .exe em execução no seu próprio espaço de processo. Empacotamento também obtém os valores de retorno de métodos do servidor novamente entre os limites de processo e com segurança nas mãos de chamada do cliente.

Há muitos outros serviços essenciais para automação que são fornecidos pelas bibliotecas COM vários. Fontes de informações sobre os incluem:
  • Dentro de OLE - Second Edition"por Kraig Brockschmidt, ISBN 1-55615-843-2
  • Dentro de COM"por Dale Rogerson - ISBN 1-57231-349-8
  • Automação de referência do programador,"ISBN 1-57231-584-9

Três maneiras de usar a automação do Visual C++

Você pode usar a automação de três maneiras básicas: MFC, # Import e C/C ++:
  • Com o MFC, use o ClassWizard Visual C++ para gerar "wrapper classes" de bibliotecas de tipos do Microsoft Office. Essas classes, bem como outras classes MFC, como COleVariant COleSafeArray e COleException, simplificam as tarefas de automação. Esse método é normalmente recomendado sobre as outras e a maioria dos exemplos da Base de dados de Conhecimento da Microsoft use MFC.
  • # Import, uma nova diretiva que se tornaram disponível com o Visual C++ 5.0, cria VC ++ "apontadores inteligentes" de uma biblioteca de tipo especificado. É muito eficiente, mas geralmente não é recomendado devido a problemas contagem de referência que geralmente ocorrem quando usado com o Microsoft Office de aplicativos.
  • Automação de C/C ++ é muito mais difícil, mas às vezes, necessário para evitar sobrecarga com MFC ou problemas com # Import. Basicamente, você trabalha com essas APIs como CoCreateInstance() e interfaces COM como IUnknown e IDispatch.
É importante observar que são algumas pequenas diferenças entre a automação do C++ comparado ao C simples, como COM foi criado em torno da classe do C++. Para obter mais informações sobre automação com C, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
181473  (http://support.microsoft.com/kb/181473/ ) Como usar automação OLE de um aplicativo C em vez de C++

Como usar as bibliotecas de tipo do Office

Uma biblioteca de tipos é semelhante a um arquivo de cabeçalho C/C ++. Ele contém as interfaces, métodos e propriedades que está publicando um servidor. Você pode exibir a biblioteca de tipos com o Visualizador do objeto OLE/COM (Oleview.exe) que vem com o Visual C++. A seguir é uma lista dos nomes de arquivo de biblioteca de tipo para Microsoft Office 95, Microsoft Office 97, Microsoft Office 2000, Microsoft Office XP, Microsoft Office 2003 e Microsoft Office 2007.
Recolher esta tabelaExpandir esta tabela
Aplicativo do OfficeBiblioteca de tipos
Word 95 e anteriorwb70en32.tlb
Antes e Excel 95xl5en32.olb
Antes e PowerPoint 95PowerPoint.tlb
Acesso 95 e anteriorMsaccess.tlb
Fichário 95Binder.tlb
Schedule +sp7en32.olb
Projetopj4en32.olb
Team Managermstmgr1.olb
Word 97msword8.olb
Excel 97Excel8.olb
PowerPoint 97msppt8.olb
O Access 97msacc8.olb
Fichário 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
Office Word 2003MSWord.olb
O Office Excel 2003Excel.exe
Office PowerPoint 2003msppt.olb
O Office Access 2003msacc.olb
O Office Outlook 2003MSOUTL.olb
Office Word 2007MSWord.olb
O Office Excel 2007Excel.exe
Office PowerPoint 2007msppt.olb
O Office Access 2007msacc.olb
O Office Outlook 2007MSOUTL.olb
As bibliotecas de tipos lhe fornece informações sobre os objetos, métodos e propriedades que você precisa usar. A melhor maneira de aprender a navegar os modelos de objeto do Word, Excel e PowerPoint é usar o gravador de macro nos aplicativos do Office.

Para isso nos programas do Office 2007, siga estas etapas:
  1. Mostre guia desenvolvedor . Para fazer isso, clique no Botão Microsoft Office , clique em Opções de program, clique em popular , marque a caixa de seleção guia Mostrar desenvolvedor na faixa de opções e, em seguida, clique em OK .
  2. Clique na guia desenvolvedor .
  3. No grupo de código , clique em Gravar Macro e, em seguida, executar a tarefa na qual você está interessado.
  4. No grupo de código , clique em Parar gravação .
  5. Assim que terminar de gravação, clique em macros no grupo de código , clique na macro que você gravou e em seguida, clique em Editar .
Para fazer isso nos programas do Office 2003 e em versões anteriores do Office, execute estas etapas:
  1. No menu Ferramentas , aponte para macro , clique em Gravar nova macro e, em seguida, executar a tarefa na qual você está interessado.
  2. No menu Ferramentas , aponte para macro e, em seguida, clique em Parar gravação .
  3. Assim que terminar de gravar, aponte para macro no menu Ferramentas , clique em macros , clique na macro que você gravou e em seguida, clique em Editar .
Isso leva você para o código VBA gerado que realiza a tarefa que você registrou. Lembre-se de que a macro gravada não ser o melhor código possível na maioria dos casos, mas ele fornece um exemplo rápido e utilizável.

Automatizar um componente Office incorporados

Para automatizar um objeto incorporado do Office ou um aplicativo, você precisará obter o ponteiro de IDispatch do objeto. Isso é fornecido no Visual C++ técnico Observação 39 (TN039). Você pode encontrar esta nota técnica na Microsoft Foundation Class Library de referência do Visual c++. Para um exemplo passo a passo, clique no número abaixo para lê-lo na Base de dados de Conhecimento da Microsoft:
184663  (http://support.microsoft.com/kb/184663/ ) Como incorporar e automatizar uma planilha do Microsoft Excel com MFC

Referências

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

Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
152023  (http://support.microsoft.com/kb/152023/ ) Localização de recursos para estudar a automaçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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/ )