いつも参考にさせていただいております。
解決できない問題がありましたので投稿します。
まず環境は
WIN XP
EXCEL 2003 SP1 内の VB6 です。
別途作成したDLL内の関数を参照するために
Public Declare ・・・を多用しているのですが、
途中で「メモリが不足しています」のエラーが発生しました。
(作成したソースの掲載は
あまりに長大なので今のところは御容赦ください)
そこでヘルプを参照し以下のような対策を施してみました。
・Public変数を減らす
・モジュールを分ける
ところがソースをエラーが出る以前に状態に戻しても
エラーが発生し続けてしまいます。
もし似たような経験をお持ちの方がみえましたら、
どのように解決したか等、意見をお聞かせください。
よろしくお願いします。
実行させたら、そのエラーがでるのでしょうか?
だとしたらVBかDLLのバグっぽいですね。
(例えばメモリを確保する関数の引数にとんでもない大きな値を渡しているとか)
まずは、どこでそのエラーが発生しているのか突き止めましょう。
次に、なぜそこでエラーがでるのか考えましょう。
あっきーさん、御意見ありがとうございます。
エラーが発生するタイミングですが、
実行時ではなくソースを書いている時です。
もう少し詳しく書きますと、
「Public Declare ・・・」内のDLLパス
(「Lib」以降に書く文)を
いわゆる「すべて置換」で別のパスに一括変更した時に
多くの文章が赤くなり、エラーとなります。
そこでパスを元に戻してもエラーが直らないのです。
もちろん変更後のパスは実在するDLLを示していますし、
DLLの内容は変更前のそれと同じなのです。
(要はDLLの置き場所を変えただけです)
ですから私としてはDLLのバグとは考えにくいのですが・・・
他に原因は考えられませんでしょうか。
別のパソコンでやっても同じ現象がでるのでしょうか?
あと「EXCEL 2003 SP1 内の VB6」
ってVBAのこと?
>別のパソコンでやっても同じ現象がでるのでしょうか?
はい、全く同じ現象が起こります。
>VBAのこと?
失礼しました。VBAです。
自己解決しました。
EXCELファイルを新規作成し、
そちらに全てのソースをコピー&ペーストしたら
その後はエラーが出なくなりました。
結局、エラーの理由は分からないままなのですが、
回避できたので良しとします。
どうもありがとうございました。
ツイート | ![]() |