' TÄÄ KAIKKI ON MODULESSA! Public Type tUDT x As Integer End Type ' TÄÄ KAIKKI ON CLASS MODULESSA! Public Sub Increase(a As tUDT) MsgBox a.x End Sub
Compile Error: Only public user defined types defined in public object modules can be used as parameters or return types for public procedures of class modules or as fields of public user defined types.
Tyyppi täytyy määritellä class modulessa, kuten ohjeessa lukee. Eli hyvin hyvin pikaisena käännöksenä: "Kääntämisvirhe: vain julkiset käyttäjän julkisessa objektimoduulissa määrittelemät tyypit voivat olla parametreinä tai palautusarvoina luokkamoduulin julkisille proseduureille tai käyttäjän määrittämän tyypin kenttinä."
julkinen objektimoduuli on se perusmoduuli (.bas) eikä suinkaan class module. Class module on "Private Object Module" samoin kuin formin moduuli. Teen kyllä niinkuin virheilmoituksessa käsketään tehdä mutta silti se väittää että en tee niin.
Friend Sub Increase(a As tUDT) MsgBox a.x End Sub
Toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.