Python を使用して PowerPoint スライド デッキの作成を自動化し、日次レポートを生成するためにタスク スケジューラでトリガーを設定しました。
これは、コンピューターがログインしている間は問題ありませんが、「ログインしているかどうかに関係なく実行する」という設定の場合、スクリプトは失敗します。
どの行に問題があるかを確認したところ、次の行であることがわかりました。
Presentation.SaveAs('C:\\Users\\me\\Desktop\\test.pptx')
タスク スケジューラを最高の優先度で実行していますが、このタスクは「ユーザーがログインしています」状態でのみ実行されます。
以下は、参照用の基本的なコード セグメント全体です。
import win32com.client, MSO, MSPPT, sys, os
g = globals()
for c in dir(MSO.constants): g[c] = getattr(MSO.constants, c)
for c in dir(MSPPT.constants): g[c] = getattr(MSPPT.constants, c)
error_file = open('C:\\Users\\me\\Desktop\\error_file.txt', 'wb')
run = False
try:
Application = win32com.client.Dispatch("PowerPoint.Application")
Application.Visible = True
Presentation = Application.Presentations.Add()
Slide = Presentation.Slides.Add(1, ppLayoutBlank)
Presentation.SaveAs('C:\\Users\\me\\Desktop\\test.pptx')
Presentation.Close()
Application.Quit()
run = True
except:
run = False
if run == True:
error_file.write('ok')
else:
error_file.write('fail')
これに関するヘルプは大歓迎です。
ありがとう、JP