1

Тема: Class Fields

В ВБА Class Fields, речь о Ворде не имеет свойства Range, как при помощи ВБА высчитать начало и конец поля и можно ли. Так как надо содержимое поля отформатировать под себя и хотелось его не выделять

2

Re: Class Fields

По-моему свойств Field.Code (область кода) и Field.Result (область результата) будет достаточно smile

Макросы под заказ и готовый пакет - mtdmacro.ru

3

Re: Class Fields

и пример можно???

4

Re: Class Fields

Пример:

ActiveDocument.Fields(1).Result.Font.Bold = True
Макросы под заказ и готовый пакет - mtdmacro.ru

5

Re: Class Fields

СПАСИБО!!!!!!!!!!
СКОЛЬКО РАЗ СПРАШИВАЛ НИКТО НЕ ЗНАЛ!!!!!!!!!!!!!
КОМУ ИНТЕРЕСНО:
Шрифт_полужирный = ActiveDocument.Fields(1).Result.Font.Bold '-1-полужирный
Шрифт_размер = ActiveDocument.Fields(1).Result.Font.Size

6

Re: Class Fields

А можно ещё примерчик с использованием:Field.Code (область кода)
Вдруг что новое узнаю, заранее спасибо!!

7

Re: Class Fields

Область Code - это та же область Result, но без скобок {}. Чаще всего используется свойство Code.Text - код поля и Result.Text - результат. Эти свойства всегда содержат код поля и результат его вычисления соответственно, не зависимо от того, что отображается на экране.
Пример изменяющий первое поле для вывода даты:

With ActiveDocument.Fields(1)
        .Code.Text = " DATE "
        .Update
    End With
Макросы под заказ и готовый пакет - mtdmacro.ru

8

Re: Class Fields

Есть в документе текстовое поле 1: { REF Поле \*Charformat }
Проверял кодом: Шрифт_размер = ActiveDocument.Fields(1).Result.Font.Size
Если слово REF будет 16 шрифтом, а слово Поле будет 12 шрифтом, то в переменная Шрифт_размер = 12
Ведь в данном случае слово REF отвечает за то как оно отформатировано таким форматом будет поле после обновления
Та как тогда быть????

9

Re: Class Fields

Выше я выразился не совсем точно.

За отображение 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)

Макросы под заказ и готовый пакет - mtdmacro.ru