vbaでメール。その3 メールファイル(.emlファイル)の文字コード

jisです。shift-jisではなく、jisという文字コードがあります。

vbaから使う場合はこちらの記事を参考に、CDOで処理することを強くおすすめします。

テキストとして処理しようとするととんでもなく大変です。

vbaでメール。その2 AttachmentとAttachmentsの違い。

vbaでメール操作をした時に躓いた点を書いておきます。

AttachmentとAttachmentsは別物。

Attachmentはoutlookのインスタンスを生成した時、使うもの。vbaでメールを送受信する時に使います。

そして添付ファイルを保存する場合、Saveasfileを使う。

詳細はMSDNを参考に。

Attachmentsは別物で、メールファイルを扱う時に使うもの。

そして添付ファイルを保存する場合、Savetofileを使う。

実際のコードはこちらを参考にして下さい。

vbaでメール。その1 メールファイル(.emlファイル)を操作。

vbaでメール受信は、「vba メール」などで検索すると

参考になるサイトが色々見つかります。

今回はそれではなく、vbaでemlファイルを操作する方法を記しておきます。

使い方
エクセルファイルと同じフォルダに.emlファイルを置き、
以下を実行するとファイルの内容をシート内に、同じフォルダに添付ファイルを展開します。

 

参考画像

マクロ適用前はこんな感じです。

フォルダ内にエクセルファイルとemlファイルのみ

適用後はこのように、シート内にメールの送信者、件名など。フォルダ内に添付ファイルをコピーします。

同じ名前の添付ファイルは上書きしますので、避けたい場合は

msg.Attachments(i).SavetoFile (ThisWorkbook.Path & “\” & msg.Attachments(i).Filename)

msg.Attachments(i).SavetoFile (ThisWorkbook.Path & “\” & CDbl(Timer) &

msg.Attachments(i).Filename)

などとして下さい(ミリ秒を付け加えています)