現在開いている全てのフォームを閉じるVBA
どうして、サンプル2じゃダメなのか教えていただけますか?
-------------------------------------------------------------
Sub サンプル1()
'フォームがひとつも開いてない時に実行してもエラーにならない。
Dim intCnt As Integer
'全ての開いているフォームのループ
For intCnt = Forms.Count - 1 To 0 Step -1
'コレクションの intCnt番目のフォームを閉じる
DoCmd.Close acForm, Forms(intCnt).Name
Next intCnt
End Sub
Sub サンプル2()
'フォームがひとつも開いてない時に実行してもエラーにならない。
Dim intCnt As Integer
For intCnt = 1 To Forms.Count
DoCmd.Close acForm, Forms(intCnt).Name
Next
End Sub
-------------------------------------------------------------
サンプル1を実行すると、問題なく全てのフォームを閉じる事が出来ますが、
サンプル2だと、二つ開いているフォームのうち、1つ目は閉じる事が出来るのですが
2つ目のフォームを閉じようとすると、
実行時エラー 2456 "フォームを参照するときに使っている番号が正しくありません"
となってしまいます。
私としては、サンプル1もサンプル2も同じ動きをするものだと思ってるのですが
どうやら違うようです。
どうして、サンプル2じゃダメなのか教えていただけますか?
お礼
ありがとうございます。早速請求しました!上司に怒られなくて済みそうです。