Свойства и методы текстового поля vba excel

Обновлено: 03.07.2024

Элемент управления TextBox позволяет вводить текст в форму во время выполнения. По умолчанию он принимает только одну строку текста, но вы можете изменить его, чтобы он принимал несколько строк. Вы даже можете включить полосы прокрутки в элемент управления TextBox.

В этом уроке вы узнаете

Свойства текстового поля

Следующие являются наиболее распространенными свойствами элемента управления TextBox в Visual Basic:

  • TextAlign — для настройки выравнивания текста.
  • ScrollBars — для добавления полос прокрутки, как вертикальных, так и горизонтальных.
  • Многострочный – позволяет разрешить элементу управления TextBox использовать несколько строк.
  • MaxLength — для указания максимального количества символов, которое может принять элемент управления TextBox.
  • Index– для указания индекса массива элементов управления
  • Включено – для включения элемента управления текстовым полем.
  • Только чтение: если установлено значение true, вы сможете использовать элемент управления TextBox, если установлено значение false, вы не сможете использовать элемент управления TextBox.
  • SelectionStart — для установки или получения начальной точки для элемента управления TextBox.
  • SelectionLength — для установки или получения количества символов, выбранных в элементе управления TextBox.
  • SelectedText — возвращает элемент управления TextBox, выбранный в данный момент.

События текстового поля

Цель событий — заставить элемент управления TextBox реагировать на действия пользователя, такие как щелчок, двойной щелчок или изменение выравнивания текста. Вот общие события для элемента управления TextBox:

  • AutoSizeChanged – активируется изменением свойства AutoSize.
  • ReadOnlyChanged — активируется изменением значения свойства ReadOnly.
  • Клик – вызывается нажатием элемента управления TextBox.

Как создать текстовое поле

Шаг 1. Чтобы создать TextBox, перетащите элемент управления TextBox из панели инструментов в форму WindowForm:


Шаг 2)

  1. Нажмите элемент управления TextBox, который вы добавили в форму.
  2. Перейдите в раздел «Свойства», расположенный в левом нижнем углу экрана. Измените имя текстового поля с TextBox1 на HelloTextBox:


Шаг 3. Добавьте следующий код, чтобы добавить текст в элемент управления:

Шаг 4. Теперь вы можете запустить код, нажав кнопку «Пуск», расположенную на верхней панели:


Шаг 5) Вы должны получить следующую форму:


Вот снимок экрана с полным кодом для приведенного выше:


Пояснение кода:

Символ пароля

Начните с создания нового проекта. Перетащите в форму два элемента управления TextBox, две метки и одну кнопку. Измените тексты на двух метках и кнопке на следующие:


Нажмите текстовое поле рядом с меткой имени пользователя и перейдите в раздел «Свойства», расположенный в левом нижнем углу окна. Дайте ему имя UsernameField.


Проделайте то же самое для элемента управления TextBox рядом с меткой Password, присвоив ему имя PasswordField.


Теперь вы должны сделать так, чтобы элемент управления PasswordField TextBox отображал * для каждого введенного в него символа. Добавьте следующий код:

Теперь запустите код, нажав кнопку "Пуск". Появится форма.

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


Имя пользователя отображается, но пароль скрыт. Вот код для вышеуказанного:


Пояснение кода:

  1. Создание класса Form1.
  2. Создание подпроцедуры PasswordField_textchanged(). Он будет вызываться при загрузке формы.
  3. Использование свойства PasswordChar для отображения * при вводе пароля пользователем.
  4. Завершение подпроцедуры.
  5. Завершение урока.

Новая строка в TextBox

По умолчанию в текстовом поле можно создать только одну строку текста. Есть два способа, с помощью которых мы можем достичь этого.Давайте обсудим их.

Перетащите элемент управления TextBox в форму. Дайте элементу управления имя GuruWelcome.


Снова щелкните элемент управления текстовым полем и переместите курсор мыши в раздел «Свойства». Измените значение свойства Multiline на True.


В качестве альтернативы вы можете установить для свойства Multiline значение true в своем коде следующим образом:

GuruWelcome.Multiline = True

Добавьте следующий код:

При выполнении две строки текста будут разделены.


Пояснение кода:

  1. Создание класса Form1
  2. Создание подпрограммы Form1_Load()
  3. Установка для свойства Multiline значения True. Текстовое поле может занимать более одной строки.
  4. Добавление первой строки текста в текстовое поле.
  5. Добавление второй строки текста в текстовое поле. Свойство Controlchars.NewLine помогает нам разделить две строки.
  6. Завершение подпрограммы.
  7. Завершение урока.

Получение целочисленных значений

Чтобы продемонстрировать это, создайте новый текстовый блок и кнопку. Введите в текстовое поле имя age. Дайте кнопке имя Button1. У вас должен быть следующий интерфейс:


Добавьте следующий код:

Запустите код и введите свой возраст в текстовое поле. Нажмите кнопку «Показать возраст». Вы должны увидеть следующее:


Введенное вами значение возвращается в MessageBox.


Пояснение кода:

  1. Создание класса Form1.
  2. Создание подпроцедуры с именем Button1_Click. Он будет вызываться при нажатии кнопки.
  3. Определение целочисленной переменной с именем x.
  4. Преобразование значения, считанного из текстового поля age, в целое число.
  5. Отображение значения, преобразованного на предыдущем шаге, в MessageBox.
  6. Завершение подпроцедуры.
  7. Завершение урока.

Текстовое поле только для чтения

Вы можете сделать текстовое поле доступным только для чтения. Это означает, что пользователь не сможет изменить значение, отображаемое в текстовом поле. Для этого вы устанавливаете для свойства ReadOnly значение True. Чтобы продемонстрировать это, создайте новое текстовое поле и назовите его guru99. Добавьте следующий код:

Код должен возвращать следующее:


Вот код:


Пояснение кода:

  1. Создание класса Form1.
  2. Создание подпрограммы с именем guru99_TextChanged.
  3. Добавление текста в текстовое поле с именем guru99.
  4. Установка для свойства ReadOnly текстового поля значения True. Это сделает текст в текстовом поле неизменяемым.
  5. Завершение подпроцедуры.
  6. Завершение урока.

максимальная длина

Свойство MaxLength может помочь вам установить максимальное количество слов или символов, допустимое для текстового поля. Чтобы продемонстрировать это, создайте элемент управления TextBox и дайте ему имя fullName. Добавьте следующий код:

Запустите код и попробуйте ввести свое полное имя. Вы не сможете ввести более 8 символов, включая пробелы:

Текстовые поля в VBA для Excel

VBA Глава 24C из 24: Текстовые поля в VBA для Excel

На панели инструментов текстовое поле имеет этот значок .

Текстовое поле — это самый простой элемент управления, требующий ввода от пользователя. Пользователь что-то вводит в него, и это значение может быть использовано в вашей процедуре VBA. Обычно к текстовому полю добавляется метка.

Для большинства элементов управления, включая текстовое поле VBA для Excel, существуют общие свойства, позволяющие задать шрифт, цвет шрифта, цвет фона, тип фона, тип границы и другие особенности дизайна. . Используя 3 окна в редакторе Visual Basic, вы увидите следующие свойства в окне «Свойства», когда выбрано текстовое поле.

– WordWrap, чтобы иметь возможность написать более одной строки на кнопке,
– ControlTipText, который создает небольшое поле комментария, когда пользователь наводит указатель мыши на элемент управления.Вы можете использовать это свойство, чтобы давать пояснения и инструкции о командной кнопке,
- Enabled и Visible — это свойства, которые вы можете изменить программно, чтобы отключить или сделать невидимой командную кнопку после предыдущего выбора в другом элементе управления пользовательской формы,< br />- TabIndex — это свойство, которое вы изменяете с помощью функции «Порядок табуляции», как показано в разделе «Пользовательские формы».
- MaxLength для ограничения количества символов, вводимых пользователем,
- значение или текст который представляет собой текст, отображаемый в текстовом поле при активации пользовательской формы (например, «Введите свое имя»)

Чтобы попросить пользователей ввести пароль для запуска определенных макросов, разработайте пользовательскую форму с текстовым полем и командной кнопкой. В текстовом поле вы можете изменить свойство «PasswordChar», чтобы когда пользователь вводит пароль, никто вокруг не мог его прочитать. Используйте в нем звездочку, амперсанд или любой другой символ.

Самое важное, что нужно помнить, это то, что текстовое поле — это то, что его название говорит о том, что оно содержит текст. Поэтому, если вы хотите отправить числовое значение из текстового поля в ячейку, вы должны использовать вещь "Val":
Range("A1").Value=Val(tbxInput)

То же самое применяется, когда вы хотите использовать значение текстового поля в математических операциях:
tbxInputTot= Val(tbxInput1) + Val(tbxInput2)

Одним из ограничений текстового поля является формат. Если вы хотите отображать даты, числа с десятичными знаками или с запятой для тысяч, вам нужно запрограммировать некоторую процедуру в событии «Изменить» текстового поля.

Содержание VBA
или используйте быстрые ссылки ниже

 аргументы текстового поля

Существует два разных типа текстовых полей: элементы управления формы и элементы управления ActiveX. Элементы управления формы можно использовать только на рабочих листах, тогда как элементы управления ActiveX гораздо более продвинуты, предлагают гораздо больше настроек, с ними можно манипулировать различными способами с помощью VBA, а также их можно использовать в пользовательских формах.

Примерами в этом посте являются текстовые поля из группы Form Controls. Текстовое поле — это пустое поле, которое можно использовать для отправки данных от пользователя или отображения данных пользователю. На изображении выше показано текстовое поле, содержащее текст TextBox.

Что на этой странице

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

Форматирование текстового поля

 отформатировать текстовое поле

Текстовое поле можно отформатировать разными способами.

  • Непрозрачность
  • цвет фона
  • ширина границы
  • цвет границы
  • размер шрифта
  • цвет шрифта
  • шрифт

На изображении выше показано текстовое поле, содержащее текст «Текстовое поле», с черной рамкой и синим фоном. Выберите текстовое поле, которое хотите отформатировать.

Чтобы выбрать текстовое поле, нажмите левой кнопкой мыши на него левой кнопкой мыши. Выбранное текстовое поле окружено белыми кругами, которые называются маркерами изменения размера.

Я объясню, как использовать маркеры изменения размера, позже в этой статье. Перейдите на вкладку «Формат формы» на ленте. Это позволяет изменить цвет фона, размер границы, цвет границы и т. д.

отформатировать вкладку формата формы текстового поля

Вкладка "Формат фигуры" отображается на ленте, только если выбрано текстовое поле.

Вставить текстовое поле

вставить текстовое поле

Чтобы создать текстовое поле, просто перейдите на вкладку "Вставка" на ленте и нажмите левой кнопкой мыши на кнопку "Текстовое поле".

Теперь нажмите и удерживайте левую кнопку мыши там, где вы хотите поместить текстовое поле на листе.

Перетащите мышью, чтобы изменить размер кнопки. Отпустите левую кнопку мыши, чтобы создать текстовое поле.

Расположение, размер и выравнивание текстового поля

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

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

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

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

Чтобы выровнять текстовое поле по сетке ячеек, выберите текстовое поле, чтобы увидеть маркеры изменения размера. Нажмите и удерживайте клавишу Alt, нажмите и удерживайте левую кнопку мыши на маркере изменения размера.

Перетащите мышью, чтобы совместить маркер изменения размера с сеткой ячеек. Отпустите левую кнопку мыши и клавишу Alt.

Связать текстовое поле с ячейкой

связать текстовое поле с ячейкой 1

Эти шаги показывают, как связать текстовое поле со значением ячейки. На изображении выше показано текстовое поле, связанное с ячейкой G3, ячейка G3 имеет значение «Текстовое значение». В текстовом поле отображается то же значение, что и в ячейке G3.

  1. Нажмите левой кнопкой мыши на текстовое поле, чтобы выбрать его.
  2. Нажмите левую кнопку мыши в строке формул, появится подсказка.
  3. Введите ссылку на ячейку, которую вы хотите связать. См. изображение выше.

Это делает текстовое поле динамическим значением, если значение связанной ячейки изменяется, значение ячейки текстового поля изменяется соответственно. Этот метод полезен в интерактивной информационной панели, диаграмме или листе.

Программная вставка текстового поля

 аргументы текстового поля

Метод AddTextBox позволяет указать расстояние от верхней и левой границы сетки ячеек, см. рисунок выше.

Он также позволяет указать ширину и высоту текстового поля, которое вы хотите создать. Приведенный ниже макрос вставляет текстовое поле на рабочий лист Sheet1 в 60 точках от верхней границы и в 40 точках от левой границы. Ширина текстового поля составляет 120 пунктов, а высота — 80 пунктов.

Я объясню, куда поместить этот макрос позже в этой статье.

Шрифт и размер шрифта

Следующий код изменяет шрифт на Arial и размер шрифта на 20 в текстовом поле «Текстовое поле 1», расположенном на листе Sheet1.

На рисунке справа показан текстовый шрифт Arial и размер шрифта 20 в текстовом поле «Текстовое поле 1» на рабочем листе Sheet1.

Добавить или изменить текст

Приведенный ниже макрос изменяет текст в текстовом поле с именем "Shape1" на "Text Box1" на рабочем листе Sheet1.

Размещение текстового поля

 расположите фигуру

Приведенный ниже макрос изменяет расположение текстового поля "TextBox 1" на Листе1.

50 пунктов от левой границы и 30 пунктов от верхней границы.

Изменить размер текстового поля

< бр />

На приведенном выше рисунке показано текстовое поле, размер которого изменяется с высоты 100 пунктов и ширины 50 пунктов (левое текстовое поле) до высоты 50 пунктов и ширины 100 пунктов (правое текстовое поле).

Назначить макрос текстовому полю

Текстовое поле позволяет вам связать макрос с текстовым полем, что происходит, когда пользователь нажимает левую кнопку мыши на текстовом поле, запускается назначенный макрос.

Чтобы назначить макрос определенному текстовому полю с помощью VBA, см. следующий код.

Приведенный выше макрос назначает Macro1 для "TextBox 1" на листе Sheet1.

Изменить цвет текстового поля

 раскрасить фигуру

На рисунке справа показано "TextBox 1" красного цвета.

Приведенный ниже макрос изменяет цвет "TextBox 1" с использованием значений RGB.

Связать текстовое поле с ячейкой


Этот макрос связывает текстовое поле «TextBox 1» с ячейкой D2. Теперь в текстовом поле будет отображаться значение в ячейке D2, что делает его динамическим. Это означает, что вы можете легко изменить то, что отображается в текстовом поле, изменив значение, например, с формулой в ячейке D2.

Скрыть/показать текстовое поле

Свойство visible позволяет скрыть текстовое поле.

Этот макрос скрывает «TextBox 1» на листе Sheet1.

Удалить текстовое поле

Этот макрос удаляет "TextBox 2" на листе Sheet1.

Куда скопировать код?

Выполните следующие действия, чтобы вставить макрос в книгу.


  1. Копировать макрос.
  2. Перейдите в редактор VB (Alt+F11).
  3. Нажмите мышью на "Вставить" в верхнем меню.
  4. Нажмите левой кнопкой мыши на "Модуль", чтобы вставить модуль в книгу.
  5. Вставьте макрос в модуль кода.
  6. Выйти из редактора VB.
  7. Сохраните книгу как книгу с поддержкой макросов (*.xlsm).
    Если вы этого не сделаете, макрос исчезнет при следующем открытии книги.
  8. Получить файл Excel


    Работа с текстовыми полями-form-controlsv3.xlsm

    Рекомендуемые статьи

    < бр />

    Этот обширный справочный список vba содержит подробную информацию, включая синтаксис, аргументы, возвращаемые значения и примеры для Visual Basic для приложений.

    < бр />

    В этом сообщении блога показано, как программно создавать, заполнять и изменять поля со списком (элемент управления формой). Элементы управления формы не такие гибкие […]


    В этой статье описывается, как создать кнопку и поместить ее на лист Excel, а затем назначить макрос […]


    В этом уроке я объясню, как: создать поле со списком (элемент управления формой) отфильтровать уникальные значения и […]

    < бр />

    В этой статье демонстрируется макрос, который копирует значения между листами. Я использую книгу шаблонов счетов. Этот макрос копирует […]


    В этом руководстве показано, как составить список файлов Excel в определенной папке и создать рядом флажки с помощью VBA. […]


    В этом посте я покажу, как создать новый лист для каждого самолета с помощью vba. […]

    2 ответа на «Работа с текстовыми полями [элементы управления формой]»

    Я не могу редактировать информацию о шрифте через VBA. Я могу редактировать текст, используя ".TextFrame.Characters.Text", но я не могу изменить шрифт или размер шрифта.

    Когда я пытаюсь, я получаю:

    Ошибка выполнения "1004":
    Невозможно установить свойство Name класса Font

    Ошибка выполнения "1004":
    Невозможно установить свойство Size класса Font

    Мой плохой . только что понял свою проблему. Я работаю с меткой вместо текстового поля. бат.

    TextBox — это один из элементов управления UserForm. Вы можете выбрать и перетащить TextBox в пользовательскую форму. Он используется для отображения текста или редактирования существующего текста в текстовом поле. TextBox может иметь статические данные или динамические данные. Вы можете увидеть, как работает TextBox, и получить дополнительные сведения об элементе управления TextBox в пользовательской форме в следующем разделе.

    В этой теме:

    Элемент управления VBA TextBox в пользовательской форме

    Дополнительную информацию об элементе управления VBA ActiveX TextBox можно найти в пользовательской форме.

    1. Перейдите на вкладку "Разработчик", а затем нажмите Visual Basic в коде или нажмите клавиши ALT+F11.
    2. Перейдите в меню «Вставка», нажмите «Пользовательская форма». Пожалуйста, найдите скриншот для того же.

    Excel VBA Флажок пользовательской формы

     TextBox Excel VBA ActiveX Control2

    Добавить элемент управления динамическим текстовым полем ActiveX в пользовательскую форму с помощью VBA

    Пожалуйста, найдите следующие шаги и пример кода, он покажет вам, как добавить динамический элемент управления TextBox в пользовательскую форму.

    1. Добавьте текстовое поле и кнопку CommandButton в пользовательскую форму из панели инструментов.
    2. Щелкните правой кнопкой мыши CommandButton, выберите "Свойства".
    3. Измените заголовок CommandButton на Create_TextBox
    4. Дважды щелкните CommandButton.
    5. Теперь он показывает следующий код.
    6. Вызовите приведенную ниже процедуру с именем «Add_Dynamic_TextBox» и найдите приведенную ниже процедуру для запуска.

    Процедура вызова CommandButton:

     Текстовое поле Excel VBA ActiveX Control1

    Очистить элемент ActiveX TextBox с помощью VBA

    Пожалуйста, найдите приведенный ниже код, который покажет вам, как очистить элемент управления текстовым полем ActiveX. В приведенном ниже примере «TextBox1» — это имя текстового поля.

    Удалить элемент управления TextBox в пользовательской форме с помощью VBA

    Пожалуйста, найдите приведенный ниже код, он покажет вам, как удалить или удалить элемент управления в пользовательской форме.В приведенном ниже примере удаляется TextBox с именем «New TextBox», который находится в пользовательской форме с именем «UserForm4». Мы можем использовать метод Remove для удаления элементов управления, созданных во время выполнения. Элементы управления, созданные во время разработки, не могут быть удалены с помощью этого метода. Пожалуйста, найдите приведенный ниже пример и снимки экрана для лучшего понимания.
    Код 1. Добавление контроля во время выполнения

    Пожалуйста, найдите приведенный ниже снимок экрана для ознакомления с приведенным выше макросом и его выводом.
    Когда мы нажимаем кнопку «Добавить команду»:

     TextBox Excel VBA ActiveX Control5

    Код 1: удаление или удаление элемента управления текстовым полем, созданного во время выполнения.

    Пожалуйста, найдите приведенный ниже снимок экрана для ознакомления с приведенным выше макросом и его выводом.
    Когда мы нажимаем кнопку «Удалить команду»:

    Читайте также: