| 
    
     |  | ▼ichinose さん: ありがとうございます。
 この方法は、目からうろこ状態でした、レイトバインディング
 による手法で、clsにタイプライブラリ情報を持たせない手法なんですね。
 
 
 贅沢な希望なのですが、わたしの方の希望としましては、
 2つ有ります。
 1.Fucn2からClass1のPrivate関数をCallしたい
 2.できれば1つのClassで実現したい
 
 1に関してはichinoseさんの方法を使用させていただきまして
 イベント追加し実現できました
 そのコードが以下になります。
 
 2ですが、私の方で、attribute を使用して一つのClassで
 隠蔽する方法がないか調べてました。
 海外のHPに”Hidden Property”というのが有りまして
 クラスモジュールをエクスポートした後に隠蔽したいコレクション
 アイテムプロパティを以下のように書き換え、再度インポートすれば
 よいような事が書いてあり私もこれをヒントに、コレクションでなく任意の
 Publicメンバ関数やプロパティに利用できるか試してみましたがだめでした。
 以下が、そのコレクションの隠蔽?になります。
 (済みません私もよく判らないので日本語がおかしいです。
 申し訳ないです)
 この側面から隠しメソッドができないかなと考えて、いろいろ数値
 を変えたり、違うAttributeを探して試したましがギブアップしてしまいました。
 Public Property Get Items( _
 ) As IUnknown
 
 'Attribute Items.VB_UserMemId = -4
 'Attribute Items.VB_MemberFlags = "40"
 
 ' this property allows you to enumerate
 ' this collection with the For...Each syntax
 Set Items= m_colItems.[_NewEnum]
 
 End Property
 
 
 以下が、1を実現したコードです。
 '----------------Class1--------------------------------
 Option Explicit
 
 Private WithEvents cls As Class2
 '==================================================
 Public Sub Func1()
 MsgBox "Func1!"
 End Sub
 '==================================================
 Property Get Raw() As Object
 Set Raw = cls
 End Property
 '==================================================
 Private Sub Class_Initialize()
 Set cls = New Class2
 End Sub
 '==================================================
 Private Sub Class_Terminate()
 Set cls = Nothing
 End Sub
 
 Private Sub Func2Private()
 
 MsgBox "Func2Private!"
 
 End Sub
 
 Private Sub cls_Func2()
 Call Func2Private
 End Sub
 
 -------------------------------------------------
 
 '----------------Class2--------------------------------
 Option Explicit
 Public Event Func2()
 
 
 Public Sub Func2()
 
 RaiseEvent Func2
 MsgBox "Func2!"
 
 End Sub
 '------------------------------------------------------
 
 '----------標準モジュール-------------------------------
 Dim クラスAs New Class1
 
 Sub test()
 クラス.Func1 'ここでは、Func1はメンバーリストに入っている
 HDW.Raw.Func2 'イベント経由でClass2からClass1のプライベイト
 '関数をCall
 End Sub
 '------------------------------------------------------------
 
 |  |