2013-04-20 4 views
2

저는 C++ 세계에서 왔으며 VBA 클래스의 첫 단계를 밟고 있습니다. VBA 자동 유형 변환

*** Class Module *** 
Option explicit 
Private xDate_ As Date 

Property Let xDate(xVal As Date) 
     xDate_ = xVal 
End Property 

Property Get xDate() As Date 
    xDate = xDate_ 
End Property 

' ... some nice methods follow here... 


*** non-Class Module *** 
Public Function makeQDate() As QDate 
    Set makeQDate = New QDate 
End Function 

샘플 사용이 마지막 줄이 하나가 C++로 얻을 수있는만큼 좋은하지 않습니다

Dim xQDate as QDate : xQDate = makeQDate() 
xQDate.xDate = DateSerial(2000,1,1) 

수 있습니다 내가 스마트 날짜 클래스, 즉 QDate을 말해봐. 쓸 수있는 암시 적 변환을 만들 수 있다면

xQDate = DateSerial(2000,1,1) 

이 될 것입니다. VBA에서 얻을 수있는 것과 비슷한 것입니까? 많은 감사.

+1

하나의 팁 - 하나의 메소드/속성을 기본으로 만들 수 있습니다. 제안 할 수있는 유일한 아이디어입니다. 그 상황에서 마지막 코드와 마지막 줄은 동일 할 것입니다 ... –

+1

VBA에서 기본 멤버를 설정하는 것은 편집기에서 불가능합니다. 여기에 설명 된대로 마술을해야합니다 - http : // www.cpearson.com/excel/DefaultMember.aspx –

답변

1

내가 아는 한 VBA는 사용자 지정 암시 적 변환을 지원하지 않으며 기본 제공 변환 만 지원합니다. 그러나 당신 말이 옳습니다. 그것은 대단 할 것입니다.