Lunatic Sol

IT Tips

GetLocalAddressBook

2003-12-30 15:41:16 | LotusScript
個人アドレス帳のファイル名を names.nsf 以外にしている人はほぼいないでしょう。ですので、個人アドレス帳の NotesDatabase オブジェクトを取得したい場合は Dim db As New NotesDatabase("","names.nsf") でほとんど問題ありません。でも、Notes 上確実に個人アドレス帳を取得させたい場合はこの方法は適当ではありません。

方法としては NotesSession クラスの GetEnvironmentString メソッドで NAMES= をとる方法もあるのですが、NotesSession クラスの AddressBooks プロパティと IsPrivateAddressBook プロパティを使って取得する方法でファンクション化してみました。

Function GetLocalAddressBook As NotesDatabase
    Dim s As New NotesSession
    Dim books As Variant
    books = s.AddressBooks
    Forall b In books
        If b.IsPrivateAddressBook Then
            Set GetLocalAddressBook = b
            Exit Forall
        End If
    End Forall
End Function

これを実際に使ってみたい場合は以下のようなコーディングを Initialilze イベントなどに入れると OK です。

Sub Initialize
    Dim db As NotesDatabase
    Set db = GetLocalAddressBook
    Call db.Open(db.Server,db.FilePath)
End Sub

最新の画像もっと見る