カテゴリに関して、OL 辞書の実装にいくつかのバグ/機能があると思います-検索ステートメントは機能するはずですが、機能しないことに同意します。
これに対する 1 つの回避策は、代わりにスポットライト検索を行うことです。OL ディクショナリを使用するよりもおそらく高速であるため、これが望ましい場合もあります。set theContacts to ...
つまり、行を次のように置き換えます。
set currentIdentityFolder to quoted form of POSIX path of (current identity folder as string)
set theContactIDs to words of (do shell script "mdfind -onlyin " & currentIdentityFolder & " 'kMDItemContentType == com.microsoft.outlook14.contact && com_microsoft_outlook_categories == " & id of theCategory & "' | xargs -I % mdls -name com_microsoft_outlook_recordID '%' | cut -d'=' -f2 | sort -u | paste -s -")
set theContacts to {}
repeat with thisContactID in theContactIDs
set end of theContacts to contact id thisContactID
end repeat
-- For example display the first name of the first contact
display dialog first name of (item 1 of theContacts) as string
mdfind
これにより、必要な連絡先のスポットライト検索 (コマンド) が実行されます。
- 現在のIDフォルダーのみを検索します
- 連絡先のみを検索します
- 「採用担当者」カテゴリの ID でマークされた連絡先のみが返されます。
mdfind コマンドの出力は、このクエリに一致するファイルのリストです。したがって、この出力は にパイプされmdls
、カテゴリを含むすべてのスポットライト検索可能なフィールドがリストされます。連絡先 ID の単純なリストを AppleScript に返す必要があります。
連絡先 ID のリストは、単純な繰り返しループを使用して連絡先のリストに変換できます。