To create this button on your Outlook toolbar:
1.) Verify that your security settings will prompt you to run unsigned
macros by selecting "Tools | Trust Center..." from the main Outlook window.
Then click "Macro Security" and select "Warnings for all macros" and click
"OK"
2.) Create a Macro from the main Outlook window by selecting "Tools | Macro
| Macros..."
3.) Type "Note" as the Macro Name, then click "Create"
4.) The Visual Basic editing window will open. On the left-hand side is a
project navigation pane. Right-click on the top-level item named "Project1"
and select "Project1 Properties..."
5.) Change "Project1" to "Business" and click "OK"
6.) In the main code area, you'll see "Sub Note()", followed by "End Sub".
Replace those two lines with the VBA code below, then click Save.
7.) Close the Visual Basic window to return to Outlook
8.) Right-click on the Outlook toolbar and click "Customize..."
9.) Select the "Commands" tab, select the "Macro" from the Categories list,
then drag "Business.Note" to the standard Outlook toolbar and click "Close"
on the "Customize" dialog.
10.) Select a business contact or account, then click the "Business.Note"
button.
' Create a New Business Note for the selected Business Contact
Sub Note()
' Get a reference to the MAPI namespace
Dim objNS As Outlook.NameSpace
Set objNS = Application.GetNamespace("MAPI")
' Get a reference to the currently selected Outlook folder
Dim currentFolder As Outlook.Folder
Set currentFolder = Application.ActiveExplorer.currentFolder
' Make sure at least one item is selected
If Application.ActiveExplorer Is Nothing Then
MsgBox "Please select an item"
Exit Sub
End If
If Application.ActiveExplorer.selection Is Nothing Then
MsgBox "Please select an item"
Exit Sub
End If
' Get a reference to the currently selected item
Dim oItem As Object
Set oItem = Application.ActiveExplorer.selection(1)
If oItem Is Nothing Then
MsgBox "Please select an item"
Exit Sub
End If
' Get the selected item's EntryID
Dim parentEntryID As String
' Verify that this item is located in the Business Contact Manager
Outlook store
If 1 = InStr(1, currentFolder.FullFolderPath, "\\Business Contact
Manager\", vbTextCompare) Then
Set oContact = Application.ActiveExplorer.selection(1)
' Only get the EntryID if this is a Business Contact, Account,
Opportunity, or Business Project
If oItem.MessageClass = "IPM.Contact.BCM.Contact" Or _
oItem.MessageClass = "IPM.Contact.BCM.Account" Or _
oItem.MessageClass = "IPM.Task.BCM.Opportunity" Or _
oItem.MessageClass = "IPM.Task.BCM.Project" Then
parentEntryID = oItem.EntryID
End If
End If
' If we didn't find a valid EntryID, notify the user
If parentEntryID = "" Then
MsgBox "Please select a Business Contact, Account, Opportunity, or
Business Project"
Exit Sub
End If
' Get the root BCM folder
Dim olFolders As Outlook.Folders
Dim bcmRootFolder As Outlook.Folder
Set olFolders = objNS.Session.Folders
Set bcmRootFolder = olFolders("Business Contact Manager")
' Locate the Communication History folder
Dim historyFolder As Outlook.Folder
Set historyFolder = bcmRootFolder.Folders("Communication History")
' Create a new history item
Const BusinessNoteMessageClass = "IPM.Activity.BCM.BusinessNote"
Dim newBusinessNote As Outlook.JournalItem
Set newBusinessNote = historyFolder.Items.Add(BusinessNoteMessageClass)
' Set the type to Business Note
newBusinessNote.Type = "Business Note"
' Link the new Business Note to the selected BCM item
Dim parentEntityEntryID As Outlook.UserProperty
Set parentEntityEntryID = newBusinessNote.UserProperties("Parent Entity
EntryID")
If (parentEntityEntryID Is Nothing) Then
Set parentEntityEntryID = newBusinessNote.UserProperties.Add("Parent
Entity EntryID", olText, False, False)
End If
parentEntityEntryID.Value = parentEntryID
' Linking cont'd
Dim parentEntryIDs As Outlook.UserProperty
Set parentEntryIDs = newBusinessNote.UserProperties("Parent Entry IDs")
If (parentEntryIDs Is Nothing) Then
Set parentEntryIDs = newBusinessNote.UserProperties.Add("Parent
Entry IDs", olKeywords, False, False)
End If
parentEntryIDs.Value = parentEntryID
' Display the new, empty business note
newBusinessNote.Display (False)
End Sub
Below are a couple of great references to help start your own BCM
customization:
Starting an Outlook Automation Session
http://msdn2.microsoft.com/en-us/library/aa432009.aspx
Customizing the MessageClass Property
http://msdn2.microsoft.com/en-us/library/aa431949.aspx