| 
    
     |  | ▼Abyss さん: 
 レスが遅くなってしまい、申し訳ございませんでした。
 
 >ご説明のイメージがよく浮かびませんが、
 >文法としてのクラスは、Propertyを使って
 >以下のようにすれば良いと思います。
 >
 >'----<クラスモジュール>----
 >Private mTypeValue As SomeType
 >
 >Public childObj As Class1
 >Public depth As Long
 >
 >Private Sub Class_Initialize()
 >  ' 無意味
 >  'depth = 0
 >  'With typeValue
 >  '  .num = 0
 >  '  .chars = ""
 >  'End With
 >End Sub
 >
 >Public Property Let typeValue(RHS As SomeType)
 >  mTypeValue = RHS
 >End Property
 >
 >Public Property Get typeValue() As SomeType
 >  typeValue = mTypeValue
 >End Property
 
 実は、スレッドを立てた後に気付いたことですが、
 ユーザー定義型内に、オブジェクト(クラスインスタンス)を含んでおりまして、
 たとえば、
 Public Type SomeType
 dim innerObj as Object
 dim depth as Long
 End Type
 などとしていて、一度はプロパティでの作成も試みたのですが、
 withブロックを使用するとうまくいかないこともあり、
 (もちろん、Setステートメントは使用していました。)
 まずは1つ目の問題として、ご質問させていただいた次第です。
 (上の文法が間違っているかもしれません。
 休み明けで記憶が定かではない状態ですので、ご容赦ください。)
 
 もう一度構造を見直し、
 「きれいに見せようとする、整理された状態にする」ことより、
 「まず動くもの」としてコーディングしていきたいと思います。
 
 
 >
 >' ↓↓ このメソッドって未完成品??
 >
 >Public Function createNestObj(childValue As SomeType) As Class1
 >
 >  Dim newValue As New Class1
 >  With newValue
 >    With .typeValue
 >      .num = childValue.num + 1
 >      .chars = childValue.chars & "a"
 >    End With
 >    .depth = Me.depth - 1
 >    Set .childObj = Me
 >  End With
 >
 >End Function
 >'----------------
 上記で記したものは、確かに未完成品です。
 
 一応、社内業務内での躓きに関して、ご質問させていただきましたので、
 (社内の周囲に、これらについて詳しい人がいなかったため)
 同様の現象が生じる状況を再度作成させていただいた次第です。
 (それに、他の箇所もコード量が多く、簡潔に質問させていただくにあたり、
 このような処置が必要であったと考えたため、意味を正しく持たないコードで
 質問させていただきました。)
 
 結局は、ユーザー定義型を使用してきれいに(整理されているように)見せたい
 一心で今回の質問をさせていただきましたので、
 まずは(Typeを使用せずに)正常に動作するものを(多少見づらくても)作成し、
 それから手直しの時間があれば、今回の問題についての再考察を
 しようと思います。
 
 貴重なお時間、ありがとうございました。
 
 |  |