エクセルを使用した自動処理バッチがエラーとなってしまう時の対応方法
忘れないうちにメモりたい。
自動処理でエクセルを操作させるためにsystem32wowにDESKTOPというフォルダがなぜか必要な件。です
状況としては、バッチやらシェルで自動起動の処理を作成し、その中の処理においてエクセルを起動して、もともとエクセルファイルのデータを自動でcsvに変換し取込ファイルを自動生成・自動インポートする。というようなジョブを作ったが、
エクセル起動のところでどうやら失敗している状況。
「対話的ログオンをしていないときでもタスクを実行する場合である。 Excelによる処理をタスクで自動実行する場合、 対話的ログオンなしで起動しようとすると通常はExcelの起動に失敗してしまう。 ~中略~ ・管理者アカウントで該当タスクを起動する ・タスクのセキュリティ・オプションで[最上位の特権で実行する]チェック・ボックスをオンにする。 ・あらかじめ次のフォルダを作成しておく: 32bit版Windows OSの場合: %SystemRoot%\System32\config\systemprofile\Desktop 64bit版Windows OSの場合: %SystemRoot%\SysWOW64\config\systemprofile\Desktop
」
という事らしいです。
つまり仮想環境のサーバに自動実行でエクセルを起動させると失敗してしまう、
そのため仮想環境上にDesktopってフォルダを設ける。
みたいな感じ、
非推奨の対応方法らしいけど、やるっきゃないよな。