Office 2010 を使用しています。
アクセスには、クライアントの連絡先情報を含むフォームがあります。
クライアントの電子メールの横にあるボタンをクリックすると、OUTLOOKが開き、フィルタが適用されて、そのクライアントからの電子メールのみが OUTLOOK に表示されます。
Private Sub filterOutlook_Click()
'bit of code here which checks if outlook is open, if not then"
Shell "Outlook.exe /cleanviews"
'email of contact field(hyperlink) is retreived
contactname = Left$([E-mail contact].Value, InStr([E-mail contact].Value, "#") - 1)
filtermail contactname
End Sub
フィルターメール機能は次のとおりです。
Public Sub filtermail(name As String)
Dim objView As View
Set objView = outlook.ActiveExplorer.CurrentView
If LenB(name) = 0 Then
objView.Filter = vbNullString
Else
objView.Filter = _
"http://schemas.microsoft.com/mapi/proptag/0x0065001f CI_STARTSWITH '" & name & "'"
End If
objView.Save
objView.Apply
End Sub
コードは正常に動作しますが、現在OUTLOOKで開いているフォルダーにのみフィルターを適用します。
複数のアカウントを持っている場合は、まず受信トレイまたは送信済みフォルダーを開いてから、フィルターを適用する必要があります。かなり面倒です。
上記のコードを、Outlook で検索バーを制御できるコードに置き換えたいと思います。 検索バー
したがって、「すべてのメール アイテム」または「すべての Outlook アイテム」を選択し、結果をアカウントまたは日付でランク付けし、次のクエリ「system.structuredquery.virtual.from:(name)」および「to:(name)」を使用します。
検索バーを手動で使用すると、必要な結果が得られます。さまざまなアカウントやフォルダーにまたがるクライアントのすべての履歴を確認できます。しかし、それを自動化することは素晴らしいことです。
それは可能ですか、どうすればこれを達成できますか。
要約すると、電子メールの横にあるボタンをクリックすると、Outlook が開き、その電子メールとの間のメッセージが表示されます。
ありがとう