Как я могу сохранить ссылки из Body с темой, включенной в имя файла? - PullRequest
0 голосов
/ 29 октября 2019

РЕДАКТИРОВАТЬ: @bigben предложил мне работать с olMail.Subject для решения этой проблемы. К сожалению, я не уверен, где его использовать.

Спасибо.


Я использую VBA Script в Outlook 2013. Он сохраняет все связанные документы из основной части письма на мой локальный ПК. Название документа происходит от самого связанного документа. Я хотел бы добавить тему письма в процессе сохранения. Что мне добавить в мой сценарий (и куда я могу его добавить)? Рад перейти на совершенно новый сценарий, если у кого-то есть идея получше.

Я нашел примеры сценариев, которые могли бы работать, но я не знаю, куда поместить фрагмент в свой сценарий.

Извините, что опубликовал все это, но я не знаю, где вообще произойдут изменения.


Private Declare Function ShellExecute _
Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal Operation As String, _
ByVal Filename As String, _
Optional ByVal Parameters As String, _
Optional ByVal Directory As String, _
Optional ByVal WindowStyle As Long = vbMinimizedFocus _
) As Long

Sub OpenLinksMessage()
Dim olMail As Outlook.MailItem
Dim Reg1 As RegExp
Dim M1 As MatchCollection
Dim M As Match
Dim strURL As String
Dim lSuccess As Long

Set olMail = Application.ActiveExplorer().Selection(1)

Set Reg1 = New RegExp

With Reg1
.Pattern = "(https?[:]//([0-9a-z=\?:/\.&-^!#$%;_])*)"
.Global = True
.IgnoreCase = True
End With

If Reg1.Test(olMail.Body) Then

Set M1 = Reg1.Execute(olMail.Body)
For Each M In M1
strURL = M.SubMatches(0)
Debug.Print strURL
If InStr(strURL, "unsubscribe") Then GoTo NextURL
If Right(strURL, 1) = ">" Then strURL = Left(strURL, Len(strURL) - 1)

lSuccess = ShellExecute(0, "Open", strURL)
DoEvents

NextURL:
Next
End If

Set Reg1 = Nothing
End Sub

В скрипте нет ошибок. Хотите изменить сценарий, чтобы в результате был сохранен файл с именем «Subject.linkeddocumentname.filetype» (моя терминология).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...