2

これは私が達成しようとしている一連のイベントです: スケジュールされたタスク - 毎日同時に実行され、VBScript を起動します。VBScript は Excel ワークブックを起動し、マクロを実行します。ここにスニペットがあります-

Set xlApp = CreateObject ("Excel.Application")
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Open (xlFilePath,0,False)
xlApp.Run "Main"

問題は、タスクを手動で実行すると問題なく実行されることです。サーバーにログオンしていないときにスケジュールされたタスクを実行すると、Excel が起動しません。ユーザーがログオンしていないときに Excel を起動するには、上記のコードで何を変更する必要がありますか? Excel マクロのセキュリティを低に設定しました。

Excel 2003 および Windows Server2003 64

4

3 に答える 3

5

MS ナレッジ ベースを参照してください。これによると、Office アプリを実行するには UI が必要です。

したがって、システム ユーザー以外のユーザーを使用してみてください。

たとえば、SYSTEM アカウントでタスク スケジューラによって開始されるコードは、「サーバー側」の ASP コードまたは DCOM コードと同じ環境で実行されます。したがって、この資料で説明する問題の多くが発生する可能性があります。

また、Main代わりに Excel ファイルの Workbook_Open イベントから呼び出すようにしてくださいxlApp.Run "Main"...

于 2012-12-03T21:04:33.313 に答える
3

すでに解決されているかどうかはわかりませんが、問題が発生し、以下の手順で解決しました.

以下のフォルダを作成します

(32Bit、常に) C:\Windows\System32\config\systemprofile\Desktop

(64Bit) フォルダと C:\Windows\SysWOW64\config\systemprofile\Desktop の上

システム アカウントで実行している場合、これで問題が解決します。

于 2016-03-07T18:27:47.080 に答える
0

タスクの実行時にユーザー名を使用するオプションを設定し、ユーザーがログオンしているかどうかに関係なくタスクを実行できるようにする必要があります。Windows Server 2008 の例を次に示します。

ここに画像の説明を入力

于 2012-12-03T19:58:39.420 に答える