Jak utworzyć nowy folder w programie Microsoft Outlook?
Skrypciarze odpowiadają na Wasze pytania
Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy. |
Jak utworzyć nowy folder w programie Microsoft Outlook?
Cześć, Skrypciarze! Jak utworzyć nowy folder w programie Microsoft Outlook?
-- TY
Cześć, TY. Jak może wiesz, teraz jest bardzo gorący okres w Microsoft. W końcu wczoraj o północy było oficjalne wydanie najbardziej oczekiwanego oprogramowania wszech czasów – skryptu tworzącego nowy folder w programie Microsoft Outlook!
Ach nie, przepraszam. Ten skrypt wychodzi dopiero dziś. Wczoraj o północy wydaliśmy grę Cześć 2. Albo może Słucham 5. Już wiem! Halo 3. Cóż, trudno się zorientować w tych nazwach, kiedy ma się przed oczami coś tak pasjonującego, jak skrypt tworzący nowy folder w programie Outlook. Do celów marketingowych nazwałem go Microsoft Office Outlook Folder Creator 1.0:
Const olFolderInbox = 6
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)
Set objNewFolder = objFolder.Folders.Add("Scripts Received")
Zobaczmy teraz, jak działa Microsoft Office Outlook Folder Creator 1.0. Najpierw definiujemy stałą o nazwie olFolderInbox, której wartość ustawiamy na 6; użyjemy jej podczas łączenia się s folderem Inbox programu Microsoft Outlook. Po zdefiniowaniu stałej tworzymy wystąpienie obiektu Outlook.Application, a następnie używamy metody GetNamespace, by połączyć się z obszarem nazw MAPI. (Przypominamy, że MAPI jest jedynym obszarem, z którym można się połączyć, co nie zmienia faktu, że nie da się tego zrobić automatycznie.)
Teraz możemy za pomocą poniższego wiersza kodu zwrócić odwołanie do obiektu (objFolder) folderu Inbox:
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)
Teraz możemy utworzyć nowy folder, po prostu wywołując metodę Add (jeden ze składników kolekcji Folders elementu Inbox), podając jako jedyny parametr nazwę nowego folderu:
Set objNewFolder = objFolder.Folders.Add("Scripts Received")
I już! Nasza skrzynka odbiorca ma już nowy podfolder o nazwie Scripts Received.
Jak zaznaczyliśmy, nasz nowy folder jest podfolderem skrzynki odbiorczej. I dobrze, chyba że chodzi o utworzenie folderu tego samego poziomu, co skrzynka odbiorcza. W takim przypadku należy zastosować program Microsoft Office Outlook Folder Creator 2.0:
Const olFolderInbox = 6
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)
strFolderName = objFolder.Parent
Set objMailbox = objNamespace.Folders(strFolderName)
Set objNewFolder = objMailbox.Folders.Add("Scripts Received")
Jedynym problemem jest tutaj połączenie się z folderem Mailbox programu Outlook zamiast folderu Inbox. Z tego co wiemy, nie ma na to prostego sposobu; nie mamy pojęcia, jaka stała byłaby do tego wymagana. Dlatego też musimy zastosować trik – połączymy się z folderem Inbox, a potem sprawdzimy, jaki jest jego folder nadrzędny (Parent):
strFolderName = objFolder.Parent
Po przechowaniu tej wartości w zmiennej strFolderName, możemy za jej pomocą utworzyć odwołanie do obiektu folderu Mailbox:
Set objMailbox = objNamespace.Folders(strFolderName)
Fajnie, ale jak utworzyć nowy folder w folderze Mailbox? Tak samo jak poprzednio w przypadku folderu Inbox:
Set objNewFolder = objMailbox.Folders.Add("Scripts Received")
I już.
Jeszcze jedno. Wiemy, że dwa poprzednie programy dają wielką siłę. Siły tej łatwo nadużyć, nawet nieświadomie. Dlatego też przygotowaliśmy coś, co pozwoli ją kontrolować – program Microsoft Office Outlook Folder Deletor 1.0, służący, jak sama nazwa wskazuje, do usuwania folderów programu Outlook:
Const olFolderInbox = 6
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)
strFolderName = objFolder.Parent
Set objMailbox = objNamespace.Folders(strFolderName)
Set objNewFolder = objMailbox.Folders("Scripts Received")
objNewFolder.Delete
To prawda – jest to bardzo podobne do skryptu tworzącego podfolder w folderze Mailbox. Jest jednak parę różnic. Na przykład po połączeniu z folderem Mailbox używamy poniższego wiersza kodu do utworzenia odwołania do biektu podfolderu Scripts Received:
Set objNewFolder = objMailbox.Folders("Scripts Received")
A następnie wywołujemy metodę Delete, by go usunąć:
objNewFolder.Delete
Mamy nadzieję, że to zaspokaja Twoje potrzeby, TY, przynajmniej do czasu ukazania się pudełkowej wersji zestawu Microsoft Office Outlook Folder Management Set Ultimate Edition Gold Toolkit.
Do początku strony |