Você está offline; aguardando reconexão

Como automatizar o PowerPoint utilizando o Visual C++ 5.0 ou Visual C++ 6.0 com O Microsoft Foundation Classes

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de Abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Aprenda o que isto significa para si e como pode ficar protegido.

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: 222960
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sumário
Este artigo descreve como automatizar o Microsoft PowerPoint utilizando o Visual C++ 5.0 ou Visual C++ 6.0 com O Microsoft Foundation Classes (MFC).
Mais Informação
Utilizando a automatização no PowerPoint, pode programaticamente imprimir, mostrar diapositivos e efectuar a maior das coisas que pode fazer interactivamente. Siga estes passos para criar e executar o exemplo de automatização:
  1. Crie um novo projecto de MFC EXE baseado no diálogo.
  2. Adicione um botão para a caixa de diálogo e um processador de BN_CLICKED para o mesmo.
  3. Abrir ClassWizard (CTRL+W), clique no separador automatização , clique em Adicionar classe e seleccionar a partir de uma biblioteca de tipos .
  4. Vá para o directório onde instalou o Office (por exemplo, C:\Program Files\Microsoft Office\Office) e escolha Msppt8.olb . A biblioteca de objectos PowerPoint para o PowerPoint 2000 é denominada Msppt9.olb. A biblioteca de objectos do PowerPoint para o PowerPoint 2002 é Msppt.olb e está localizado, por predefinição, na pasta c:\Programas\Microsoft Office\Office10. A biblioteca de objectos do PowerPoint para o Microsoft Office PowerPoint 2003 é Msppt.olb e está localizado, por predefinição, na pasta c:\Programas\Microsoft Office\Office11
  5. Seleccione todas as classes que encontra e clique em OK para regressar ao projecto. ClassWizard tem gerados alguns automatização "classes de moldagem" da biblioteca de tipo PowerPoint e criou os ficheiros Msppt8.h e Msppt8.cpp.
  6. Adicione o seguinte código ao processador botão:
    // Start PowerPoint._Application app;COleException e;if(!app.CreateDispatch("Powerpoint.Application", &e)) {   CString str;   str.Format("CreateDispatch() failed w/err 0x%08lx", e.m_sc),   AfxMessageBox(str, MB_SETFOREGROUND);   return;}// Make it visible.app.SetVisible(TRUE);// Get Presentations collection and add a new presentation.Presentations presSet(app.GetPresentations());_Presentation pres(presSet.Add(TRUE));// Get Slides collection and add a new slide.Slides slideSet(pres.GetSlides());_Slide slide1(slideSet.Add(1, 2));// Add text to slide, by navigating the slide as follows:// slide1.shapes(#).TextFrame.TextRange.Text{   Shapes shapes(slide1.GetShapes());   Shape shape(shapes.Item(COleVariant((long)1)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("My first slide");}{   Shapes shapes(slide1.GetShapes());   Shape shape(shapes.Item(COleVariant((long)2)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("Automating PowerPoint is easy\r\n"      "Using Visual C++ is powerful!");}// Add another slide with a chart._Slide slide2(slideSet.Add(2, 5));// Add text to slide as before.{   Shapes shapes(slide2.GetShapes());   Shape shape(shapes.Item(COleVariant((long)1)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("Slide 2's topic");}{   Shapes shapes(slide2.GetShapes());   Shape shape(shapes.Item(COleVariant((long)2)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("You can create and use charts "      "in your PowerPoint slides!");}// Add a chart where the default one was created.{   // First get coordinates of old chart.   float cTop, cWidth, cHeight, cLeft;   Shapes shapes(slide2.GetShapes());   Shape shape(shapes.Item(COleVariant((long)3)));   cTop = shape.GetTop();   cWidth = shape.GetWidth();   cHeight = shape.GetHeight();   cLeft = shape.GetLeft();   // Delete original chart.   shape.Delete();   // Now add your own back where old one was.   Shape tmpShape(shapes.AddOLEObject(cLeft, cTop, cWidth, cHeight,      "MSGraph.Chart", "", 0, "", 0, "", 0));}// Add another slide, with an Organization chart._Slide slide3(slideSet.Add(3, 7));// Add text to slide as before.{   Shapes shapes(slide3.GetShapes());   Shape shape(shapes.Item(COleVariant((long)1)));   TextFrame textFrame(shape.GetTextFrame());   TextRange textRange(textFrame.GetTextRange());   textRange.SetText("The rest is only limited by your Imagination");}// Add a chart where the default one was created.{   // First get coordinates of old chart.   float cTop, cWidth, cHeight, cLeft;   Shapes shapes(slide3.GetShapes());   Shape shape(shapes.Item(COleVariant((long)2)));   cTop = shape.GetTop();   cWidth = shape.GetWidth();   cHeight = shape.GetHeight();   cLeft = shape.GetLeft();   // Delete original chart.   shape.Delete();   // Now add your own back where old one was.   // The next line assumes you have the Microsoft OrgChart application   // installed and registered on your computer.   Shape tmpShape(shapes.AddOLEObject(cLeft, cTop, cWidth, cHeight,      "OrgPlusWOPX.4", "", 0, "", 0, "", 0));}// Setup slide show properties.for(int i=1; i<=3; i++) {   _Slide slide(slideSet.Item(COleVariant((long)i)));   SlideShowTransition sst(slide.GetSlideShowTransition());   sst.SetEntryEffect(513); // Random.   sst.SetAdvanceOnTime(TRUE);   sst.SetAdvanceTime(5.0); // 5-seconds per slide.}// Prepare and run a slide show.{   SlideShowSettings sss(pres.GetSlideShowSettings());   sss.SetShowType(3); // Kiosk.   sss.SetLoopUntilStopped(TRUE);   sss.SetRangeType(1); // Show all.   sss.SetAdvanceMode(2); // Use slide timings.   SlideShowWindow ssw(sss.Run()); // Run show.}// Sleep so user can watch slide show.::Sleep(15000);// Tell PowerPoint to quit.app.Quit();					
  7. Adicione as linhas seguintes antes da implementar o processador de botão:
    #include "msppt8.h" //msppt9.h for PowerPoint 2000, msppt.h for PowerPoint 2002 and PowerPoint 2003// Ole initialization class.class OleInitClass {public:   OleInitClass() {      OleInitialize(NULL);   }   ~OleInitClass() {      OleUninitialize();   }};// This global class calls OleInitialize() at// application startup, and calls OleUninitialize()// at application exit.OleInitClass g_OleInitClass;					
  8. Compilação e execução.
Referências
Para obter informações adicionais sobre como automatizar aplicações do Microsoft Office a partir do Visual C++, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
196776Office Automation utilizando o Visual C++
Importação de IDispatch LPDISPATCH CComPtr

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 222960 - Última Revisão: 12/05/2015 13:29:16 - Revisão: 4.3

Microsoft Foundation Class Library 4.2, Microsoft Office PowerPoint 2003, Microsoft PowerPoint 2002 Standard Edition, Microsoft PowerPoint 2000 Standard Edition, Microsoft PowerPoint 97 Standard Edition

  • kbnosurvey kbarchive kbmt kbautomation kbhowto KB222960 KbMtpt
Comentários