powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как на VBA сформировать RTF в диалоговом окне?
11 сообщений из 11, страница 1 из 1
Как на VBA сформировать RTF в диалоговом окне?
    #39901012
kuksha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно в диалоговом окне выделить определённое слово и покрасить его красным (ну или синим).
Вопрос - как это сделать?

Я умею делать такое только через Rich TextBox Control, но этот контрол не доступен в 64 битном MS Word :(.
Есть мысль использовать стандартный контрол MSREdit, но в нём я не могу программно изменить свойства части текста - можно лишь выделить подстроку определённой длины и всё - никаких инструментов и свойств нет...
Вот и возникла мысль скопировать выделенное слово в переменную, поддерживающую RTF. Там его обрамить в некие RTF-теги чтобы изменить цвет и вставить обратно в контрол MSREdit вместо выделенного. Вот только как это сделать - знаний не хватает...
Люди добрые, научите пожалуйста уму-разуму :-)

Если изначальная задача решается другим способом - буду безмерно счастлив!
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39901392
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuksha,

вот такой подойдёт, или нужен именно rich text, и именно произвольный?
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39901551
kuksha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЦЦа , вообще, я думал, что нужен именно Rich Text.

Копируется кусок текста из основного документа в окно, где вносятся некие изменения, а потом этот изменённый кусок вставляется обратно. А слово, из-за которого этот кусок может быть исправлен должно быть подсвечено и в диалоговом окне и в конечном отредактированном куске.
То есть, обратно нужно вставлять в том же формате, в котором взяли, чтобы в документе ничего не поломалось, а в Ворде это именно Rich Text, насколько я понимаю. Это корректорское приложение, там не получается просто Text изменить - не видны внесённые правки...
Помечается кстати не просто синим, а RGB-цветом (1,2,255), чтобы потом была возможность разом убрать все эти красные метки и не затронуть просто красный текст исходного документа. Это я к тому, что в приведённом примере например есть код вроде .blue("blue text") - он как раз перепутается с обычным синим из исходного документа...
А в контол какого типа надо выводить .Msg из приведённого примера?
Я не видел такого способа... что это за пример и с чем едят это чудо? В смысле, как пользоваться и где про этот способ почитать?
---
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39901738
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuksha,

э... Выглядит как попытка изобрести уже готовый велосипед - режим рецензирования Word-а. Зачем?
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39902235
kuksha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЦЦа , нет.
Если интересно, то это любительское некоммерческе приложение:
восстановление буквы Ё в тексте (довольно качественно - даже в каких-то редакциях пользуются, насколько я знаю по переписке),
подбор русских замен иностранным словам (нет, это не совсем подбор синонимов - тут всё сложнее...),
оценка % иноязычных слов в документе...
Посмотреть это творение можно по ссылке
---
А что по теме вопроса? Есть соображения?
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39905604
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuksha
ЦЦа , нет.
Почему? ТеряеЦЦа желаемая(?) интерактивность в какие-то моменты (предложение альтернативных слов/словосочетаний)? Альтернативы можно включить в примечания к предлагаемому изменению. Пользователь в режиме рецензии предлагаемые изменения видит, и может их принять либо отвергнуть.
kuksha
восстановление буквы Ё в тексте (довольно качественно - даже в каких-то редакциях пользуются, насколько я знаю по переписке),
подбор русских замен иностранным словам (нет, это не совсем подбор синонимов - тут всё сложнее...),
оценка % иноязычных слов в документе...
Хорошо, чем не устраивает диалог более-менее стандартного spell checker-а?
---
kuksha
А что по теме вопроса? Есть соображения?
А я по теме высказываюсь:
kuksha
Если изначальная задача решается другим способом - буду безмерно счастлив!
. А по вашему видению реализации следующий пост.
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39905622
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuksha,

Относительно RTF. Можно окно соответствующего системного класса засунуть в диалог на основе MSForms. Ни на что не претендующий пример прилагаю. Но в 64-битном VBA на (почти) ровном месте возникает ошибка при отправке окну сообщения и вызове callback-функции. Может, получать текст в формате RTF для данного приложения и не нужно, но ошибка тем более досадная, что имеет вероятностный характер.
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39905834
kuksha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЦЦа
Хорошо, чем не устраивает диалог более-менее стандартного spell checker-а?.

1. Если изменение заведомо только в ОДНОМ слове, то есть в "ёфикаторе", то всё правильно.
В этом случае нужно постоянно следить, чтобы строка с заменяемым словом была выше диалогового окна - гиморно, но решаемо.
2. Но, в инструменте замены иностранных слов на русские этот способ не подходит - очень часто там половину предложения надо менять, замена только одного слова не прокатывает. Поэтому я копирую всё предложение в диалоговое окно и после исправления вставляю обратно всё что редактор наизменял.
Увы, и мне и пользователям удобнее иметь дело с одним способом правки, так что...

Да, можно сделать так, чтобы правки вносились прямо в текст, но там были какие-то сбои с немодальным окном... То ли цикл не останавливался и пролетал "насквозь", то ли с коонтитулами были грабли... Разработка велась несколько лет назад и сейчас не смогу написать что за грабли были при этом способе. Но, точно помню, что ломал ноги и перешёл на модальные окна...

Так что, хотелось бы разобраться с изменение цвета слова через прямое изменение RTF , прежде чем опять возвращаться к немодальным окнам и опять наступить на старые грабли...
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39905844
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuksha хотелось бы разобраться с изменение цвета слова через прямое изменение RTF Берёте спецификацию RTF (местный парсер корёжит прямую ссылку, см. External links), читаете, вносите цвет в таблицу цветов (colortbl) и ставите контрольное слово (cfN/cbN) перед своим словом.
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39905921
kuksha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЦЦа, за пару ключевых слов спасибо, но как увидеть исходный RTF-код из документа Word и вставить обратно?
Сейчас я копирую туда и обратно через клипборд и не вижу исходного RTF, а его изменение идёт через вызовы внутренних методов RichTx32-контрола...
...
Рейтинг: 0 / 0
Как на VBA сформировать RTF в диалоговом окне?
    #39906496
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuksha,

Неужели в прошлый раз зря шляпу снимали?

Ответ неполный, конечно, но начните хотя бы с него.

13
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как на VBA сформировать RTF в диалоговом окне?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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