⑤同じ名前のファイルが既にあった場合の対応
Dim objFSO As Object と
Set objFSO = CreateObject("Scripting.FileSystemObject") で
Set objFSO = CreateObject("Scripting.FileSystemObject") で
Scripting.FileSystemObjectが使える様にする。
objFSO.FileExists(strFileName) は、ファイルが既に存在るかどうかを知る方法
While objFSO.FileExists(strFileName)
strFileName = SAVE_PATH & Left(.Filename, InStrRev(.Filename, ".") - 1) _
& "-" & c & Mid(.Filename, InStrRev(.Filename, "."))
Wend
strFileName = SAVE_PATH & Left(.Filename, InStrRev(.Filename, ".") - 1) _
& "-" & c & Mid(.Filename, InStrRev(.Filename, "."))
Wend
でファイル名と拡張子の間に”-” 入れていきます。
While objFSO.FileExists(strFileName) で、ファイル名の重複がなくなったら
SaveAsFile strFileName 保存します。
これも、ちょっと複雑なので Dir関数を使って
attFileName = objAttach.Filename
D o While Dir(SAVE_PATH & attFileName) <> ""
attFileName = "・" & attFileName
Loop
D o While Dir(SAVE_PATH & attFileName) <> ""
attFileName = "・" & attFileName
Loop
.SaveAsFile SAVE_PATH & attFileName
でも十分でした。ちょっと手抜きですが、ファイル名の重複があった場合に
ファイル名の前に ・ を増やしていきましたが。
自分で言うのも何ですが、こちらの方(Dir関数)がシンプルで分かりやすいですね。
以上で、OutLookの7添付ファイルの自動保存は終わりです。
オブジェクト変数、CreateObject("Scripting.FileSystemObject")などのイメージだけで
十分でしょう。
ここまで、レアな事を考える人も少ないと思いますが、やれば何でもできる
そう思っていただければ幸いです。