Я пытаюсь заставить работать макрос Outlook, который просто сохраняет электронные письма в виде файлов MSG с определенным форматированием для архивирования. По аналогии с другим пользователем здесь, я использую следующий фрагмент кода, что приводит к формату файла "yyyy-mm-dd - sender - title.msg", который является именно тем, что я хочу, за исключением того, что мне нужно получить отправителяТолько инициалы, а не полное имя. Любая помощь с благодарностью! Спасибо.
Sub OpenAndSave()
Const SAVE_TO_FOLDER = "C:\Users\Documents\Emails\"
Dim olkMsg As Outlook.MailItem, intCount As Integer
intCount = 1
For Each olkMsg In Outlook.ActiveExplorer.Selection
strDate = Format(olkMsg.ReceivedTime, "yyyy-mm-dd - ")
olkMsg.Display
olkMsg.SaveAs SAVE_TO_FOLDER & strDate & RemoveIllegalCharacters(olkMsg.senderName) & " - " & RemoveIllegalCharacters(olkMsg.Subject) & ".msg"
olkMsg.Close olDiscard
Next
Set olkMsg = Nothing
End Sub
Function RemoveIllegalCharacters(strValue As String) As String
' Purpose: Remove characters that cannot be in a filename from a string.'
RemoveIllegalCharacters = strValue
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "<", "")
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, ">", "")
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, ":", "")
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, Chr(34), "'")
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "/", "")
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "\", "")
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "|", "")
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "?", "")
RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "*", "")
End Function