VBA для тех кто любит думать


VBA и Office XP - часть 112


Кроме того, так как обязательно надо продумать систему защиты от неправильных действий пользователя (например, нельзя допускать ввод нулевых или нечисловых значений в поля "TextBox4" и "TextBox5"), то при использовании данного способа подсчета придется либо выдавать при неправильном вводе сообщение об этом, либо, что представляется более красивым, ставить в эти поля значения по умолчанию, как только пользователь сделает неправильный ввод и уберет курсор с поля ввода. Но… все же, как неудобно! Нажимать лишний раз кнопку, постоянно следить за тем, стоят ли в полях ввода именно нужные значения, а не значения по умолчанию (ведь можно при вводе и случайно задеть соседнюю клавишу), да и при программировании проблем будет предостаточно, - изволь предусмотреть все случаи, на каждый написать программу обработки именно этого случая… Не слишком ли много проблем? А может быть, надо просто получше подумать о проектировании программы?

Основной принцип такого проектирования - "сделай проще, но без ущерба функциям". Что нам надо? Чтобы был результат - отображался итог вычислений. Когда он может быть посчитан? Да когда определены все значения в полях ввода, и при этом два нижних значения (то есть "TextBox4" и "TextBox5") ненулевые. Так пусть результат в своем окне появляется тогда и только тогда, когда все эти условия выполнены. И пусть программа постоянно отслеживает ввод значений в поля ввода и, как только будут введены все пять значений, и последние два будут ненулевые, а остальные - числовые, отобразит результат. Но есть ли такая возможность у языка Visual Basic for Applications - отслеживать момнеты ввода данных в поля ввода текста? А проверим! Откроем окно программного кода формы (из контекстного меню правой кнопки мыши нашей формы в Менеджере проектов выберем "Программа" - рис. 6.5) и из выпадающего списка в левом верхнем углу (рис. 6.6) выберем, например, "TextBox1".

 

06_05.bmp

Рис. 6.5. Так можно открыть окно программного кода формы.




Начало  Назад  Вперед