VBAでアブストラクトクラス/インターフェースクラス(ポリモーフィズム)
こんな感じ
TestModule
Option Explicit Sub UnitTest_interface() Dim trades As New Cls_IRSwap Call trades.Inf_Trade_setTradeID("IR0001") Call UniteTest_SubRoutine_interface(trades) End Sub Sub UniteTest_SubRoutine_interface(ByRef ins As Inf_Trade) Debug.Print ins.getTradeID() End Sub
Cls_IRSwap
Option Explicit Implements Inf_Trade ' ======================================================================== ' Implementation of Inf_Trade ' ======================================================================== Private mTradeID As String Public Function Inf_Trade_getTradeID() As String: Inf_Trade_getTradeID = mTradeID: End Function Public Function Inf_Trade_setTradeID(ByRef RHS As String): mTradeID = RHS: End Function
Inf_Trade
Option Explicit ' Caution !! ' This class is Interface class Private mTradeID As String Public Function getTradeID() As String: End Function
VBAで長いコードを書くと、どうしてもだらだらしがちなのですが(じゃぁVBA使うなって感じですが・・・・・・)、C++のような書き方ができると結構コードをすっきりさせれそうです。