Usando o Visual C++ para automatizar o Office

Support for Office 2003 has ended

Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

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
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:
181473Como 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.
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:
184663Como 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:
152023Localização de recursos para estudar a automação
WD2007 ACC2007 XL2007 OL2007 PPT2007

Propriedades

ID do Artigo: 238972 - Última Revisão: 04/19/2007 18:57:15 - Revisão: 8.2

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

  • kbmt kbexpertiseinter kbfaq kbinfo KB238972 KbMtpt
Comentários