Saves the Microsoft Outlook item to the specified path and in the format of the specified file type. If the file type is not specified, the MSG format (.msg) is used.
expression Required. An expression that returns one of the objects in the Applies To list.
Path Required String. The path in which to save the item.
Type Optional Variant. The file type to save. Can be one of the following OlSaveAsType constants: olHTML, olMSG, olRTF, olTemplate, olDoc, olTXT, olVCal, olVCard, olICal, or olMSGUnicode.
When you use the SaveAs method to save items to the file system, you receive an "address book" warning message. This includes all types of items, whether or not the items have attachments or active content. This change has been made so that someone cannot programmatically save items to a file and then parse the file to retrieve e-mail addresses.
Also note that even though olDoc is a valid OlSaveAsType constant, messages in HTML format cannot be saved in Document format, and the olDoc constant works only if Microsoft Word is set up as the default email editor.
This Visual Basic for Applications (VBA) example uses the SaveAs method to save the currently open item as a text file in the C:\ folder, using the subject as the file name. To run this example, make sure a mail item in plain text format is open in the active window.
Sub SaveAsTXT() Dim myItem As Outlook.Inspector Dim objItem As Object Set myOlApp = CreateObject("Outlook.Application") Set myItem = myOlApp.ActiveInspector If Not TypeName(myItem) = "Nothing" Then Set objItem = myItem.CurrentItem strname = objItem.Subject 'Prompt the user for confirmation Dim strPrompt As String strPrompt = "Are you sure you want to save the item? If a file with the same name already exists, it will be overwritten with this copy of the file." If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then objItem.SaveAs "C:\" & strname & ".txt", olTXT End If Else MsgBox "There is no current active inspector." End If End Sub
If you use Microsoft Visual Basic Scripting Edition (VBScript) in an Outlook form, you do not create the Application object, and you cannot use named constants. This example shows how to save the current item using VBScript code.
Sub CommandButton1_Click() Const OLTXT = 0 strname = Item.Subject 'Prompt the user for confirmation Dim strPrompt strPrompt = "Are you sure you want to save the item? If a file with the same name already exists, it will be overwritten with this copy of the file." If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then Item.SaveAs "C:\" & strname & ".txt", olTXT End If End Sub
This Visual Basic for Applications example shows you how to create a template using the Save As method.
Sub CreateTemplate() Dim myOlApp As New Outlook.Application Dim MyItem As Outlook.MailItem Set myOlApp = CreateObject("Outlook.Application") Set MyItem = myOlApp.CreateItem(olMailItem) MyItem.Subject = "Status Report" MyItem.To = "Dan Wilson" MyItem.Display MyItem.SaveAs "C:\statusrep.oft", OlSaveAsType.olTemplate End Sub