There are multiple ways to have a template in Outlook for achieving tasks. Sometimes, you will require to hold some document variable in outlook like you do with Microsoft Word. The following example shows a simple way to add some text in drafts folder. This will not be visible to user.
Sub Create_Hidden_Data()
Dim oNs As Outlook.NameSpace
Dim oFld As Outlook.Folder
Dim oSItem As Outlook.StorageItem
On Error GoTo OL_Error
oNs = Application.GetNamespace("MAPI")
oFld = oNs.GetDefaultFolder(olFolderDrafts)
oSItem = oFld.GetStorage("My Appt Template", olIdentifyBySubject)
oSItem.UserProperties.Add("My Footer", olText)
oSItem.UserProperties("My Footer").Value = "VBADud - Samples & Tips on VBA"
oSItem.UserProperties.Add("My Body", olText)
oSItem.UserProperties("My Body").Value = "Hi" & vbCrLf & "Requesting a appointment with you for discussing..."
oSItem.Save()
Exit Sub
OL_Error:
MsgBox(Err.Description)
Err.Clear()
End Sub
Sub GetData_From_StorageItem()
Dim oNs As Outlook.NameSpace
Dim oFL As Outlook.Folder
Dim oItem As Outlook.StorageItem
On Error GoTo OL_Error
oNs = Application.GetNamespace("MAPI")
oFld = oNs.GetDefaultFolder(olFolderDrafts)
oItem = oFld.GetStorage("My Appt Template", olIdentifyBySubject)
If oItem.Size <> 0 Then
MsgBox(oItem.UserProperties("My Footer"))
MsgBox(oItem.UserProperties("My Body"))
End If
Exit Sub
OL_Error:
MsgBox(Err.Description)
Err.Clear()
End Sub
'StorageItem is a message object in MAPI that is always saved as a hidden item in the parent folder and stores private data for Outlook solutions.
'
'A StorageItem object is stored at the folder level, allowing it to roam with the account and be available online or offline.
'
'The Outlook object model does not provide any collection object for StorageItem objects. However, you can use Folder.GetTable to obtain a Table with all the hidden items in a Folder, when you specify the TableContents parameter as olHiddenItems. If keeping your data private is of a high concern, you should encrypt the data before storing it.
'
'Once you have obtained a StorageItem object, you can do the following to store solution data:
'
'Add attachments to the item for storage.
'Use explicit built-in properties of the item such as Body to store custom data.
'Add custom properties to the item using UserProperties.Add method. Note that in this case, the optional AddToFolderFields and DisplayFormat arguments of the UserProperties.Add method will be ignored.
'Use the PropertyAccessor object to get or set custom properties.
'
Hmmm..
ReplyDeleteAs you mentioned above that the code will add some text in drafts folder which will not be visible to user.Is it really achievable and if yes then in what conditions this can be used will that be properly visible to receiver or not
ReplyDelete