VBA / 使用Excel VBA將Word轉換成PDF 修改版3

延續前面 

VBA / 使用Excel VBA將Word轉換成PDF 

VBA / 使用Excel VBA將Word轉換成PDF 修改版

VBA / 使用Excel VBA將Word轉換成PDF 修改版2

 

之前在使用的時候,曾經遇到開啟的檔案因為崁入電腦沒有的特殊字型,會詢問是否用唯讀的方式,這樣會中斷程式執行

所以我直接改成用唯讀的方式來開啟,只是不知道這樣有沒有用

Set ppPres = ppApp.Presentations.Open(Filename:=Fullpath & Filename, ReadOnly:=True, WithWindow:=msoFalse)

經過測試之後,這種方式是沒有用的

所以爬了谷狗之後

改用 On Error Resume Next 忽略錯誤讓程式繼續執行

但是這樣就只能看實際輸出的資料才知道那些沒有轉檔成功

因此,在程式中用Err.Number來回傳是否有錯誤發生

如果有的話,就在C欄寫出錯誤的代碼跟描述

If Err.Number <> 0 And Err.Number <> 429 Then
   Sheet1.Cells(i, 3) = Err.Number & "/" & Err.Description
End If

備註:

一開始在寫比較式時腦袋有點趴帶,用Or來處理

但其實要用And,因為我是要兩者都成立

既非0,也非429時,在C欄寫入資料

0就是沒有錯誤

429是ActiveX 元件無法建立物件,但程式實際還是可以順利執行,而且只有在Ppt轉檔時才會有這個錯誤訊息

所以就假裝是沒有問題

目前程式看起來應該可以順利進行

不過我還是搞不懂Excel VBA引用其他Office應用程式的原理

網路查的資料跟手邊的書都是有看沒有懂

參考資源

ActiveX 元件無法建立物件或傳回此物件的參考 (錯誤 429)

當您自動執行 Office 應用程式時,會收到執行時間錯誤429