【こんなライブラリが欲しい】Outlook 条件を指定して対象メールを移動
お世話になっております。
Outlookメール関連では
- Outlook 条件を指定して対象メール件数取得
- Outlook 条件を指定して対象メール保存
はあるものの、この条件指定の「メール移動」機能はないようだったので、スクリプトを修正してみました。
(WinActor6.3.0/Outlook2016で動作確認)
なお、メールの条件判定や移動をするライブラリは現在、以下のプチライブラリがあります。
<修正元のライブラリ>
20_メール関連>01_Outlook操作>Outlook 条件を指定して対象メール件数取得.ums6
<スクリプト修正・追加>
【修正箇所①】---冒頭の宣言
searchFolder = !検索対象フォルダ!
splitChr = !区切り文字|\,/,#,$,%!
↓
searchFolder = !検索対象フォルダ!
dstFolder = !移動先フォルダ! ' メールを移動させる対象のフォルダ
splitChr = !区切り文字|\,/,#,$,%!
【修正箇所②】---パラメタの有効性確認
If searchFolder = "" Then
Err.Raise 1, "", "検索対象フォルダを入力してください。"
WScript.Quit()
End If
↓
If searchFolder = "" Then
Err.Raise 1, "", "検索対象フォルダを入力してください。"
WScript.Quit()
End If
If dstFolder = "" Then
Err.Raise 1, "", "移動先フォルダを入力してください。"
WScript.Quit()
End If
【修正箇所③】---メール保存メイン実行部
SetUMSVariable $検索件数$, oOlSubjectResults.Count
End Sub
↓
SetUMSVariable $検索件数$, oOlSubjectResults.Count
If oOlSubjectResults.Count = 0 Then
WScript.Quit
End If'移動先フォルダを設定
Dim oOlStores2
Dim oOlStore2
Dim oOlFold2
arrayStrings = Split(dstFolder, splitChr)
Set oOlStores2 = oOlns.Stores
Set oOlStore2 = oOlStores2(arrayStrings(0))
Set oOlFold2 = oOlStore2.GetRootFolder
For i = LBound(arrayStrings) + 1 To UBound(arrayStrings)
Set oOlFold2 = oOlFold2.Folders(arrayStrings(i))
Next' メール移動
Dim i
For i = oOlSubjectResults.Count To 1 Step - 1
oOlSubjectResults(i).Move oOlFold2
NextEnd Sub
メールの移動に関しては、
わざわざWinActorを使うよりもメールの自動振り分けを使ったほうが正確であることもあります。
しかし、ライブラリでメールを保存した後にそのメールを移動させたい、のような需要がもしあるなら、
参考になれば幸いです。
そしてできれば、動作がもっとちゃんと保障される公式ライブラリとして展開してくれればうれしいです。