Formの値をモジュールに引数として渡す

タグの編集
投稿者 C#  (社会人) 投稿日時 2009/1/21 20:32:21
お世話になります。
簡単なプログラムの作成で、少々疑問になったので質問させていただきます。

現在、Form1にボタンを作成してボタンを押すとForm2を表示するという
プログラムを作成しているのですが、モジュールにForm2を引数として
値を渡すとエラーになってしまいます。

Formは引数として値を渡すことは不可能なのでしょうか?
教えて頂けると幸いです。

説明が下手なのでコードを書いてみます。

'これは可能
Private Sub Command1_Click()
Dim frm As Form2
Set frm = New Form2
Call frm.Show(vbModal)
End Sub



'こっちエラー
'Form1側のコード
Private Sub Command1_Click()
test Form2
End Sub

'モジュールのコード
Public Sub test(ByVal frm As Form)
Dim frm2 As frm
Set frm2 = New frm
Call frm2.Show(vbModal)
End Sub


宜しくお願いいたします。
投稿者   (社会人) 投稿日時 2009/1/21 20:40:17
>Dim frm2 As frm

これがおかしい。frmはForm型の変数になってるわけだし。

それよりも、共通する処理だというだけでモジュールにメソッドを作ろうとしていること自体をやめたほうがいいんじゃない?
投稿者 C#  (社会人) 投稿日時 2009/1/21 20:56:41
返信有難う御座います。

指摘頂いた行について型宣言してる部分に変数を入れているのでエラーが出るという事が
判りました。

現在VB6.0の勉強と言うことで、モジュールの理解を深めるといった事で、
面倒な処理なのかもしれませんが、モジュールでの作成で行っています。

前の質問(フォーカスの判定)でもモジュールとして処理を行おうとしているのは
そういった意味でした。

nさん有難う御座いました。
もう少し調べて勉強していきたいと思います。
投稿者 ヴァン  (社会人) 投稿日時 2009/1/21 21:45:45
エラーが出るならどんなエラーなのか書いた方が良い。

試してないけど、

'Form1側のコード
Private Sub Command1_Click()
Dim frm As Form2
Set frm = New Form2
test frm
End Sub

'モジュールのコード
Public Sub test(ByVal frm As Form2)
Call frm.Show(vbModal)
End Sub
投稿者 C#  (社会人) 投稿日時 2009/1/21 22:06:27
申し訳御座いませんでした。
次からはエラー内容も記述していきたいと思います。