天天看點

利用VBA導出幻燈片為圖檔

 PPT現在是無處不在,好處自不必多說了。PPT除了上課時示範外,有時需要将PPT的内容放到其他的一些文檔中,比如Word中使用,現在的問題就來了,如果将這些幻燈片快速提取,然後放到Word中使用。

        想了很久,沒找到合适的辦法,最後試了下VBA,輕松搞定。

Public Sub Export_To_Image() 

Dim SaveImagePath As String         '定義檔案儲存路徑變量 

Dim SaveImageName As String         '定義儲存檔案名變量 

Dim SlideObject As Slide                '定義Slide對象 

On Error GoTo Err_SaveErr             '如果儲存錯誤轉到Err_SaveErr标記處繼續執行 

SaveImagePath = "D:\SlidePic\"    '定義儲存檔案的路徑為“D:\SlidePic\” 

For Each SlideObject In ActivePresentation.Slides 

'遞歸每一張幻燈片對象 

        SaveImageName = SlideObject.Name & ".jpg" 

        '用幻燈片對象的名稱作為儲存檔案的名字,“.jpg”,儲存為“jpg”格式,可選bmp等其他格式 

        SlideObject.Export SaveImagePath & SaveImageName, "jpg" 

        '導出幻燈片對象到指定路徑,以指定名命名 

Next SlideObject        '下一個幻燈片對象 

Err_SaveErr:                '錯誤處理标記 

If Err <> 0 Then        '如果發生錯誤執行以下代碼 

        MsgBox Err.Description    '彈出錯誤提示資訊 

End If 

End Sub

        上述代碼中“ActivePresentation.Slides”表示目前幻燈片中的幻燈片集合。

        使用上面的代碼最終儲存的檔案名會是類似于“Slide**.jpg”形式的檔案名,根據制作幻燈片時情況的不同會不同,如果制作的過程中有删減的情況,則檔案名會不連續,是以如果想讓儲存的檔案名連續可以将上面的代碼稍作變更即可。

Dim i As Integer                                '定義命名序列個變量 

i = 0                                                     '變量i初始化 

i = i + 1     '命名序列号遞增 

        SaveImageName = i & ".jpg"    '以i的數值為檔案名,進而保證檔案名按順序遞增 

Next SlideObject 

        以上代碼全部在Windows XP SP3+PowerPoint 2010 Beta環境下測試通過,第二部分代碼執行最後的結果如下圖所示。

        在Windows XP SP3下按“檔案名”排序,會自動從小到大排序,印象中以前的版本會按1、10這樣的順序,如果出現這種情況而又想保證按順序顯示,可将上面的代碼再稍作變更,也就是在“i”小于等于9的情況下,在前面再加個字元串“0”,這樣最終儲存的結果就會是01、02……、10、11這樣的形式了。

     本文轉自windyli 51CTO部落格,原文連結:http://blog.51cto.com/windyli/304720,如需轉載請自行聯系原作者

繼續閱讀