「メモリが不足しています」の復旧について

解決


TEJAN  2006-04-14 00:55:40  No: 130967

いつも参考にさせていただいております。
解決できない問題がありましたので投稿します。

まず環境は
WIN  XP
EXCEL  2003  SP1  内の  VB6  です。

別途作成したDLL内の関数を参照するために
Public Declare ・・・を多用しているのですが、
途中で「メモリが不足しています」のエラーが発生しました。
(作成したソースの掲載は
  あまりに長大なので今のところは御容赦ください)

そこでヘルプを参照し以下のような対策を施してみました。
・Public変数を減らす
・モジュールを分ける
ところがソースをエラーが出る以前に状態に戻しても
エラーが発生し続けてしまいます。

もし似たような経験をお持ちの方がみえましたら、
どのように解決したか等、意見をお聞かせください。
よろしくお願いします。


あっきー  2006-04-14 03:05:37  No: 130968

実行させたら、そのエラーがでるのでしょうか?
だとしたらVBかDLLのバグっぽいですね。
(例えばメモリを確保する関数の引数にとんでもない大きな値を渡しているとか)

まずは、どこでそのエラーが発生しているのか突き止めましょう。
次に、なぜそこでエラーがでるのか考えましょう。


TEJAN  2006-04-14 03:58:08  No: 130969

あっきーさん、御意見ありがとうございます。
エラーが発生するタイミングですが、
実行時ではなくソースを書いている時です。

もう少し詳しく書きますと、
「Public Declare ・・・」内のDLLパス
(「Lib」以降に書く文)を
いわゆる「すべて置換」で別のパスに一括変更した時に
多くの文章が赤くなり、エラーとなります。
そこでパスを元に戻してもエラーが直らないのです。
もちろん変更後のパスは実在するDLLを示していますし、
DLLの内容は変更前のそれと同じなのです。
(要はDLLの置き場所を変えただけです)

ですから私としてはDLLのバグとは考えにくいのですが・・・
他に原因は考えられませんでしょうか。


あっきー  2006-04-14 04:06:29  No: 130970

別のパソコンでやっても同じ現象がでるのでしょうか?
あと「EXCEL  2003  SP1  内の  VB6」
ってVBAのこと?


TEJAN  2006-04-14 04:29:13  No: 130971

>別のパソコンでやっても同じ現象がでるのでしょうか?
はい、全く同じ現象が起こります。

>VBAのこと?
失礼しました。VBAです。


TEJAN  2006-04-17 18:58:45  No: 130972

自己解決しました。

EXCELファイルを新規作成し、
そちらに全てのソースをコピー&ペーストしたら
その後はエラーが出なくなりました。

結局、エラーの理由は分からないままなのですが、
回避できたので良しとします。

どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加