• 締切済み

VB.NETでOutlookの連絡先を取得するには

Outlookでデフォルトの連絡先フォルダの他にもいくつかフォルダを作り、連絡先を管理しています。 以下のコードにて指定したフォルダの連絡先を取得できていますが、フォルダのプロパティで「電子メールのアドレス帳にこのフォルダを表示する」のチェックが外れていると、オブジェクトが見つからない旨のエラーが発生してしまいます。 チェックを入れておけば良い話なのですが、会社のPCの仕様で再起動するとチェックが外れてしまうので困っています。チェックが外れた状態でも取得するにはどうすれば良いでしょうか? よろしくお願いします。 ol = CreateObject("Outlook.Application") olns = ol.GetNamespace("MAPI") objAdList = olns.AddressLists.Item("XXXX") '←ここで連絡先フォルダ名を指定 For Each objAdEntry In objAdList.AddressEntries MsgBox(objAdEntry.Name) Next

みんなの回答

  • iphqwo
  • ベストアンサー率21% (10/47)
回答No.1

VBでしか行ったことがありませんが ご参考にしてください。 Outlook研究所さん ttp://outlooklab.wordpress.com/outlook-macroscript-index/

関連するQ&A

  • アウトルックが起動しているかどうかを取得するには?

    http://www.ken3.org/cgi-bin/group/vba_outlook.asp を参考に Sub Sample() Dim oApp As Outlook.Application Dim myNameSpace As Outlook.Namespace Dim myFolder As Outlook.Folder 'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") '作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display) Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定 myFolder.display End Sub でエクセルからアウトルックを起動しているのですが 既に起動していると2個起動してしまいます。 「既に起動しているのなら起動しない」という事はできますか? 参考URLに 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を と書いてありますが、ちょっと勘弁できませんでした笑

  • <EXCEL/VBA> OUTLOOKのウインドを閉じる方法

    EXCEL/VBAで、OUTLOOKのウインドを閉じる方法を教えて下さい。 OUTLOOKを立ち上げた状態で、EXCEL/VBAで下記のようにOUTLOOKのフォルダーを指定してウインドを表示していますが、 VBAで開いたウインドのみ閉じたいのですが、うまく行きません。 oApp.Quitだと元々立ち上げていたoutlookも含めて終了してしまいます。宜しく、お願いします。 Sub OL_TEST() Dim oApp As Object 'OutlookのApplication オブジェクト Dim myNameSpace As Object '名前スペース Dim myFolder As Object 'フォルダー指定 Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定 myFolder.Display '表示

  • outlookが起動してるかどうかを取得したい

    Sub Outlookが起動してないなら起動する() Dim oApp 'As Outlook.Application OutlookのApplication オブジェクトを入れる Dim myNameSpace 'As Outlook.NameSpac Dim myFolder 'As Outlook.Folder If Outlookが起動してるなら Then Exit Sub 'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー myFolder.Display '(通常サイズ olNormalWindow=2 , olMaximized=0,olMinimized=1) oApp.ActiveWindow.WindowState = 0 End Sub ///////////////////////////////////////////////////////////////// のような事がしたいのですが、 If Outlookが起動してるなら Then Exit Sub をどうすればいいのか教えていただけませんか? 当方OFFICE2007を使用しています。

  • outlookでメールのフォルダパスを取得

    outlookです。 VBAコードを書いています。 現在開いているフォルダパスを取得する関数はありますか? GetNamespace("MAPI")を使用すると、Folders等で取得出来そうと思い調べています。 うまくいかないので、ご教授お願いします。

  • Outlook2007の連絡先の使い方について

    OUTLOOK2007を使っていますが、受信トレイでアドレス帳を参照して検索しようとしていますができません。困っています。 連絡先をアドレス帳に関連づけるために、連絡先のフォルダー⇒プロパティ⇒Outlookアドレス帳で、 電子メールのアドレス帳にこのフォルダを表示するのチェックボックスをクリックしようとしますが、このチェックボックスが薄字となっていてチェックできない状態です。 どうしたらよいのでしょうか?

  • LocationNameを取得するとアウトルックが

    エクセルvba2010です。よろしくお願いします。 Sub Sample() Dim ie As Object For Each ie In CreateObject("Shell.Application").Windows() Debug.Print ie.LocationName Next End Sub このコードで、現在開いているURL名を取得すると、 アウトルックを立ち上げてると outlook:%26%2321463・・・ と言うのが取得されるのですが、これは何のパスでしょうか? メールは立ち上げていません。

  • C# Outlookの選択フォルダの取得について

    C#でOutlookの連絡先で選択されているフォルダ情報を取得しようとしています。 連絡先フォルダには下記が存在しています。 ・連絡先    --->標準 ・連絡先その1--->フォルダの作成 ・連絡先その2--->フォルダの作成 下記のように直接フォルダ名を指定すれば、フォルダ情報(Outlook.Folder型)は取得することができるのですが、選択されているフォルダを取得することは可能でしょうか? Outlook.Application oApp = new Outlook.Application(); Outlook.Folder folder = oApp.Session.GetDefaultFolder( Outlook.OlDefaultFolders.olFolderContacts).Folders["連絡その1"] as Outlook.Folder; 宜しくお願いします。

  • outlook 実際のアイテム数より1多い数が取得

    http://www.geocities.co.jp/SiliconValley-Bay/3475/outlook_vba.html の フォルダ内のすべてのメールを処理   Dim ns As NameSpace Dim mf As MAPIFolder Dim x As Integer Set ns = GetNamespace("MAPI") Set mf = ns.Folders("個人用フォルダ").Folders("test") For x = 1 To mf.Items.Count   ' ここに処理を記述 Next MsgBox x & "件の処理が終了しました。" を実行すると、実際のアイテム数より1多い数が取得されるのですが なぜでしょうか?

  • outlook2007でアドレス帳に連絡先がでない

    最近PCをVistaに買い換えました。Xpのoutlook2003の個人フォルダの中身をメールなどとともに移行し、連絡先もサブフォルダまで移行できているのですが、Outlookアドレス帳を開くと連絡先の中身がまったく出てきません。MSオンラインの「Outlook で連絡先の情報がアドレス帳に表示されない」をみて試してみたのですが、 [ツール] メニューの [アカウント設定] 、 [アドレス帳] にOutlook アドレス帳が表示されているのに、 [連絡先プロパティ]の[Outlook アドレス帳] タブの [電子メールのアドレス帳にこのフォルダを表示する]が灰色のままでチェックボックスをオンにすることができません。  サブフォルダに登録したの複数のアドレスにCCで早急に送信したいのですが、できずに困っています。どうしたらよいのかぜひ教えてください。

  • Outlook Expressアドレス帳の保存先フォルダ

    電子メールはOutlook Expressを使っています。このアドレス帳の保存先フォルダがわかりません。 Documents and Settings\○○○\Application Data\Microsoft\Address Book\○○○.wabと思っていたのですが、違うようです。 ちなみに、オプションでは「Microsoft Outlook やほかのアプリケーションと連絡先の情報を共有し、アドレス帳の情報を、Outlook連絡先ストアに保存する」にチェックが入っています。 特に指定はしていないので、デフォルトのままだと思います。 OSはWindowsXPです。Outlook Expressバージョンは6.0です。