2012-03-13 2 views
2

저는 VBA에서 클래스를 사용하는 데있어 새로운 경험이 있습니다. 배열의 길이가 가변적 인 속성으로 배열을 사용하려고합니다. 나는 그 일을 할 수있는 방법을 찾고 있었지만, 그 속성이 어떻게 작동하는지 실제로 이해하지 못합니다. 클래스 모듈의 redim 속성

은 그래서 얻을 수있는 클래스 모듈

Private pTestArray() As String 

및 속성에서 내 배열을 정의하고 값

Private Property Get TestArrayValue(index As Long) As String 
    TestArrayValue = qTestArray(index) 
End Property 

Private Property Let ArrayValue(index As Long, strValue As String) 
    pTestArray(index) = strValue 
End Property 

을 설정하지만 배열을 REDIM 할 수있는 방법을 찾을 수 없습니다. 모든 단서? 감사합니다. C

+0

'{}} 코드 버튼을 사용하여 코드의 형식을 지정하고 게시물을 읽기 쉽게하십시오. – Fionnuala

답변

5

할당시 크기를 조정 하시겠습니까? &이 Let 속성의 경계를 처리하는지 확인할 수 있습니다.

Private Property Let ArrayValue(index As Long, strValue As String) 
    If index > UBound(pTestArray) Then ReDim Preserve pTestArray(index) 
    pTestArray(index) = strValue 
End Property 

는 또한 Class_Initialize 경우에 redim pTestArray(0)에 처음 차원에 필요합니다.

+0

덕분에 Alex가 많이 찾고 있는데, – user1266138

+0

+1 좋은 해결책입니다. 컬렉션을 사용하여 살펴볼 수도 있습니다. – SWa