皆様、始めまして。初めて質問をさせていただきます。
現在、サブプロシージャを他のモジュール(フォーム)から使用でき
る方法を探しております。
本やHelp等で検索したのですがわかりません。
環境は
Windows XP home
Microsoft Visual Studio .NET 2003
です。
よろしくお願いします。
Public でいいんじゃないでしょうか?
あげしおさん、ご返信ありがとうございます。
わたしも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
> 「宣言されていません」と出てしまいます。
「『フォーム1』で宣言した『RELOADLOAD』」として指定しないと、
「『自分(フォーム2)』で宣言した『RELOADLOAD』」と看做されます。
『フォーム2』に『フォーム1』のインスタンスを渡してください。
(http://www.microsoft.com/japan/msdn/vbasic/migration/tips/Form/)
標準モジュールではダメなんですかね・・・
皆様、ご意見をありがとうございます。
大吉末吉さんの方法を試してみたのですがどうもうまくいきません。
「オブジェクト参照がオブジェクトインスタンスに設定されていません」
と表示されてしまいます。
また、通ってみたさんの標準モジュールについては現在、確認中です。
フォーム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()
もう一度、大吉末吉さんが提示してくださっているリンク先を確認してみてください
にゅうさんのコードには何かが足りません
ツイート | ![]() |