Обновление текстовых полей в надписях

Источник: wordexpert
Фнтон Кокин

Известно, что для обновления всех полей в документе, нужно выделить весь текст и нажать «F9». Но если поле находится в надписи, например, название рисунка, то приходится выделять каждый рисунок, в нем надпись и нажимать «F9». А у меня в дипломе 49 рисунков и диаграмм. Как средствами Visual Basic выбрать все надписи в документе? Под надписями я понимаю графические элементы, имеющие в себе текст.

Поскольку я несколько поостыл к изучению программирования на VBA, то помочь с решением сразу не мог и предложил задать этот вопрос на сайт RusFAQ.ru. Однако полученный совет (выделить весь текст сочетанием клавиш «Ctrl»+«A» и затем нажать клавишу «F9») не решал проблему, поскольку поля находились в надписях, а обновление применялось исключительно к выделенному тексту.

Сама по себе поставленная задача достаточно легка в реализации для тех, кто разбирается в программировании на VBA. Тем не менее, удалось "накропать" пару строчек кода для макроса, который позволяет обновить поля, находящиеся во всех надписях в документе. Обращаю ваше внимание, что макрос работает только для надписей.
Вот получившийся код:

Sub shUp()
Dim sh As Shape
For Each sh In ActiveDocument.Shapes
    sh.TextFrame.TextRange.Fields.Update
Next sh
End Sub

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=9115