Creating a folders collection

W

Water Cooler v2

It is possible to create folders (MAPIFolder) within the Personal
Folders collection. I learnt that it is also possible to create a top
level folder in the heirarchy, of the same level as Outlook Personal
Folders, with a piece of code like this:


Application.GetNamespace("MAPI").AddStore("MyPSTFile.pst")


However, there are two problems with this approach:

(1) The new folder always gets the name "Personal Folders" irrespective
of the new PST file you create. Can you have a personalized name for
this new store? How?

(2) The method AddStore is a sub-procedure and not a function. In
effect, it doesn't return a value, which one might expect, might be a
reference to the newly added folder collection. How do you get a
reference to the newly added store or folders collection?

(3) Unless you have a reference, you cannot change the name of the
newly created store. Even if we did have a reference, I see that you
cannot change the name of the collection (out of the code, i.e. not
programmatically) even in design mode if you clicked on the
context-menu, "Properties for Personal Folders".
 
G

Guest

The semantics of whether AddStore is a procedure or function (where did you
see it described that way?) is really irrelevant, and indeed the VBA help
file calls both "Methods".

Anyway, if you use AddStore to create a new .pst, it is now a new Folder in
the top NameSpace.Folders collection. So if you added a second .pst file,
you can set a reference to a MAPIFolder object by setting it to
NameSpace.Folders(2):

Dim myFolder As Outlook.MAPIFolder
Set myFolder = Application.GetNameSpace("MAPI").Folders(2)

This now gives you access to the top level of the store, and all of its
subfolder by walking through the Folders collection.

You actually CAN change the display name of any store, just by setting a
MAPIFolder object to the root of the store like above, then changing the
MAPIFolder.Name property. But then you have to do this:

Application.GetNamespace("MAPI").RemoveStore myFolder
Application.GetNamespace("MAPI").AddStore "C:\Test\test.pst"

This will refresh the display name. Otherwise, the name will refresh once
you restart Outlook.
 
W

Water Cooler v2

Thanks for the help, Eric. I have one more problem now.


After I make my folder, I am trying to let it get selected and then on
its selection, open up a web-page like so:


fld.WebViewAllowNavigation = True
fld.WebViewURL = "http://foobar.com"
fld.WebViewOn = True

However, when this happens, I do not see any webpage come up. When I
right-click on the folder to view its properties, too, I do not see
either the home page set nor the check box, "Show home page by default
for this folder" set to on.

How do I do this?


Thanks.
 
G

Guest

Try running tihs right after:

ActiveExplorer.SelectFolder ActiveExplorer.CurrentFolder
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top