Frage

Derzeit schafft mein VBA-Code eine einzelne Datei für jede Note. Hier einige vereinfachte Beispielcode:

Sub saveNotes()
   Set myNote = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderNotes)
   For ibi = 1 To myNote.Items.Count
     fname = myNote.Items(ibi).Subject
     myNote.Items(ibi).SaveAs "C:\Temp\" & fname & ".txt", 0
   Next
End Sub

Statt eine einzelne Datei für jede Note zu schaffen, möchte ich eine einzelne Datei für alle Notizen erstellen. Ich bin für die effizienteste Methode suchen, diese Notiz Inhalt und schreibt sie in eine einzelne Datei zu verketten.

Um Sie eine Vorstellung von der Menge der Daten, und wie effizient sie sein sollte, gibt es Hunderte von Notizen mit einer durchschnittlichen Größe von 1024 Zeichen.

War es hilfreich?

Lösung

Dieser Code wird eine Textdatei für die Ausgabe öffnen und die geänderte Zeit und Körper jeder Note in die Textdatei zu schreiben. Die Datei wird in Ordner Eigene Dateien und wird AllNotesYYYYMMDD.txt benannt werden. Sie könnten diesen Weg für Ihr Betriebssystem ändern und wo man tatsächlich die Datei gespeichert werden soll.

Sub SaveNotes()

    Dim fNotes As MAPIFolder
    Dim ni As NoteItem
    Dim sFile As String
    Dim lFile As Long

    Set fNotes = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderNotes)
    lFile = FreeFile
    sFile = Environ$("USERPROFILE") & "\My Documents\AllNotes" & Format(Date, "yyyymmdd") & ".txt"

    Open sFile For Output As lFile

    For Each ni In fNotes.Items
        Print #lFile, "Modified:" & vbTab & ni.LastModificationTime & vbNewLine & ni.Body
        Print #lFile, "-------------------------------"
    Next ni

    Close lFile

End Sub
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top