Hoi allen.
Ik ben bezig met een constructie waarvoor ik een class module gebruik om een collectie van objecten uit een andere class te beheren.
Relevante code:
(Planet is een andere Class, met de "beheerde" objecten)
(voor hen die zich hierin interesseren, dit komt nog uit deze tutorial, aanrader)
Stel dat je nu in je code een constructie als
wilt gebruiken, dan zal je de NewEnum functie een Procedure ID van -4 meegeven (dan "weet" de for-next constructie dat dat de enumerator functie is).
In Excel-VBA kan je Procedure ID's niet normaal bewerken, maar wel via een hier omschreven trucje: exporteer de class en zet er in notepad de relevante teksten bij. Importeer en het werkt.
Tot zoverre (ik werk zelf op Excel 2002) geen probleem.
Echter, het geheel moet ook werken op Excel X for Mac.
En dat doet het niet... Het geeft dezelfde fouten die Excel v Windows gaf voordat ik de procedure ID's bewerkte.
Weet iemand misschien waar de mac-implementatie de fout ingaat en wat hiertegen te doen is? Google hielp me niet verder.
Ik ben bezig met een constructie waarvoor ik een class module gebruik om een collectie van objecten uit een andere class te beheren.
Relevante code:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| 'Class planets Option Explicit Private mcolPlanets As New Collection Public Function Add(strName As String) As Planet Dim PlanetNew As New Planet PlanetNew.Name = strName mcolPlanets.Add PlanetNew, strName Set Add = PlanetNew End Function Public Function Item(strName As String) As Planet Set Item = mcolPlanets.Item(strName) End Function Public Function NewEnum() As IUnknown Set NewEnum = mcolPlanets.[_NewEnum] End Function |
(Planet is een andere Class, met de "beheerde" objecten)
(voor hen die zich hierin interesseren, dit komt nog uit deze tutorial, aanrader)
Stel dat je nu in je code een constructie als
Visual Basic:
1
2
3
| For Each planetObject In starObject.Planets 'bla bla Next planetObject |
wilt gebruiken, dan zal je de NewEnum functie een Procedure ID van -4 meegeven (dan "weet" de for-next constructie dat dat de enumerator functie is).
In Excel-VBA kan je Procedure ID's niet normaal bewerken, maar wel via een hier omschreven trucje: exporteer de class en zet er in notepad de relevante teksten bij. Importeer en het werkt.
Tot zoverre (ik werk zelf op Excel 2002) geen probleem.
Echter, het geheel moet ook werken op Excel X for Mac.
En dat doet het niet... Het geeft dezelfde fouten die Excel v Windows gaf voordat ik de procedure ID's bewerkte.
Weet iemand misschien waar de mac-implementatie de fout ingaat en wat hiertegen te doen is? Google hielp me niet verder.