Wenn das das komplette Script ist, kann das so auch nicht funktionieren, denn doc ist gar nicht definiert. Da fehlt noch eine Schleife, um durch alle Dokumente zu laufen.
Das würde dann so aussehen, wobei da noch einiges an Errorhandling verbessert werden könnte :
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As Variant
Dim fileCount As Integer
fileCount = 0
Set db = session.CurrentDatabase
Set dc = db.AllDocuments
If dc.Count > 0 Then
Set doc = dc.GetFirstDocument
While Not (doc Is Nothing)
Set rtitem = doc.GetFirstItem( "Bild_A4" )
If ( rtitem.Type = RICHTEXT ) Then
ForAll o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
fileCount = fileCount + 1
Call o.ExtractFile _
( "c:\reports\newfile" & CStr(fileCount) )
Call doc.Save( True, True )
End If
End ForAll
End If
Set doc = dc.GetNextDocument(doc)
Wend
End If
End Sub
Edit : Achso, das Call doc.Save würde ich persönlich auch weglassen. Du brauchst die Dokumente nach zu speichern, nur weil das Attachment auf die Platte gelöst wird.