掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
複数あるクラスの Set ○○ = New □□ ひとつにまとめたい (ID:102811)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> Dimの宣言を Dim clsObject As Object ひとつだけにして、 > 条件処理を最初に行い、Set clsClass = New Class○ ひとつだけに > したいのですが、このような処理はできるのでしょうか? たとえば、呼び出し側のコードを Dim clsObject As ISample 'もちろん、As Object でも受け取れます Set clsObject = Module1.CreateSample(0) clsObject.Test のようにしても良いのなら、このように実装できます。 '------ クラス(ISample) Option Explicit Public Sub Test() End Sub '------ クラス(Class1) Option Explicit Implements ISample Private Sub ISample_Test() MsgBox "Class1" End Sub '------ クラス(Class2) Option Explicit Implements ISample Private Sub ISample_Test() MsgBox "Class2" End Sub '------ クラス(Class3) Option Explicit Implements ISample Private Sub ISample_Test() MsgBox "Class3" End Sub '------ 標準モジュール(Module1) Option Explicit Public Function CreateSample(ByVal p As Integer) If p = 0 Then Set CreateSample = New Class1 ElseIf p < 0 Then Set CreateSample = New Class2 ElseIf p > 0 Then Set CreateSample = New Class3 End If End Function
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.