Создание одного файла из нескольких заметок в Outlook VBA
-
10-10-2019 - |
Вопрос
В настоящее время мой код VBA создает один файл для каждой заметки. Вот несколько упрощенных примеров кода:
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
Вместо того, чтобы создавать один файл для каждой заметки, я хочу создать один файл для всех примечаний. Я ищу наиболее эффективный метод, чтобы объединить контент этих заметок и записать их в один файл.
Чтобы дать вам представление о количестве данных и о том, насколько эффективно они должны быть, существуют сотни заметок со средним размером 1024 ChARS.
Решение
Этот код откроет текстовый файл для вывода и записывает измененное время и корпус каждой примечания в текстовый файл. Файл будет в вашей папке «Мои документы» и будет называться allnotesyyyymmdd.txt. Вы можете изменить этот путь на основе вашей операционной системы и где вы действительно хотите хранить файл.
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