Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


21218 / 76732 ←次へ | 前へ→

【60916】Re:VBAと反れるかもしれません・・・
質問  むーたん  - 09/3/24(火) 11:06 -

引用なし
パスワード
   ▼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を
起動させると「ログファイルオープンエラー」のメッセージが出てきたので、
新たにログファイルをクローズするのみのプログラムを作成し実行、
そのログファイルは削除してしまいました。

すみません、こんな感じでどうでしょうか?
初心者で勉強不足で申し訳ありません・・
よろしくお願いします。

2 hits

【60913】VBAと反れるかもしれません・・・ むーたん 09/3/24(火) 10:19 質問
【60914】Re:VBAと反れるかもしれません・・・ neptune 09/3/24(火) 10:43 発言
【60916】Re:VBAと反れるかもしれません・・・ むーたん 09/3/24(火) 11:06 質問
【60920】Re:VBAと反れるかもしれません・・・ neptune 09/3/24(火) 13:26 発言
【60919】Re:VBAと反れるかもしれません・・・ stream 09/3/24(火) 13:07 回答
【60921】Re:VBAと反れるかもしれません・・・ neptune 09/3/24(火) 13:29 発言
【60935】Re:VBAと反れるかもしれません・・・ Yuki 09/3/25(水) 15:35 発言
【60949】Re:VBAと反れるかもしれません・・・ むーたん 09/3/26(木) 15:06 お礼

21218 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free