今日、たまたま[20 メール関連] - [01 Outlook操作] - [Outlook 条件を指定して対象メール保存.ums6]を使う機会があって、msg形式でメール保存されたはいいものの、そこからmsgファイルを読み込むライブラリが見つけられなくて、ぬぉーーーーーっ!!ってなったのでスクリプト書いてみた。
ライブラリにも登録しておきましたー、寄ってってね?
1.設定イメージはこんな感じ。
2.スクリプトはこんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
GetMailBody(!msgファイルパス!) Function GetMailBody(MailFilePath) Dim oApp Set oApp = Nothing Dim oOlns 'As Outlook.NameSpace Dim oMItem 'As Object On Error Resume Next '起動済みのOutlookをクラス名を指定して取得 Set oApp = GetObject(, "Outlook.Application") On Error GoTo 0 'oAppがNothingなら If oApp Is Nothing Then Err.Raise 1, "", "Outlookが起動されていません。" 'WScript.Quit() Else Dim myOlExp Set myOlExp = oApp.ActiveExplorer If myOlExp Is Nothing Then Err.Raise 1, "", "Outlookが起動されていません。" WScript.Quit() End If End If Set oOlns = oApp.GetNamespace("MAPI") Set oMItem = oOlns.OpenSharedItem(MailFilePath) With oMItem SetUMSVariable $件名$, .Subject SetUMSVariable $受信日時$, .ReceivedTime SetUMSVariable $本文$, .Body .Close olDiscard End With GetMailBody = RsltStr End Function |
3.備考はこんな感じ。
ファイル保存されたメール(.msg)を読み込みます。
一応、取り込むメールの本文が引用文含めてすんごく長くなりそうなら、「フローチャート画面」のシナリオ情報から「変数値の文字数を制限する」のチェックを外しとくことをおすすめします?