Chciałam sobie uporządkować przekazywanie parametrów do funkcji, a tymczasem zabrnęłam do miejsc, gdzie moja znajomość języka nie jest wystarczająca.
Stworzyłam przede wszystkim własny typ danych:
Public Type Parameters
name As String
value As String
End Type
A oto moja definicja funkcji:
Private Function GetFromUrl_ByPost(ByVal url As String, ByRef postParameters() As Parameters) As Long
Cały bajer tej funkcji teraz polega na tym, że postParameters ma być opcjonalne. Nie da się zrobić deklaracji Optional ByRef postParaemeters() As Parameters. Nie da się zapodać w wywołaniu funkcji Nothing zamiast postParameters.
W takim razie, co się da...?
edit:
Poczytałam sobie o typie Variant, zastosowałam:
Private Function GetFromUrl_ByPost(ByVal url As String, Optional ByRef postParameters As Variant) As Long
Teraz jest fajnie, jak argumentu nie podam, ale jak podam, to mam błąd na wywołaniu funkcji:
Compile error: Only user-defined types in public object modules can be coerced to or from a variant or passed to late-bound functions
Typ jak widać jest public, więc to nie jego problem. Moduł jest zwykłym modułem... nie wiem jak mu nadać public. Czyżbym musiała stworzyć klasę? Nie da się tego w zwykłym module zrobić?