|
▼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を使用せずに)正常に動作するものを(多少見づらくても)作成し、
それから手直しの時間があれば、今回の問題についての再考察を
しようと思います。
貴重なお時間、ありがとうございました。
|
|