Cytat: ok, przepraszam :)
TextBoxy w formularzu; bedzie ich co najmniej kilkanascie, kazdy z nich obslugiwany jest przez zdarzenia Change oraz KeyPress, ktore wywoluja jedna funkcje... no i wlasnie o to chodzi: coby wszystko to ujac w jednej funkcji, bo w kazdym z TextBoxow nalezy jedynie ograniczyc mozliwosc wpisywania okreslonych znakow, nie bede musial umieszczac kilkanascie razy tego samego kodu przy kazdym zdarzeniu..
Masz wiele mozliwości. Pierwsza, to skorzystanie z kolekcji Controls obiektu UserForm. Przykładowo:
zmienna=1
set txtbox = UserForm1.Controls("TextBox" & zmienna)
'lub, gdy kod znajduje się w module formularza:
set txtbox = Me.Controls("TextBox" & zmienna)
Innym sposobem jest umieszczenie obiektów w ramce (Frame) i wyszukiwanie aktywnego formantu ramki, bez odwoływania się do jego nazwy:
set textbox=Frame1.ActiveControl
Lecz chyba najprostszym rozwiązaniem będzie uzycie formantu, jako argumentu Twojej ogólnej procedury. Czyli przykładowo,definicja procedury może wyglądać tak:
Sub MojaProcedura(txtBox As Object)
'lub
Sub MojaProcedura(txtBox As TextBox)
i możesz przekazać obiekt z wnętrza jego procedury obsługi zdarzeń, np:
Private Sub TextBox1_Change()
MojaProcedura TextBox1
End Sub |