Solved

How do I reference a calendar other than the default calendar?

Posted on 2010-09-15
2
313 Views
Last Modified: 2012-06-27
I am exporting the events from one day into a table in a Word document. I have not found a way to reference a calendar at the root of a mailbox besides the default calendar. Every method I find online doesn't quite work. Here are the lines that I think need to be changed:

Set wrdDoc = wrdApp.Documents.Add
Set MyOutlookNS = GetNamespace("MAPI")
Set myItems = MyOutlookNS.GetDefaultFolder(olFolderCalendar).Items

i know this code is not documented well, somewhat messy, and it is probably not wise to put so much code under a button click. The only part that is really of concern for this question is the beginning from the Dim statements through the Set statements.

Private Sub CommandButton1_Click()



Dim MyOutlookNS As Outlook.NameSpace

Dim targetDate As Date

Dim comparisonDate As Date

Dim wrdApp As Word.Application

Dim wrdDoc As Word.Document

Dim myItems As Outlook.Items

Dim myRange As Range

Dim X, Y As Integer



Set wrdApp = CreateObject("Word.Application")

Set wrdDoc = wrdApp.Documents.Add

Set MyOutlookNS = GetNamespace("MAPI")

Set myItems = MyOutlookNS.GetDefaultFolder(olFolderCalendar).Items

Set myRange = wrdDoc.Content



targetDate = Now



myItems.Sort "[Start]", False



   wrdDoc.Paragraphs.SpaceAfterAuto = 0

   wrdDoc.Paragraphs.Format.SpaceAfter = 0

   wrdDoc.Paragraphs.LineSpacingRule = wdLineSpaceSingle

With myRange



   .ParagraphFormat.Alignment = wdAlignParagraphLeft

   .Font.Size = 24

   .Font.Bold = True

   .InsertAfter targetDate & vbCrLf



   .Collapse wdCollapseEnd

   .Tables.Add myRange, 1, 2

   .Tables(1).TopPadding = 0

   .Tables(1).BottomPadding = 0

   .Tables(1).LeftPadding = 0

   .Tables(1).RightPadding = 0

   .Tables(1).Spacing = 0



X = 1

Y = 1



For Each MyAppt In myItems

   comparisonDate = MyAppt.Start

   If Mid(comparisonDate, 1, 9) = Mid(targetDate, 1, 9) Then

       

       .Tables(1).Cell(X, Y).Range.Text = Format(MyAppt.Start, "Medium Time") & " - " & Format(MyAppt.End, "Medium Time")

       .Font.Bold = True

       .Tables(1).Cell(X, Y + 1).Range.Text = MyAppt.Subject & " - " & MyAppt.Location & vbCrLf & MyAppt.Body

       

       



       .Tables(1).Rows.Add

       X = X + 1



   End If

Next

.Tables(1).Rows.Last.Delete

End With



wrdApp.Visible = True



End Sub

Open in new window

0
Comment
Question by:jjh2010
  • 2
2 Comments
 
LVL 38

Accepted Solution

by:
puppydogbuddy earned 250 total points
Comment Utility
As you stated, there is very little documentation out there.  I managed to find the following instructions from Sue Mosher [MVP-Outlook].  Hope it helps.


To create a new item in a non-default folder programmatically, use the =
Add method on the target folder's Items collection:

Set newItem =3D targetFolder.Items.Add("IPM.Post.YourFormName")

The message class parameter is optional.=20

To create an item in another person's Calendar folder in an Exchange =
mailbox, use Namespace.GetSharedDefaultFolder to get the target =
MAPIFolder. Otherwise, you can use the code at =
http://www.outlookcode.com/d/code/getfolder.htm to walk the folder =
hierarchy and return the MAPIFolder corresponding to a given path =
string.
0
 
LVL 38

Assisted Solution

by:puppydogbuddy
puppydogbuddy earned 250 total points
Comment Utility
This link has code snippets with explanations that should help clarify things, but you have to read it in its entirety:
            http://www.eggheadcafe.com/software/aspnet/30128430/adding-appointment-to-non-default-calendar.aspx
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Create high volume marketing opportunities using email signatures with these top 10 DOs and DON'Ts of email signature marketing.
Technology opened people to different means of presenting information, but PowerPoint remains to be above competition. Know why PPT still works today.
Learn how to make your own table of contents in Microsoft Word using paragraph styles and the automatic table of contents tool. We'll be using the paragraph styles in Word’s Home toolbar to help you create a table of contents. Type out your initial …
This Experts Exchange video Micro Tutorial shows how to tell Microsoft Office that a word is NOT spelled correctly. Microsoft Office has a built-in, main dictionary that is shared by Office apps, including Excel, Outlook, PowerPoint, and Word. When …

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now