Domanda

Al momento, il mio codice VBA crea un singolo file per ogni nota. Ecco alcuni esempi di codice semplificato:

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

Invece di creare un singolo file per ogni nota, voglio creare un unico file per tutte le note. Sto cercando il metodo più efficiente per concatenare il contenuto di queste note e scriverle in un unico file.

Per dare un'idea della quantità di dati e come efficace dovrebbe essere, ci sono centinaia di note con una dimensione media di 1024 caratteri.

È stato utile?

Soluzione

Questo codice si aprirà un file di testo per l'output e scrivere il tempo modificato e il corpo di ogni nota nel file di testo. Il file sarà nella vostra cartella Documenti e verrà chiamato AllNotesYYYYMMDD.txt. Si potrebbe cambiare quel percorso in base al sistema operativo e dove si vuole realmente il file memorizzato.

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top