Нет, я имею ввиду подключиться к Outlook и из него сделать правку. Как Вы руками правите? Можете прямо по шагам описать процесс? Может я чего не так понимаю просто. После того как опишите - можно будет уже более конкретное что-то посоветовать или предложить.
Я пишу макрос в Аутлуке. Из Аутлука выбираю MailItem (подробности опущу). У него беру инспектора (через MailItem.GetInspector), у которого получаю объектную модель Word данного письма (через Inspector.WordEditor). Которая закрыта для редактирования (прочитать всё могу - написать нет). Вопрос в том, как ее "разлочить" для редактирования.
Встречал много примеров, где она просто применяется без разлочивания - но это работает для новых писем, только что созданных. Создал новый MailItem - вот у тебя разлоченный Inspector.WordEditor. Сразу можно редактировать. А мне надо заменять в старых письмах (уже отосланных или уже полученных). Они так просто не редактируются (выдает ошибку, описанную в первом посте).
Конкретно по шагам что надо сделать руками для получения нужного результата на примере одного письма:
1. Открыть письмо (окно сообщения aka Inspector).
2. Выбрать "Изменить сообщение" (через Ленту: Сообщение - Действия - Изменить сообщение).
3. Нажать Ctrl+H - открывается окно замены (либо мышкой через Ленту: Сообщение - Найти - Заменить)
4. Ввести Строку1, Строку2 (заменяемое, заменяющее).
5. Нажать "Заменить все"
6. Нажать "Закрыть" в окне "Найти и заменить"
7. Нажать "Закрыть" в окне сообщения.
Впрочем, решение (через Commandbars, т.е. симуляцию нажатия кнопки Ленты) я уже нашел. В принципе, в последнее время я именно про такое решение думал.
Лучше будет только если есть какое-то решение через именно свойства и методы "натуральных" объектов (типа Inspector, MailItem, Application и т.п.).