オブジェクトはオブジェクトのAddressEntries
コレクションAddressEntry
です。そのままコレクションに
直接インデックスを付けると、指定されたパラメーターに基づいて単一のオブジェクトが返されます。パラメータは、インデックス番号またはアイテムのデフォルト プロパティのいずれかです。AddressEntries
AddressEntry
Index
Index
AddressEntry
項目の既定のプロパティはプロパティであるため.Name
、返されるのは、コレクション内の最初の項目が.Name
プロパティに一致するものです。
AddressEntry
プロパティで一致するコレクション内のすべてのオブジェクトを返したい場合は、コレクション.Name
をループする必要があります。
さて、.Net では、 を使用してコレクションを反復処理できます。VBAFor...Next
でもこれを実行できると思いますが、思い出すことはできません。例えば:
Set olApp = CreateObject("Outlook.Application")
Set myNamespace = olApp.GetNamespace("MAPI")
Set aList = myNamespace.AddressLists.Item("Global Address List")
Set aEntries = aList.AddressEntries
For each aEntry in aEntries
if aEntry.Name="" + ExchangeName + "" Then
'Do something with aEntry object
End If
Next
何らかの理由でそれが機能しない場合は、GetFirst
およびGetNext
メソッドを使用してコレクションを反復処理できます。
例えば:
Set olApp = CreateObject("Outlook.Application")
Set myNamespace = olApp.GetNamespace("MAPI")
Set aList = myNamespace.AddressLists.Item("Global Address List")
Set aEntries = aList.AddressEntries
Set aEntry = aEntries.GetFirst
Do While Not aEntry is Nothing
if aEntry.Name="" + ExchangeName + "" Then
'Do something with aEntry object
End If
Set aEntry = aEntries.GetNext
Loop
アルファベット順の並べ替えについては、Sort Methodをご覧ください。
そして、機能を構築する限り、
...入力した文字列で始まるすべての一致が表示されます。
一致をどのように「表示」したいか、または文字列をどこに入力したいかわかりません。しかし、一般的な考え方は、入力パラメータ(例:"MatchName" As String
)を受け取り、上記のようなループを実行して、見たいプロパティの文字列ですべての一致を見つけてから、配列などを返す関数を作成することです。情報を「提示」するために使用できます。
動的にしたい場合は、「入力したとおりに」リストが更新されるように、KeyPress
イベントから更新手順を実行できます。単語を入力したときにコレクション全体を実行しないようにするために、おそらく配列を保存し、追加の文字を入力するたびに、その配列を繰り返し処理して、一致しないものを削除する (結果を絞り込む) ことができます。それが起こる前に、おそらく文字が削除されたかどうかを確認するために何らかのチェックが必要になるでしょう (たとえば、テキストボックス内の文字列の長さをチェックする)。これにより、プログラムにAddressEntries
コレクションのチェックを再実行するように指示されます (結果を広げます)。 )。
とにかく、それはあなたがそれを行うことができる1つの方法についての一種の一般的な考えです.