Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка RTF-текста в RichTextBox (VBA в MS Word), работа с RTF И буфером обмена 
:(
    Опции темы
kuksha
Дата 26.6.2017, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



Есть документ MS Word в тексте которого есть например такое предложение: 

ааа ббб ввв ггг.

Это предложение надо вставить в текстовый RichTextBox в диалоговом окне моего макроса в таком же виде, то есть с сохранением красного, жирного, размера, шрифта и т.д.
Там я его сам как-то обрабатаю и получу например такое:

ааа ккк ччч ггг.

Далее это изменённое предложение надо вставить обратно в документ на место исходного предложения.
Всё.

(найти текст, выделить и скопировать в буфер обмена я умею)

Собственно вопрос: как сделать вставку форматированного текста в элемент RichTextBox? Ну и обратно в текст документа?
Сейчас я делаю это командой VBA:
Код

SendKeys "+{INSERT}", True

но постоянно вылезают неприятности, в которых я даже копаться не хочу - надо сделать это исключительно  средствами VBA. Помогите кто может... 

Это сообщение отредактировал(а) kuksha - 26.6.2017, 11:10
PM MAIL   Вверх
Akina
Дата 26.6.2017, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Ну так и вставляйте из буфера обмена в RichTextBox.RTFText...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kuksha
Дата 26.6.2017, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



я вижу свойство .TextRTF у элемента RichTextBox, но что ему присвоить - не могу догнать.
GetText вставляет голый текст, без RTF.
Напишите пример кода.

Это сообщение отредактировал(а) kuksha - 27.6.2017, 09:39
PM MAIL   Вверх
Akina
Дата 27.6.2017, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Цитата(kuksha @  26.6.2017,  14:04 Найти цитируемый пост)
что ему присвоить - не могу догнать

Для начала скопируйте из RichTextBox.TextRTF форматированную как надо строку, а потом посмотрите, как оно выглядит, если это рассматривать как plain text:

Код

TextBox1.Text = RichTextBox1.TextRTF



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kuksha
Дата 27.6.2017, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
kuksha
Дата 29.6.2017, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
Akina
Дата 30.6.2017, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Цитата(kuksha @  29.6.2017,  10:38 Найти цитируемый пост)
как вставить RTF? В стандартных типах данных клипборда я RTF не вижу...

Нет такого типа - вообще! RTF - это обычный текст. Просто в нём есть конструкции, которые интерпретируются при отображении как атрибуты оформления. Так что вставляешь как обычный текст - но в TextRTF.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kuksha
Дата 2.7.2017, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



Помогли на другом форуме, но внешнюю ссылку здесь наверное нельзя давать...
В двух словах - решилось именно перебором содержимого буфера обмена ПО ТИПАМ данных с поиском Rich Text.
Вопрос закрыт.

Это сообщение отредактировал(а) kuksha - 2.7.2017, 21:49
PM MAIL   Вверх
Akina
Дата 2.7.2017, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Цитата(kuksha @  2.7.2017,  22:47 Найти цитируемый пост)
внешнюю ссылку здесь наверное нельзя давать...

Можно... даже кнопка есть специальная - "Ссылка", слева вторая сверху.
Цитата(kuksha @  2.7.2017,  22:47 Найти цитируемый пост)
решилось именно перебором содержимого буфера обмена ПО ТИПАМ данных с поиском Rich Text.

Гм... мало того, что формулировочка так себе - так в контексте обсуждения она вообще выглядит как феерический бред. Так что ссылка на "тот" форум совсем не повредит - похоже, решённая задача не очень совпадает с исходно заявленной...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kuksha
Дата 4.7.2017, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 15.6.2011

Репутация: нет
Всего: нет



Четвёртое сообщение снизу:
Как вставить RTF-строку
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1652 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.