Как выбрать (или скопировать) текст с метки ActiveX Word 2010?
Документ Word 2010 имеет метку ActiveX, которая отображает некоторый текст. Есть ли способ сделать текст выбираемым или копируемым с точки зрения пользователя, чтобы он мог вставить его куда-нибудь еще?
Вариант использования: я даю кому-то форму, они заполняют ее и возвращают мне. Рассматриваемый элемент - это Label, который при двойном щелчке создает UserForm1, на котором есть ListBox. После того как один или несколько вариантов будут выбраны, и пользователь нажмет OK на UserForm1, метка в документе Word будет обновлена. Затем я получаю обратно форму и хочу щелкнуть правой кнопкой мыши ярлык, скопировать текст и вставить его в электронное письмо.
1 ответ
Вы не можете, по крайней мере, с точки зрения конечного пользователя. Позволь мне объяснить.
Сначала я хотел добиться этого с помощью Label, но вскоре обнаружил, что не могу скопировать отображаемый там текст с помощью обычного ctrl-c или щелчка правой кнопкой мыши> copy.
Итак, я переключил его на TextBox. Это сработало в некоторой степени, и данные были отображены, хотя с одним недостатком: Word 2010, кажется, помещает кучу невыбираемого пространства между последней строкой в TextBox и нижней частью TextBox, делая большую часть содержимого скрытой, пока вы не прокрутите обратно до вершина этого.
Вот как это выглядело:
Заметили все пустое, невыбираемое место под последним элементом в списке?
Решением моей проблемы со 100% текста, который не отображался в поле, было использование этой строки кода, которая помещает курсор в верхнюю часть текста после того, как значения помещены в TextBox:
ThisDocument.functionalComponentsTextBox.SelStart = 0
Это в основном моделирует пользователя, нажимающего вручную на TextBox и нажимающего клавишу Up, пока он не достигнет вершины TextBox. При этом выборки из ListBox теперь сохраняются в TextBox, содержимое которого можно копировать и вставлять в любое место в рамках наших бизнес-процессов.
Вот как это выглядит после: идеальное совпадение по сравнению с правильно отображаемым подходом Label! Дополнительный бонус: текст выбирается, а текстовое поле настраивается, поэтому я удалил из него границу... не могу отличить!