Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2014, 08:53   #1
Foo_fighter
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 12
По умолчанию форматирование многоуровневых маркированных списков

Добрый день, форумчане.
Имею готовые документы, в которых встречаются многоуровневые маркированные списки. Расположены они бывают рандомно, то есть отступы различны, да и маркеры не всегда соответствуют уровню списка.

Собственно вопросы:
1) Может ли VBA различать параграфы с маркерами и самое главное заменять этот самый маркер на определенный - заданный макросом?
2) Можно ли для каждого уровня списка задать свой отступ?

Другими словами в тексте расположены многоуровневые списки, допустим мы берем за основу вот такой вариант:
- 1 уровень
● 2 уровень
○ 3 уровень.
макрос будет определять списки и в зависимости от уровня задавать списку маркер и задавать отступ.
Вложения
Тип файла: doc Многоуровневые списки.doc (36.0 Кб, 8 просмотров)
Foo_fighter вне форума Ответить с цитированием
Старый 13.03.2014, 22:46   #2
Foo_fighter
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 12
По умолчанию

Код:
Sub FindBullet()	
    Dim rngTarget As Word.Range
    Dim oPara As Word.Paragraph
    Set rngTarget = Selection.Range
    With rngTarget
        Call .Collapse(wdCollapseEnd)
        .End = ActiveDocument.Range.End

        For Each oPara In .Paragraphs
            If oPara.Range.ListFormat.ListType = _
               WdListType.wdListBullet Then
                oPara.Range.Select
                Exit For
            End If
        Next
    End With
End Sub
Код:
Sub ListFormat()
Dim oListTemplate As ListTemplate
Dim oListLevel As ListLevel
For Each oListTemplate In ActiveDocument.ListTemplates
    For Each oListLevel In oListTemplate.ListLevels
        If oListLevel.NumberStyle = wdListNumberStyleBullet Then
            With oListLevel
                .NumberFormat = "-"
                .Font.Name = "Arial"
            End With
        End If
    Next oListLevel
Next oListTemplate
End Sub


Все, что нашел, это поиск и выделение, а также форматирование всех списков в один единый тип или стиль. Еще возможно найти эти списки если у них есть различные отступы, главное чтобы такой отступ был только у списков. Еще Поиск/замена не поможет в этом деле... В общем, по ходу дела, без стиля никуда.
Foo_fighter вне форума Ответить с цитированием
Старый 14.03.2014, 08:46   #3
Foo_fighter
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 12
По умолчанию

Может можно обработать эти списки при наличии перед ними знака в конце параграфа ":"?
Допустим идет текст:
- список 1;
- продолжение списка1:
● список 2:
○ список 3
○ продолжение списка3
Вложения
Тип файла: doc Многоуровневые списки.doc (36.5 Кб, 8 просмотров)
Foo_fighter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[проблема] Отступ в маркированных списках RelaX Inc. HTML и CSS 2 03.01.2013 14:48
Создание многоуровневых заголовков n0str0m0 Microsoft Office Word 0 28.03.2012 09:15
пробел в маркированных и нумерованных списках. javvva Microsoft Office Word 0 07.11.2010 11:34
Сортировка списков ioda1986 Помощь студентам 0 18.04.2010 00:10
Непростая задачка - ссылки на файлы в многоуровневых каталогах Александр Аникин Microsoft Office Excel 0 29.05.2009 17:06