客先から生産指示(品番・数量・金額など)の文字データとともに
別メールで生産図面が添付ファイルで送られてきます
少ない場合は手動で良いのですが
毎日20ファイル位あるとかなり面倒くさい(そうです)(他社での話です)

outlookVBAはあまりいじったこと無いのですがなんとかしてくれ
とのことで・・・

メール本文中の「品番:」のあとの文字列をファイル名として
添付ファイルを保存します
メールを複数選択して以下のコードを実行します
一応定形メール表題「ほげほげ」を確認します
outlookは使っていないのでもっといいやり方あったら教えて下さい

以下コード

Const HZNpath = “C:\Users\xxxx\Desktop\”’デスクトップに保存します

Sub 添付ファイル保存()
Dim objInbox As Object
Dim objFolder As Object
Dim strPath As String
Dim objItem As Object
Dim i As Long
Dim myPN As String
Dim pos As Integer

Set objInbox = GetNamespace(“MAPI”).GetDefaultFolder(olFolderInbox)
‘添付ファイルがあるメールのフォルダを指定します。2階層以上ある場合は「.Folders.Item(<フォルダ名>)」を追加してください。
Set objFolder = objInbox ‘.Folders.Item(“受信トレイ”) ‘.Folders.Item(“サブフォルダ”)

‘添付ファイルの保存先をパスで指定します。
strPath = HZNpath

For Each objItem In objFolder.Items
If TypeName(objItem) = “MailItem” And objItem.Subject Like “*ほげほげ*” Then ‘And objItem.UnRead
myPN = objItem.Body
pos = InStr(myPN, “品番:”)
myPN = Mid$(myPN, pos + 4)
myPN = Left$(myPN, InStr(myPN, vbCrLf) – 1) ’品番:の後ろの改行までを品番と見る
myPN = Trim$(myPN)
For i = 1 To objItem.Attachments.Count
‘添付ファイルに拡張子がある場合のみ処理します。
’今回の添付ファイルは図面で全て「.tif」です
If InStr(objItem.Attachments.Item(i), “.”) <> 0 Then
objItem.Attachments.Item(i).SaveAsFile strPath & myPN & “.tif”
End If
Next i
End If
Next objItem

Set objItem = Nothing
Set objInbox = Nothing
Set objFolder = Nothing

End Sub