Тема: Class Fields
В ВБА Class Fields, речь о Ворде не имеет свойства Range, как при помощи ВБА высчитать начало и конец поля и можно ли. Так как надо содержимое поля отформатировать под себя и хотелось его не выделять
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
В ВБА Class Fields, речь о Ворде не имеет свойства Range, как при помощи ВБА высчитать начало и конец поля и можно ли. Так как надо содержимое поля отформатировать под себя и хотелось его не выделять
По-моему свойств Field.Code (область кода) и Field.Result (область результата) будет достаточно
и пример можно???
Пример:
ActiveDocument.Fields(1).Result.Font.Bold = True
СПАСИБО!!!!!!!!!!
СКОЛЬКО РАЗ СПРАШИВАЛ НИКТО НЕ ЗНАЛ!!!!!!!!!!!!!
КОМУ ИНТЕРЕСНО:
Шрифт_полужирный = ActiveDocument.Fields(1).Result.Font.Bold '-1-полужирный
Шрифт_размер = ActiveDocument.Fields(1).Result.Font.Size
А можно ещё примерчик с использованием:Field.Code (область кода)
Вдруг что новое узнаю, заранее спасибо!!
Область Code - это та же область Result, но без скобок {}. Чаще всего используется свойство Code.Text - код поля и Result.Text - результат. Эти свойства всегда содержат код поля и результат его вычисления соответственно, не зависимо от того, что отображается на экране.
Пример изменяющий первое поле для вывода даты:
With ActiveDocument.Fields(1)
.Code.Text = " DATE "
.Update
End With
Есть в документе текстовое поле 1: { REF Поле \*Charformat }
Проверял кодом: Шрифт_размер = ActiveDocument.Fields(1).Result.Font.Size
Если слово REF будет 16 шрифтом, а слово Поле будет 12 шрифтом, то в переменная Шрифт_размер = 12
Ведь в данном случае слово REF отвечает за то как оно отформатировано таким форматом будет поле после обновления
Та как тогда быть????
Выше я выразился не совсем точно.
За отображение Field на экране (т.е. результата) отвечает область Result, а эта область не совпадает с именем поля (т.е. с " REF "). Программно область Field это: символ "{" + Code + символ "}" + Result + спецсимвол. Просто на экране отображается либо код, либо результат. Чтобы было понятнее запусти код:
With ActiveDocument.Fields(1)
.Select
MsgBox _
"Selection: Start=" & Selection.Start & ", End=" & Selection.End & _
", Characters=" & Selection.Characters.Count & vbLf & vbLf & _
"Code: Start=" & .Code.Start & ", End=" & .Code.End & vbLf & vbLf & _
"Result: Start=" & .Result.Start & ", End=" & .Result.End
End With
Область поля целиком без использования Selection:
Dim R As Range
Set R = ActiveDocument.Range(0, 0)
With ActiveDocument.Fields(1)
R.Start = .Code.Start - 1
R.End = .Result.End + 1
End With
Отредактировано Вождь (28.09.2010 06:26:08)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться