- ベストアンサー
VB5 SP3、Spread2.5J環境で実行時エラー
OS:WinXP PRO SP2、WinNT SP6 他 VB:5.0 SP3 SPREAD:2.5J (1998/07/25) 上記環境で作成したプログラムがあります。 プロジェクトの構成は、検索画面、メイン画面、コード検索用子画面と いった画面があり、それぞれにスプレッドを使用しています。 メイン画面のスプレッドは、行が取引先、列が商品のマトリックスに なっていて、検索したデータによって、コンボボックス型や、 チェックボックス型のセルが作られ、背景色もセル毎に変更されます。 複雑な請求書のプログラムですので、EXEのサイズや、メモリ使用量などは、 結構なものなのですが、最近までは問題なく動作していました。 その状態から、取引先毎に小計行を追加したり、実績数が未入力の行を 非表示にするコンボボックスを追加する仕様変更を行い、普通に使う分には 問題なく動作しています。 しかし、3,500行程度のデータを表示して、下の方の取引先の実績数を 入力後、実績数未入力のデータを非表示にした場合、下記の3つのエラーが エラートラップに関係無く表示され、VB(or EXE)が終了することがあります。 同じ処理をしても、現象が出る時と出ない時があります。 1.実行時エラー '-2147417848(80010108)' 'Action'メソッドは失敗しました:'_DSpreadSheet'オブジェクト (※ReDrawの場合もあり) 2.問題が発生したため、Visual Basicを終了します。 3.vb5.exe-アプリケーションエラー "0x76992d36"の命令が"0xf3011ad6"のメモリを参照しました。 メモリが"read"になることはできませんでした。 GrapeCity社のサイトや、他のHPでも検索したのですが、同様の現象が 見当たらず、メモリ使用を極力抑えたロジックに変更してみたりも したのですが、全く状況が変わらず困窮しております。 OSをインストールし直しても同じです。 同様の現象が出た方はいらっしゃいますでしょうか? また、対処方法を御存知の方がいらっしゃいましたら、御教えください。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
お礼
回答ありがとうございます。 > で発生すると言うことは、SPREAD 2.5Jを操作した時に発生するんですよね? > #SPREADの外で、直接APIを使用しているわけじゃないんですよね? そうですね。 コンボボックスの値が変更されたら、スプレッドから該当する行を非表示に するユーザー関数を呼び出していて、その関数内ではAPIは操作しておりません。 > ちなみに、実行してている「Action」は何なんでしょうか? > #ひょっとして印刷とか? 印刷ではないですね。 当方では、印刷は VsView などを使ったり、Excelで出力したりしています。 Actionで行っている処理は、SS_ACTION_ACTIVE_CELLで、セルを選択するコマンドです。 しかし、質問の部分に記入したように、ReDraw や、RowHidden の場合もあり、 処理が安定していません。 ただ、処理は違えども、この現象も dsuekichi様と同じような感じがするので、 普通に調査や改修を繰り返しても、時間だけが過ぎて解決までは至らないかも しれません・・・。 しかし、請求書ですので、あまり躊躇もしてられませんので、当方としても、 機能縮小や、Spreadのバージョンアップを念頭に入れて、もう少し頑張ってみます。 ありがとうございました。