Начальная / конечная позиции
Любые значения .Start
или .End
являются точным внутренним позиционированием Word, включая более подробную информацию, чем просто количество символов.Эти номера позиций больше, чем количество символов.Примеры:
ActiveDocument.Content.End
Selection.End
(особенно если вы выбрали весь документ, например)
Characters.Count
Количество символов можно посчитать в диапазоне.Включает все типы символов, такие как пробелы, знаки абзаца и скрытые символы.
ActiveDocument.Characters.Count
ActiveDocument.StoryRanges(wdMainTextStory).Characters.Count
Selection.Characters.Count
Пример
![Example for .Count vs. .End](https://i.stack.imgur.com/aO4fw.png)
Этот пример документа содержит только 7 символов, но средний «1» - это номер страницы в поле,Слова считаются следующим образом:
ActiveDocument.Characters.Count
= 8
(верхний пример, когда поля не показаны: 8 = 6 цифр + номер страницы + абзац) ActiveDocument.Characters.Count
= 32
(нижний пример, когда отображаются поля: 32 = все видимые символы, включая фигурные скобки) ActiveDocument.Content.End
= 34
(фигурные скобки для поля являются специальными символами и учитываются дополнительно)
Положение символа курсора
Вы можете построить диапазон с положением курсора, чтобы получить его положение символа (пожалуйста, используйте тип данных Long
для документов длиной более 32,767 символов):
Dim pos As Long
pos = ActiveDocument.Range(0, Selection.Start + 1).Characters.Count
Имя шрифта курсора
Следующий код показывает имя шрифта символа непосредственно влево позиции курсора , как само слово делает в раскрывающемся меню шрифта(медленно).
Dim pos As Long
pos = ActiveDocument.Range(0, Selection.Start).Characters.Count
MsgBox ActiveDocument.Characters(pos).Font.Name
Если вам нужен только шрифт первого выбранного символа, просто используйте следующую более быструю версию.Показывает имя шрифта первого выбранного символа.Если вы ничего не выбрали, вы получите имя шрифта непосредственно вправо от курсора:
MsgBox Selection.Characters(1).Font.Name