Setが必要な理由は、デフォルトプロパティへのアクセスなのかオブジェクト(参照)へのアクセスなのか区別できないから

ちなみに、VB6ではSetは必要だったが、VB.NETではSetは無くなった
その代わりに、デフォルトプロパティが廃止された