こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VB6で開発中…標準モジュール間での関数の呼び出し方は?

Form1.frm内から、標準関数yyy.bas内に記述しているSub yyy()を呼び出したいのですが、コンパイルエラーとなります。
呼び出し方法が間違っているのだと思いますが、お教え下さいませ。

<Form1.frm内>
Private Sub xxxxxx()
 yyy
End Sub

<yyy.bas>
Sub yyy()
 ・・・・
End Sub

投稿日時 - 2005-03-25 11:26:09

QNo.1290122

困ってます

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

標準モジュールかフォームにつけたオブジェクト名がyyyになってませんか?

投稿日時 - 2005-03-25 12:25:08

お礼

ありがとうございます。
それでした!
標準モジュールに関数名と同名のyyy(yyy01.bas)としていました。
別名にしたところ、エラーが出なくなりました。

当方のぼんミスでした・・

皆さま、お手数おかけいましたした&ありがとうございました
m(__)m

投稿日時 - 2005-03-25 12:31:34

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.8

<yyy.bas>
Sub yyy()
 ・・・・
End Sub

は、完全なる例じゃなかったみたいですね。

yyy.basの名前を変えるか
関数yyyを変えてください。

モジュール名と関数名は同様のものはいけません。

投稿日時 - 2005-03-25 12:29:27

お礼

ありがとうございます。
まさにそれでした。
大変失礼いたしました。

投稿日時 - 2005-03-25 12:32:14

ANo.6

<yyy.bas>
Sub yyy()
 ・・・・
End Sub

これでは駄目です。

<yyy.bas>
Public Sub yyy()
 ・・・・
End Sub

にしましょう。

それと、Callはつけてもつけなくても全く問題ありません。

投稿日時 - 2005-03-25 12:20:09

補足

はい、実はそれもすでに試してみた(以下のように)のですが、同様のエラーとなるので???なのです。

<Form1.frm内>
Private Sub xxxxxx()
 yyy
End Sub

<yyy.bas>
Public Sub yyy()
 ・・・・
End Sub

投稿日時 - 2005-03-25 12:23:50

ANo.5

順次コンパイルオプションをはずして、実行したら、エラーが出力されると思います。
エラー内容を教えてください。


メニューより
 ツール
 オプション
 全般タブ
 コンパイル
 順次コンパイルをoff

投稿日時 - 2005-03-25 12:01:59

補足

ありがとうございます。
エラーは以下の内容でポップアップウインドに表示されています。
------------------
コンパイルエラー:
モジュールではなく、変数またはプロシージャを指定して下さい。

投稿日時 - 2005-03-25 12:19:50

ANo.4

yyy.basはプロジェクトに関連付けられていますか?
(プロジェクトのエクスプローラウインドウに表示されてますか?)
なければ、yyy.basをプロジェクトに追加してください。

これで上手くいかないかな?
もう長期に渡ってVB触ってないので、自身無しにさせてください。苦笑

投稿日時 - 2005-03-25 11:52:23

補足

ありがとうございます。
プロジェクトの標準モジュールのところにyyy.basはちゃんと追加してあるのですがエラーとなります・・

投稿日時 - 2005-03-25 12:16:41

ANo.3

 yyy

Call yyy

とすればOKですよ

もし、Sub yyy()に引数を設定するのであれば、

Call yyy(引数)

となります。

投稿日時 - 2005-03-25 11:51:52

補足

ありがとうございます。
以下のようにCallを付けてみましたが、やはりエラーになります。

<Form1.frm内>
Private Sub xxxxxx()
 Call yyy
End Sub

<yyy.bas>
Sub yyy()
 ・・・・
End Sub

投稿日時 - 2005-03-25 12:16:09

ANo.2

Call yyy

でどうでしょうか?


経験的に知っているだけなので、何でCallがいるの?ってのはよく知りませんが。

投稿日時 - 2005-03-25 11:50:53

補足

ありがとうございます。
以下のようにCallを付けてみましたが、やはりエラーになります。

<Form1.frm内>
Private Sub xxxxxx()
 Call yyy
End Sub

<yyy.bas>
Sub yyy()
 ・・・・
End Sub

投稿日時 - 2005-03-25 12:14:34

ANo.1

引数ありませんか?

投稿日時 - 2005-03-25 11:43:56

補足

ご回答、ありがとうございます。
はい、引数も戻り値もありません。

投稿日時 - 2005-03-25 11:44:28

あなたにオススメの質問