SaveAs Method

Microsoft Outlook Visual Basic

expression.SaveAs(Path, Type)

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.

Remarks

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.

Example

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