ExcelからDominoサーバのnsfファイルにアクセスする方法をご紹介 |
アクセスする方法をご紹介します。
まずはコンポーネントの参照設定にLotusNotesを追加します。

ソースはこんな感じです。
'--お決まりの初期化関係--
Dim s As New NotesSession '現在のセッション情報
'Lotusオブジェクトの作成
Set s = CreateObject("Lotus.NotesSession")
'ログインダイアログ表示
Call s.Initialize
'--お決まりの初期化関係--
Dim db As NotesDatabase 'データベースオブジェクト
Dim view As NotesView 'ビューオブジェクト
Dim doc As NotesDocument 'ドキュメント
'--文書取得までの手順
Set db = s.GetDatabase("サーバ名", "nsfファイルパス") '-1
Set view = db.GetView("ビュー名") '-2
Set doc = view.GetDocumentByKey(検索キー) '-3
'--文書取得までの手順
'--値を取得したい場合
doc.GetItemValue("フィールド名")(0)
'--値を変更したい場合
Call doc.ReplaceItemValue("フィールド名", 設定値)
'--文書を保存したい場合
Call doc.Save(True,True)
'--後処理:セッションの破棄
Set s = Nothing
'--後処理:セッションの破棄
文書取得までの手順はロータススクリプトで記述した
エージェントとほぼ同じです。
1:セッションからDBを取得します。
ファイルパスはDataフォルダを基点とします。
2:取得したDBからビューを取得します。
3:キーワードを指定して、取得したビューから文書を取得します。
値(フィールド)の取得と設定では
フィールド名を直接参照することができないため、
GetItemValue関数、ReplaceItemValue関数を使用します。
保存はロータススクリプトと同じ方法で。
これさえマスタすれば、
簡単に必要な情報をExcelやAccessに書き出すことができます。
大量のデータ検索や抽出をする場合は
サーバに与える負荷も考えて、
Sleepを定期的に呼び出すほうがいいかもしれません。