Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


36902 / 76732 ←次へ | 前へ→

【45005】Re:隠しメソッド/プロパティの作り方
発言  ichinose  - 06/12/9(土) 20:29 -

引用なし
パスワード
   ▼TOSHI さん:
こんばんは。

>今、あるユーザー向けのクラスモジュールを作成してます。
>標準モジュールから、そのクラスのインスタンスからメソッドや
>プロパティを参照するのですが、インスタンスの後に"."を記述して
>その後Publicのメソッドやプロパティの一覧が出ますが、この一覧
>に出さずに、直接記述して標準モジュールから参照する方法は有りますで
>しょうか。
へえ、こんなことがVBAで出来るのでしょうかねえ??
私の投稿以降にやり方があったなら、以下の記述は忘れてください。

代替案として、新規ブックにクラスモジュールを二つ作成します
(Class1、Class2)

Class1のモジュールに

'==================================================
Option Explicit
Private cls As Class2
'==================================================
Public Sub Func1()
 MsgBox "Func1!"
End Sub
'==================================================
Property Get 隠し() As Object
  Set 隠し = cls
End Property
'==================================================
Private Sub Class_Initialize()
  Set cls = New Class2
End Sub
'==================================================
Private Sub Class_Terminate()
  Set cls = Nothing
End Sub


Class2のモジュールに
'==================================================
Option Explicit
Public Sub Func2()
 MsgBox "Func2!"
End Sub


として、

標準モジュールに以下のコードを記述する時、
'=================================================
Option Explicit
Sub test()
  Dim クラス As Class1
  Set クラス = New Class1
  クラス.Func1 'ここでは、Func1はメンバーリストに入っている
  クラス.隠し.Func2 'ここでは、「隠し」はリストに表示されるが
'           Func2は表示されない 
  Set クラス = Nothing
End Sub

コードを追ってみて頂ければ、理由は分かると思います。

他に方法がなかったら、これで代替できるか 検討してみてください。
1 hits

【44997】隠しメソッド/プロパティの作り方 TOSHI 06/12/9(土) 12:57 質問
【45005】Re:隠しメソッド/プロパティの作り方 ichinose 06/12/9(土) 20:29 発言
【45010】Re:隠しメソッド/プロパティの作り方 TOSHI 06/12/9(土) 23:14 質問
【45015】Re:隠しメソッド/プロパティの作り方 再投... ichinose 06/12/10(日) 8:44 発言
【45020】Re:隠しメソッド/プロパティの作り方 再投... TOSHI 06/12/10(日) 11:42 お礼
【45022】隠しメソッド/プロパティの作り方 再質問 TOSHI 06/12/10(日) 12:38 質問
【45031】Re:隠しメソッド/プロパティの作り方 再質... ichinose 06/12/10(日) 16:40 発言
【45036】ありがとうございました TOSHI 06/12/10(日) 18:38 お礼

36902 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free