Во многих случаях, когда вы пишете макросы, вам нужно будет определить, сделал ли пользователь выбор. Есть много способов сделать это в макросе. Следующий код иллюстрирует один из возможных методов достижения этой цели в 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 [Проверка длины выделенного текста].