Cara mengotomatisasi PowerPoint dengan menggunakan Microsoft Foundation Classes Visual C++ 5.0 dan Visual C++ 6.0

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 237554 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menjelaskan cara mengotomatisasi Microsoft PowerPoint dengan menggunakan Microsoft Foundation Classes (MFC) di Microsoft Visual C++ 5.0 dan Visual C++ 6.0.

Anda dapat menggunakan Microsoft Foundation Kelas untuk mengotomatisasi PowerPoint dan untuk menjalankan makro yang termuat dalam presentasi.

INFORMASI LEBIH LANJUT

Biasanya, Anda dapat menggunakan Wisaya kelas untuk membungkus semua fungsi-fungsi di perpustakaan jenis. Namun, Wisaya kelas mampu bungkus fungsi yang memerlukan sebuah argumen yang ketik SAFEARRAY dan akan menghasilkan pesan seperti berikut dalam header file.
  // method 'MyMethod' not emitted because of invalid return type or    parameter type
				
Ketika Anda menggunakan kelas Wizard untuk menghasilkan wrapper kelas untuk Microsoft PowerPoint, Application::Run fungsi tidak akan dibungkus karena dibutuhkan sebuah argumen jenis SAFEARRAY. Anda masih dapat Application::Run dengan menggunakan InvokeHelper fungsi dengan DISPID 0x7e6. Untuk rincian tentang Menjalankan fungsi, Anda dapat memeriksa perpustakaan jenis PowerPoint dengan OLE/COM Viewer alat.

Langkah-langkah berikut menggambarkan bagaimana Anda dapat mengotomatisasi PowerPoint untuk memanggil Application::Run dan jalankan PowerPoint makro.

Langkah-langkah untuk membuat presentasi PowerPoint dengan makro

  1. Mulai Microsoft PowerPoint dan membuat presentasi baru dengan tiga slide kosong.
  2. Tekan ALT+F11 untuk memulai Editor Visual Basic.
  3. Dari Masukkan menu, klik Modul untuk memasukkan sebuah modul dalam presentasi baru.
  4. Tambahkan kode berikut ke modul.
       Sub ChangeBackColor()  'Change backcolor of slides 1, 2 and 3
        With ActivePresentation.Slides.Range(Array(1, 2, 3))
            .FollowMasterBackground = msoFalse
            .Background.Fill.ForeColor.SchemeColor = ppAccent2
        End With
       End Sub
    
       Sub ChangeText(vArray As Variant)
        'Add a text box to each slide and use the text from the
        'array passed into this procedure
        Dim s As Slide
        For i = 1 To ActivePresentation.Slides.Count
            With ActivePresentation.Slides(i).Shapes.AddTextbox( _
                            msoTextOrientationHorizontal, 186#, 54#, 336#, 36#)
                .TextFrame.TextRange.Text = vArray(i - 1)
                .TextFrame.TextRange.Font.Size = 60
            End With
        Next
       End Sub
    						
  5. Simpan presentasi sebagai salah satu PowerPoint berikut, dan kemudian dekat:
    • Dalam PowerPoint 2007, menyimpan presentasi sebagai makro diaktifkan presentasi (*.pptm) dengan menggunakan nama file seperti C:\Pres.pptm.
    • Dalam PowerPoint 2003 dan versi sebelumnya dari PowerPoint, Simpan presentasi sebagai presentasi (* .ppt) dengan menggunakan nama file seperti C:\Pres.ppt.

Langkah-langkah untuk membuat aplikasi MFC

  1. Membuat MFC dialog kotak berbasis aplikasi baru bernama AutoPPT.
  2. Dari Lihat menu (atau tekan CTRL + W), pilih Wisaya kelas, dan kemudian ikuti langkah-langkah berikut:
    1. Klik Otomatisasi tab.
    2. Klik Menambahkan kelas, lalu klik Dari perpustakaan jenis.
    3. Temukan PowerPoint library, dan kemudian menambahkan perpustakaan jenis PowerPoint:
      • Untuk PowerPoint 2007, menambahkan Msppt.olb.
      • Untuk PowerPoint 2003, menambahkan Msppt.olb.
      • Untuk PowerPoint 2002, menambahkan Msppt.olb.
      • Untuk PowerPoint 2000, menambahkan Msppt9.olb.
      • Untuk PowerPoint 97, menambahkan Msppt8.olb.
  3. Pilih kotak dialog dengan ID sumber daya IDD_AUTOPPT_DIALOG. Menambahkan tombol ke kotak dialog, dan kemudian tambahkan kode berikut untuk handler untuk tombol itu.
       _Application	oApp;
       if(!oApp.CreateDispatch("Powerpoint.Application"))
       {
            AfxMessageBox("Could not get Powerpoint application.");
            return;
       }
       oApp.SetVisible(TRUE);
    
    
       //Get the Presentations collection and open a presentation
       Presentations oPresSet(oApp.GetPresentations());
       CString strFilename;
       //For PowerPoint 2007, change the file name to "c:\\pres.pptm"
       strFilename = "c:\\pres.ppt";
       _Presentation oPres(oPresSet.Open(strFilename, // Filename
                                         true,        // Readonly
                                         false,       // Untitled
                                         true         // WithWindow
                          ));
    		
       //*************** How to Run PowerPoint Macros *********************
    
       // Run "ChangeBackColor" macro in the presentation -- note that the
       // "ChangeBackColor" macro requires no arguments
    
       {
           COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
           static BYTE parms[] = 
                VTS_BSTR  VTS_VARIANT;
           LPCTSTR lpszMacroName = "Pres.ppt!ChangeBackColor";
    
           oApp.InvokeHelper(0x7e6, DISPATCH_METHOD, VT_EMPTY, NULL,  parms,
                             lpszMacroName, //Macro Name
                             &vOpt          //No arguments, for example, ignore
                            );
       }
    			
    
       // Run "ChangeText" macro in the presentation;
       // The macro requires three arguments -- the first two are strings
       // and the last one is a long	
    		
       {
    
            COleSafeArray saArgs;  //Create a 1-dimensional array with three 
                                   //elements
    
            DWORD numElements[1];
            numElements[0]= 3;	
            saArgs.Create(VT_VARIANT, 1, numElements);	
            long index[1];
            VARIANT v;
    
            index[0]=0;		//Fill 1st element
            CString sName("ABC");
            VariantInit(&v);
            v.vt= VT_BSTR;
            v.bstrVal = sName.AllocSysString();
            saArgs.PutElement(index, &v);
            SysFreeString(v.bstrVal);
            VariantClear(&v);
    
            index[0]=1;		//Fill 2nd element
            CString sCompany("XYZ");
            VariantInit(&v);
            v.vt= VT_BSTR;
            v.bstrVal = sCompany.AllocSysString();
            saArgs.PutElement(index, &v);
            SysFreeString(v.bstrVal);
            VariantClear(&v);
    
            index[0]=2;		//Fill 3rd element
            VariantInit(&v);
            v.vt = VT_I4;
            v.lVal=123;
            saArgs.PutElement(index, &v);
            VariantClear(&v);
    
            static BYTE parms[] = 
                 VTS_BSTR  VTS_VARIANT;
            LPCTSTR lpszMacroName = "Pres.ppt!ChangeText";
            oApp.InvokeHelper(0x7e6, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
                              lpszMacroName,   //Macro Name
                              (VARIANT*)saArgs //Array of macro parameters 
                             );
    
            saArgs.Detach();
       }
    
    						
    Catatan Jika Anda terbungkus kelas perpustakaan jenis PowerPoint 2002, menambahkan argumen tambahan (palsu) untuk panggilan untuk metode terbuka.
  4. Tambahkan sesuai Sertakan pernyataan untuk Powerpoint header file.
    #include "msppt8.h" // use msppt9.h for 2000 or msppt.h for 2002, 2003, and 2007
    					
  5. Menambahkan baris kode berikut untuk permulaan CAutoPPTApp::InitInstance() fungsi.
         AfxOleInit();
    						
  6. Mengkompilasi dan menjalankan. Pilih tombol yang ditambahkan ke dialog kotak untuk menjalankan kode otomatisasi. Setelah kode selesai, PowerPoint akan tetap terlihat sehingga Anda dapat mengamati perubahan presentasi yang dibuat oleh macro.

REFERENSI

Untuk informasi lebih lanjut tentang mengotomatisasi PowerPoint menggunakan Visual C++, silakan lihat artikel berikut dalam Pengetahuan Microsoft Base:
180616 Cara menggunakan MFC untuk membuat dan menampilkan presentasi PowerPoint
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Properti

ID Artikel: 237554 - Kajian Terakhir: 20 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Visual C++ 5.0 Professional Edition
Kata kunci: 
kbexpertiseinter kbautomation kbhowto kbmt KB237554 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:237554

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com