2015-08-10 1 views
0

Я использую пользовательскую форму VBA для редактирования некоторого текста с помощью текстового поля с расширенным текстовым форматом из элемента управления InkEdit. Я пытаюсь вставить теги html в определенном месте, когда пользователь нажимает на кнопку команды в пользовательской форме.Добавление текста до и после выбранного текста - Форма пользователя VBA

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

InkEdit1.SelText = "<strong>" 

У меня есть другая кнопка для закрытия даного который работает :

InkEdit1.SelText = "</strong>" 

Я пытаюсь найти способ, с помощью которого оператор открытия и оператор закрытия будут применяться вместе. Когда пользователь выберет текст из текстового поля и нажмите на кнопку, то «сильной» будет вставлено перед выбором и «/ сильными» будет вставлено после выбора:

enter image description here

ответ

0

ли эта работы:

InkEdit1.SelText = "<strong>" & InkEdit1.SelText & "</strong>" 

Если вы действительно хотите получить фантазии, вы можете повторно только оригинальный текст:

Dim lPos As Long 
lPos = InkEdit1.SelStart 

Dim lLength As Long 
lLength = InkEdit1.SelLength 

InkEdit1.SelText = "<strong>" & InkEdit1.SelText & "</strong>" 

InkEdit1.SelStart = lPos + Len("<strong>") 
InkEdit1.SelLength = lLength 

Protip: Убедитесь, что «Hi Отменить»свойство имеет значение "False"

enter image description here

Если вы не используете фактического RitchTextBox, попробуйте следующее: Toos> Дополнительные элементы управления> проверить Microsoft Rich Textbox

enter image description here

+0

Спасибо, Он работает, но текст в середине тоже меняется. Это текстовое поле с богатым текстовым форматом, поэтому я хочу сохранить исходное форматирование текста. – user1040563

+0

Да. Нет проблем. Сообщение обновлено, чтобы сделать именно это. – LimaNightHawk

+0

В это текстовое поле нет свойства «HideSelection». – user1040563