§3 複数のフォーム VB6
 (5) フォーム間のデータ受け渡し 前へ 目次へ 次へ 

 フォーム間でデータを受け渡しするには、標準モジュールの(General),(Declarations)でPublicキーワードを使って宣言すると、このプロジェクトの全てのモジュールで共通の変数が利用できる。(「(4) 変数の適用範囲 3. フォーム間で共通の変数」参照)
 この方法では標準モジュールも追加する必要があり、その分、メモリも消費してしまう。ここでは、オブジェクトを利用する方法を説明する。

例5 例4のプログラムのForm1にテキストボックス1つ(Text1)を追加する。Form2にラベル1つ(Lable2)とコマンドボタン1つ(Command2)を追加する。

 Form1のプログラムに変更はない。Form2のプログラムは次の通りである。

・Form2のプログラムリスト

Private Sub Command1_Click()
    Label1.Caption = a
End Sub

Private Sub Command2_Click()            '←追加
    Label2.Caption = Form1.Text1.Text   '←追加
End Sub                                 '←追加
実行結果
Form1の
ボタン1をクリック
Form1の
ボタン2をクリック
Form2の
ボタン1をクリック
Form2の
ボタン2をクリック
12345 12345 12345 Text1の内容

 実行してForm2のボタン2をクリックすると、Form1のテキストボックスの内容が表示される。

 通常、テキストボックスの内容はText1.Textで参照できるので、次のようにするとForm2にはテキストボックスがないのでエラーになる。
    Label2.Caption = Text1.Text   ←これはエラー


 このようにオブジェクトが記憶しているデータ(プロパティ)はどこからでも参照することができる。ただし、別のフォームにあるオブジェクトの場合は、そのオブジェクトを持っているフォームも指定する必要がある。

Form1.Text1.Text    
(1)       (2)      (3)
(1) フォーム名
(2) オブジェクト名
(3) プロパティ名

 (1)フォーム名、(2)オブジェクト名と(3)プロパティ名はピリオド(.)でつなぐ。
 (1)フォーム名と(2)オブジェクト名はピリオドの代わりに感嘆符(!)でつなぐこともできる。


 (5) フォーム間のデータ受け渡し 前へ 目次へ 次へ 
Copyright © 2002 Hiroshi Masuda 

 

 

inserted by FC2 system