2016-08-15 107 views
1

添付ファイルとして他のOutlookメール(* .msg)を持つOutlookメールを受信して​​います。私はtxt形式(またはWordが開くことができる何か)でそれらを必要とします。VBA Outlookでメールアイテムを開き、テキストとして保存するコード

1)はテキストファイルではなく、MSGファイルとしての私のドライブに添付ファイルを保存します。

は、私は2つの選択肢を持っているようです。私はそれを手動で行うか、コードで行うかはわかりません。

2)添付ファイルをmsgファイルとして保存します(私はそれを行うのでここにマクロがあります)。次に、各ファイルを開いてtxtに保存します。ただし、Outlook 2010のファイル - >開くには、msgファイルを開くオプションはありません。私がファイルを開くために見ることができる唯一の方法は、ファイルエクスプローラでフォルダを(手動で)表示してダブルクリックすることです。オープンしたら、私はファイル - > SaveAsを使うことができます。

3)VBAでファイルを開いて保存できました。または私はできますか? (Outlookで使用すると、WordやExcelでできる方法をマクロを記録することができないようだ、または私はそれを試してみましたでしょう。)

編集:私はドミトリの提案を試みたが、これは動作するようです:

Dim oNamespace As NameSpace 
Dim oFolder As Folder 


' Get a reference to a NameSpace object. 
    Set oNamespace = Application.GetNamespace("MAPI") 

' Open the file containing the shared item. 
    Set oSharedItem = oNamespace.OpenSharedItem("D:\temp.msg") 

' Save the item to the folder. 
    oSharedItem.SaveAs "D:\temp.txt" 
+0

まだ問題がありますか? – 0m3r

+0

いいえ、私は上のコードのより完全なバージョンで作業しました。 –

答えて

1

埋め込みメッセージの添付ファイルをMSGファイル(Attachment.SaveAsFile)として保存してから、Namespace.OpenSharedItemを使用して開きます。

あなたがそれらを保存せずにメッセージとして埋め込まれたメッセージの添付ファイルにアクセスする場合は、拡張MAPI(IAttach::OpenProperty(PR_ATTACH_DATA_OBJ, IID_IMessage, ...)、C++またはのみDelphi)またはRedemption(それがAttachment.EmbeddedMsgプロパティを公開します)のいずれかが必要と思います。

+0

素早い応答をありがとうが、私はNamespace.OpenSharedItemに慣れていません。どのように "C:\ documents \ file.msg"のようなファイルを開いてテキストファイルとして保存すればよいでしょうか? –

+0

Namespace.OpenShared ItemはMailItemを返し、MailItem.SaveAs(..、olTxt)を呼び出します。 https://msdn.microsoft.com/en-us/library/office/ff869601.aspx?f=255&MSPPError=-2147217396 –

+0

\tの詳細については、こちらを検索しているうちに、ほとんどの答えはあなたから来ました、ドミトリー!答えにコード例を含める必要があります。恥ずかしがり屋ではなく、専門知識が必要です。 –

関連する問題