Страница: 1 |
|
Вопрос: Отследить событие контрола в VBA
|
Добавлено: 30.05.11 18:45
|
|
Автор вопроса: Андрей
|
Добрый день. Подскажите каким образом отследить событие TextBox_Enter. На форме около 20-ти TextBox-ов и тупо писать код на каждый из них не совсем грамотно и громоздко... Заранее спасибо!
Ответить
|
Номер ответа: 3 Автор ответа:
Ким Чен Ир
![](images/starBlue.gif)
Вопросов: 0 Ответов: 140
|
Профиль | | #3
|
Добавлено: 31.05.11 12:06
|
Т.к в VBA не предусмотрена такая фишка, как индекс элементов, то можно выкрутиться динамическим созданием контрола, инкапсулированым в класс.
Например так:
-
- Option Explicit
-
- Public WithEvents txtBX As MSForms.TextBox
- Private Sub txtBX_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
- UserForm1.COMMON_KeyPress txtBX, KeyAscii
- End Sub
-
- Dim objTxtCls(5) As New txtCls
-
- Public Sub COMMON_KeyPress(txbx As MSForms.TextBox, ByVal KeyAscii As MSForms.ReturnInteger)
- Debug.Print txbx.Name
- End Sub
-
-
- Private Sub UserForm_Initialize()
- Dim i As Integer
- Dim ctl As Control
- For i = 0 To UBound(objTxtCls)
- Set ctl = Controls.Add("forms.textbox.1", "textbox" & i)
- ctl.Left = i * 50
- Set objTxtCls(i).txtBX = ctl
- Next
- End Sub
Ответить
|
Номер ответа: 4 Автор ответа:
Андрей
![](images/starGray.gif)
Вопросов: 1 Ответов: 1
|
Профиль | | #4
|
Добавлено: 31.05.11 15:53
|
Спасибо!!! Попробую.
Ответить
|
Страница: 1 |
Поиск по форуму