|
ポリフェノール さん、IROCさん
こんにちは。
>フォーム上のテキストボックスに入力されたデータを
>読込み、シートに書込んでいくプログラムを書いています。
>
>フォーム1でデータを入力し、フォーム1をアンロードし、
>フォーム2でデータを入力し、フォーム2をアンロードし、
>データをシートに書込んだ後、
>再びフォーム1を表示するという手順を繰り返します。
>
>80回くらい繰り返していると、スタックが溢れたという意味の
>エラーメッセージが表示され、プログラムが停止してしまいます。
>
>10回に一度くらい、
>ThisWorkbook.Save
>を入れましたが、変わりありませんでした。
>
>解決策をご存知の方、ご助言ください。
コードを見ないと何ともいえないのですが・・・。
例えば、以下のコード
'===============================
Sub test()
Dim a As Long
Call test2(a)
End Sub
'
Sub test2(aaa As Long)
Call test3(aaa)
End Sub
'
Sub test3(bbb As Long)
Call test2(bbb)
End Sub
testを実行すればすぐに「スタック領域が不足しています」というエラーが
発生します。
VBAのインタープリタの詳細は知りませんが、
プロシジャーが呼び出された時点でスタックと呼ばれるメモリ構造をもった領域が確保され
そこには、戻り番地やパラメータ情報が格納されます。
呼び出し元に戻るタイミングで領域が解放される仕組みになっているはずなんですが。
どこかに上記の仕組みから違反しているようなコードの記述がないかも
確認してみて下さい。
|
|