outlook-vba
परिचय भाग 2: स्टोर और शीर्ष-स्तरीय फ़ोल्डर
खोज…
परिचय
स्टोरों और उन फ़ोल्डरों के लिए एक परिचय का पहला भाग। मैक्रो को प्रदर्शित करने के लिए शामिल है (1) सुलभ स्टोर के नाम और (2) सुलभ स्टोर के नाम और उनके भीतर शीर्ष स्तर के फ़ोल्डर।
२.१ पूर्व ज्ञान की अपेक्षा
- आप एक Outlook उपयोगकर्ता हैं और "ईमेल", "प्राप्त समय", "विषय" और "फ़ोल्डर फलक" जैसे शब्दों को समझते हैं।
- आप जानते हैं कि आउटलुक के विज़ुअल बेसिक एडिटर का उपयोग कैसे करें और एक मॉड्यूल बनाएं। यदि आवश्यक हो तो परिचय भाग 1 देखें।
- आपके पास VBA का कम से कम एक बुनियादी ज्ञान है। मैं स्पष्टीकरण के बिना सबरूटीन्स और चर घोषित करता हूं। मैं स्पष्टीकरण के बिना Withs, ifs और Loops का उपयोग करता हूं। मैं आपको बताता हूं कि कुछ संग्रह है। मैं आपको एक मॉड्यूल को कोड कॉपी करने और इसे चलाने के लिए कहता हूं। कई ऑनलाइन ट्यूटोरियल हैं, हालांकि अधिकांश एक्सेल वीबीए के लिए हैं और भाषा की तुलना में एक्सेल के साथ भाषा का उपयोग करने पर अधिक ध्यान केंद्रित करते हैं। “VBA ट्यूटोरियल” की खोज से कुछ ऐसा होता है जो संतोषजनक दिखने वाले एप्लिकेशन से अधिक भाषा पर ध्यान केंद्रित करता है।
- आपको आउटलुक ऑब्जेक्ट मॉडल को जानने की आवश्यकता नहीं है; यह ट्यूटोरियल आपको इसके छोटे हिस्से से परिचित कराता है।
2.2 स्टोर
आउटलुक स्टोर के रूप में जानी जाने वाली फाइलों में ईमेल, कैलेंडर आइटम, नोट्स, कार्यों और इतने पर स्टोर करता है । यदि आप अपने फ़ोल्डर फलक को देखते हैं तो आपको कुछ ऐसा दिखाई देगा:
Aaaaaaaaaa
Inbox
Drafts
Deleted Items
: :
Bbbbbbbbbb
Inbox
Drafts
Deleted Items
: :
Cccccccccc
: :
"Aaaaaaaaaaa", "Bbbbbbbbbb" और "Cccccccccc" स्टोर के उपयोगकर्ता या प्रदर्शन नाम हैं। मैंने हमेशा इन नामों के लिए आउटलुक डिफॉल्ट को स्वीकार किया है जो वर्षों में बदल गए हैं। एक बार डिफ़ॉल्ट मेरा नाम था अब यह मेरा ईमेल पता है। इन दुकानों का फ़ाइल नाम एक ही हो सकता है, लेकिन PST या OST जैसे विस्तार के साथ या पूरी तरह से कुछ अलग हो सकता है। एक VBA मैक्रो को एक स्टोर तक पहुंचने के लिए उपयोगकर्ता नाम की आवश्यकता होती है और फ़ाइल नाम या एक्सटेंशन से संबंधित नहीं है।
आप अपनी इच्छानुसार कई स्टोर कर सकते हैं। मेरे पास "आउटलुक डेटा फ़ाइल" है जो मेरे लिए आउटलुक स्थापित करते समय बनाई गई थी। जब मैंने अपने ईमेल पतों के लिए खाते जोड़े, तो आउटलुक ने ईमेल पते के लिए नए स्टोर बनाए, जैसे "[email protected]" और "[email protected]"। अपने मुख्य स्टोर के आकार को कम करने के लिए मैं स्टोर में पुराने ईमेल ऐसे "पुरालेख 2015" के नाम से सहेजता हूं।
यदि आप एक व्यवसायिक उपयोगकर्ता हैं, तो आपके पास साझा स्टोर या सहकर्मियों के स्टोर तक पहुंच हो सकती है।
नीचे दिए गए मैक्रो आपके द्वारा एक्सेस किए जा सकने वाले स्टोर को सूचीबद्ध करने के तीन अलग-अलग तरीके दिखाते हैं। मेरा सुझाव है कि आप नीचे दिए गए कोड को रखने के लिए और मॉड्यूल के गुणों का उपयोग करने के लिए F4 का उपयोग करने के लिए एक नया मॉड्यूल बनाएं ताकि आप इसे "ModIntro" या अपनी पसंद के किसी अन्य नाम के रूप में नाम दे सकें। यदि आपने इस श्रृंखला का भाग 1 पूरा कर लिया है, तो आपके पास पहले से ही ऐसा एक मॉड्यूल होगा।
इन मैक्रो को एक मॉड्यूल में कॉपी करें और परीक्षण करें कि प्रत्येक समान आउटपुट देता है।
Sub ListStores1()
Dim InxStoreCrnt As Integer
Dim NS As NameSpace
Dim StoresColl As Folders
Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")
Set StoresColl = NS.Folders
For InxStoreCrnt = 1 To StoresColl.Count
Debug.Print StoresColl(InxStoreCrnt).Name
Next
End Sub
Sub ListStores2()
Dim StoresColl As Stores
Dim StoreCrnt As Store
Set StoresColl = Session.Stores
For Each StoreCrnt In StoresColl
Debug.Print StoreCrnt.DisplayName
Next
End Sub
Sub ListStores3()
Dim InxStoreCrnt As Long
With Application.Session
For InxStoreCrnt = 1 To .Folders.Count
Debug.Print .Folders(InxStoreCrnt).Name
Next
End With
End Sub
आप VBA के साथ पाएंगे कि अक्सर एक ही प्रभाव को प्राप्त करने के कई तरीके होते हैं। ऊपर मैंने स्टोरों तक पहुंचने के तीन तरीके दिखाए हैं। आपको उन सभी को याद रखने की आवश्यकता नहीं है - अपना पसंदीदा चुनें - लेकिन आपको यह जानने की आवश्यकता है कि कई विधियां हैं क्योंकि अन्य लोग, जिनके कोड को आपको अध्ययन करने की आवश्यकता हो सकती है, अलग-अलग पसंदीदा होंगे।
वेरिएबल StoresColl
को मैक्रोज़ ListStores1()
और ListStores2()
में दोनों संग्रह हैं, लेकिन विभिन्न प्रकार की वस्तु: Store
और Folder
धारण करते हैं। एक Store
ऑब्जेक्ट केवल आपके डिस्क पर एक फ़ाइल को संदर्भित कर सकता है। एक Folder
डिस्क पर एक फ़ाइल को संदर्भित कर सकता है, लेकिन स्टोर में "इनबॉक्स" और "भेजे गए आइटम" जैसे फ़ोल्डरों को भी संदर्भित कर सकता है। Stores
, Folders
, Store
और Folder
सभी आउटलुक ऑब्जेक्ट मॉडल का हिस्सा हैं। यह ट्यूटोरियल श्रृंखला आपको मॉडल से परिचित कराती है लेकिन यह कोई औपचारिक परिभाषा नहीं है। यदि आप एक औपचारिक परिभाषा चाहते हैं, तो अपने पसंदीदा खोज इंजन में "आउटलुक vba ऑब्जेक्ट मॉडल" टाइप करें। सुनिश्चित करें कि आप मॉडल के VBA संस्करण को देखते हैं।
2.3 शीर्ष स्तर के फ़ोल्डर
ऊपर मेरे फ़ोल्डर फलक उदाहरण में, मैं केवल तीन मानक फ़ोल्डर सूचीबद्ध करता हूं: "इनबॉक्स", "ड्राफ्ट" और "हटाए गए आइटम"। अन्य मानक फ़ोल्डर हैं और आप अपनी इच्छानुसार स्वयं के कई फ़ोल्डर बना सकते हैं। कुछ लोग इनबॉक्स के अंतर्गत फ़ोल्डर बनाते हैं लेकिन मैं इनबॉक्स के समान नए फ़ोल्डर बनाना पसंद करता हूं। आपके फ़ोल्डर में उप-फ़ोल्डर हो सकते हैं जो किसी भी गहराई तक अपने स्वयं के उप-फ़ोल्डर हो सकते हैं।
निम्नलिखित मैक्रो फॉर्म की एक सूची का उत्पादन करेगा:
A
A1
A2
A3
B
B1
B2
C
C1
C2
C3
C4
जहाँ A, B और C स्टोर हैं और A, B और C के भीतर फ़ोल्डर्स A1, B1, C1 इत्यादि हैं, यदि A1, B1, C1 और इसी तरह सब-फ़ोल्डर्स हैं, तो वे इस मैक्रो द्वारा सूचीबद्ध नहीं होंगे। अधिक गहराई से नेस्टेड फ़ोल्डरों तक पहुंचना इस ट्यूटोरियल के अगले भाग में कवर किया जाएगा।
Sub ListStoresAndTopLevelFolders()
Dim FldrCrnt As Folder
Dim InxFldrCrnt As Long
Dim InxStoreCrnt As Long
Dim StoreCrnt As Folder
With Application.Session
For InxStoreCrnt = 1 To .Folders.Count
Set StoreCrnt = .Folders(InxStoreCrnt)
With StoreCrnt
Debug.Print .Name
For InxFldrCrnt = .Folders.Count To 1 Step -1
Set FldrCrnt = .Folders(InxFldrCrnt)
With FldrCrnt
Debug.Print " " & .Name
End With
Next
End With
Next
End With
End Sub
२.४ इस ट्यूटोरियल से आपको क्या याद रखना चाहिए
- एक स्टोर एक फ़ाइल है जिसमें आउटलुक ईमेल, कैलेंडर आइटम, नोट्स, कार्य और इतने पर संग्रहीत करता है।
- एक स्टोर में आउटलुक मानक फ़ोल्डर जैसे "इनबॉक्स" और "भेजे गए आइटम" हो सकते हैं।
- एक स्टोर में उपयोगकर्ता द्वारा बनाए गए फ़ोल्डर भी हो सकते हैं।
- दोनों आउटलुक मानक फ़ोल्डर और उपयोगकर्ता निर्मित फ़ोल्डर्स में उप-फ़ोल्डर्स, उप-फ़ोल्डर्स और किसी भी गहराई पर उपयोगकर्ता निर्मित उपयोगकर्ता शामिल हो सकते हैं।
- दुकानों की सूची कैसे दें
- उन स्टोरों के भीतर स्टोर और शीर्ष स्तर के फ़ोल्डरों को कैसे सूचीबद्ध किया जाए।
स्वीकारोक्ति: मुझे "हाव्स" में से कोई भी याद नहीं है। मेरे पास सबरूटीन्स और फ़ंक्शन हैं जो मेरे लिए याद करते हैं।