Creazione di un singolo file da più note in Outlook VBA
-
10-10-2019 - |
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.
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