- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スタック領域エラーについて)
スタック領域エラーについて
このQ&Aのポイント
- 新規のフォームにチェックボックスを3つ追加しました。 コントロール配列です。 プログラムを実行すると、 スタック領域エラー(エラー28)が出力されます。 この回避方法について、また原因がおわかりいただけたら ご教授おねがいできないでしょうか?
- スタック領域エラー(エラー28)が発生しています。 フォームに3つのチェックボックスを追加し、プログラムを実行するとエラーが出力されます。 回避方法や原因について教えてください。
- フォームにチェックボックスを追加し、プログラムを実行するとスタック領域エラー(エラー28)が発生します。 このエラーの回避方法や原因について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
原因は、 Private Sub Check1_Click(Index As Integer) の中でチェックボックスの値を変えているため、自分自身の手続きを再帰呼び出ししているためです。 対処方法は、最初にすべてのチェックボックスを0にするのではなく、Indexを調べて必要なチェックボックスの値だけを変えるようにしましょう。
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
回答No.2
Check1_Clickメソッドにフラグを設けてやればご希望のことは可能でしょう Private Sub Check1_Click(Index As Integer) static bflag as Boolean ' このメソッドを実行中の場合は処理を中断 if bflag then exit sub ' 実行中のフラグをセット bflag = true Check1(0).Value = 0 Check1(1).Value = 0 Check1(2).Value = 0 Check1(Index).Value = 1 ' 処理終了なのでフラグをリセット bflag = false End Sub といった具合でしょう