型の変更


sasa  2008-06-19 14:27:42  No: 100828  IP: 192.*.*.*

flg = true のときは、Aという変数は clsTrue型
flg = false のときは、Aという変数は clsFalse型


同じ、変数名を、  flgの値によって型を変えたいのですが  出来ますか?

編集 削除
やじゅ  2008-06-19 15:29:56  No: 100829  IP: 192.*.*.*

Aという変数をObject型で定義して、
条件によって、型変換すればいいのでは

編集 削除
 2008-06-20 09:22:32  No: 100830  IP: 192.*.*.*

型の名前を見る限りクラス(のインスタンス)っぽいから
Aにオブジェクト参照を設定する形でなら可能かと思う
例えば…

Dim ATrue As New clsTrue
Dim AFalse As New clsFlse
Dim A As Variant

Set A = IIf(flg, ATrue, AFalse)

みたいな感じかな、やったことは無いけど
(Newが使えるかどうか等は適宜調整を)

編集 削除
ガッ  2008-06-20 10:05:15  No: 100831  IP: 192.*.*.*

たとえば

'IBoolean クラス -- マーカインタフェイス
Option Explicit
Public Function getValue() As Boolean: End Function

'clsTrue クラス
implements IBoolean
Private Function IBoolean_getValue() As Boolean
    IBoolean_getValue = True
End Function

'clsFalse クラス
implements IBoolean
Private Function IBoolean_getValue() As Boolean
    IBoolean_getValue = False
End Function

'アプリケーションエントリポイント
Dim cls As IBoolean

If MsgBox("はい=true いいえ=false", vbYesNo) = vbYes Then
    Set cls = New clsTrue
Else
    Set cls = New clsFalse
End If
MsgBox "clsの値=" & cls.getValue()

の様にしてしまうとか

編集 削除