Багато користувачів прагнуть до методу швидкого вилучення всіх електронних адрес із тіла електронної пошти Outlook або навіть кількох електронних листів. Тому в цій статті ми розглянемо цю проблему та поділимось швидким методом, який використовує VBA.
Коли хтось надсилає вам електронний лист, тіло якого містить список адрес електронної пошти, якщо ви хочете скористатися цими адресами електронної пошти з якихось причин, таких як додавання до папки "Контакти" чи інших, спочатку потрібно витягти всі адреси електронної пошти в тілі . Отже, далі, ми покажемо вам, як цього досягти за допомогою VBA.

Витягніть усі адреси електронної пошти з основи кількох електронних листів Outlook
- З самого початку запустіть програму Outlook.
- Потім, потрапивши у головне вікно Outlook, ви можете натиснути клавіші “Alt + F11”.
- Далі у новому вікні “Microsoft Visual Basic for Applications” потрібно відкрити невикористаний модуль або просто вставити новий.
- Пізніше вам доведеться скопіювати та вставити наступний код VBA в цей модуль.
Sub ExtractEmailAddresses_BodyofMultipleEmails()
Dim objSelection As Outlook.Selection
Dim objMail As Outlook.MailItem
Dim i, n As Long
Dim objWordApp As Word.Application
Dim objWordDocument As Word.Document
Dim strEmailAddresses As String
Dim objFileSystem As Object
Dim strTextFile As String
Dim objTextFile As Object
Set objSelection = Outlook.Application.ActiveExplorer.Selection
If Not (objSelection Is Nothing) Then
i = 0
n = 1
On Error Resume Next
For i = objSelection.count To 1 Step -1
Set objMail = objSelection.Item(i)
objMail.Display
Set objWordDocument = objMail.GetInspector.WordEditor
Set objWordApp = objWordDocument.Application
Set objSearchRange = objWordDocument.Range
'Find the email addresses via wildcards
With objWordApp.Selection.Find
.Text = "[A-z,0-9]{1,}\@[A-z,0-9,.]{1,}"
.MatchWildcards = True
.Execute
End With
While objWordApp.Selection.Find.Found
'Get a list of email addresses in the body
strEmailAddresses = strEmailAddresses & n & ": " & objWordApp.Selection.Text & vbCrLf
objWordApp.Selection.Find.Execute
n = n + 1
Wend
objMail.Close olDiscard
Next
End If
'Create a new Text file
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
strTextFile = "E:\Extracted Email Addresses-" & Format(Date, "YYYYMMDD") & ".txt"
Set objTextFile = objFileSystem.CreateTextFile(strTextFile, True)
'Input the list of extracted email addresses into this Text file
objTextFile.WriteLine (strEmailAddresses)
objTextFile.Close
MsgBox "Completed!", vbInformation, "Extract Email Addresses"
End Sub
- Пізніше ви можете вийти з поточного вікна редактора VBA і продовжувати додавати новий макрос на панель швидкого доступу.
- Після цього вам доведеться змінити рівень захисту макросів Outlook на низький.
- Нарешті, можна спробувати.
- По-перше, у списку електронних листів виберіть кілька електронних листів Outlook, з тіла яких потрібно витягти адреси електронної пошти.
- Потім натисніть на нову кнопку на панелі швидкого доступу.
- Коли ви отримуєте повідомлення із запитом "Завершено", ви можете перейти до заздалегідь визначеної папки в коді VBA, щоб знайти новий файл .TXT.
- Відкрийте цей файл, і ви побачите, що всі витягнуті адреси електронної пошти, показані як наступний знімок екрана:
Захист Outlook від шкідливих макросів
Якщо ви встановили, що ваш Outlook дозволяє всі макроси, вам слід стежити за усіма макросами, замаскованими в невідомі електронні листи. Це тому, що вони можуть містити багато прихованих вірусів, які можуть безпосередньо спричинити корупцію в Outlook. Вірус-інфікований файл PST досить важко відновити. На той момент, можливо, ваша остання інстанція є сильнодіючою та надійною Виправлення в Outlook утиліта, наприклад DataNumen Outlook Repair. Він може відновити файл Outlook незалежно від того, наскільки великим є збиток.
Вступ автора:
Ширлі Чжан - експерт із відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі корумпований sql та перспективні програмні продукти для ремонту. Для отримання додаткової інформації відвідайте WWW.datanumen.com


