Необходимо обновить все поля в текстбоксах, которые (текстбоксы) сгруппированы и расположены в колонтитулах. Обновление необходимо выполнить во всех секциях документа.
Для этого использую следующую конструкцию:
- Код: Выделить всё
For Each oSection In ActiveDocument.Sections
For Each oHeaderFooter In oSection.Footers
For Each oShape In oHeaderFooter.Shapes
If oShape.Type = msoGroup Then
For Each oItem In oShape.GroupItems
If oItem.Type = msoTextBox Then
Set oTextFrame = oItem.TextFrame
If oTextFrame.TextRange.Fields.Count <> 0 Then
oTextFrame.TextRange.Fields.Update
End If
End If
Next oItem
End If
Next oShape
Next oHeaderFooter
Next oSection
Все работает, но такой тотальный перебор занимает очень много времени. Можно как-то оптимизировать код, чтобы меньше перебирать элементов? А то получается при 9-15 полях, которые нужно обновить, он перебирает гораздо больше елементов (нужно еще учесть, что в группы входят и линии и другие шейпы). Спасибо.