1

Тема: Обновление полей

Подскажите в следующем, имеется в документе поле, его код:
{ REF Номер1 \*Charformat \*FirstCap }
Значение закладки Номер1 = «тест»
Каким образом при помощи ВБА обновить поле с учётом, выполнения инструкций – с большой буквы, чтобы форматирование совпадало с форматированием слова «REF»
Спасибо Эндрю
Также подскажите где затем в дальнейшем смотреть результаты по этой теме, в случае добавления сообщений ответов отсылаются ли сообщения об этом посредством СМС

2

Re: Обновление полей

Чтобы сохранялось форматирование текста, нужно поле REF и то место, на которое оно ссылается, оформить одним стилем. VBA здесь совсем не при чём.
О новых ответах в теме можно узнавать по почте. Для этого нужно нажать на ссылку, расположенную вверху темы

Лучше день потерять — потом за пять минут долететь!

3

Re: Обновление полей

Огромное спасибо. Не мог понять, почему значение поля следующего вида: { = число \* CardText \* FirstCap \* MERGEFORMAT } при обновлении было написано с использованием шрифта Arial и Times New Roman, несмотря на то, что шрифт закладки "число" был определен как "Arial". Как только задал стиль для закладки и поля, при обновлении все стало отображаться одним шрифтом.

4

Re: Обновление полей

Я сам на эту особенность наткнулся случайно. Рад, что вам это помогло. Вот ещё одно преимущество использования стилей.

Лучше день потерять — потом за пять минут долететь!

5

Re: Обновление полей

Смысл в том, что в документе есть только поля типа РЭФ и всё, значения закладок на которые ссылаются поля ВБА возьмёт сам из другого документа. Теперь зная содержимого закладки при помощи ВБА как обновить поле 1, ответ
ActiveDocument.Fields(1).Update 'обновить поле
А смысл заключается в том чтобы его обновить не имея в самом документе закладки, значит надо на его место поставить текст - содержимое закладки, это сделать легко, а как же узнать какое форматирование этого поля?????????????77

6

Re: Обновление полей

Под форматированием понимается очень много параметров. что именно вам из них нужно? шрифт, его размер, написание, цвет? или что-то еще? А из стиля, которым оформлено поле нельзя узнать то, что необходимо?

Отредактировано andrkar (31.03.2010 19:01:15)

7

Re: Обновление полей

Нужен размер, наименование шрифта.
Вы говорите
А из стиля, которым оформлено поле нельзя узнать то, что необходимо
Как это сделать при помощи ВБА я не знаю

8

Re: Обновление полей

вот такой кусок вставь в свой макрос, (без использования стиля), смотреть параметры у выделенного текста:

With Selection.Font
        FontName = .name ' имя шрифта
        FontSize = .Size ' Размер шрифта
        '.Underline = wdUnderlineNone
        '.UnderlineColor = wdColorAutomatic
        '.StrikeThrough = True
        '.DoubleStrikeThrough = False
        '.Outline = True
        '.Emboss = False
       ' .Shadow = True
       ' .Hidden = False
        '.SmallCaps = False
        '.AllCaps = True
        '.Color = wdColorAutomatic
        '.Engrave = False
        '.Superscript = False
        '.Subscript = True
        '.Spacing = 1
        '.Scaling = 100
        '.Position = 3
        '.Kerning = 0
        '.Animation = wdAnimationNone
    End With

Остальные параметры закоментированы - если будет желание, сможете сами с ними разобраться.
Да, и не забудьте все это оформить процедурой и сделать описание переменных, которые тут приведены

9

Re: Обновление полей

Я же спрашиваю: а как же узнать какое форматирование поля, например 1 го ?????
А не выделенного текста
Это разные вещи я текст не хочу выделять!!!!!!!!!!!!!!!!

10

Re: Обновление полей

Прошу прощения, протормозил, не прочитал нормально смысл вопроса..

11

Re: Обновление полей

Простил, решение будет???

12

Re: Обновление полей

FontName = ActiveDocument.Styles(Selection.Style).Font.name
FontSize = ActiveDocument.Styles(Selection.Style).Font.Size

Вот так, если брать, исходя из выбранного стиля. Dместо (Selection.Style), если вы не хотите выделять или выбирать что-то, можно записать  ActiveDocument.Styles("имя стиля").Font.name (или другой параметр)

Отредактировано andrkar (04.04.2010 08:42:55)

13

Re: Обновление полей

Мне нужно что то вроде:

FontName = ActiveDocument.Field(1).Font.name
но увы ругается, ошибка 438
Что то можно поправить????
Что касается предложения Вашего со стилями, откуда я знаю имя стиля поля 1