2017-06-14 14 views
0

Excel内のVBAスクリプト内のAddressListのAddressEntriesプロパティにアクセスしようとしています。リストは、Exchange Serverに格納されている連絡先を含むグローバルアドレス一覧です。AddressListオブジェクト(Outlook VBA)からAddressEntriesオブジェクトにアクセスできない

私も、次のコードを実行しようとすると、それは私にエラーを与える:ここで

Run-time error '287': Application-defined or object-defined error

は、私が実行しようとしているベアボーンコードです。デバッガは、私がAddressEntriesにアクセスしようとする行で停止します。

Public Sub Test() 
    Dim appOL As Object 
    Dim mapiNamespace As Object 
    Dim GAL As AddressList, allGAL As AddressEntries 

    Set appOL = GetObject(, "Outlook.Application") 
    Set mapiNamespace = appOL.GetNamespace("mapi") 
    Set GAL = mapiNamespace.AddressLists("Global Address List") 
    Set allGAL = GAL.AddressEntries 'Debugger stops here 
    MsgBox allGAL.Count 
End Sub 

サーバーの設定によっては、リストのエントリへのアクセスを妨げるものがありますか。エントリを取得する他の方法はありますか?私の最終目標は、Excelファイルにある電子メールアドレスのリストに対応するエントリをリストから取得し、各エントリに電話番号プロパティにリストされている勤務先電話番号があるかどうかを確認することです。

編集: Image of Outlook graying out my options

設定アプリ

EDIT2:これはまだ私の2行目に同じエラーを与える

Set appOL = CreateObject("Outlook.Application") 
Set oGAL = appOL.GetNamespace("MAPI").AddressLists("Global Address List").AddressEntries 
+0

コードを実行しているときにOutlookからアクセスが要求されましたか? Outlookでは「プログラムによるアクセス」が妨げられているため、エラーが発生する可能性があります。 [Here](https://social.technet.microsoft.com/Forums/ie/en-US/64c14bd3-0e7f-4ba9-b2bd-26cf62ce5883/how-to-stop-outlook-security-message-a-program-アクセスしようとしているアクセスしようとしているアクセスを有効にするための記事です。 – Alex

+0

[この回答](https://stackoverflow.com/a/18406935/4717755)を見ましたか?それはちょっと違うようです。 – PeterT

+0

@Alexあなたが何かに乗っているようです。私の管理者は、プログラムによるアクセスを混乱させるオプションをグレー表示しているようです(上記のedit&imageを参照してください) – takanuva15

答えて

2

それはあなたのアンチウイルスは、潜在的な脅威としてのアクセスを処理することのように思えます - それはあなたのデータにアクセスするためのコード化された自動化です。

管理者に確認して、信頼センターに表示されているオプションのいずれかを有効にすることができるかどうかを確認します(Outlook 2010を開き、「ファイル/オプション/信頼センター」メニュー項目に移動し、ダイアログボックスの右側にあるボタン)、好ましくは最初のボタンです。

Hereは、試してみることのできるアクセスを可能にする記事です。

+0

これは、私の管理者がOutlookのデータへのプログラムによるアクセスを許可していないようです。私はどのようにアクセスを得るか、他の方法で私の仕事をする方法を見つけなければならないでしょう。 – takanuva15

関連する問題