powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вордовский макрос......
15 сообщений из 15, страница 1 из 1
Вордовский макрос......
    #36580717
Ida_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Посоветуйте, плиз!
В вордовском документе содержится просто текст такого вида:
Раздел включает 3 документа
Документ 1 содержит
описание
Документ 2 содержит
описание
Документ 3 содержит
описание

Мне нужно, чтобы было так:
Раздел включает 3 документа
описание
Документ 1 содержит
описание
Документ 2 содержит
описание
Документ 3 содержит

Вот, если есть неясности, я подробнее опишу:)
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36580722
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть неясности
Все неясно

во-первых, приложите образец.
во-вторых, скажите, что нужно - макрос написать, который переставляет абзацы?
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36580749
Ida_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да- да макрос надо написать, чтобы переставлялись абзацы:
Образец вот:
Сейчас вот так:

Документ включает 2 закладки:
 Услуги автотранспорта;
 Журнал замечаний.
Закладка «Услуги автотранспорта» содержит атрибуты шапки и табличную часть «Действующие и планируемые к заключению договоры» - ; табличную часть «Разбивка по МВЗ» - ; табличную часть «Остаток лимита включенный в резерв» - ;
Табличная часть «Действующие и планируемые к заключению договоры» закладки «Услуги автотранспорта» включает в себя следующие столбцы:
Также табличная часть «Действующие и планируемые к заключению договоры» имеет контекстное меню «Снять закрепление;Закрепить область», которое включает следующие пункты:
Табличная часть «Разбивка по МВЗ» закладки «Услуги автотранспорта» включает в себя следующие столбцы:
Также табличная часть «Разбивка по МВЗ» имеет контекстное меню «Снять закрепление;Закрепить область», которое включает следующие пункты:
Табличная часть «Остаток лимита включенный в резерв» закладки «Услуги автотранспорта» включает в себя следующие столбцы:
Также табличная часть «Остаток лимита включенный в резерв» имеет контекстное меню «Снять закрепление;Закрепить область», которое включает следующие пункты:

а должно быть, вот так:
Документ включает 2 закладки:
 Услуги автотранспорта;
 Журнал замечаний.
Закладка «Услуги автотранспорта» содержит атрибуты шапки и табличную часть «Действующие и планируемые к заключению договоры» - ; табличную часть «Разбивка по МВЗ» - ; табличную часть «Остаток лимита включенный в резерв» - ;
Также табличная часть «Действующие и планируемые к заключению договоры» имеет контекстное меню «Снять закрепление;Закрепить область», которое включает следующие пункты:
Табличная часть «Действующие и планируемые к заключению договоры» закладки «Услуги автотранспорта» включает в себя следующие столбцы:
Также табличная часть «Разбивка по МВЗ» имеет контекстное меню «Снять закрепление;Закрепить область», которое включает следующие пункты:
Табличная часть «Разбивка по МВЗ» закладки «Услуги автотранспорта» включает в себя следующие столбцы:
Также табличная часть «Остаток лимита включенный в резерв» имеет контекстное меню «Снять закрепление;Закрепить область», которое включает следующие пункты:
Табличная часть «Остаток лимита включенный в резерв» закладки «Услуги автотранспорта» включает в себя следующие столбцы:

Т.е у меня есть табличные части, а у каждой табличной части есть контекстное меню, надо контекстное меню своей табличной части переносить выше самой табличной части, вот.
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36580766
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала вы сказали, что "просто текст"

Теперь возникают какие-то "табличные части"

Файл приложите пожалуйста
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36580804
Ida_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
:) да....непонятно я объясняю

в файле, всё, что выделено жёлтым цветом надо выводить перед коричневым:)
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36580846
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
желтого там больше, чем коричневого, так что сильно яснее не стало.

теперь давайте попробуем формализовать. Я попробую, а вы меня поправьте.

нужно найти все абзацы в документе, которые содержат фразу "имеет контекстное меню" и вместе со следующим абзацем поменять местами с предыдущим абзацем
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36580897
Ida_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только не все абзацы, а все абзацы в документе, которые содержат фразу "имеет контекстное меню" и которые стоят именно после абзаца коричневго цвета. Я думаю легче сказать так, все абзацы, которые содержат фразу "Табличная часть "..." имеет контекстное меню" .
Если же после абзаца коричневого цвета ничего нет(т.е жёлтого нет, в файле такие абзацы начинаются так: "Шапка"...), то ничего не делаем.
Вы говорите "и вместе со следующим абзацем" - не только со следующим, а со следующими, т.е их может быть несколько, они как раз все выделены жёлтым цветом, т.е где-то это один абзац, а где-то и 2 и 3 - короче говоря, всё что жёлтым цветом, например(из файла):
может быть так (всё жёлтым цветом)

Также табличная часть «Журнал согласования» имеет контекстное меню «Исходные данные», которое включает следующие пункты:
Скрыть/показать суммы по месяцам

а может быть так (всё жёлтым цветом)

Также табличная часть «Журнал согласования» имеет контекстное меню «Исходные данные», которое включает следующие пункты:
Скрыть/показать суммы по месяцам
Скрыть/показать суммы по годам

Для ясности: коричневое и жёлтое меняем местами, если жёлтого нет - ничего не делаем.
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36580955
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять смешали в кучу коней и людей.

Если я правильно понял, цветовое выделение у вас присутствует исключительно для того, чтобы показать это нам. То есть макрос не вправе ориентироваться на цвет, так?

В принципе, вы вроде правильно поняли, как нужно сформулировать ТЗ, тогда доведите уже это дело до конца. То есть не "т.е где-то это один абзац, а где-то и 2 и 3" - а формальные признаки этих абзацев.
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36580978
Ida_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот именно, что формальным признаком этих абзацев и будет цвет, и в макросе я и думала ориентироваться по цвету.
Просто у меня на самом деле это отчёт, т.е я программирую отчёт, он выводит вот такой документ(файл), но в отчёте я сразу помечу как раз этими цветами нужные абзацы, а потом уже макрос должен, ориентируясь по цвету, менять местами абзацы, но так как я новичок, я не знаю, так вообще можно?
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36581012
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Ida_kтак вообще можно?[/quot]

Можно.
Тогда с этого надо было и начинать.

Предлагаю вам тогда такой алгоритм:
1) Ищем поиском абзац коричневого цвета, не нашли - конец программы
2) Начинаем цикл просмотра следующих абзацев, если первый же абзац не желтый - возвращаемся к п.1, иначе ползем вниз пока абзацы желтые.
3) Как только находим первый не желтый абзац - вставляем туда запомненный ранее коричневый абзац и возвращаемся к п.1
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36581046
Ida_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, я согласна с вами, тока вот с кодом конечно сложновато, вы не покажете, как организовывается цикл с абзацами, как я поняла(документация) абзац - это Paragraphs()?:)
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36581070
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ida_kвы не покажете, как организовывается цикл с абзацами

как-то так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub ff()

Dim Par As Paragraph
For Each Par In ActiveDocument.Paragraphs
  Par.Range.Font.Color = wdColorRed
Next

End Sub
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36581071
Ida_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, буду пробовать:)
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36581100
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что я проделал, по научному называется:
Реверс-инжиниринг мозговой деятельности заказчика
...
Рейтинг: 0 / 0
Вордовский макрос......
    #36581255
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Нет, это называется консалтинг
и стоит бешеных бабок. порядка нескольких тысяч человек
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вордовский макрос......
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]