| 
    
     |  | ▼むーたん さん: >すみません、VBAと反れるとは思いますが、ご教授いただきたく思います。
 >現在、エクセルオープンと同時に実行されるよう、マクロを記述し、
 >そのエクセルのオープンをVBSで記述して実行させています。
 >昨日、VBSをwindowsの機能「タスク」というものに登録して時間になったら
 >プログラムを実行させるようにしたのですが、
 >エクセルに記述しているマクロ内でエラーになり、デバックを中断しましたが、
 >そのあとマクロを記述しているエクセルを開こうとすると、
 >「エクセルファイルが他に開かれているため、読み取り専用で開きますか?」
 >などといったようなメッセージが出て、そのエクセルが閉じられません。
 
 こんにちは。
 対処1としてExcel側でエラールーチンで逃がす。
 On Error Resume Next とか
 On Error Goto XXXXXX とかです。
 
 対処2としてVBS側でGetObject(エクセルファイルの場所・エクセル名)
 で開き閉じます。
 
 'ExcelオブジェクトOpenCheck
 str_ExcelFile = "エクセルファイルの場所・エクセル名"
 Set objExcel = GetObject(str_ExcelFile)
 objExcel.Applicaiton.Quit
 Set objExcel = Nothing
 Err.Clear
 
 'Excelオブジェクト作成  の前に↑を追加
 で、駄目だったらチェック用のエクセルを作成して
 それを走らせてから,このVBSを走らせる。
 
 チェック用のエクセルはAPIを使用するからVBSで書けないため
 に作成
 FindWindowやEnumWindow等でExcelのプロセスを取得して
 終了させる。という流れですね。
 
 
 |  |