2010-10-21 45 views
1

目前,我的VBA代码为每个笔记创建一个文件。下面是一些简单的示例代码:在Outlook 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个字符。

回答

2

该代码将打开一个输出文本文件,并将修改后的每个音符的时间和正文写入文本文件。该文件将位于“我的文档”文件夹中,并将被命名为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 
+0

Bah!我应该补充说,如果你的笔记文件夹中有一些不是NoteItem的东西,你会得到一个错误。 – 2010-10-21 21:46:05

+0

在Notes文件夹中只能有Notes。如果您将另一个项目类型拖到Notes文件夹中,您会看到它变成了一个NoteItem。 – JimmyPena 2011-11-21 19:14:45

相关问题