Używam vba z programem Excel 2007 i piszę kod dla modułu klasy.Jak działają opcjonalne parametry w oknie Let/Get Properties?
1) jest następujący kod w ogóle możliwe? ...
Zasadniczo mam dwa teksty stałe, zadzwoń do nich eDATASET
i eDATATSUBSET
. Określona wartość z eDATASET
powinna wywołać przypisanie z opcjonalnie przekazanego parametru we właściwości Let
. Coś takiego:
Public Property Let foo(Optional ByVal lngSubSet as eDATASUBSET, _
ByVal lngSuperSet as eDATASET)
Select Case lngSuperSet
Case eDATASET.abc, eDATASET.def
mlngBar = lngSuperSet
Case eDATASET.xyz
'// if lngSubSet not passed, trigger error code...
mlngBar = lngSubSet
End Select
End Property
2) W jaki sposób mogę nawet przekazać opcjonalny parametr do własności zapisywalny podczas wywoływania obiekt ...
Oprócz pozornie wstecznej umieszczenia parametrów Optional
(w porównaniu z opcjonalnym parametry w funkcjach i subsach), nie mogę znaleźć żadnej dokumentacji dotyczącej tej funkcji. Pomoc vba mówi:
Opcjonalne. Wskazuje, że argument nie jest wymagany. Jeśli jest używany, wszystkie kolejne argumenty w arglist muszą być opcjonalne i zadeklarowane za pomocą słowa kluczowego Opcjonalnie. Należy zauważyć, że nie jest możliwe, aby prawa strona wyrażenia Właściwość Niech była opcjonalna.
i następujące po vbusers.com. Nie wyjaśniają zbyt wiele w sposobie użytkowania. Więc w jaki sposób mogę przekazać opcjonalny parametr przy wywołaniu obiektu z modułem kod ... oObj.foo = ???
3) Czy istnieje lepszy sposób to zrobić? ...
mam podstawową wiedzę OOP (przynajmniej w jaki sposób jest implementowany w vba). Czy istnieje lepszy sposób warunkowego zaakceptowania parametru w obiekcie?
możliwy duplikat [Pozwolić na własności modułów klasy VBA - czy możliwe jest posiadanie wielu argumentów?] (Http: // stackoverflow.com/questions/13823367/let-property-of-vba-class-modules-is-it-possible-to-have-multiple-arguments) –