2010-10-21 49 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

相關問題