Dynamiczne odwołanie do kontrolek i tworzenie ich zawartości (VBA)

Dynamiczne odwołanie do kontrolek i tworzenie ich zawartości (VBA)

Wątek przeniesiony 2021-09-16 10:09 z Inne języki programowania przez cerrato.

AD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 206
0

Witam

Mam kłopot z oprogramowaniem w VBA działania kontrolek tworzonych dynamicznie.

Tworzę:

Kopiuj
For x = 0 to 10
Set NewLabel = Test.Controls.Add("Forms.label.1")
With NewLabel
.Name = "NL" & x
.Caption = x
.Top = 10
.Left = 10 + x *20 
.Width = 10
.Height = 10 
End With
Next
 

Do stworzonych w ten sposób kontrolek chce się odwołać poprzez właściwość Click.
Dla obiektów statycznych nie jest to kłopotem ponieważ odwołanie jest proste NL0_Click().
Kolejną i zarazem ostatnią trudnością jest wykonanie określonego działania w "Click".
Potrzebuje skorzystać np z MsgBox ("Kliknieto Label") - jak takie coś podpiąć do w/w kontrolek?

Pozdrawiam

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

W VBA dla tablicy kontrolek chyba nie zrobisz... dawno w VBA nie programowałem. Ale dla pojedynczej kontrolki możesz zrobić to przez zadeklaorwanie jej bezpośrednio w module tak:

Kopiuj
Dim WithEvents NewLabel As Label

Wtedy możesz już tworzyć procedury zdarzeń dla nieistniejących defacto kontrolek.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.