0

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

4

0 に答える 0