VBA_Word2003: обработать в цикле содержимое всех надписей документа

Узнай цену своей работы

Формулировка задачи:

Собственно, сабж не получается :)
В документе имеется несколько Надписей (), в каждой из которых имеется 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.583 из 5
Похожие ответы