このネタ、今になって書くようなことじゃないけど...。 プロパティプロシージャで取得関数にPublic、設定関数にFriendを設定すると、プロジェクト内部からは設定可能で外部からは設定不可能になるプロパティが作成できる。 例 : Public Property Get Index() As Long End Property Friend Property Let Index(ByVal NewVal As Long) End Property これでActiveXDLLなどを作ると、外部からは取得専用、内部で設定可能なプロパティが出来上がる。 まあ、Friend Sub SetIndex(ByVal NewVal As Long)っていう関数を作る方法が大部分だけど。 | |
続・このネタ、今になって書くようなことじゃないけど...。 標準モジュールでもプロパティプロシージャを使用することによって変数っぽい関数ができる。 例: ' 取得専用の変数みたいなもの(関数っぽい変数) Public Property Get Sum() As Long Sum = A + B + C + D End Property ' 代入時に長さ判定機能が付いた変数 Public Property Let Name(ByVal NewVal As String) If Len(NewVal) <= 40 Then m_Name = NewVal End Property ' いつもなら変数にストックしておくアプリケーションパス Public Property Get AppPath() As String AppPath = App.Path & IIf(Right$(App.Path, 1) <> "\", "\", "") End Property |