プロシージャを他のモジュールから利用するには


にゅう  2007-03-05 04:06:41  No: 135629

皆様、始めまして。初めて質問をさせていただきます。
現在、サブプロシージャを他のモジュール(フォーム)から使用でき
る方法を探しております。
本やHelp等で検索したのですがわかりません。

環境は

Windows XP home
Microsoft Visual Studio .NET 2003

です。

よろしくお願いします。


あげしお  2007-03-05 20:39:11  No: 135630

Public  でいいんじゃないでしょうか?


にゅう  2007-03-07 00:40:35  No: 135631

あげしおさん、ご返信ありがとうございます。
わたしもHelpや本等でその記述をみつけ下記のように
してみたのですがどうもフォーム2の呼び出し側で
「宣言されていません」と出てしまいます。

フォーム1とフォーム2があり、フォーム2にて情報を更新後、閉じた際に
フォーム1側のラベルのデータを更新するものを作成しようとしています。

フォーム1側

Public Sub RELOADLOAD()

'名前の読み込み
FileOpen(1,"C:AAAA\CCCC.txt,OpenMode.Input)
Label1.text = LineInput(1)
FileClose(1)

End Sub

フォーム2側

Private Sub MenuItem1_Click(ByVal sender As System.Object,ByVal e As_
System.EventArgs) Hand MenuItem1.Click

Call RELOADLOAD()

Me.Close()

End Sub


大吉末吉  2007-03-07 01:02:06  No: 135632

> 「宣言されていません」と出てしまいます。

「『フォーム1』で宣言した『RELOADLOAD』」として指定しないと、
「『自分(フォーム2)』で宣言した『RELOADLOAD』」と看做されます。

『フォーム2』に『フォーム1』のインスタンスを渡してください。

http://www.microsoft.com/japan/msdn/vbasic/migration/tips/Form/


通ってみた  2007-03-07 06:49:55  No: 135633

標準モジュールではダメなんですかね・・・


にゅう  2007-03-07 10:09:10  No: 135634

皆様、ご意見をありがとうございます。
大吉末吉さんの方法を試してみたのですがどうもうまくいきません。

「オブジェクト参照がオブジェクトインスタンスに設定されていません」

と表示されてしまいます。

また、通ってみたさんの標準モジュールについては現在、確認中です。

フォーム1側

Public Sub RELOADLOAD()

'名前の読み込み
FileOpen(1,"C:AAAA\CCCC.txt,OpenMode.Input)
Label1.text = LineInput(1)
FileClose(1)

End Sub

フォーム2側
Public MMMM As Form1

Private Sub MenuItem1_Click(ByVal sender As System.Object,ByVal e As_
System.EventArgs) Hand MenuItem1.Click

Call MMMM.RELOADLOAD()

Me.Close()


かさのば  2007-03-07 12:00:09  No: 135635

もう一度、大吉末吉さんが提示してくださっているリンク先を確認してみてください
にゅうさんのコードには何かが足りません


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加