Проверка длины выделенного текста (Microsoft Word)
Во многих случаях, когда вы пишете макросы, вам нужно будет определить, сделал ли пользователь выбор. Есть много способов сделать это в макросе. Следующий код иллюстрирует один из возможных методов достижения этой цели в VBA. Он устанавливает значение флага bInSelection в True, если в данный момент есть выбор. В противном случае для bInSelection установлено значение False.
Dim bInSelection As Boolean bInSelection = False If Selection.Type=wdSelectionIP Then bInselection=True End If
Вы могли бы задаться вопросом, можно ли использовать метод проверки, если длина выделения больше нуля, как в этом методе:
Dim bInSelection As Boolean bInSelection = False If Len(Selection) > 0 Then bInselection=True End If
Такой подход не сработает. Причина в том, что, когда выбор не сделан (точка вставки свернута и просто мигает), Word по-прежнему возвращает длину выделения 1. Это немного раздражает, поскольку не имеет логического смысла. Таким образом, вам нужно проверить свойство Type объекта Selection, как в первом примере выше. Если вы хотите еще больше сократить его, вы можете использовать следующее:
Dim bInSelection As Boolean bInselection=(Selection.Type=wdSelectionIP)
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (12175) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старый интерфейс меню Word здесь:
link: / word-Checking_for_a_Text_Selection_Length [Проверка длины выделенного текста]
.