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

VBA Excel. Свойства SelStart, SelLength, SelText (TextBox)

    Свойства SelStart, SelLength, SelText элемента управления TextBox. Указание точки вставки, выделение части строки, вставка текста вместо выделенного.

    Свойство TextBox.SelStart

    SelStart – это свойство элемента управления TextBox, которое задает или возвращает начальную точку выделения подстроки или точку вставки, если текст в поле не выделен.

    Свойство TextBox.SelStart может принимать значения от 0 до длины строки, тип данных – Integer. Пример расположения точек вставки в строке «На дереве»: 0Н1а2 3д4е5р6е7в8е9.

    Присвоение свойству SelStart нового значения отменяет ранее сделанное выделение, задает свойству SelLength значение 0 и помещает точку вставки в указанное место.

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

    Свойство TextBox.SelLength

    SelLength – это свойство элемента управления TextBox, которое задает или возвращает количество выделяемых (выделенных) символов в строке, содержащейся в текстовом поле, начиная с начальной позиции, определяемой свойством TextBox.SelStart.

    Свойство TextBox.SelLength может принимать значения от 0 до длины строки, тип данных – Integer.

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

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

    Свойство TextBox.SelText

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

    Если в текстовом поле нет выделенных символов, свойство SelText возвращает пустую строку.

    При присвоении свойству SelText, содержащему выделение, новой строки с помощью оператора присваивания (TextBox.SelText = «Новая строка»):

    • ранее выделенный текст заменяется новым;
    • свойству SelText присваивается пустая строка;
    • выделение снимается (свойству SelLength присваивается значение 0);
    • курсор устанавливается в конце вставленной подстроки.

    Примеры кода VBA Excel

    Свойства SelStart, SelLength, SelText доступны в VBA Excel независимо от того, установлен ли на элемент управления TextBox фокус. Но передача фокуса текстовому полю нужна для того, чтобы видеть выделенный участок текста или курсор в точке вставки.

    Для реализации первых двух примеров достаточно разместить на пользовательской форме только текстовое поле TextBox1. Фокус в коде VBA Excel передавать не нужно, так как это единственный элемент управления на форме и фокус всегда на нем.

    Пример 1
    Установка курсора между четвертым и пятым символом строки в текстовом поле:

    Пример 2
    Выделение подстроки из 5 символов, начиная с 4 знака:

    Пример 3
    Выделение подстроки, ее замена с помощью присвоения свойству TextBox.SelText нового значения, чтение этого свойства до присвоения и после.

    Для реализации третьего примера добавим на пользовательскую форму кнопку CommandButton1. Для просмотра положения курсора после замены подстроки передадим фокус текстовому полю, так как после клика он будет на кнопке.

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