|
Модераторы: mihanik |
|
kuksha |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 154 Регистрация: 15.6.2011 Репутация: нет Всего: нет |
Есть документ MS Word в тексте которого есть например такое предложение:
ааа ббб ввв ггг. Это предложение надо вставить в текстовый RichTextBox в диалоговом окне моего макроса в таком же виде, то есть с сохранением красного, жирного, размера, шрифта и т.д. Там я его сам как-то обрабатаю и получу например такое: ааа ккк ччч ггг. Далее это изменённое предложение надо вставить обратно в документ на место исходного предложения. Всё. (найти текст, выделить и скопировать в буфер обмена я умею) Собственно вопрос: как сделать вставку форматированного текста в элемент RichTextBox? Ну и обратно в текст документа? Сейчас я делаю это командой VBA:
но постоянно вылезают неприятности, в которых я даже копаться не хочу - надо сделать это исключительно средствами VBA. Помогите кто может... Это сообщение отредактировал(а) kuksha - 26.6.2017, 11:10 |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Ну так и вставляйте из буфера обмена в RichTextBox.RTFText...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
kuksha |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 154 Регистрация: 15.6.2011 Репутация: нет Всего: нет |
я вижу свойство .TextRTF у элемента RichTextBox, но что ему присвоить - не могу догнать.
GetText вставляет голый текст, без RTF. Напишите пример кода. Это сообщение отредактировал(а) kuksha - 27.6.2017, 09:39 |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Для начала скопируйте из RichTextBox.TextRTF форматированную как надо строку, а потом посмотрите, как оно выглядит, если это рассматривать как plain text:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
kuksha |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 154 Регистрация: 15.6.2011 Репутация: нет Всего: нет |
Akina, сделал. Вот что я вижу в TextBox1:
{\rtf1\ansi\ansicpg1251\deff0\nouicompat\deflang1049{\fonttbl{\f0\froman\fprq2\fcharset204{\*\fname Times New Roman;}Times New Roman CYR;}{\f1\fnil\fcharset204 Tahoma;}} {\colortbl ;\red255\green4\blue5;} {\*\generator Riched20 14.0.6015.1000;}{\*\mmathPr\mwrapIndent1440}\viewkind4\uc1 \pard\f0\fs24 , \'ea\'ee\'e4 \'ef\'ee\'e4\'f0\'e0\'e7\'e4\'e5\'eb\'e5\'ed\'e8\'ff: 77-11, \'e7\'e0\'f0\'e5\'e3\'e8\'f1\'f2\'f0\'e8\'f0\'ee\'e2\'e0\'ed \'ef\'ee \cf1\'ec\'e5\'f1\'f2\'ee\'ed\'e0\'f5\'ee\'e6\'e4\'e5\'ed\'e8\'fe\cf0 : \'e3.\f1\fs17 \par \par } Что дальше? Мне надо не из RichTextBox в RichTextBox, а из документа в RichTextBox и обратно. Это сообщение отредактировал(а) kuksha - 27.6.2017, 12:36 |
|||
|
||||
kuksha |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 154 Регистрация: 15.6.2011 Репутация: нет Всего: нет |
Нашёл как это делается:
https://msdn.microsoft.com/VBA/Access-VBA/a...m-the-clipboard но поскольку там задано CF_TEXT = 1 , то вставляется голый текст. А как вставить RTF? В стандартных типах данных клипборда я RTF не вижу... Это сообщение отредактировал(а) kuksha - 29.6.2017, 09:45 |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Нет такого типа - вообще! RTF - это обычный текст. Просто в нём есть конструкции, которые интерпретируются при отображении как атрибуты оформления. Так что вставляешь как обычный текст - но в TextRTF. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
kuksha |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 154 Регистрация: 15.6.2011 Репутация: нет Всего: нет |
Помогли на другом форуме, но внешнюю ссылку здесь наверное нельзя давать...
В двух словах - решилось именно перебором содержимого буфера обмена ПО ТИПАМ данных с поиском Rich Text. Вопрос закрыт. Это сообщение отредактировал(а) kuksha - 2.7.2017, 21:49 |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
Можно... даже кнопка есть специальная - "Ссылка", слева вторая сверху.
Гм... мало того, что формулировочка так себе - так в контексте обсуждения она вообще выглядит как феерический бред. Так что ссылка на "тот" форум совсем не повредит - похоже, решённая задача не очень совпадает с исходно заявленной... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
kuksha |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 154 Регистрация: 15.6.2011 Репутация: нет Всего: нет |
||||
|
||||
Правила форума "Программирование, связанное с MS Office" | |
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |