• ベストアンサー

ユーザーフォームの呼び出しでエラー

環境:WindowsXP,Excel2000 入力ファイルを1行ずつ読み込んで ある条件の場合は、“AAAForm”を呼び出します。 ----- Public Sub 処理()   ~(略)~   ' ファイルのEOF(End of File)まで繰り返す   Do Until EOF(intFF)     ~(略)~     Load AAAForm     AAAForm.Show     Unload AAAForm     ~(略)~   Loop   ~(略)~ End Sub ----- 1回目は成功して、 制御がフォームに移ります。 OKボタンを押したら ----- Private Sub OK_Click()   Me.Hide End Sub ----- として、制御が“処理()”に戻り “AAAForm”はメモリから削除されます。 入力ファイルから入力レコードを繰り返し読み込んで また、同条件の場合は、“AAAForm”を呼び出したいのですが、 2回目の“AAAForm”の呼び出しは失敗して“処理()”の 下記の位置で止まります。     load AAAForm エラーメッセージは下記の通り ----- 実行時エラー '5': プロシージャの呼び出し、または引数が不正です。 ----- 考えられる原因が何か、お解かりになる方はご教授ください。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • k-pix
  • ベストアンサー率51% (50/98)
回答No.1

はっきりとした原因は、私にはわからないのですが、 http://support.microsoft.com/kb/811469/ja が参考になるのではないかと思います。 とりあえず回避策としまして、   Load AAAForm   ' ファイルのEOF(End of File)まで繰り返す   Do Until EOF(intFF)     ~(略)~     AAAForm.Show     ~(略)~   Loop   Unload AAAForm とされればよいのではないでしょうか?

vide
質問者

お礼

お、何やらエラーメッセージで止まらなく なりました。 進展しました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>Private Sub OK_Click()   Me.Hide End Sub で、飛んできてHideしますが、UnLoadはしません。 しかし次ぎのレコードを読んで条件に該当すると、Loadしようとしませんか。 Private Sub OK_Click()では、本体に戻らないはずですからUnlosdされないのでは。 質問のコードの流れ(Private Sub OK_Click()と本体の関連)が良くわからないので、勘違いだったらお許しを。

vide
質問者

お礼

回答ありがとうございます。 そう、私も似たような事を考えたんですよね。 > Private Sub OK_Click()では、本体に戻らないはずですから 呼び出し元の“Public Sub 処理()”に戻れば次行の Unload AAAForm を実行するはずなのにしてないのかな?って。 フォームを Hideするとどこに行くのでしょう? あいまいなままです。

関連するQ&A