VBA для Outlook - изменить строку темы, используя Right - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь изменить строку темы входящих писем только на последние 11 символов строки темы.Когда я использую Item.Subject = Right(Item.Subject,11), это не работает.

Может кто-нибудь помочь?

Полный код.

Sub ChangeSubjectForward(Item As Outlook.MailItem)
Item.Subject = Right(Item.Subject, 11) 
Item.Save
End Sub

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Вы можете создать правило макроса , а затем запустить следующий код:

Sub save_to_dir_test1(mymail As MailItem)
Dim strID As String
Dim objMail As Outlook.MailItem

strID = mymail.EntryID
Set objMail = Application.Session.GetItemFromID(strID)
objMail.Subject = Right(m.Subject, 11)
objMail.Save
Set objMail = Nothing
End Sub

Для получения дополнительной информации, пожалуйста, перейдите по этой ссылке:

ВыполнитьПравило сценария: измените тему, затем перешлите сообщение

Получение входящей электронной почты в Outlook через VBA

0 голосов
/ 20 декабря 2018

Я нашел другой поток SO, в котором говорится, что вы не можете изменить тему сообщения, не открыв его сначала.Мы можем использовать ActiveInspector, чтобы получить дескриптор элемента после его отображения.Тогда мы можем изменить его, сохранить и закрыть.Я добавил проверку, чтобы увидеть, действительно ли объект длиннее 11 символов, прежде чем мы попытаемся его усечь.

Попробуйте это:

Public Sub ChangeSubjectForward(ByRef Item As Outlook.MailItem)
    Debug.Print Now                              '  This shows you when the code runs
    If Len(Item.Subject) > 11 Then
        Debug.Print "Subject is too long. Trimming..." '  This shows that we tried to truncate.

        Item.Display                             'Force the pop-up

        Dim thisInspector As Inspector
        Set thisInspector = Application.ActiveInspector

        Set Item = thisInspector.CurrentItem     ' Get the handle from the Inspector
        Item.Subject = Right$(Item.Subject, 11)
        Item.Save
        Item.Close
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...