★画像の保存場所は
C:\Users\zzzzzz\Desktop\PC移動受け\写真(現在)\170217\楽天
などになります。
zzzzzzは実際は個人名です。
★マイクロソフトアウトルックの保存場所は
C:\Users\zzzzzz\AppData\Local\Microsoft\Outlook\Outlook.pst
でした。その「自分の出品必要」というトレイになります。
▽1
●
a-kuma3 ●500ポイント ベストアンサー |
Excel VBA でという指定がありますが、Excel のファイルに保存するわけでもなく、Excel を起動する意味がないと思うので、VBScript のコードです。
base_dir = "C:\Users\zzzzzz\Desktop\PC移動受け\写真(現在)\" Sub save_mail Set re = New RegExp re.Pattern = "^(\d{6})\d{3}" Set fs = CreateObject("Scripting.FileSystemObject") Set outlook = WScript.CreateObject("Outlook.Application") Set namespace = outlook.GetNamespace("MAPI") Set inbox = namespace.GetDefaultFolder(6) ' InBox Set mail_folder = inbox.Folders("自分の出品必要") For i = 1 To mail_folder.Items.Count Set mail = mail_folder.Items(i) Set ma = re.Execute(mail.Subject) If ma.Count > 0 Then folder = ma(0).SubMatches(0) file = mail.Subject If Not fs.FolderExists(base_dir & folder) Then fs.CreateFolder(base_dir & folder) fs.CreateFolder(base_dir & folder & "\楽天") End If If Not fs.FileExists(base_dir & folder & "\楽天\" & file & ".txt") Then Set f = fs.CreateTextFile(base_dir & folder & "\楽天\" & file & ".txt", True) f.Write(mail.Body) f.Close Else wscript.echo "File already exists. " & file End If Else wscript.echo "Bad title. " & mail.Subject End If Next ' outlook.Quit ' Outlook を終了させる Set outlook = Nothing Set fs = Nothing End Sub call save_mail
上記のコードを、savemail.vbs というような名前で保存して、コマンドプロンプトを起動して
d> cscript savemail.vbs
という感じで実行します。
# d> は、プロンプトのつもりです。
保存先の根っこになるディレクトリを、スクリプトの先頭で書いてますので、適宜変更してください。
他にも、「楽天」というサブディレクトリ名とか、受信メールのフォルダなど埋め込みで書いているところがいくつかあります。
メールの件名が数字9ケタで始まってない場合と、既に同名のファイルが存在する場合には、コマンドプロンプトにメッセージを出して処理をスキップするようにしています。
スクリプトの最後の方に、outlook.Quit という行をコメントアウトしていますが、これを活かすと起動中の Outlook を終了させます。
普段、Outlook を起動しっぱなしにしているなら、コメントアウトしたままの方が使いやすいと思います。
逆に、Outlook は必要なときにしか起動せず、メールを確認したらすぐに閉じてしまうような使い方をしているなら、コメントを外した方が良いと思います。