読者です 読者をやめる 読者になる 読者になる

三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク



回答下書き VBSからOutlook 連絡先を探す で いいなら....

Outlook VBS

30人ほどのメールアドレスが正しく入力できているか確認しやすい… - 人力検索はてな

ちょっと自信がないので、回答下書きして、質問内容とマッチしているかチェックしてから回答欄に書く予定。
(予定は未定?)

'VBSからOutlook 連絡先を探す

'Outlook.Applicationの起動 

    Dim oApp        'As Outlook.Application OutlookのApplication オブジェクトを入れる
    Dim oNameSpace 'As Outlook.NameSpace 名前のスペースと言われても、、
    Dim oFolder    'As Outlook.Folder フォルダー指定

    'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を
    Set oApp = CreateObject("Outlook.Application")

    '呪文1 名前空間 の 指定 と言っても、.GetNamespace("MAPI")しただけ
    Set oNameSpace = oApp.GetNamespace("MAPI")

'olFolderContacts 10 連絡先フォルダ
    '次は作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display)
    Set oFolder = oNameSpace.GetDefaultFolder(10) '規定のフォルダー olFolderContacts=10 指定
    oFolder.Display  '表示 いつものクセで .Visible = True とやりがちだけど

    '通常サイズ olNormalWindow=2 で表示(ほかに olMaximized=0,olMinimized=1)
    oApp.ActiveWindow.WindowState = 2   'olNormalWindow=2 を セット

'ここから連絡先を探す
'.Find で Email1Address を 探し、無ければメッセージを表示する

    Dim cITEM   'As Outlook.ContactItem  '連絡先アイテム
    Dim n 

    Dim EMailBox(50)

    EmailBox(1) = "abc@ken3.org"
    EmailBox(2) = "test4@ken3.org"
    EmailBox(3) = "test2@ken3.org"

    For n = 1 To 30
        If Len("" & EmailBox(n)) = 0 Then Exit For
        Set cITEM = oFolder.Items.Find("[Email1Address] = '" & EmailBox(n) & "'")
        '見つけたか?
        If cITEM Is Nothing Then  'オブジェクトの中身がなければエラー
             Msgbox EmailBox(n) & "が、見つかりません、登録を確認してください"
        End If
    Next   
  
    '使用したオブジェクトの解放 = Nothing
    Set cITEM = Nothing
    Set oFolder = Nothing
    Set oNamespace = Nothing

だめだ、これだと、メールアドレスの有無しかチェックできないや。
アドレスを違う名前で登録したり、あっちゃいけない ライバル会社の担当者のアドレスを入れてても メールアドレスの有無しかみないからダメだなぁ・・・

まぁ、.Findで探す・・そんなサンプルとして 残しておくかなぁ。。。。