OutlookVBAを介してすべての受信メールをハードドライブに自動保存する方法

今すぐ共有:

ユーザーは、Outlookとは別に表示したり、他の人と共有したりするために、電子メールをハードドライブに保存したい場合があります。 この記事では、VBAを介してそれを自動的に行う方法を紹介します。

Outlookからメールをエクスポートする

OutlookメッセージファイルすべてのインターネットユーザーがOutlookを電子メールクライアントとして使用しているわけではなく、別のクライアントを使用している可能性があります。 また、実際の電子メールを送信せずに、電子メールを誰かと共有する必要がある場合もあります。 また、文書化と精査の目的で、電子メールが証拠として提示されることがよくあります。 このようなシナリオでは、Outlookは電子メールを.msgまたは.htmlファイルとして個別にエクスポートする方法を提供します。 次のVBAスクリプトは、ユーザーの介入なしに、すべての受信メールをハードドライブ上の事前定義された場所にHTML形式で自動的に保存します。 保存すると、電子メールクライアントを必要とせずに任意のインターネットブラウザで電子メールを表示できます。

OutlookVBAスクリプト

以下は完全なOutlookVBAスクリプトです。

Private WithEvents Items As Outlook.Items

Private Count As Integer

Private Sub Application_Startup()
         Dim objApp As Outlook.Application
         Dim objNameSpace As Outlook.NameSpace   

         '        Get the items in the Inbox folder
         Set objApp = Outlook.Application
         Set objNameSpace = objApp.GetNamespace("MAPI")
         Set Items = objNameSpace.GetDefaultFolder(olFolderInbox).Items       
         '        Initialize count
         Count = 1
End Sub
 
Private Sub Items_ItemAdd(ByVal objItem As Object)
         On Error GoTo ShowError        

         Dim objMail As Outlook.MailItem     

         '        Check if the item is a mail. If yes, then save it as a HTML file and update Count
         If TypeName(objItem) = "MailItem" Then
                   Set objMail = objItem
                   objMail.SaveAs "C:\MyEmails\MyEmail" & CStr(Count), olHTML
                   Count = Count + 1
         End If      

         Exit Sub

ShowError:
         MsgBox Err.Number & " - " & Err.Description
End Sub

スクリプトの実行方法

メディア掲載 Altキー+ F11 Outlook VBA エディターを開き、上記のコードを「ThisOutlookSession」に貼り付けてください。このスクリプトを実行する前に、「C:\MyEmails」フォルダーが存在し、ユーザーがそのフォルダーへの書き込み権限を持っていることを確認してください。また、このスクリプトを実行する前に、「ツール」メニューから Microsoft Outlook XX オブジェクト ライブラリをプロジェクト参照に追加する必要があることに注意してください。ここで、XX はライブラリのバージョンです。

スクリプトを理解する

スクリプトでは、「Items_ItemAdd」ルーチンが受信トレイ フォルダーに受信するすべてのアイテムでトリガーされます。「TypeName」関数は、アイテムが電子メールである場合にのみルーチンが続行され、他の種類の Outlook オブジェクトでは続行されないことをさらに保証します。たとえば、「送信済みアイテム」フォルダーから受信トレイに電子メールをドラッグした場合でも、ルーチンは引き続き動作し、処理を実行します。「Items_ItemAdd」は、電子メールがメインの受信トレイ フォルダーに追加された場合にのみトリガーされることに注意してください。メインの受信トレイ フォルダー内にネストされたフォルダーがある場合、電子メールがそれらのフォルダーに追加されてもコードは動作しません。他のフォルダーでも動作させるには、「Application_Startup」ルーチンで「Items_ItemAdd」をその特定のフォルダーに接続する必要があります。上記のスクリプトでは、olHTML 形式を olMSG、olRTF、olDoc、または olTxt 形式に置き換えることができます。保存される各メールのデフォルトの命名形式は「MyEmail##」です。ここで「##」は1から始まる連番です。例えば、このスクリプトを実行した後の12番目の受信メールは「MyEmail12」として保存されます。

Outlookの障害後のデータ回復

Outlookが分割され、ユーザーが大量のデータを失うことは非常に珍しいシナリオではありません。 このような状況からの回復は、非常に困難で時間のかかる作業になる可能性があります。 そのような場合にあなたの人生を楽にするために、あなたは使用することができます Outlookのデータ復旧 効率的でバグのない回復のためのツール。

著者紹介:

メアリーアンダーウッドは、のデータ復旧の専門家です DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 dwgリカバリ (NAIST) と rar 回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。