2012-10-09 33 views
10

मैंने Outlook में फ़ोल्डर बनाने के लिए एक .vbs फ़ाइल बनाई है। मैंने अधिकांश स्क्रिप्ट को MSDN से बाहर कॉपी किया है और "स्टेटमेंट ऑफ अपेक्षित" त्रुटि कोड 800A0401 प्रतिक्रिया प्राप्त की है।800A0401 - स्टेटमेंट का अपेक्षित अंत

Option Explicit 
Dim myNameSpace As Outlook.NameSpace 
Dim myFolder As Outlook.Folder 
Dim myNewFolder As Outlook.Folder 

Set myNameSpace = Application.GetNamespace("MAPI") 
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox) 
Set myNewFolder = myFolder.Folders.Add("Postini") 

Wscript.Echo "Folder created" 
Wscript.Quit 

पहले कभी भी एक .vbs स्क्रिप्ट नहीं बनाया। यकीन नहीं है कि मैं क्या खो रहा हूँ।

विंडोज 7 64-बिट और आउटलुक 2010. स्थानीय व्यवस्थापक के रूप में चल रहा है।

उत्तर

23

यह त्रुटि इसलिए है क्योंकि आप VBS में विशेष रूप से कुछ के रूप में मंद चर नहीं कर सकते हैं। अधिक स्पष्ट रूप से "मंद" कथन का उपयोग वीबीस्क्रिप्ट में चर प्रकार को परिभाषित किए बिना किया जाता है क्योंकि वीबीस्क्रिप्ट में सभी चर स्वचालित रूप से प्रकार भिन्न होते हैं। यदि आप किसी चर के रूप में एक चर को मंद करने का प्रयास करते हैं, तो यह एक त्रुटि फेंक देगा।

इसके बजाय, आप चाहते हैं:

Dim myNameSpace 
Dim myFolder 
Dim myNewFolder 

साथ ही, आपको सिर्फ आउटलुक से कुछ VBA की नकल की और VBS के रूप में इसे चलाने के लिए कोशिश की है लगते हैं।

वीबीस्क्रिप्ट नहीं जानता कि Application.GetNameSpace("MAPI") की व्याख्या कैसे करें।

आपको एक आउटलुक एप्लिकेशन भी बनाना होगा। (। यही कारण है कि मैं CreateObject इस्तेमाल किया)

dim myOutlook 
set myOUtlook = CreateObject("Outlook.Application") 

इसके अतिरिक्त, क्योंकि आप VBS में संदर्भ प्रदान नहीं कर सकते, आप देर से किसी भी वस्तुओं के लिए बाध्यकारी उपयोग करने के लिए तो अपने कोड को फिर से लिखा इस प्रकार है:

Option Explicit 
Dim myOutlook 
Dim myNameSpace 
Dim myFolder 
Dim myNewFolder 

set myOUtlook = CreateObject("Outlook.Application") 
Set myNameSpace = myOutlook.GetNamespace("MAPI") 
Set myFolder = myNameSpace.GetDefaultFolder(6) '6 is the value of olFolderInbox 
Set myNewFolder = myFolder.Folders.Add("Postini") 
Wscript.Echo "Folder created" 
Wscript.Quit 
+0

ओह, सुनिश्चित नहीं है कि वीबीस्क्रिप्ट आपके द्वारा संवेदनशील है यदि आपके पहले "सेट" लाइन में 'myOUtlook' है। – gravyface

+0

ऐसा नहीं है, जैसे वीबीए तकनीकी रूप से केस संवेदनशील नहीं है। अंतर यह है कि वीबीए में आईडीई स्वचालित रूप से किसी भी पूंजीकरण विसंगतियों को अद्यतन करेगा। –