メール アドレスの送信者の最初の文字に基づいて受信メールを並べ替えたいユーザーがいます。他の質問でいくつかのことを見つけましたが、メールアドレスに基づいて実際に並べ替えるのに問題があります.
Sub FilterTest()
Dim olApp As Outlook.Application
Dim olNS As Outlook.NameSpace
Dim olInbox As Outlook.MAPIFolder
Dim MyFolder As Outlook.MAPIFolder
Dim SenderName As String
Set olApp = Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")
Set olInbox = Application.Session.Folders("me@company.com").Folders("Inbox")
Set MyFolder = Nothing
For i = olInbox.Items.Count To olInbox.Items.Count Step -1
olInbox.Items.Item (i)
SenderName = (olInbox.Items.Item(i).SenderEmailAddress)
If SenderName Like "a*" Or SenderName Like "b*" Or SenderName Like "c*" Or SenderName Like "d*" Or SenderName Like "e*" Or SenderName Like "f*" Or SenderName Like "g*" Then
MsgBox ("From a-g")
Set MyFolder = Application.Session.Folders("me@company.com").Folders("test")
End If
If SenderName Like "h*" Or SenderName Like "i*" Or SenderName Like "j*" Or SenderName Like "k*" Or SenderName Like "l*" Or SenderName Like "m*" Or SenderName Like "n*" Or SenderName Like "o*" Then
MsgBox ("From h-o")
Set MyFolder = Application.Session.Folders("me@company.com").Folders("test 2")
End If
If SenderName Like "p*" Or SenderName Like "q*" Or SenderName Like "r*" Or SenderName Like "s*" Or SenderName Like "t*" Or SenderName Like "u*" Or SenderName Like "v*" Or SenderName Like "w*" Or SenderName Like "x*" Or SenderName Like "y*" Or SenderName Like "z*" Then
MsgBox ("From p-z")
Set MyFolder = Application.Session.Folders("me@company.com").Folders("test 3")
End If
If MyFolder Is Nothing Then
MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER"
Else
olInbox.Items.Item(i).Move MyFolder
End If
Next
End Sub
これを行うにはもっと良い方法があると確信していますが、何も得られません... ifステートメントには決して入りません。
このコードを機能させる方法を知っている人はいますか? それとも、メール アドレスの最初の文字に基づいて並べ替える別の方法でしょうか?