VBAでポリモフィズム

できなくはない。

PlantUML diagram

まずは基底クラスをつくりましょう。

インタフェースはVBAには存在しないので、それっぽくクラスをつくります。

Public Sub Test()
    Call Err.Raise(999, , "このクラスのメソッドは直接呼ぶことはできません。")
End Sub

サブクラスをつくりましょう。

SubClassA

Implements ISample
Public Sub ISample_Test()
    Debug.Print "サブクラスA"
End Sub

SubClassB

Implements ISample
Public Sub ISample_Test()
    Debug.Print "サブクラスB"
End Sub

呼び出し側

Dim target As ISample

Set target = New SubClassA
Call target.Test

Set target = New SubClassB
Call target.Test

実行結果は、当然ながら、イミディエイトウィンドウに下記が出力されます。

サブクラスA
サブクラスB

要するに、Implements 親クラスを1行書いて、後は親クラス名_親クラスの関数名を実装すればそれっぽいものが出来上がります。

PlantUML diagram

他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。

返信を残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)