以前に手動で実行された次のSkriptがあります。
_set DIR="X:\SYSTEM\MAKROS"
X:
cd %DIR%
start /wait Excel.EXE /e-GENERATE_REPORTS BSYSTEM.XLA
_
手動で開始した場合、これは問題なく機能します。 _BSYSTEM.XLA
_はExcelベースのプロジェクト管理システムの一部であるため、ファイルを別のファイル形式にエクスポートすることはできません。
このスクリプトを毎日実行する必要があります。この_.bat
_-ファイルを実行するようにスケジュールされたタスクを作成する場合、それは単純に機能しません。タスクは、最後に実行された結果コード_0x1
_で数秒(スクリプトが完了するまでに通常約10分かかります)で終了し、タスクの履歴には何も役立ちません:
"C:\Program Files (x86)\Microsoft Office\Office16\Excel.EXE" /e-GENERATE_REPORTS BSYSTEM.XLA
を直接実行するタスクを作成しようとしましたが、これはエラーになり、履歴に表示されます。
タスクスケジューラは、タスク「\ Allgemein\TMGBericht」のインスタンス「{1fbeadd0-605b-4fe0-8d96-621281c53519}」でアクション「C:\ ProgramFiles(x86)\ Microsoft Office\Office16\Excel.EXE」を起動できませんでした。追加データ:エラー値:2147942667。
私も次のようなvbsスクリプトを試しました:
_set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
set xlBook = xlApp.Workbooks.Open("X:\SYSTEM\MAKROS\BSYSTEM.XLA")
xlApp.Run "GENERATE_REPORTS"
xlBook.Close
xlApp.Quit
_
しかし、この方法ではエラー_The macro can not be executed. The 'GENERATE_REPORTS' macro may not be available in this workgroup, or all macros have been disabled
_が発生します。これは、手動で呼び出されたoboveスクリプトで正常に機能するため、正しくありません。ファイルの階層化元のネットワークドライブは、「信頼できる場所」として設定されます。
不思議なことに、_BSYSTEM.XLA
_を開いたときにシートが表示されません。マクロボタンを除いて、ほとんどすべての要素がグレー表示されたExcelファイルだけで、マクロを確認しようとすると、何も表示されません。だから私は_start /wait Excel.EXE /e-GENERATE_REPORTS BSYSTEM.XLA
_が何をするのか理解するのに苦労しています。
次の2つのドキュメントを除いて、Excelコマンドラインスイッチについて役立つものは何も見つかりませんでした。
このコマンドをスケジュールされたタスクとして実行できるように、上記のbtachスクリプトのスクリプト可能な代替手段を提供するにはどうすればよいですか、またはvbsを修正するにはどうすればよいですか?
このコマンドを使用すると、ExcelはUIを表示する必要があるため、タスクはバックグラウンドで実行できません。これは、タスクのプロパティでRun whether user is logged on or not
が選択されている場合に自動的に行われます。このオプションを設定した後、すべてが期待どおりに機能しました。
サーバーの再起動後にタスクを実行できるようにするには、 このツール を使用して自動ログインを有効にしました。
XlBookがRunメソッドをサポートする正しいオブジェクトではないため、VBAスクリプトが失敗しています。
試してみてください
_xlApp.Run "GENERATE_REPORTS"
_
上記の代替案
マクロがモジュール内にある場合_xlApp.Run "BSYSTEM.xls!GENERATE_REPORTS"
_ 'workbookName'!macroの形式に注意してください
マクロがシートにある場合_'xlApp.Run "'BSYSTEM.xls'!sheet1.GENERATE_REPORT"
_
ファイル拡張子
。xlaはExcelアドインファイル形式です。マクロ対応の。xlamとして保存してみてください。 xlaのフォーマット。
コードの内訳
set xlApp = CreateObject("Excel.Application")
' Excelアプリケーションを作成します プロセス。
_xlApp.Visible = True
_' アプリケーションの表示/編集 を有効にします。
set xlBook = xlApp.Workbooks.Open("X:\SYSTEM\MAKROS\BSYSTEM.XLA")
' 指定されたブックを開きます 開いたばかりのExcelアプリケーション内。
_xlApp.Run "GENERATE_REPORTS"
_' マクロコマンドを実行します GENERATE_REPORTS。
_xlBook.Close
_ 'ブックを閉じます。
_xlApp.Quit
_ 'Excelアプリケーションプロセスを終了します。