- ベストアンサー
ユーザーフォームの呼び出しでエラー
環境: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': プロシージャの呼び出し、または引数が不正です。 ----- 考えられる原因が何か、お解かりになる方はご教授ください。 お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
はっきりとした原因は、私にはわからないのですが、 http://support.microsoft.com/kb/811469/ja が参考になるのではないかと思います。 とりあえず回避策としまして、 Load AAAForm ' ファイルのEOF(End of File)まで繰り返す Do Until EOF(intFF) ~(略)~ AAAForm.Show ~(略)~ Loop Unload AAAForm とされればよいのではないでしょうか?
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
>Private Sub OK_Click() Me.Hide End Sub で、飛んできてHideしますが、UnLoadはしません。 しかし次ぎのレコードを読んで条件に該当すると、Loadしようとしませんか。 Private Sub OK_Click()では、本体に戻らないはずですからUnlosdされないのでは。 質問のコードの流れ(Private Sub OK_Click()と本体の関連)が良くわからないので、勘違いだったらお許しを。
お礼
回答ありがとうございます。 そう、私も似たような事を考えたんですよね。 > Private Sub OK_Click()では、本体に戻らないはずですから 呼び出し元の“Public Sub 処理()”に戻れば次行の Unload AAAForm を実行するはずなのにしてないのかな?って。 フォームを Hideするとどこに行くのでしょう? あいまいなままです。
お礼
お、何やらエラーメッセージで止まらなく なりました。 進展しました。 ありがとうございました。