• ベストアンサー

Outlookでのメールの自動ファイル化

Outlookで受信メールを.msg形式にして、自動的にファイル化したいと思っております。 自動仕訳ウィザードを使えば、メール受信時に.exeを自動的に実行させることが出来るまでは分かりました。 ただ肝心のexeの作り方が分かりません。 受信メールから.msgファイルを作る.exeの作り方を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>受信メールから.msgファイルを作る.exeの作り方を教えて下さい。 それは知らんけど、マクロ使えば 個別にファイルに保存できます。 以下コードはずっと前書いたもんだけど、 まぁ参考に。 Sub test2()   Dim ns As NameSpace   Dim myFolder As MAPIFolder   Dim myitem As MailItem        'ネームスペース取得   Set ns = GetNamespace("MAPI")   '受信フォルダを取得   Set myFolder = ns.GetDefaultFolder(olFolderInbox)      '受信フォルダのアイテムをひとつずつチェック   For Each myitem In myFolder.Items     'アイテムが未読の時、保存     If myitem.UnRead Then       myitem.SaveAs "C:\" & Format(Date, "yyyymmdd") & ".msg", olMSG     End If   Next          'フォルダ、ネームスペース開放   Set myFolder = Nothing   Set ns = Nothing End Sub

Tulip99
質問者

お礼

ご回答、ありがとうございました。 早速、やってみましたが、ファイル名が重なってしまい最後の1件しか残りませんでした。 そこで更にお聞きしたいのですが、件名をファイル名にすることは出来ないでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

えーと、えーと、書き方悪かったか。 Format関数と差し替えってこと。 myitem.SaveAs "C:\" & myitem.Subject & ".msg", olMSG ThisOutlookSessionは、VBE(VisualBasicEditor)の 画面の左中央のプロジェクトエクスプローラで MicrosoftOutlookObjectsの中。 ダブルクリックすると、コードウィンドウが開くので その上部のコンボボックスふたつで ApplicationとNewMailを選ぶと Private Sub Application_NewMail() End Sub って出るんで、中にコードをコピー。 ちなみに私が例示したコードの Sub test2() End Sub って部分はいらないからね。中身を中身にcopyですから。

Tulip99
質問者

お礼

何度もありがとうございました。 お蔭様で、すべてうまく行きました。

すると、全ての回答が全文表示されます。
回答No.2

>件名をファイル名にすることは出来ないでしょうか? myitem.SaveAs "C:\" & Format(Date, "yyyymmdd") & ".msg", olMSG ここんとこで、保存してるのはお分かりと思うんですが 上に挙げた例は、日付を加工してファイル名にしてます。 でメールの件名は、MailItemのsubjectプロパティで取得できますんで ここでは、Format関数のところをmyitem.subjectとかにすれば できるかと。 あと、ご存知かも知りませんが、 コードを書く場所は、ThisOutlookSession の Application_NewMailイベントに書けば、 新着メール到着時にマクロが動きます。

Tulip99
質問者

お礼

再度のご回答、ありがとうございました。 myitem.SaveAs "C:\" & Format(myitem.Subject) & ".msg", olMSG とマクロを直してやってみたところ、半歩、前進しました。 英数字だけの件名だとOKですが、全角文字が入っているとエラーになってしまいます。 あと「ThisOutlookSession のApplication_NewMailイベント」というのは Outlookのどこのことでしょうか? 教えて下さい。

すると、全ての回答が全文表示されます。

関連するQ&A