VB6にてアプリケーションの開発をしておりますが、VB上でコンパイルしてもエラーは出ないのに、.exeファイルになった時点で特定の操作で必ず、「実行エラー'5'、プロシージャの呼び出し、または、引数が不正です。」と出てしまいます。
原因が掴めません。コードの記述にミスがあるのでしょうか? 見た目は問題なさそうですが、VBのコンパイルでは、引っかからないエラーがあるのでしょうか? それともVBのバグなのでしょうか?
1週間以上悩んでおります。
何か原因を掴むヒントや手法があれば、ご教授願います。
以上、宜しくお願い致します。
コンパイルは通るけど実行すればエラーとなるのはそんなに不思議じゃありませんよ。
例えば
Dim A as String
A="ABCDEFG"
MsgBox CDate(A)
これはコンパイルは通りますが、実行したらエラーとなりますよね。
(エラーの種類は違いますが)
つまり、どこかの処理で実行時に例外が発生しているということでしょう。
まずは発生場所を特定してください。
エラーが発生する特定の操作が分かっているならつきとめるのもそんなに難しくないはずです。
>コンパイルは通るけど実行すればエラーとなるのはそんなに不思議じゃありませんよ。
そうですね。
>実行エラー'5'、プロシージャの呼び出し、または、引数が不正です。
エラーメッセージから行くと…ヘルプには『関数の呼び出しが完了できない』
と書いてあります。まんまなんだけど、引数が関数の受け取れる範囲を
超えていたり、Variant 型とかだと、実行するまで中に何が入ってるか分からない
(少なくともプログラム側からは)から、不都合なものが入ったまま実行してたり…。
その辺り、変数のデータ型とか意識しながら調べてみるとか?
>「実行エラー'5'、プロシージャの呼び出し、または、引数が不正です。」と出てしまいます。
それは文字通り、『実行エラー』ですよ。
不正な引数というのは、必ずしもコンパイル時には判定できない物もありますよね。
くだんのエラーが出る例としては、たとえば…
☆関数に範囲外の値を指定した(たとえば、Chr(&H10000) とか)
☆実行可能形式ではないファイルを、Shell関数で起動しようとした
☆フォームをモーダル表示している最中に、他のフォーム上のコントロールにSetFocusしようとした
☆Form_Load中に、自フォームが表示される前にSetFocusしようとした
☆使用不可能(Visible=False/Enabled=False等)なコントロールにSetFocusしようとした
皆さん多くのアドバイスありがとうございました。
いろいろ調べた結果魔界の仮面弁士のアドバイスにあった通り、
>☆使用不可能(Visible=False/Enabled=False等)なコントロールにSetFocusしようとした
となっておりました。
1週間悩みましたが、もっと早くご相談すればよかったです。
また、何かありましたら、ご相談させて頂きます。
皆さん本当にありがとうございました。m(_ _)m
ツイート | ![]() |