• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:大至急! 一連のマクロが止まってしまいました。対処法をおしえてください。)

大至急!一連のマクロが止まってしまいました。対処法をおしえてください。

このQ&Aのポイント
  • シーケンサから送られてくるデータを24時間モニターするためにExcel2007で構築しているシステムです。
  • システムはExcelとシーケンサの間で1秒ごとに通信し、1日に3つのブックを保存します。
  • システムが約3カ月稼働後にタイマーマクロが働かなくなり、再起動後20日で再び同じ症状が発生しました。保存作業で問題が発生しているため、対処法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

On Error Resume Next をやめてエラーを確かめてみましたか? 対策は何のエラーが出てるのか確認してからでしょ?

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 ご質問の場合は、たぶん、エラーはエラーでも、フリーズだと思います。再起動という方法は一案ですが、その前に、一度、Excelの再起動という手もあると思います。それでダメなら、システムの再起動の自動化をするという方法が良いと思います。 WScript で、 ''MyExcel.VBS ,WSH で動かす Dim xlApp Dim myPath Dim DefPath 'On Error Resume Next Set xlApp = Wscript.CreateObject("Excel.Application") 'If xlApp Is Nothing Then 'Set xlApp =Wscript.Getobject(, "Excel.Application") 'End If If Not xlApp Is Nothing Then With xlApp myPath = .StartupPath '必要に応じて、ここにパスを入れます。 DefPath = .DefaultFilePath .Visible =TRUE 'アドインやPersonal.xls が必要なときは、ここに書き加える '.Workbooks.Open(myPath & \Personal.xls") .Workbooks.Open(DefPath & "\Test01.xls") End With Set xlApp = Nothing End If こんな風にして、Excelの起動を確保し、Windows 側のタスクにで決めてやるわけです。そして、Excel側は、Application.OnTime で、一定の時間で終了させるようにする。こちらでは、アプリケーションのフリーズするのは仮想メモリ側が膨らんでしまう可能性があると考えています。Windows そのものは、ずっと付けっぱなしでも、私はトラぶった経験がありませんが、Excelがハングした場合は、必ず、XP の場合は、C:\Documents and Settings\[User ID]\Local Settings\Temp\*.* (または、*.emf )を削除するようにします。そうしないと、それは繰り返す可能性を秘めています。Excelを終了したときか、起動したときに、ゴミになるようなテンポラリファイルは合わせて削除すると良いと思います。他のOSでは、該当する場所を掃除してください。

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.3

そもそもEXCELのマクロ(VBA)で作成したプログラムを長時間(何日も)というのはいかがなものでしょうか? WINDOWS PC側で動かしている。  何らかの要因でPCがフリーズしたら結局は動かなくなるのは当たり前です。 昔、私も同様な経験があります。 マイクロソフト Access2000 でしたがタイマーを使って自動的にプログラムを動かしていましたがある日の翌朝にフリーズしていました。 原因はメモリーリーク(http://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF) でした。 もっとも昔のPCの環境と現在のPCスペックでは比較になりませんが。 他のプログラムの影響もありえます。たとえばウイルスワクチンソフトなど。 私だったらC#やVB.NETなどで バックグラウンドとして DBに記録するプログラムを作成するべきとは思いますけど・・・ システム規模や接続機器の構成がわかりませんので状況がわからないのでなんともいえないのすが。 それとタスクマネージャーよりPCモニターでCPU稼働率、メモリーの使用率などの状況がみれます。 このデータをログとして記録してみてください Windows Vista の場合は Relog.exe コマンド が用意されています。 このあたりを調査する必要があります。 タスクマネージャー は Ctrl+ALt+DEL キーを同時に押すと起動するメニューが表示されます。 タスクマネージャーの「パフォーマンス」 のTAB をクリックしてみてください。

回答No.2

どこかのタイミング 例えば夜中の2時とか・・ shell "c:\windows\system32\shutdown.exe /f /r /t 000" または、タスクスケジューラに c:\windows\system32\shutdown.exe /f /r /t 000 をセットし再起動をかけてみたらどうでしょうか。 スタートアップに、該当のマクロを含むEXCELをセットし 自動起動すれば、解決すると思います。

  • soaikats
  • ベストアンサー率58% (14/24)
回答No.1

それがサーバでなくパソコンであればそれが原因では? パソコンは電源を落とさない運用を行うと 想定しない誤作動を起こす原因となります。

chintarou
質問者

補足

ありがとうございます。 サーバーでなくパソコンです。 やはり、メンテ再起動が必要でしょうか。 3ヶ月、20日とブレがあったので、 それ以外にも要因があるのかと。 そんなもの何でしょうか?

関連するQ&A