Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Привязка текстового поля ActiveX к ячейке

    Привязка текстового поля из коллекции элементов управления ActiveX к ячейке в Excel с помощью свойства LinkedCell или кода VBA.

    Текстовые поля ActiveX часто используются в Excel для создания интерактивных форм, панелей ввода данных и пользовательских интерфейсов прямо на рабочем листе. В процессе автоматизации может потребоваться привязка текстового поля к какой-либо ячейке для получения следующего эффекта: всё, что пользователь вводит в поле, автоматически сохраняется в указанной ячейке, и наоборот.

    Привязка через свойство LinkedCell

    Самый простой способ привязки текстового поля ActiveX к ячейке в Excel заключается в использовании свойства текстового поля LinkedCell. Он обеспечивает двустороннюю синхронизацию между полем и ячейкой без написания кода.

    1. Включите режим конструктора
      На вкладке «Разработчик» (Developer) нажмите кнопку «Режим конструктора» (Design Mode).
    2. Добавьте поле
      Нажмите Вставить -> Элементы ActiveX -> Текстовое поле (TextBox). Нарисуйте поле на листе.
    3. Откройте свойства
      Убедитесь, что поле выделено, и нажмите кнопку «Свойства» (Properties) на той же вкладке «Разработчик» (или щёлкните правой кнопкой мыши по текстовому полю и выберите «Свойства»).
    4. Найдите параметр LinkedCell
      В открывшемся окне свойств найдите строку LinkedCell.
    5. Введите адрес ячейки
      Напротив LinkedCell справа напишите адрес, например: A1 (если привязка идёт к ячейке на том же листе), МойЛист!A1 или 'Мой Лист'!A1 (если привязка идёт к ячейке на другом листе).
    6. Выйдите из режима конструктора
      Нажмите «Режим конструктора», чтобы отключить его.

    Теперь текст, введённый в поле, мгновенно появляется в ячейке A1, а изменение значения в A1 обновляет содержимое текстового поля.

    Примечания:

    • Имя листа в адресе ячейки — это имя на ярлычке.

    • Если имя листа содержит пробелы, заключите его в апострофы (‘Новый Лист’).

    • Если в режиме конструктора вы вставите курсор в поле формул, выйти из процесса редактирования поля формул как обычно не получится. Для выхода нажмите клавишу «Esc».

    Привязка с помощью VBA Excel

    Код VBA Excel можно использовать для привязки текстового поля ActiveX к ячейке, чтобы связь была односторонней: только ввод данных в поле перезаписывает значение ячейки или, наоборот, только ввод данных в ячейку меняет значение текстового поля.

    Запись значения поля в ячейку:

    Запись значения ячейки в поле:

    Эти процедуры размещаются в модуле листа.

    Если разместить в модуле листа обе процедуры — это будет соответствовать использованию свойства LinkedCell.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.