|
▼むーたん さん:
>すみません、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のプロセスを取得して
終了させる。という流れですね。
|
|