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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2024, 06:56   #1
Платон Израилевич
Новичок
Джуниор
 
Регистрация: 28.05.2024
Сообщений: 5
Восклицание Любите пиво? А сложные задачи?:)

Доброго денёчка, уважаемые рыцари интеллекта и повелители кода)
Для начала введу текст-пример, на основе которого опишу свою головную боль((

Обращаем внимание, что при регистрации Вас не удалось определить, как пользователя мозгового вещества (далее – ПМВ), на которого Вы ссылаетесь в обращении, или как его уполномоченного представителя (далее – УП).
Убедительно просим в дальнейшем обеспечивать взаимодействие в рамках Клуба Программистов «Весёлый свисток» (далее – КП) уполномоченных представителей, данные которых указаны в составе персонифицированных сведений о ПМВ в реестре КП.
Если информацию об УП необходимо скорректировать – просим обратиться в любой ближайший к Вам киоск спортивных лотерей (далее – Спортлото) с подтверждающими документами для осуществления соответствующих изменений.


Есть три задачи, над двумя последними бьюсь который день Не растёт кокос
1. Убрать пустые строки между абзацами. НО, нужно чтобы просто пустая строка исчезла, а абзац сохранился, т.е. что было так:
уполномоченного представителя (далее – УП).
Убедительно просим в дальнейшем обеспечивать взаимодействие в рамках Клуба Программистов

А не так:
уполномоченного представителя (далее – УП). Убедительно просим в дальнейшем обеспечивать взаимодействие в рамках Клуба Программистов.

2. В тексте используются аббревиатуры. Если мы ввели использование аббревиатуры, то повторно использовать расшифровку нельзя. Мне нужно чтобы макрос находил определённые фразы и выделял цветом, если их больше одной.
Например: в тексте выше мы ввели аббревиатуру уполномоченного представителя (далее – УП), повторно в тексте писать полностью уполномоченный представитель нельзя, надо только УП. Причем во всех падежах. То есть, макрос должен мне подсветить, если я ошибся и написал еще раз Уполномоченный представитель вместо УП. Если не повторяется, то подсвечивать ничего не нужно. Искать нужно не любую фразу, а из списка, их штук 20 примерно.

3. И самая сложная Не уверен, что ее можно решить в рамках макроса.
Чтобы макрос искал по тексту уже определённые аббревиатуры и их расшифровки и сигнализировал всплывающим окном что найдены не расшифрованные аббревиатуры.
Например, я забыл при первом использовании расшифровать аббревиатуру УП и начал ее использовать в тексте:
Обращаем внимание, что при регистрации Вас не удалось определить, как пользователя мозгового вещества (далее – ПМВ), на которого Вы ссылаетесь в обращении, или как его УП.
Убедительно просим в дальнейшем обеспечивать взаимодействие в рамках Клуба Программистов «Весёлый свисток» (далее – КП, ВС) УП, данные которых указаны в составе персонифицированных сведений о ПМВ в реестре КП.

Аббревиатур около 20. Нужно чтобы я мог ввести их списком или чтобы на каждую отдельную аббревиатуру был отдельный макрос, я буду копипастить портянку меняя только аббревиатуру и расшифровку.
Или вот я ввел аббревиатуру киоск спортивных лотерей (далее – Спортлото), но далее ее не использовал, это тоже должно быть окошко о нахождении.
Т.е. макрос по тексту находит фразу киоск спортивных лотерей, если она используется в тексте еще раз (киоск спортивных лотерей, киоска спортивной лотереи и т.п.) то он подсвечивает например красным их в тексте. Если один раз эта фраза, ничего не подсвечивает.
Далее макрос находит введенную аббревиатуру УП и ищет фразу (далее – УП), если находит, то ничего не делает. А вот если не находит то во всплывающем окошке пишет об этом. И наоборот, если находит (далее – УП), но не находит УП тоже сообщает об этом.

Понаписал и аж самому стало страшно )))
К сожалению, глядя со слезами на свою зп, я не могу заплатить за эту работу много, но рублей 500 на пиво готов выделить
Платон Израилевич вне форума Ответить с цитированием
Старый 29.05.2024, 04:53   #2
Алексей1153
фрилансер
Участник клуба
 
Регистрация: 11.10.2019
Сообщений: 1,010
По умолчанию

Платон Израилевич, за 500р никто даже читать этот текст не будет
Алексей1153 вне форума Ответить с цитированием
Старый 29.05.2024, 05:00   #3
Платон Израилевич
Новичок
Джуниор
 
Регистрация: 28.05.2024
Сообщений: 5
По умолчанию

Алексей1153, А как вы считаете, сколько стоит подобный макрос?
Платон Израилевич вне форума Ответить с цитированием
Старый 29.05.2024, 05:05   #4
Алексей1153
фрилансер
Участник клуба
 
Регистрация: 11.10.2019
Сообщений: 1,010
По умолчанию

Платон Израилевич, понятия не имею Я VBA не занимаюсь
Алексей1153 вне форума Ответить с цитированием
Старый 29.05.2024, 05:05   #5
Алексей1153
фрилансер
Участник клуба
 
Регистрация: 11.10.2019
Сообщений: 1,010
По умолчанию

в разделе про фриланс нужно запостить, там исполнители подскажут про цены
Алексей1153 вне форума Ответить с цитированием
Старый 29.05.2024, 05:23   #6
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 974
По умолчанию

Убрать пустые строки между абзацами

Замена ^p^p на ^p

Похоже все задачи на макрос замены из 1998 года
из прошлого тысячелетия

Код:
Sub daZamena()
'
Dim n(17), y(17) As Variant

n(1) = "у": y(1) = "y"
n(2) = "е": y(2) = "e"
n(3) = "Н": y(3) = "H"
n(4) = "х": y(4) = "x"
n(5) = "а": y(5) = "a"
n(6) = "р": y(6) = "p"
n(7) = "о": y(7) = "o"
n(8) = "с": y(8) = "c"
n(9) = "Е": y(9) = "E"
n(10) = "Х": y(10) = "X"
n(11) = "В": y(11) = "B"
n(12) = "А": y(12) = "A"
n(13) = "Р": y(13) = "P"
n(14) = "О": y(14) = "O"
n(15) = "С": y(15) = "C"
n(16) = "М": y(16) = "M"
n(17) = "Т": y(17) = "T"

    Selection.HomeKey Unit:=wdStory
    ActiveWindow.View.Type = wdNormalView
    ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit

For i = 1 To 17
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = n(i)
        .Replacement.Text = y(i)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
Next i

    Selection.EndKey Unit:=wdStory
    ActiveWindow.View.Type = wdPageView
    ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit
End Sub
Ежели задача на списки: обратившийся сам составит

Да и повторяю вдруг в конце начало забыли

Убрать пустые строки между абзацами

Замена ^p^p на ^p
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 29.05.2024, 09:57   #7
Платон Израилевич
Новичок
Джуниор
 
Регистрация: 28.05.2024
Сообщений: 5
По умолчанию

Цитата:
Сообщение от сфинкс Посмотреть сообщение
Убрать пустые строки между абзацами

Замена ^p^p на ^p

Похоже все задачи на макрос замены из 1998 года
из прошлого тысячелетия

[CODE]Sub daZamena()
'


Замена ^p^p на ^p
Спасибо за ваш труд и внимание к посту!
Это не совсем то Этот макрос меняет, а мне не нужно чтобы он сам менял.
Мне нужно чтобы он проверял сколько раз введена ключевая фраза и если она введена более одного раза, подсвечивал её везде, а если не более одного раза, ничего не подсвечивал.
И вторым действием, чтобы проверял корректное введение аббревиатур в тексте, т.е. если я один раз написал в тексте Персональный Компьютер, то повторно в этом тексте я не должен это писать, я должен употреблять аббревиатуру ПК. Он ищет в тексте фразу Персональный Компьютер и если находит ----> ищет слово ПК, если не находит---->всплывающим окошком сообщает мне об этом.
Если ключевая фраза и аббревиатура присутствуют в тексте или ключевой фразы в тексте нет, то ничего не происходит, всплывающего окошка не надо.
Сам он ничего не меняет, просто проверяет.

Последний раз редактировалось Платон Израилевич; 29.05.2024 в 10:55.
Платон Израилевич вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
За что вы любите или не любите жизнь? Rekky Свободное общение 35 16.06.2011 16:02
Домашка по С/С++. Сложные задачи( AmaTeRaTSu Общие вопросы C/C++ 6 01.06.2011 23:41
2 сложные задачи Snake08 Помощь студентам 4 16.11.2008 21:12