例: AllDocuments property (NotesDatabase - LotusScript®)

  1. 次のスクリプトは現在のデータベースのすべての文書のコレクションを取得します。例えば、データベースに 56 個の文書があるとき、AllDocuments は Count プロパティの値として 56 を持つコレクションを返します。
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim collection As NotesDocumentCollection
    Dim n As Integer
    Set db = session.CurrentDatabase
    Set collection = db.AllDocuments
    n = collection.Count
  2. 次のアクションスクリプトは、現在のデータベースの各文書の Body アイテムからすべての添付ファイルを削除します。スクリプトは AllDocuments が返すコレクション中の各文書を調べて、Body アイテムに添付ファイルがあるときはサブルーチン detachFiles を呼び出します。サブルーチン detachFiles はファイルをドライブ C のディレクトリに保存します。
    Sub Initialize
      Dim session As New NotesSession 
      Dim db As NotesDatabase 
      Dim collection As NotesDocumentCollection
      Dim doc As NotesDocument
      Set db = session.CurrentDatabase
      Set collection = db.AllDocuments
      Set doc = collection.GetFirstDocument()
      While Not(doc Is Nothing)  
        If doc.HasEmbedded Then
          Call detachFiles( doc )
        End If
        Set doc = collection.GetNextDocument(doc) 
      Wend
    End Sub
    Sub detachFiles( doc As NotesDocument )
      Dim rtitem As Variant
      Set rtitem = doc.GetFirstItem( "Body" )
      Forall o In rtitem.EmbeddedObjects
        If o.Type = EMBED_ATTACHMENT Then  
          Call o.ExtractFile( "c:¥newfiles¥" & o.Source )
          Call o.Remove
          Call doc.Save( True, True )   
        End If
      End Forall
    End Sub