とりわけ、マクロを有効にした Excel ファイル (.xlsm) を開くバッチ スクリプトを作成しています。
2>nul (
>>%CSF% echo off
) && (start "cmdTitle" /B excel %CSF% /e /automation) || (echo could not open)
%CSF% は、Excel ファイルへのフル パス、つまり「C:\test\testfile.xlsm」を参照する変数です (ディレクトリ/ファイル名にスペースが含まれる可能性がある場合の引用符を含みます)。
このコードは、ファイルが編集のためにロックされているかどうかをチェックし、ロックされていない場合はファイルを開きます (start コマンド)。
Windows エクスプローラーからファイルを開くか、バッチ スクリプトで次のコマンドを実行すると、ファイルは正常に開きます。
set CSF="C:\Test Folder\Test.xlsm"
start "cmdTitle" /B excel %CSF% /e /automation
ただし、ロックされたファイルをチェックするときにバッチ ファイルを実行すると、Excel は常に、「Excel は 'filename.xlsm' に読み取り不可能なコンテンツを検出しました。このワークブックのコンテンツを回復しますか?」と表示します。ファイルからマクロを削除します。
編集:ファイルが正しく開かないことに加えて、コマンド バーの削除と再作成など、Excel を開くときに何かを行う Excel アドインも読み込みに失敗します:「Addin.xla にアクセスできません」
コマンドを単独で実行する場合とリダイレクトで実行する場合の動作の違いの原因は何ですか? ティア