VBA_Word2003: обработать в цикле содержимое всех надписей документа
Формулировка задачи:
Собственно, сабж не получается :)
В документе имеется несколько Надписей (), в каждой из которых имеется 1 таблица. Часть её ячеек заполнена синим шрифтом (бланк), а другая часть - черным.
Необходимо всего-то: перед выводом на печать убрать границы у каждой таблицы и заменить синий шрифт на белый (чёрный не трогаем) - это нужно для печати на готовом бланке.
Кое-что всё-таки удалось автоматизировать - если заранее стать в нужную Надпись и сделать полное выделение её содержимого (Ctrl+A), то следующий макрос осуществляет всё необходимое:
Хотелось бы ещё, чтобы и переход выделения от одной Надписи к следующей (обход всех Надписей документа) также осуществлялся автоматически. А вот это как раз сделать и не получается - в режиме записи макросов Надписи не выделяются... :(
Пробовал и вручную через ShapeRange - тоже не выходит. Помогите с этим переходом, пожалуйста.
Прилагаю тестовый упрощённый doc-файл.
В документе имеется несколько Надписей (), в каждой из которых имеется 1 таблица. Часть её ячеек заполнена синим шрифтом (бланк), а другая часть - черным.
Необходимо всего-то: перед выводом на печать убрать границы у каждой таблицы и заменить синий шрифт на белый (чёрный не трогаем) - это нужно для печати на готовом бланке.
Кое-что всё-таки удалось автоматизировать - если заранее стать в нужную Надпись и сделать полное выделение её содержимого (Ctrl+A), то следующий макрос осуществляет всё необходимое:
Хотелось бы ещё, чтобы и переход выделения от одной Надписи к следующей (обход всех Надписей документа) также осуществлялся автоматически. А вот это как раз сделать и не получается - в режиме записи макросов Надписи не выделяются... :(
Пробовал и вручную через ShapeRange - тоже не выходит. Помогите с этим переходом, пожалуйста.
Прилагаю тестовый упрощённый doc-файл.
Решение задачи: «VBA_Word2003: обработать в цикле содержимое всех надписей документа»
textual
Листинг программы
For Each shp In ActiveDocument.Shapes
shp.TextFrame.TextRange.Select
For Each tbl In Selection.Tables
With tbl
.Borders.Enable = False
.Borders.Shadow = False
End With
Next tbl
For Each wrd In Selection.Words
With wrd
If .Font.ColorIndex = wdBlue Then
.Font.ColorIndex = wdWhite
End If
End With
Next wrd
Next shp