none
visual basicからエクセルを操作し、保存するとエラー終了することがある。 RRS feed

  • 質問

  • VisualBasic2013で作成したプログラムよりエクセルファイルを操作して上書き保存するときにエクセルが異常終了します。

    その時のエラーログは以下の通りです。

    アプリケーション ポップアップ: EXCEL.EXE - アプリケーション エラー : 0x015adb88 の命令が 0x00000038 のメモリを参照しました。メモリが written になることはできませんでした。

    プログラムを終了するには [OK] をクリックしてください

    エクセルのバージョンは2013

    OSはwindows7 pro 32bit

    該当箇所のプログラム

    MyExcel.Application.DisplayAlerts = False
    MyExcel.Save()
    MyExcel.Application.DisplayAlerts = True

    上記のコードで5分置きに保存をかけています。

    発生頻度ですが、当システムは24時間稼働しており、5カ月ほど運用してますが3/19 3/26 4/2に各1回づつ3回です。

    発生頻度は少なく、エクセル、VisualBasic2013のプログラムを起動し直すことで復旧しますが、システムの特性上止まると影響が大きい為、対策があれば御教授ください。

    宜しくお願い致します。

    2017年4月3日 2:59

回答

  • ごめんなさい、投稿されたエラーについてはわかりませんが、

    > 発生頻度は少なく、エクセル、VisualBasic2013のプログラムを起動し直すことで復旧しますが、
    > システムの特性上止まると影響が大きい為、対策があれば御教授ください。

    そういうシステムなのにDBとか使わずに
    Excelに24時間書込続けるというのを見直したほうが良さげに思います。

    めげずにExcelを使うのであれば、こういうエラーは発生するものして扱い、
    エラー発生で再起動させるサービスを起動しておくとかでしょうか。

    2017年4月3日 6:44
  • 5ヵ月間も連続稼働してたった3回しか落ちなかったなら、かなり優秀だと思います。

    Office のサーバーサイド オートメーションについて

    -- 以下引用 --
    マイクロソフトは、現在のところ、無人の非対話型クライアント アプリケーションまたはコンポーネント (ASP、ASP.NET、DCOM、および NT サービスを含む) からの Microsoft Office アプリケーションのオートメーションに関して、推奨もサポートも行っていません。それは、このような環境で Office を実行した場合、Office で不安定な動作やデッドロックが発生する可能性があるためです。
    -- 以上引用 --

    2017年4月3日 8:24
  • 発生頻度ですが、当システムは24時間稼働しており、5カ月ほど運用してますが3/19 3/26 4/2に各1回づつ3回です。

    発生日の法則性を考えると毎週日曜で、発生前の日曜日と、初回発生の日曜日の間に Windows Update 配信日を挟んでいますね。
    3 月の Windows Update が契機の可能性もありますが、断定する材料はありませんね。
    Excel 2010 ならこの話題がありましたが

    ずっと動かし続けるということソリューションは Office としてサポートシナリオ外であることはほかの方が指摘されているとおりなので、サポートも受けづらいかもしれません。
    よって、いろいろと仮定を置いて試していくしかないと思われます。

    2017年4月3日 13:40
    モデレータ
  • Excelは常に起動している状態なのでしょうか? 掲載されたコードを見るとそうとは限らなそうですし、詳細がわからないと工夫のしようもないのですが、もしExcelが常に起動しているのであれば、空き時間に再起動するようにするとか、Excelのプロセスが何らかの原因で残ってしまうのであれば確実に落とすようにするとか、対処療法的に、例外処理をきちんとして落ちても再トライするようにするとか、ヘルスチェックのようなアプリを作成し、そのアプリが異常を検出すればExcelやVBのアプリをメンテ、再起動するようにするとか、何らかの工夫はできるかもしれません。

    1日にどれぐらいExcelに書き込むのかわかりませんが、3月19にまでのおよそ5か月間はエラーが発生していないわけですし、Azuleanさんが指摘されている通り、エラーが発生しだしたのがここ約2週間の毎週日曜日という法則性がありそうな頻度ですので、その辺りに何か心当たりはないでしょうか?


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年4月4日 0:50
    モデレータ

すべての返信

  • ごめんなさい、投稿されたエラーについてはわかりませんが、

    > 発生頻度は少なく、エクセル、VisualBasic2013のプログラムを起動し直すことで復旧しますが、
    > システムの特性上止まると影響が大きい為、対策があれば御教授ください。

    そういうシステムなのにDBとか使わずに
    Excelに24時間書込続けるというのを見直したほうが良さげに思います。

    めげずにExcelを使うのであれば、こういうエラーは発生するものして扱い、
    エラー発生で再起動させるサービスを起動しておくとかでしょうか。

    2017年4月3日 6:44
  • 5ヵ月間も連続稼働してたった3回しか落ちなかったなら、かなり優秀だと思います。

    Office のサーバーサイド オートメーションについて

    -- 以下引用 --
    マイクロソフトは、現在のところ、無人の非対話型クライアント アプリケーションまたはコンポーネント (ASP、ASP.NET、DCOM、および NT サービスを含む) からの Microsoft Office アプリケーションのオートメーションに関して、推奨もサポートも行っていません。それは、このような環境で Office を実行した場合、Office で不安定な動作やデッドロックが発生する可能性があるためです。
    -- 以上引用 --

    2017年4月3日 8:24
  • 発生頻度ですが、当システムは24時間稼働しており、5カ月ほど運用してますが3/19 3/26 4/2に各1回づつ3回です。

    発生日の法則性を考えると毎週日曜で、発生前の日曜日と、初回発生の日曜日の間に Windows Update 配信日を挟んでいますね。
    3 月の Windows Update が契機の可能性もありますが、断定する材料はありませんね。
    Excel 2010 ならこの話題がありましたが

    ずっと動かし続けるということソリューションは Office としてサポートシナリオ外であることはほかの方が指摘されているとおりなので、サポートも受けづらいかもしれません。
    よって、いろいろと仮定を置いて試していくしかないと思われます。

    2017年4月3日 13:40
    モデレータ
  • Excelは常に起動している状態なのでしょうか? 掲載されたコードを見るとそうとは限らなそうですし、詳細がわからないと工夫のしようもないのですが、もしExcelが常に起動しているのであれば、空き時間に再起動するようにするとか、Excelのプロセスが何らかの原因で残ってしまうのであれば確実に落とすようにするとか、対処療法的に、例外処理をきちんとして落ちても再トライするようにするとか、ヘルスチェックのようなアプリを作成し、そのアプリが異常を検出すればExcelやVBのアプリをメンテ、再起動するようにするとか、何らかの工夫はできるかもしれません。

    1日にどれぐらいExcelに書き込むのかわかりませんが、3月19にまでのおよそ5か月間はエラーが発生していないわけですし、Azuleanさんが指摘されている通り、エラーが発生しだしたのがここ約2週間の毎週日曜日という法則性がありそうな頻度ですので、その辺りに何か心当たりはないでしょうか?


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年4月4日 0:50
    モデレータ
  • satoshiMD さん、こんにちは
    フォーラム オペレーターの立花楓です。

    本件についてその後いかがでしょうか。

    mars12 さん、hihijiji さん、Azulean さん、trapemiya さんの情報が、問題解決のご参考になると思いましたので、私の方で回答マークを付けさせていただきました。
    ※問題が未解決の場合や不明点がある場合は、回答マークを外していただくことも可能です。

    寄せられている情報等をお試しいただき、進展がございましたらこちらのスレッドへご返信いただけますと幸いです。

    よろしくお願いします。


    MSDN/TechNet Community Support 立花楓


    2017年4月11日 2:13
    モデレータ