Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Textbox vba excel свойства

5.3.3 Элемент управления TextBox (текстовое поле)

Элемент управления TextBox, свойство Value (Text)

Текстовое поле (TextBox) — один из самых часто используемых элементов управления (см. рис. 5.3).

Рис. 5.3 Текстовое поле (элемент управления TextBox) на форме

Текстовое поле используется:

  • для приема каких-либо текстовых данных, вводимых пользователем (например, для отправки по почте, для занесения в базу данных и т.п.);
  • для вывода пользователю текстовых данных с возможностью их редактирования (из базы данных, листа Excel и т.п.);
  • для вывода пользователю текстовых данных с возможностью копирования и печати, но без возможности изменения (классический пример — текст лицензионного соглашения).

Некоторые важные свойства этого элемента управления:

  • Value (или Text, эти два свойства для текстового поля идентичны) — то текстовое значение, которое содержится в этом поле. Используется для занесения исходного значения и для приема значения, введенного пользователем, в строковую переменную.
  • AutoSize — возможность для текстового поля автоматически менять свой размер, чтобы вместить весь текст. Использовать не рекомендуется, так как может нарушиться весь дизайн вашей формы.
  • ControlSource — ссылка на источник текстовых данных для поля. Может ссылаться, например, на ячейку в Excel, на поле в Recordset и т.п. При изменении пользователем данных в текстовом поле автоматически изменится значение на источнике, определенном в ControlSource.
  • ControlTipText — текст всплывающей подсказки, которая появляется, когда пользователь наводит указатель мыши на элемент управления. Рекомендуется к заполнению для всех элементов управления (для самой формы не предусмотрена).
  • Enabled — если переставить в False, то текст в поле станет серым и с содержимым поля ничего сделать будет нельзя (ни ввести текст, ни выделить, ни удалить). Обычно это свойство используется (для всех элементов управления), чтобы показать пользователю, что этот элемент управления отключен до выполнения каких-либо условий.
  • Locked — поле будет выглядеть как обычно, пользователь сможет выделять и копировать данные из него, но не изменять их. Обычно используется для показа неизменяемых данных типа лицензионных соглашений, сгенерированных значений и т.п.
  • MaxLength — максимальная длина значения, которое можно ввести в поле. Иногда можно использовать свойство AutoTab — при достижении определенного количества символов управление автоматически передается другому элементу управления.
  • MultiLine — можно ли использовать в текстовом поле несколько строк или необходимо обойтись одной. Если вам нужно текстовое поле для приема одного короткого значения, подумайте, нельзя ли вместо него обойтись функцией InputBox.
  • PasswordChar — указать, за каким символом будут «прятаться» вводимые пользователем значения. Используется, конечно, при вводе пароля.
  • ScrollBars — будут ли показаны горизонтальная и вертикальная полосы прокрутки (в любом сочетании). Если текст может быть большим, без них не обойтись.
  • WordWrap — настоятельно рекомендуется включать в тех ситуациях, когда значение MultiLine стоит в True. В этом случае будет производиться автоматический переход на новую строку при достижении границы текстового поля.

Остальные свойства по большей части относятся к оформлению текстового поля и его содержания, а также настройкам редактирования.

Главное событие для текстового поля — это событие Change (то есть изменение содержания поля). Обычно на это событие привязывается проверка вводимых пользователем значений или синхронизация введенного значения с другими элементами управления (например, сделать доступной кнопку, изменить текст надписи и т.п.)

Читать еще:  Excel listbox пример

Формы Элемент управления TextBox на формах VBA, свойство Value (Text)

5.3.3 Элемент управления TextBox (текстовое поле)

Элемент управления TextBox, свойство Value (Text)

Текстовое поле (TextBox) — один из самых часто используемых элементов управления (см. рис. 5.3).

Рис. 5.3 Текстовое поле (элемент управления TextBox) на форме

Текстовое поле используется:

  • для приема каких-либо текстовых данных, вводимых пользователем (например, для отправки по почте, для занесения в базу данных и т.п.);
  • для вывода пользователю текстовых данных с возможностью их редактирования (из базы данных, листа Excel и т.п.);
  • для вывода пользователю текстовых данных с возможностью копирования и печати, но без возможности изменения (классический пример — текст лицензионного соглашения).

Некоторые важные свойства этого элемента управления:

  • Value (или Text, эти два свойства для текстового поля идентичны) — то текстовое значение, которое содержится в этом поле. Используется для занесения исходного значения и для приема значения, введенного пользователем, в строковую переменную.
  • AutoSize — возможность для текстового поля автоматически менять свой размер, чтобы вместить весь текст. Использовать не рекомендуется, так как может нарушиться весь дизайн вашей формы.
  • ControlSource — ссылка на источник текстовых данных для поля. Может ссылаться, например, на ячейку в Excel, на поле в Recordset и т.п. При изменении пользователем данных в текстовом поле автоматически изменится значение на источнике, определенном в ControlSource.
  • ControlTipText — текст всплывающей подсказки, которая появляется, когда пользователь наводит указатель мыши на элемент управления. Рекомендуется к заполнению для всех элементов управления (для самой формы не предусмотрена).
  • Enabled — если переставить в False, то текст в поле станет серым и с содержимым поля ничего сделать будет нельзя (ни ввести текст, ни выделить, ни удалить). Обычно это свойство используется (для всех элементов управления), чтобы показать пользователю, что этот элемент управления отключен до выполнения каких-либо условий.
  • Locked — поле будет выглядеть как обычно, пользователь сможет выделять и копировать данные из него, но не изменять их. Обычно используется для показа неизменяемых данных типа лицензионных соглашений, сгенерированных значений и т.п.
  • MaxLength — максимальная длина значения, которое можно ввести в поле. Иногда можно использовать свойство AutoTab — при достижении определенного количества символов управление автоматически передается другому элементу управления.
  • MultiLine — можно ли использовать в текстовом поле несколько строк или необходимо обойтись одной. Если вам нужно текстовое поле для приема одного короткого значения, подумайте, нельзя ли вместо него обойтись функцией InputBox.
  • PasswordChar — указать, за каким символом будут «прятаться» вводимые пользователем значения. Используется, конечно, при вводе пароля.
  • ScrollBars — будут ли показаны горизонтальная и вертикальная полосы прокрутки (в любом сочетании). Если текст может быть большим, без них не обойтись.
  • WordWrap — настоятельно рекомендуется включать в тех ситуациях, когда значение MultiLine стоит в True. В этом случае будет производиться автоматический переход на новую строку при достижении границы текстового поля.

Остальные свойства по большей части относятся к оформлению текстового поля и его содержания, а также настройкам редактирования.

Главное событие для текстового поля — это событие Change (то есть изменение содержания поля). Обычно на это событие привязывается проверка вводимых пользователем значений или синхронизация введенного значения с другими элементами управления (например, сделать доступной кнопку, изменить текст надписи и т.п.)

Читать еще:  Excel vba округление числа

Использование TextBox-ов для ввода цифровых значений

Visual Basic

Здесь мы разрешаем ввод цифр, знака «-«, меняем введеные знаки «б», «ю», «,», «/» на «.» Разрешаем ввод только одной точки.

При выгрузке данных обратно на лист использую такой код:

Visual Basic

Правильно ли это вообще? Можно ли как то обработчик написать для одного текстбокса, а на остальные транслировать?

Можно ли сделать чтобы знак «-» можно было ставить только первым и только один раз? Т.е. нужна полная уверенность что после нажатия на кнопочку на лист попадут корректные значения!(Иногда выскакивает ошибка несоответствие типа данных(ошибка 13)).

Visual Basic
13.07.2017, 10:32

Использование Try Catch для контроля ввода в TextBox только цифр
Помогите пожалуйста! 1. нужно проверить с помощью try catch вводимые в textbox значения. Нужно.

Создание текстового поля для цифровых значений
Visual C#. Проект для Smart device (Windows CE) Нужно создать пользовательский элемент управления.

Проверка ввода значений в textbox
Доброго времени суток. Нужно сделать проверку на ввод данных в textbox. Textbox может содержать.

Контроль проверки ввода значений в TextBox
Нужно проверить при помощи волидатора ввод в TextBox, является ли введенное значение числом.

13.07.2017, 14:052
13.07.2017, 15:593

в VBA есть функция IsNumeric — проверяет является ли аргумент числом. Вообще, можно отдельно написать функцию, проверяющую корректность введенного значения и вызывать ее из TextBox’ов.

а проверку TextBox’ов при выгрузке на лист можно сделать примерно так:

Visual Basic
14.07.2017, 04:37 [ТС]4
Вложения

Книга1.zip (19.3 Кб, 5 просмотров)
14.07.2017, 06:335

Решение

14.07.2017, 08:02 [ТС]6

SoftIce, спасибо огромное! Вроде работает.
На что обратил внимание:
1. При инициализации формы данные берутся из ячеек именно как они там есть, т.е. с запятой.
2. Если загруженные данные содержат уже «-» или «,» то нельзя быстро вставить новые числа начинающиеся на «-» или «.». Нужно сначала удалить. Это не принципиально, но факт остаётся фактом.

Ну и самый главный вопрос — не будет ли возникать ошибка несоответствия данных(сейчас в моём файле она иногда проявляется, с чем связана — не пойму)?
P.s. Пока еще в свой код не перенёс это.
Век живи — век учись!
Спасибо за помощь новичку

Класс TextBox — создание текстового поля VBA

Давайте рассмотрим класс TextBox языка VBA, который позволяет размещать на форме текстовое поле. Класс vba TextBox позволяет создавать как многострочные, так и однострочные области для ввода текста, хот в последнем случае удобней воспользоваться функцией MsgBox. Также можно добавлять полосы прокрутки и определять максимальную длину вводимых символом. TextBox может использоваться и как компонент для ввода пароля.

Давайте для начала рассмотрим основные свойства класса TextBox и его базовое событие, а потом напишем пример.

События класса TextBox VBA языка

Value или Text – текст, который введен в текстовое поле TextBox

Visible – позволяет спрятать (значение false) или снова отобразить (значение true) элемент.

MultiLine – данное свойство позволяет задать, будет ли текстовое поле однострочным (false), или многострочным (true).

WordWrap – свойство актуально использовать, если MultiLine содержит значение true, в таком случае, если WordWrap установлено в true, то произойдет автоматический перенос текста на новую строку, когда будет достигнута граница текстового поля TextBox.

ScrollBars – позволяет указать, будут или отображаться полосы прокрутки. Свойство может принимать следующие значения:

  • 0 – fmScrollBarsNone (полосы прокрутки отсутствуют)
  • 1– fmScrollBarsHorizontal (горизонтальная полоса прокрутки)
  • 2 – fmScrollBarsVertical (вертикальная полоса прокрутки)
  • 3 – fmScrollBarsBoth (горизонтальная и вертикальная прокрутки)

PasswordChar – позволяет задать символ, который будет отображаться вместо вводимых данных. Свойство актуально при вводе пароля.

MaxLength – позволяет указать максимальное количество символов, которое можно ввести в текстовое поле. По умолчанию – 0, то есть, ограничения нет.

Как и у других элементов управления, у класса TextBox есть события, основным событием для TextBox является Change – оно возникает каждый раз, когда в текстовое поле вводится символ. Возможно вам приходилось видеть такую картинку: при вводе проверочного кода, пока его длинна не достигнет заданной (например, 12 символов), кнопка “Проверить” не будет доступной. Тут тоже можно такое реализовать.

Хорошо, теперь настало время практики. Я не буду снова вникать во все мелочи, как в прошлых статьях, поэтому скажу прямо: добавьте в проект новый модуль и новую форму. Выберите из окна ToolBox элемент управления Надпись (Label), добавьте ее на форму, пусть будет вверху, под ней поставьте текстовое поле (TextBox), а в самом низу – пусть будет кнопка (CommandButton с надписью “Проверить”). Хорошо, как и прежде, в редакторе кода для модуля прописываем процедуру:

Учтите, что имя вашего модуля и формы могут отличаться.

Теперь нам нужно написать программный код на языке VBA, который будет делать следующее:

В текстовое поле будет вводиться текст, длина текста не больше 12 символов, пока длина будет меньше 12 символов, кнопка “Проверить” будет недоступна. Как только мы достигаем предела, кнопка становится активной, при нажатии на нее, содержимое текстового поля TextBox должно отобразиться в поле Label (Надпись).

И так, давайте посмотрим на процедуры, которые я прописал в редакторе кода для формы:

Тут идет обработка одиночного щелчка по кнопке, при нажатии на кнопку, свойству Caption объекта Label1 (Надпись) будет присвоено содержимое текстового поля TextBox1 (свойство Text).

Тут происходит обработка события Change для текстового поля объекта TextBox1 класса vba TextBox. Переменная LenText будет хранить длину вводимого текста, при каждом вводе данных будет происходить проверка длины, если она ровна 12 – то произойдет активация кнопки, иначе 0 кнопка будет неактивна.

В этой процедуре происходит настройка начальных значений, некоторые из них можно задать и в окне Свойств, но я решил для наглядности прописать все в программном коде. Тут нет ничего страшно, как только форма загрузится в память, кнопка “Проверить” будет неактивной, размер шрифта для текстового поля и надписи установлен в 20, также мы установили максимальную длину текста для класса TextBox VBA языка и его однострочность.

Спасибо за внимание. Автор блога Владимир Баталий

Ссылка на основную публикацию
Adblock
detector