dポイントプレゼントキャンペーン実施中!

全てのフォームを一気に削除したく、ググってみたら
http://oshiete.goo.ne.jp/qa/8093271.htmlが見つかって
Sub test()

Dim i As Integer

For i = CurrentProject.AllForms.Count - 1 To 0 Step -1
DoCmd.DeleteObject acForm, CurrentProject.AllForms(i).Name
Next i

End Sub

のコードを実行してみたのですが、途中で
実行時エラー2467
指定した式で、閉じているかまたは存在しないオブジェクトを参照しています。
という、エラーになってしまいます。

ググってみたらこのエラーはフォームが存在しない時に発生するエラーのようですが、
全てのフォームをループしているのに存在しないフォームを参照する事なんてあるのでしょうか?

フォームはすべて閉じている状態で実行しました。

あと、発見したのが、
実行時エラー2467の前に、
実行時エラー29068
この再差を完了することができません。コードを中断し、再度実行してください。
と言うエラーが出るようです。そのままデバッグボタンを押すと、実行時エラー2467になるようです。

A 回答 (2件)

エラー発生時の i の値はいくら?


イミディエイトウィンドウに表示させてみると良いかも。
(VBEでイミディエイトウィンドウが開いてないなら、Ctrl+G)

For i = CurrentProject.AllForms.Count - 1 To 0 Step -1
 Debug.print i, CurrentProject.AllForms(i).Name 'この行を追加
 DoCmd.DeleteObject acForm, CurrentProject.AllForms(i).Name
Next i
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2013/07/23 22:19

思い違いかもしrませんが



開いているフォームは削除出来ませんね
削除を実行しているフォームは閉じていますか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2013/07/23 22:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A