|
▼ichinose さん:
こんにちは
先程は、ありがとうございました。
済みません、更に質問が有ります。
実は、隠蔽するメソッドがかなり有り、それを使用する
特別なユーザーは、隠蔽メソッドを覚えておくか、忘れた場合は
実際のクラスモジュールを開いてメソッド名を確認して記述する必要が
有ります。
そこで以下のような事ができないかいろいろ試してみましたが
うまくいきませんでした。
クラス.Raw.XXX.ooo
XXXを入力して、"."を記入するとClass2のメソッド一覧(ooo)
が表示される。
そこでClass2に以下を追加してみたのですが、Class2のPublicメソッド/プロパティの一覧表示は無理でした。
またClass2のプロパティ「2-PublicNotCreatable」をしてみてもだめでした。
'========Class2====================
'以下のXXXプロパティを追加
Property Get XXX() As Class2
Set XXX = Me
End Property
結局その機能を満たす為以下のように
しました。
これだと、クラス2変数や、オブジェクトブラウザ
から隠し用のClass2のメソッド(XXX)がわかってしまいますので、
クラス.Raw.XXX
を記述されCallされてしまいます。
XXXの隠しメソッドを特定ユーザが覚えていればいいのですが、
今のところXXXを10種〜20種用意しようと思ってますので
すこし利便性が悪いかなと思って悩んでます。
済みませんいろいろお時間とらせてしまって教えていたいたでのすが
この方法の解決方法が有りましたら教えていただけないでしょうか。
宜しくお願いいたします。
Sub test()
Dim クラス As test_project.Class1
Dim クラス2 As test_project.Class2
Set クラス = test_project.ThisWorkbook.set_class1
With クラス
.Func1 'Func1は、メンバーとして見えるが、
' Func2Privateは見えない
Set クラス2 = .Raw.XXX '
クラス2. '<-ここで隠蔽したメソッド一覧が見える
End With
Set クラス = Nothing
Set クラス2 = Nothing
End Sub
|
|