저는 다양한 소스의 데이터를 쿼리하는 데 사용되는 많은 클래스가있는 excel-vba의 프로젝트를 진행하고 있습니다. 이 클래스들은 비슷하기 때문에 공용 인터페이스를 사용하고 Implements
문을 사용하는 것이 적합한 옵션인지 확인하려고합니다. 나는 OOP에 상당히 익숙하다. (VBA가 아닌 언어로 배우려고 노력하고 있음에도), 나는 VBA에있는 OOP가 원하는대로 떠난다는 것을 이해한다.VBA에서 클래스 그룹에 대한 공통 속성 집합을 설정하는 방법이 있습니까?
IBaseInfo
를 호출하여 인터페이스 클래스, 설정한다고
:
Public Property Let LocationData(ByRef locDATA As udtLocData)
End Property
Public Property Let ReferenceDate(ByVal dteDATE As Date)
End Property
그런 다음 당신은 실제로 우리가 호출 클래스에 IBaseInfo
구현을 clsRate5pt
:
Implements IBaseInfo
Private Property Let IBaseInfo_LocationData(RHS As udtLocData)
End Property
Private Property Let IBaseInfo_ReferenceDate(ByVal RHS As Date)
End Property
여기서 혼란스러워하는 부분은 실제로 모듈의 개체 수준에서 속성에 액세스하는 방법입니다. msdn에서 VBA 다형성에 대한 참조에서 얻는 것은 실제로 IBaseInfo
유형의 변수를 선언하고, clsRate5pt
유형의 객체와 동일하게 설정하고 해당 변수를 통해 속성에 액세스해야한다는 것입니다. 예를 들면 :
Sub TestIFace()
Dim o5PT As clsRate5Pt
Dim oInfo As IBaseInfo
Set o5PT = New clsRate5Pt
Set oInfo = o5PT
oInfo.LocationData = '// Some location Data
oInfo.ReferenceDate = '// Some Reference Date
End Sub
vba의 클래스 그룹에 대한 인터페이스의 공통 집합을 설정하는 방법이 있나요? Implements
가는 길이고, 그렇다면 무엇이 잘못 되었습니까?
다른 개체를 통해 속성에 액세스하는 것은 반 직관적 인 것처럼 보입니다. clsRate5pt
이 인터페이스를 "구현"하는 경우 clsRate5pt
을 통해 해당 속성에 액세스 할 수있는 방법이 없습니까?
감사의 말 Tim ... 내가 'public 속성 가져 오기() 설정을 (를) clsSettings'클래스에 실제로 표시하겠습니까? 그것은 내가 찾고있는 것에 더 가깝게 보인다. 도움을 주셔서 감사합니다 –
예, 그게 전부입니다. –