यह कोड एक कार्यपत्रक को एक नई कार्यपुस्तिका के रूप में सहेजता है और नई कार्यपुस्तिका के साथ आउटलुक में एक ईमेल बनाता है। यह बहुत उपयोगी है यदि आपके पास एक मानकीकृत टेम्प्लेट स्प्रैडशीट है जिसका उपयोग आपके संगठन में किया जाता है।
अधिक सरल उदाहरण के लिए, देखें कि एक्सेल से ईमेल कैसे भेजें
वर्कशीट को नई वर्कबुक के रूप में सेव करें और ईमेल से अटैच करें
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | उप मेल_वर्कबुक ()एप्लिकेशन। डिस्प्ले अलर्ट = गलतApplication.enableevents = गलतएप्लिकेशन.स्क्रीनअपडेटिंग = गलतआवेदन।गणना = xlगणना मैनुअलवस्तु के रूप में मंद आउटऐपवस्तु के रूप में मंद आउटमेलस्ट्रिंग के रूप में मंद फ़ाइलपथडिम प्रोजेक्ट_नाम स्ट्रिंग के रूप मेंमंद Template_Name स्ट्रिंग के रूप मेंस्ट्रिंग के रूप में मंद समीक्षा दिनांकस्ट्रिंग के रूप में मंद सहेजें स्थानस्ट्रिंग के रूप में मंद पथस्ट्रिंग के रूप में मंद नाम'प्रारंभिक चर बनाएं'OutApp सेट करें = CreateObject ("आउटलुक। एप्लिकेशन")आउटमेल सेट करें = OutApp.CreateItem(0)Project_Name = पत्रक ("पत्रक1")। श्रेणी ("परियोजना का नाम")। मानTemplate_Name = ActiveSheet.Name'ईमेल में प्रयुक्त इनपुट के लिए पूछें'ReviewDate = InputBox (प्रॉम्प्ट: = "जब तक आप सबमिशन की समीक्षा करना चाहते हैं, तब तक तारीख प्रदान करें।", शीर्षक: = "दिनांक दर्ज करें", डिफ़ॉल्ट: = "MM/DD/YYYY")अगर ReviewDate = "Enter date" या ReviewDate = vbNullString तो GoTo endmacro'कार्यपत्रक को स्वयं की कार्यपुस्तिका के रूप में सहेजें'पथ = ActiveWorkbook.Pathनाम = ट्रिम (मध्य (ActiveSheet.Name, 4, 99))सेट ws = एक्टिवशीटपुराना डब्ल्यूबी सेट करें = यह कार्यपुस्तिकाSaveLocation = InputBox (प्रॉम्प्ट: = "फ़ाइल का नाम और स्थान चुनें", शीर्षक: = "इस रूप में सहेजें", डिफ़ॉल्ट: = CreateObject ("WScript.Shell")। विशेष फ़ोल्डर ("डेस्कटॉप") और "/" और नाम और "। एक्सएलएसएक्स")यदि Dir(SaveLocation) "" तोMsgBox ("उस नाम की एक फ़ाइल पहले से मौजूद है। कृपया एक नया नाम चुनें या मौजूदा फ़ाइल हटाएं।")SaveLocation = InputBox (प्रॉम्प्ट: = "फ़ाइल का नाम और स्थान चुनें", शीर्षक: = "इस रूप में सहेजें", डिफ़ॉल्ट: = CreateObject ("WScript.Shell")। विशेष फ़ोल्डर ("डेस्कटॉप") और "/" और नाम और "। एक्सएलएसएक्स")अगर अंतअगर सेवलोकेशन = vbNullString तो गो टू एंडमैक्रो'जरूरत पड़ने पर असुरक्षित शीट'एक्टिवशीट.असुरक्षित पासवर्ड:="पासवर्ड"NewWB सेट करें = कार्यपुस्तिकाएँ। जोड़ें'प्रदर्शन समायोजित करें'एक्टिवविंडो.ज़ूम = 80ActiveWindow.DisplayGridlines = गलत'कॉपी + पेस्ट वैल्यूजपुराना डब्ल्यूबी। सक्रिय करेंOldWB.ActiveSheet.Cells.Selectचयन.प्रतिलिपिnewWB.सक्रिय करेंnewWB.ActiveSheet.Cells.SelectSelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=गलत, स्थानान्तरित करना:=गलतचयन। पेस्ट विशेष पेस्ट: = xl पेस्टफॉर्मेट, ऑपरेशन: = xl कोई नहीं, _स्किपब्लैंक:=गलत, स्थानांतरित करें:=गलतचयन। पेस्ट विशेष पेस्ट: = xl पेस्ट सत्यापन, ऑपरेशन: = xl कोई नहीं, _स्किपब्लैंक:=गलत, स्थानांतरित करें:=गलत'नया डब्ल्यूबी चुनें और कटकॉपी मोड बंद करें'newWB.ActiveSheet.Range("A10").SelectApplication.CutCopyMode = False'फाइल सुरक्षित करेंnewWB.SaveAs फ़ाइल नाम:=SaveLocation, _FileFormat:=xlOpenXMLवर्कबुक, क्रिएटबैकअप:=गलतFilePath = Application.ActiveWorkbook.FullName'पुराने डब्ल्यूबी की रक्षा करें'OldWB.ActiveSheet.Protect Password:="password", DrawingObjects:=True, Contents:=True, Scenearios:=True _, AllowFormattingCells:=True, AllowFormattingColumns:=True, _अनुमति देंस्वरूपणपंक्तियाँ:=सच'ईमेलत्रुटि पर फिर से शुरू करें अगलाआउटमेल के साथ.to = "[email protected]".सीसी = "".बीसीसी = "".विषय = प्रोजेक्ट_नाम और ":" और टेम्प्लेट_नाम और "समीक्षा के लिए".बॉडी = "प्रोजेक्ट का नाम:" और प्रोजेक्ट_नाम और "," और नाम और "द्वारा समीक्षा के लिए" और समीक्षा तिथि.अटैचमेंट्स।जोड़ें (फाइलपाथ)प्रदर्शन' ईमेल भेजने को स्वचालित करने के लिए 'वैकल्पिक' भेजें।के साथ समाप्त करनात्रुटि गोटो 0 . परआउटमेल सेट करें = कुछ नहींसेट आउटऐप = कुछ नहीं'मैक्रो समाप्त करें, स्क्रीनअपडेटिंग पुनर्स्थापित करें, कैल्क्स, आदि… एंडमैक्रो:एप्लिकेशन.डिस्प्लेअलर्ट्स = ट्रूApplication.enableevents = Trueएप्लिकेशन.स्क्रीनअपडेटिंग = सहीआवेदन.गणना = xlगणनास्वचालितअंत उप |