- ベストアンサー
VB6で開発中…標準モジュール間での関数の呼び出し方は?
Form1.frm内から、標準関数yyy.bas内に記述しているSub yyy()を呼び出したいのですが、コンパイルエラーとなります。 呼び出し方法が間違っているのだと思いますが、お教え下さいませ。 <Form1.frm内> Private Sub xxxxxx() yyy End Sub <yyy.bas> Sub yyy() ・・・・ End Sub
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
標準モジュールかフォームにつけたオブジェクト名がyyyになってませんか?
その他の回答 (7)
- k_tatu
- ベストアンサー率16% (2/12)
<yyy.bas> Sub yyy() ・・・・ End Sub は、完全なる例じゃなかったみたいですね。 yyy.basの名前を変えるか 関数yyyを変えてください。 モジュール名と関数名は同様のものはいけません。
お礼
ありがとうございます。 まさにそれでした。 大変失礼いたしました。
- k_tatu
- ベストアンサー率16% (2/12)
<yyy.bas> Sub yyy() ・・・・ End Sub これでは駄目です。 <yyy.bas> Public Sub yyy() ・・・・ End Sub にしましょう。 それと、Callはつけてもつけなくても全く問題ありません。
補足
はい、実はそれもすでに試してみた(以下のように)のですが、同様のエラーとなるので???なのです。 <Form1.frm内> Private Sub xxxxxx() yyy End Sub <yyy.bas> Public Sub yyy() ・・・・ End Sub
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
順次コンパイルオプションをはずして、実行したら、エラーが出力されると思います。 エラー内容を教えてください。 メニューより ツール オプション 全般タブ コンパイル 順次コンパイルをoff
補足
ありがとうございます。 エラーは以下の内容でポップアップウインドに表示されています。 ------------------ コンパイルエラー: モジュールではなく、変数またはプロシージャを指定して下さい。
- kagep
- ベストアンサー率23% (171/721)
yyy.basはプロジェクトに関連付けられていますか? (プロジェクトのエクスプローラウインドウに表示されてますか?) なければ、yyy.basをプロジェクトに追加してください。 これで上手くいかないかな? もう長期に渡ってVB触ってないので、自身無しにさせてください。苦笑
補足
ありがとうございます。 プロジェクトの標準モジュールのところにyyy.basはちゃんと追加してあるのですがエラーとなります・・
- i_yuari
- ベストアンサー率24% (6/25)
yyy ↓ Call yyy とすればOKですよ もし、Sub yyy()に引数を設定するのであれば、 Call yyy(引数) となります。
補足
ありがとうございます。 以下のようにCallを付けてみましたが、やはりエラーになります。 <Form1.frm内> Private Sub xxxxxx() Call yyy End Sub <yyy.bas> Sub yyy() ・・・・ End Sub
- neKo_deux
- ベストアンサー率44% (5541/12319)
Call yyy でどうでしょうか? 経験的に知っているだけなので、何でCallがいるの?ってのはよく知りませんが。
補足
ありがとうございます。 以下のようにCallを付けてみましたが、やはりエラーになります。 <Form1.frm内> Private Sub xxxxxx() Call yyy End Sub <yyy.bas> Sub yyy() ・・・・ End Sub
- taka_tetsu
- ベストアンサー率65% (1020/1553)
引数ありませんか?
補足
ご回答、ありがとうございます。 はい、引数も戻り値もありません。
お礼
ありがとうございます。 それでした! 標準モジュールに関数名と同名のyyy(yyy01.bas)としていました。 別名にしたところ、エラーが出なくなりました。 当方のぼんミスでした・・ 皆さま、お手数おかけいましたした&ありがとうございました m(__)m