Это старая версия документа.


Форматирование привязки типа RTF в таблице

Текущая ситуация

В свойствах объектов существуют параметры, которые позволяют фиксировать не просто текст, а форматированный текст. Так называемый формат RTF. Несмотря на то, что для таких параметров можно задать формат шрифта по умолчанию, бывают ситуации, когда информация в них заносится из других документов путем копирования данных через буфер обмена. При этом остается форматирование текста как у источника. При выводе таких параметров в отчет при сохранении форматирования RTF может происходить выделение данного текста на фоне общего представления отчета. Например, текст будет выведен другим шрифтом и другим размером.

Постановка задачи

В отчете формата Word по процессу в таблице с описанием подпроцесса необходимо столбец "Комментарий" сделать таким же шрифтом, таким же размером как другие столбцы таблицы и таким же стилем абзаца. При этом оставить  другое форматирование: подчеркивание, выделение, цвет и т.д.

Исходные данные

Решение описывается с момента, когда уже существует привязка типа "Список", выводящая список подпроцессов.

Invalid Link
Рисунок 1. Привязка, выводящая список подпроцессов, в котором существует привязка с типом RTF - "Комментарий"
Invalid Link
Рисунок 2. Вид выполненного отчета - стиль текста "Комментарий" отличен он других столбцов таблицы

Концепция решения

Необходимо обратиться к нужной таблице. Определить параметры шрифта в соседнем столбце от столбца "Комментарий" (значения из ячейки). Далее выделить столбец "Комментарий" и задать необходимые параметры шрифта.

Шаги решения

Определяем название привязки типа "Список", которая представляет нужную таблицу (см. Руководство пользователяПример определения названия привязки типа "Список").

Sub ПослеВыполненияОтчета(ob As Variant, app As Variant)

'Вводная часть

    'название закладки для привязи типа Список, формирующей нужную таблицу
    PodProcBookmarksName = "Подпроцессы_41fc2dd5"
    columnRTF = 2 'столбец в таблице, содержащий параметр RTF - "Комментарии"

        'Проверка на корректность названия привязки
        Dim PodProcBkmOk As Boolean 'сначала считаем, что нужной закладки нет

        Dim Bkm As Bookmark 'переменная типа Закладка

        'если искомая закладка есть среди закладок в документе
        For Each Bkm In ActiveDocument.Bookmarks

            If Bkm.Name = PodProcBookmarksName Then

                PodProcBkmOk = True 'отмечаем, что закладка есть
                'будем работать с таблицей через закладку
                Set tablePodProc = Application.ActiveDocument.Bookmarks(PodProcBookmarksName).Range.Tables(1)

            End If

        Next

'Процедурная  часть

    If PodProcBkmOk Then 'если есть необходимая закладка

        'Запоминаем параметры шрифта первой ячейки после заголовка справа от поля RTF
        Dim Rng As Range 'здесь будет область ячейки справа от столбца RTF
        Set Rng = tablePodProc.Cell(2, columnRTF + 1).Range

        FontName = Rng.Font.Name 'запоминаем шрифт
        FontSize = Rng.Font.Size 'запоминаем размер

        'Выделяем столбец с RTF кроме заголовка
        Dim RngRTF As Range
        'начало и конец диапазона
        RngRTFStart = tablePodProc.Cell(2, columnRTF).Range.Start
        RngRTFEnd = tablePodProc.Cell(tablePodProc.Rows.Count, columnRTF).Range.End

        'выделяем ячейки RTF
        ActiveDocument.Range(RngRTFStart, RngRTFEnd).Select

        'Задаем шрифт текста и размер
        With Selection.Font
            .Name = FontName
            .Size = FontSize
        End With

        'Форматирование абзаца
        Selection.ParagraphFormat = Rng.ParagraphFormat

    End If

End Sub

Результат

Invalid Link
Рисунок 3. Вид сформированного отчета. Параметр типа RTF имеет такой же шрифт и размер, как и остальная таблица
« ПредыдущаяНа уровень вышеСледующая »
Driven by DokuWiki