Ik ben bezig een Exel macro te schrijven welke op een userform dynamisch objecten (labels, textboxes etc) aan kan maken. De code om bijvoorbeeld een Label aan te maken ziet er als volgt uit:
Mijn probleem is dat het label object altijd een aantal waarden heeft die niet zullen veranderen:
het lettertype, letter grootte, hoogte en de breedte. Deze zaken wil ik dus 1 maal definieren, aan het begin van mijn programma. iets in de zin van Forms.label.1.Font.Name.DefaultValue = "Arial". als ik dat kan doen dan ziet de bovenstaande code er veel leesbaarder uit:
Ik heb niet via Google kunnen vinden hoe dit te doen is (1 site gaf wel een hint dat dit mischien helemaal niet mogelijk is?), de huidige situatie werkt wel maar mijn code wordt onnodig lang en moeilijker om te lezen met deze groote blokken waar ik waarden definieer. Als ik ze weg laat dan gaat Excel direct terug naar zijn "eigen" defaults, dat werkt dus niet.
iemand een suggestie?
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Text_Size = 10
Font_Name = "Arial"
Dim C As Control
Do While Counter < Unique_Items
Set C = Me.Controls.Item(MultiPage1).Pages(0).Controls.Add("Forms.label.1", ("lb" & Counter), True)
C.Font.Name = Font_Name
C.Font.Size = Text_Size
C.Left = 10
C.Top = 100 + (Counter * 20)
C.Width = 40
C.Height = 17
C.Caption = ActiveSharesArr(0, Counter) |
Mijn probleem is dat het label object altijd een aantal waarden heeft die niet zullen veranderen:
het lettertype, letter grootte, hoogte en de breedte. Deze zaken wil ik dus 1 maal definieren, aan het begin van mijn programma. iets in de zin van Forms.label.1.Font.Name.DefaultValue = "Arial". als ik dat kan doen dan ziet de bovenstaande code er veel leesbaarder uit:
code:
1
2
3
4
5
6
| Dim C As Control
Do While Counter < Unique_Items
Set C = Me.Controls.Item(MultiPage1).Pages(0).Controls.Add("Forms.label.1", ("lb" & Counter), True)
C.Left = 10
C.Top = 100 + (Counter * 20)
C.Caption = ActiveSharesArr(0, Counter) |
Ik heb niet via Google kunnen vinden hoe dit te doen is (1 site gaf wel een hint dat dit mischien helemaal niet mogelijk is?), de huidige situatie werkt wel maar mijn code wordt onnodig lang en moeilijker om te lezen met deze groote blokken waar ik waarden definieer. Als ik ze weg laat dan gaat Excel direct terug naar zijn "eigen" defaults, dat werkt dus niet.
iemand een suggestie?
at your service