VB6にてModuleでPublic宣言せず、
フォーム間でユーザ定義型の変数を受け渡しするには
どうすればいいのでしょうか?
ユーザ定義型はフォームではPublic宣言できないようなので・・・。
> ユーザ定義型はフォームではPublic宣言できないようなので・・・。
Privateであれば宣言できますけれどね。
かといって、Privateにしてしまうと、フォーム間で共有できませんけど。
案1) 諦めて、標準モジュールでPublicなユーザ定義型を宣言する。
案2) タイプライブラリで構造体を定義し、それを参照設定する。
案3) ユーザ定義型の代わりに、クラスで代用する。
案4) ユーザ定義型の「内容」だけを、Byte配列等で受け渡す。
案5) 一時ファイルにPut #で吐き出してから、それをGet #で読み込む。
自分はユーザー定義型を使わないダメグラマなのだけど、フォーム間で変数などを渡す時は、Labelを利用している
>>Form1
Label4=hensuu
>>Form2
hensuu=Form1.Label4
俺もByte配列が好みだけど、無理やりヤルなら。。。こんなかな・・・
'Form1
Private Type st_aa
bb As String
cc As Integer
End Type
Private test As st_aa
Private Sub Command1_Click()
LSet test = Form1.aaa
MsgBox test.bb
MsgBox test.cc
End Sub
'Form2
Private Type st_aa
bb As String
cc As Integer
End Type
Private test As st_aa
Private Sub Command1_Click()
With test
.bb = "aiueo"
.cc = 111
End With
Form2.Show
End Sub
Friend Property Get aaa() As st_aa
LSet aaa = test
End Property
ツイート | ![]() |