スタック領域が不足しています。(Visual Basic)

スタックは、実行中のプログラムの要求に応じて、動的に拡張および縮小されるメモリの作業領域です。 その制限を超えました。

このエラーを解決するには

  1. プロシージャの入れ子が深すぎないことをチェックします。

  2. 再帰プロシージャが正常に終了することを確認します。

  3. ローカル変数で、使用可能な量よりも多くのローカル変数領域が必要な場合は、一部の変数をモジュール レベルで宣言してみてください。 また、StaticPropertySub、または Function キーワードの前に付けて、プロシージャ内のすべての変数を静的に宣言することもできます。 または、Static ステートメントを使用して、プロシージャ内で個々の静的変数を宣言することもできます。

  4. 固定長文字列は可変長文字列よりも多くのスタック領域を使用するため、一部の固定長文字列を可変長文字列として再定義します。 スタック領域を必要としない、モジュール レベルで文字列を定義することもできます。

  5. Calls ダイアログ ボックスを使用して、スタック上でアクティブになっているプロシージャを表示して、入れ子になった DoEvents 関数呼び出しの数をチェックします。

  6. 既にスタックにあるイベント プロシージャを呼び出すイベントをトリガーすることによって、"イベントのカスケード" が発生していないことを確認します。 イベントのカスケードは、未終了の再帰プロシージャ呼び出しに似ていますが、コード内の明示的な呼び出しではなく Visual Basic によって呼び出しが行われるため、目立ちません。 Calls ダイアログ ボックスを使用すると、スタック上でアクティブになっているプロシージャが表示されます。

関連項目