dポイントプレゼントキャンペーン実施中!

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

A 回答 (3件)

>受信メールから.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
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございました。

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

お礼日時:2004/08/10 16:14

えーと、えーと、書き方悪かったか。


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ですから。
    • good
    • 0
この回答へのお礼

何度もありがとうございました。

お蔭様で、すべてうまく行きました。

お礼日時:2004/08/11 10:07

>件名をファイル名にすることは出来ないでしょうか?



myitem.SaveAs "C:\" & Format(Date, "yyyymmdd") & ".msg", olMSG

ここんとこで、保存してるのはお分かりと思うんですが
上に挙げた例は、日付を加工してファイル名にしてます。

でメールの件名は、MailItemのsubjectプロパティで取得できますんで
ここでは、Format関数のところをmyitem.subjectとかにすれば
できるかと。

あと、ご存知かも知りませんが、
コードを書く場所は、ThisOutlookSession の
Application_NewMailイベントに書けば、
新着メール到着時にマクロが動きます。
    • good
    • 0
この回答へのお礼

再度のご回答、ありがとうございました。

myitem.SaveAs "C:\" & Format(myitem.Subject) & ".msg", olMSG
とマクロを直してやってみたところ、半歩、前進しました。
英数字だけの件名だとOKですが、全角文字が入っているとエラーになってしまいます。

あと「ThisOutlookSession のApplication_NewMailイベント」というのは
Outlookのどこのことでしょうか?
教えて下さい。

お礼日時:2004/08/10 17:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!