WindowsタスクスケジューラでVBAが動かない

Access 2013 VBAで、バッチプログラムを作った。

Winodws Server上に置いて、タスクスケジューラで定期的に実行したい。

普通にaccdbファイルを実行すると、正常に終了する。

しかし、タスクスケジューラから実行すると、途中で止まってしまう…

Access VBAでテストプログラムを作って調べた結果、Access VBAが止まってしまうのは、OLEオートメーションでExcelを起動させる処理のところであった。

色々ググったところ、下記サイトに行き当たった。

http://heppokosehuntouki.blog.fc2.com/blog-entry-4.html

「タスクスケジューラは、仮想デスクトップがないとExcel等のオブジェクトを開けない」ということらしい。

結論。AccessからVBAでExcelを開く、という処理をタスクスケジューラから実行するには、Windows上に下記のフォルダを作成する必要がある。

Windowsが32bit版と64bit版で作成するフォルダが違うので注意。

x86 – C:\Windows\System32\config\systemprofile\Desktop
x64 – C:\Windows\SysWOW64\config\systemprofile\Desktop

今回の現象が発生したOSは、Windows Server 2012R2(64bit)です。

ただ、他のWindowsでも同じ現象が発生すると思われます。

VBAでOLEオートメーションで、Excel開いたりする処理をタスクスケジューラに搭載する際は注意です!

WindowsタスクスケジューラでVBAが動かない」への1件のフィードバック

maniac へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です