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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д