2012-03-23 3 views
13

나는 다음과 같은 특성을 갖는VBA : 개체를 값으로 초기화 하시겠습니까?

CArticle를 초기화 할 수 있어야합니다 : 빈, 사전 정의 또는 전류 값 중 하나와

Private pNumber As String 
Private pQuantity As Double 

. 이것을 어떻게 할 수 있습니까? 내가의 라인을 따라 뭔가를 생각하고 있어요 :

새로운 빈 CArticle

pNumber 
pQuantity 

새로운 더미 CArticle

pNumber 
pQuantity = 99999 

새로운 그것은에 통증이있다 CArticle(number, quantity)

pNumber = number 
pQuantity = quantity 
+0

가능한 중복 https://stackoverflow.com/questions/15224113/pass- constructor-in-vba) – Roland

답변

15

을 초기화하기 목하지만 이걸하는 유일한 방법입니다.

파일 CArticle

Option Explicit 

Private pNumber As String 
Private pQuantity As Double 

Private Sub Class_Initialize() 
    pNumber = vbNullString 
    pQuantity = 0 
End Sub 

Public Sub InitializeWithValues(ByVal number As String, ByVal quantity As Double) 
    pNumber = number 
    pQuantity = quantity 
End Sub 

Public Sub InitializeDefaultValues() 
    pNumber = vbNullString 
    pQuantity = 99999 
End Sub 

및 호출 모듈에서

Dim art As New CArticle  ' Initialize value to empty 
art.InitializeWithValues "Bowtie", 100  ' and assign values 

Set art = New CArticle  ' Initialize values to empty 
art.InitializeDefaultValues ' Initialize values to default 
([VBA에서 생성자에 인수를 전달]의
+2

워크 시트 테이블에서 값을 가져 오려면 'InitializeFromRange (ByVal r as Range)'메서드를 만드는 것이 유용 할 수 있습니다. – ja72

관련 문제