![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 18.01.2016
Сообщений: 7
|
![]()
Добрый день!
Подскажите, плиз, как открыть сообщение (MailItem) для редактирования через объектную модель Word (через свойство Inspector.WordEditor)? (сообщение не новое - а полученное или уже отосланное) Outlook 2010. Руками это делается в окне чтения сообщения в ленте через Сообщение - Переместить - Действия - Изменить сообщение. А как это сделать программно? В приведенном ниже коде попытка sRange.InsertAfter - приводит к ошибке "Run-time error '4605': Метод или свойство недоступны, поскольку документ заблокирован для редактирования." Посмотрел, в sDoc.ProtectionType стоит "wdAllowOnlyReading". А если вручную открыть на редактирование - то "wdNoProtection". Но попытка сделать sDoc.Unprotect приводит к ошибке "Run-time error '4605': Данная команда недоступна." В свойствах MailItem или Inspector ничего подходящего не вижу. Если сделать "Изменить сообщение" руками - то приведенный код работает. Подскажите, плиз! PS. Не нашел раздела по Outlook - поэтому пишу в этой теме... Private Sub test1() Dim Msg As MailItem, AI As Inspector, sDoc As Word.Document, sRange As Word.RangeEnd Sub |
![]() |
![]() |
![]() |
#2 |
Регистрация: 18.01.2016
Сообщений: 7
|
![]()
На всякий добавлю, что можно, конечно, делать через .HTMLBody, но для основной задачи (функции замены строки1 на строку2) он хуже, т.к. там могут куда-либо вклиниться тэги, а отлавливать их - это отдельный гемор...
К тому же, некоторые письма в HTML выглядят неожиданно (состоят не из нормальных знаков, а из их кодов а-ля & # 1088 ; ). Короче, надо будет либо писать какой-то мегакод вместо небольшого и понятного, либо доделывать руками. Модель Word, мне кажется, всё бы решила... |
![]() |
![]() |
![]() |
#3 |
Регистрация: 18.01.2016
Сообщений: 7
|
![]()
Всю голову себе сломал.
По 7 раз пересмотрел членов MailItem, Inspector, Application, Word.Document и бог знает чего еще... Почитал несколько учебников, где про Аутлук пишут... но всё мимо ![]() Ничего не нахожу рабочего ![]() Кажется, нашел решение через SendKeys: Application.ActiveInspector.Activat e SendKeys "%TCC", True - делает симуляцию нажатия кнопки "Изменить сообщение" В тесте, вроде, отрабатывает. Надеюсь, и в бою будет... Но буду рад если кто подскажет решение через объекты всё же! Т.к. более надежно и понятно. И более быстро, наверное... |
![]() |
![]() |
![]() |
#4 |
Регистрация: 18.01.2016
Сообщений: 7
|
![]()
SendKeys работает, но долго.
Так что тема по-прежнему актуальна! |
![]() |
![]() |
![]() |
#5 |
Регистрация: 18.01.2016
Сообщений: 7
|
![]()
Как выясняется, sDoc.Unprotect работает. Но не на всех сообщениях. На каких-то работает, на каких-то нет. От чего зависит, не понятно.
По-прежнему очень надеюсь на ответ, как через VBA в инспекторе сделать "Сообщение - Действия - Изменить сообщение" без SendKeys! |
![]() |
![]() |
![]() |
#6 |
Регистрация: 18.01.2016
Сообщений: 7
|
![]()
Пока не нашел то, что нужно, прям в самих объектах.
Но нашел, как через объекты симулировать нажатие "Изменить сообщение" без SendKeys: Insp.CommandBars.ExecuteMso ("EditMessage") Ну и что-то типа такого при имеющемся MailItem: Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как открыть файл word в C++ Builder для запослнения | анютка10 | Общие вопросы C/C++ | 3 | 08.06.2012 01:06 |
Как обратиться к свойствам Sharepoint в Word через VBA макрос? | Kypo | Microsoft Office Word | 2 | 06.10.2011 12:06 |
Как отправить Access-ом сообщение по Outlook? | ИгнатАлт | Microsoft Office Access | 2 | 23.11.2007 18:47 |
Как Web документ(htm, mht, и т.д.) открыть через Word? | Yelzhas | Общие вопросы Delphi | 4 | 18.11.2007 20:14 |
Как открыть для редактирования ID3-тэги mp3-файлов? Delphi | yourself | Мультимедиа в Delphi | 2 | 13.11.2007 02:16 |