Excel の標準設定では、マクロを含むファイルを開く時には、マクロを有効にするか無効にするかを訊ねるダイアログが表示されます。これは自動化のさまたげになりますので、自動実行を行う端末では、「ツール → オプション → 全般タブ」で、「マクロウィルスから保護する」のチェックボックスを外しておく必要があります。運用上の都合で、この設定が変更できない場合には、自動ジョブの動く瞬間だけチェックを無効にするようなスクリプトを作って制御するという方法が考えられます。
[HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft Excel]
ダイアログが出る状態 "Options6"=dword:00000008
ダイアログが出ない状態 "Options6"=dword:00000000
Excel 97 では、HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft Excel\Options6 の第 4 ビットが、マクロウィルスから保護するダイアログの制御をしています。次のような VBScript で、これを制御しながら、 Excel Book を開くことができます。
Set WshShell = WScript.CreateObject("WScript.Shell")
rKey = _
"HKCU\Software\Microsoft\Office\8.0\Excel\Microsoft Excel\Options6"
rSave = WshShell.RegRead(rKey)
WshShell.RegWrite rKey, 0, "REG_DWORD"
WshShell.Run _
"C:\usr\local\bin\msoffice\office\excel.exe SAMPLE1.xls", 1, TRUE
WshShell.RegWrite rKey, rSave, "REG_DWORD"
レジストリの設定内容は、使用するバージョンや個々の端末の設定に依存して異なります。上のようなコードを実行する前に必ず、レジストリエディタで実際の設定を確認して、端末に応じて必要な修正を行ってください。こういった調整を自分で行えない場合は、レジストリを変更するアプリケーションを実行すべきではありません。