Excelファイルを扱う場合はApplication.ScreenUpdating = Falseで画面更新を停止すると処理が早くなりますが、
パワーポイント、Wordのファイルを扱う場合に同様に処理を早くする方法はあるのでしょうか?
下記は高速化したいWord、パワーポイントのファイルをPDF化するExcelVBAマクロのコード(一部抜粋)です。
Excelファイルの場合はApplication.ScreenUpdating = Falseで高速でPDF化できるのですが、
Word、パワーポイントは時間がかかってしまいます。
【Wordの場合】
Set objOffice = CreateObject("Word.Application") With objOffice.Documents.Open(Path) .ExportAsFixedFormat OutputFileName:=filePath, _ ExportFormat:=17 .Close End With
【パワーポイントの場合】
Set objOffice = CreateObject("Powerpoint.Application") With objOffice.Presentations.Open(Path) .SaveAs fileName:=filePath, FileFormat:=32 .Close End With objOffice.Quit
>Excelファイルの場合はApplication.ScreenUpdating = Falseで高速でPDF化できるのですが、
>Word、パワーポイントは時間がかかってしまいます。
Application.ScreenUpdating = Falseで、体感できるほど速くなっています?
ExcelVBAでってことは、Excelファイルは、すでにエクセルが起動した状態からのスタートですが、
ワードやパワーポイントはアプリケーションを起動させるところからのスタートですよね?
その違いではないでしょうか?
Excelファイルの場合、Application.ScreenUpdating = False によって体感少し早くなりますが、Application.ScreenUpdating = Falseがなかったとしても数秒で終わるのであまり違いはありません。
パワーポイントやWordは理由はわかりませんがファイルによってはPDF化に10秒以上かかることがあります。
速く処理したい理由は何でしょうか?連続で実行したい場合はコード全体を見直すことで解決するかもしれません。例えば1ファイルごとにCreateObjectすると遅くなりそうです。
10秒以上かかるのは1ファイル当たりですか?ワードやパワーポイントのファイルサイズが大きい場合は処理を早くするのは無理です。
まずは遅くなる理由を探るのが重要です。理由はわかりませんと言われると回答者も困ってしまいます。