|
▼neptune さん:
回答ありがとうございます。
いくつかお伺いしたいのですが・・・
使用していパソコン(サーバー)は、ちょっと理由があり簡単に再起動する
ことができません(常時接続端末のため)
それでこの端末が、1週間に1回自動で電源が落ちるようになっているため、
そのときにエクセル等開いているとなると正常に電源が落ちないのでは・・・
という不安があります。
申し訳ないのですが以下にプログラム内容を記載しようと思うので、
もしよろしければ何かご教授いただけないでしょうか。
よろしくお願いします。
エクセルオープンのVBS↓
Option Explicit
On Error Resume Next
Dim objExcel
Dim str_FileName
Dim objFile
Dim objF
Dim str_ExcelFile
const ForWriting = 2
'ファイルオープン
str_FileName = "ログテキストファイルの場所・ログファイル名"
Set objFile = WScript.Createobject("Scripting.FileSystemObject")
Set objF = objFile.OpenTextFile(str_FileName,ForWriting,True)
If Err.Number <> 0 Then
MsgBox "LogFile Open Error :" & Err.Description
sub_EndProc()
WScript.Quit
End If
'logファイルに日付書き込み
objF.Write Now & vbCrLf
If Err.Number <> 0 Then
MsgBox "LogFile Write Error :" & Err.Description
sub_EndProc()
WScript.Quit
End If
'Excelオブジェクト作成
set objExcel = WScript.CreateObject("Excel.Application")
If Err.Number <> 0 Then
MsgBox "Excel Create Error :" & Err.Description
sub_EndProc()
WScript.Quit
End If
'Excelワークブックオープン
str_ExcelFile = "エクセルファイルの場所・エクセル名"
objExcel.Workbooks.Open str_ExcelFile
If Err.Number <> 0 Then
MsgBox "Excel Open Error :" & Err.Description
sub_EndProc()
WScript.Quit
End If
With objExcel
.Visible = false
.DisplayAlerts = true
End With
objExcel.Workbooks.Close
'logファイルに終了書き込み
objF.Write str_ExcelFile & " 終了" & vbCrLf
If Err.Number <> 0 Then
MsgBox "LogFile Write Error :" & Err.Description
sub_EndProc()
WScript.Quit
End If
'logファイルに終了書き込み
objF.Write str_ExcelFile & " 終了" & vbCrLf
If Err.Number <> 0 Then
MsgBox "LogFile Write Error :" & Err.Description
sub_EndProc()
WScript.Quit
End If
'logファイルに終了書き込み
objF.Write Now & " end" & vbCrLf
sub_EndProc()
WScript.Quit
Sub sub_EndProc()
If IsObject(objExcel) Then
objExcel.Quit
set objExcel = Nothing
End If
If IsObject(objF ) Then
objF.Close
set objF = Nothing
End If
If IsObject(objFile) Then set objFile = Nothing
End Sub
以上で、タスクに登録して実行したところ、
Excelワークブックオープン のところでエクセルをオープンし、
マクロを実行させるようになっているのですが、
このときエクセルのマクロでエラーが起き、デバックして中断させたのですが、
そのエラーのプログラムを消しても、上書き保存されず、別名で保存しますか?
というメッセージが出ます。
キャンセルして閉じてそのエクセルを開こうとすると、他に開いているので
読み取り専用で開きますか?と聞かれます。
ちなみにログファイルもオープンされたままでしたので、もう一度VBSを
起動させると「ログファイルオープンエラー」のメッセージが出てきたので、
新たにログファイルをクローズするのみのプログラムを作成し実行、
そのログファイルは削除してしまいました。
すみません、こんな感じでどうでしょうか?
初心者で勉強不足で申し訳ありません・・
よろしくお願いします。
|
|