VB6で構造体を渡す方法教えてください。

解決


初級者  2007-03-07 18:14:13  No: 135664

どうしても、いきずまってしまい書き込みました。
さっそくですが、Form1にはボタンとラベルを配置しています。
Form1のラベルを引数でForm2に渡して、1秒間隔で、ラベルに
インクリメントした値を表示するように組んでみました。
こんな感じで、引数を構造体にしたいのですが、できませんでした。
教えてください。

***Form1***
Private Sub Command1_Click()
    Load Form2
    Form2.ABC Label1
End Sub

***Form2***
Dim LBL As Object
Dim i   As Integer

Public Sub ABC(ByRef AAA As Object)
    Set LBL = AAA
End Sub

Private Sub Timer1_Timer()
    i = i + 1
    LBL.Caption = i
End Sub


ガッ  2007-03-07 18:48:59  No: 135665

おそらくVB6でのことでしょうが、環境を明記してください。

構造体をPublicな呼び出し可能なメンバの引数にするには、
一度ActiveXDLLなどに囲ってください。
面倒な場合は、Public修飾ではなくFriend修飾にしたメンバに変更してください。

例)
'--------Module1
Option Explicit

Public Type tHoge
    a As Long
    b As Long
End Type

'--------Form1
Option Explicit

Private Sub Form_Load()
    Dim u As tHoge
    u.a = 10
    u.b = 20
    Debug.Print Sum(u)
End Sub

Friend Function Sum(ByRef p As tHoge) As Long
    SumB = p.a + p.b
End Function


初級者  2007-03-07 19:25:13  No: 135666

早速やってみます。大変たすかります


初級者  2007-03-07 23:07:30  No: 135667

ガッさんお世話になりました。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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