With your 'UpdateCalendar' sub, you have some variable naming inconsistences that should be immediately apparent - especially if you set 'Option Explicity' at the top of your code module.
The other issues you'll have with running your 'UpdateCalendar' sub are: (a) you Quit Outlook before calling it; and (b) The sub has no Outlook objects of its own.
Although I'm no Outlook expert (I don't even use it, so I don't know the object model), you might try something based on:
Code:
Sub myButtonMacro3(control As IRibbonControl)
Dim myDocName As String, mySession As String, myLeagueName As String
Dim mySubject As String, myBody As String
Dim objOutlook As Object, oItem As Object, olTsk As Object
myDocName = ActiveDocument.Name
myDocName = Left(myDocName, (InStrRev(myDocName, ".")) - 1)
mySession = ""
While IsNumeric(Right(myDocName, 1))
mySession = Right(myDocName, 1) + mySession
myDocName = Left(myDocName, Len(myDocName) - 1)
Wend
myLeagueName = Left(myDocName, Len(myDocName) - 4)
mySubject = "NewsLetter For " + myLeagueName + " Session " + mySession
myBody = "Here you go ..."
ActiveDocument.Save
'Start/Run Outlook.
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
'Sen Email.
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
.To = "xxx@gmail.com"
.Subject = mySubject
.Body = myBody
.Attachments.Add ActiveDocument.FullName
.Send
End With
'Update Calendar.
Set olTsk = objOutlook.TaskItem
For Each olTsk In objOutlook
With olTsk
If .Name = myLeagueName & " Newsletter" Then
.Status = olWaitingOnSomeoneElse
.Complete = "75%"
.Categories = "Newsletters : Sent"
.Save
End If
End With
Next olTsk
'Quit Outlook if we started it.
If bStarted Then oOutlookApp.Quit
Set oItem = Nothing: Set olTsk = Nothing: Set oOutlookApp = Nothing
Application.Quit
End Sub
As for Intellisense, your code uses late binding. If you set a reference to Outlook, you can develop your code with early binding and thus have Intellisense access. You can always revert to late binding when you're done.