私はいくつかのVBコード(実際にはVBA)を持っていますが、それは動作するタイプを除いて基本的に同じです。DRYの原則はソフトウェア開発の優れた指針であると思うので、操作する必要のあるさまざまなタイプすべてに対して1つのルーチンを作成したいと思います。たとえば、次のような2つのコードスニペットがある場合:
Dim i as Obj1
Set i = RoutineThatReturnsObj1()
i.property = newvalue
Dim i as Obj2
Set i = RoutineThatReturnsObj2()
i.property = newvalue
両方のインスタンスを処理するために、次のようなものが必要です。
Sub MyRoutine(o as ObjectType, r as RoutineToInitializeObject, newvalue as value)
Dim i as o
Set i = r
i.property = newvalue
End Sub
C ++を使用している場合は、テンプレートを生成し、それについてはこれ以上言いません。しかし、私はVBAを使用しています。VBA言語定義にはC++テンプレートのような機能はないと確信していますが、同じ効果を達成するための他の手段はありますか?答えはノーだと思いますが、VBAのいくつかの機能を見逃している可能性があるため、ここで質問します。