वीबीए शैल

यह ट्यूटोरियल प्रदर्शित करेगा कि VBA शेल फ़ंक्शन का उपयोग कैसे करें।

हम वीबीए . का उपयोग कर सकते हैं सीप एक वीबीए प्रोग्राम के अंदर से एक अलग, निष्पादन योग्य प्रोग्राम को कॉल करने के लिए फ़ंक्शन। उदाहरण के लिए, यदि हमें एक्सेल से नोटपैड खोलने की आवश्यकता है, तो हम ऐसा करने के लिए वीबीए शेल फ़ंक्शन का उपयोग कर सकते हैं। यदि शेल कॉल सफल होता है, तो यह उस प्रोग्राम का विंडोज टास्कआईडी मान देता है जिसे इसे कहा जाता है। यदि शेल कॉल विफल हो जाता है, तो यह शून्य लौटाता है।

सीप दो इनपुट पैरामीटर हैं: एक आवश्यक पथ नाम कॉल करने के लिए कार्यक्रम के लिए, और एक वैकल्पिक खिड़की शैली उस विंडो की शैली को नियंत्रित करने वाला मान जहां प्रोग्राम चलेगा। NS पथ नाम मान में प्रोग्राम पथ / निर्देशिका और तर्क शामिल हो सकते हैं।

कॉल शेल

यह कोड चलाने के लिए मैक्रो का हिस्सा बन सकता है नोटपैड का उपयोग करके वीबीए कॉल कॉल करने की आज्ञा सीप समारोह।

1 कॉल शेल ("नोटपैड", vbNormalFocus)

उदाहरण के लिए:

शैल रुको

हम वीबीए . का उपयोग कर सकते हैं रुकना कॉल करने में देरी करने का आदेश सीप एक निश्चित अवधि के लिए आदेश।

12 आवेदन। प्रतीक्षा करें (अब + टाइमवैल्यू ("00:00:05"))कॉल शेल ("नोटपैड", vbNormalFocus)

इसलिए शेल कमांड को कॉल करने से पहले 5 सेकंड का समय बीत जाएगा।

शेल फ़ंक्शन से त्रुटि लौटाना

अगर हमें कॉल करते समय हमारे कोड में कोई त्रुटि है सीप फ़ंक्शन, और त्रुटि वापस आ जाएगी और हमारा कोड डिबग मोड में चला जाएगा।

उदाहरण के लिए, इस मैक्रो में, हमने "नोट पैड" की वर्तनी गलत लिखी है।

1 कॉल शेल ("नोट पैड", vbNormalFocus)

इस मैक्रो को चलाने का परिणाम होगा:

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

शेल के साथ एक मौजूदा फ़ाइल खोलें

यदि हमारे पास एक विशिष्ट फ़ाइल है जिसे हम खोलना चाहते हैं सीप कमांड, हम अपने कोड में फ़ाइल का नाम शामिल कर सकते हैं।

1 कॉल शैल ("नोटपैड.एक्सई सी: \ डेमो \ shell_test.txt", vbNormalFocus)

यदि हम फ़ाइल नाम की वर्तनी गलत लिखते हैं, तो फ़ाइल नहीं मिलेगी और एक संदेश बॉक्स दिखाई देगा जो हमसे पूछेगा कि क्या हम एक नई फ़ाइल बनाना चाहते हैं।

शेल फ़ंक्शन द्वारा उपयोग किए जाने वाले पैरामीटर

NS सीप फ़ंक्शन में 2 पैरामीटर हैं - कॉल करने के लिए प्रोग्राम का नाम, और विंडोज़ शैली जिसे प्रोग्राम उपयोग करने जा रहा है। हम का उपयोग कर रहे हैं वीबीसामान्य फोकस ऊपर के उदाहरणों में जिसका अर्थ है कि जब प्रोग्राम (इस मामले में नोटपैड) खोला जाता है, तो इसका फोकस होता है और यह पीसी पर डिफ़ॉल्ट स्थिति और आकार में खुलता है।

NS सीप पांच अन्य विकल्प प्रदान करता है:

वीबीछुपाएं विंडो को छुपाता है और उस विंडो पर फ़ोकस सेट करता है

vbन्यूनतम फोकस विंडो को फोकस के साथ एक आइकन के रूप में प्रदर्शित करता है

vbMaximizedFocus प्रोग्राम को फोकस के साथ अधिकतम विंडो में खोलता है

वीबीसामान्यनोफोकस विंडो को उसकी सबसे हाल की स्थिति और आकार पर पुनर्स्थापित करता है

vbन्यूनतमनहींफोकस विंडो को एक आइकन के रूप में प्रदर्शित करता है और वर्तमान में सक्रिय विंडो सक्रिय रहती है

शेल कमांड से एक प्रोसेस आईडी लौटाना

जब हम चलाते हैं सीप कमांड, यह एक प्रोसेस या टास्क आईडी देता है। हम प्रोसेस आईडी को एक वेरिएबल में स्टोर कर सकते हैं, और उस प्रोसेस आईडी का इस्तेमाल दूसरे कमांड को चलाने में कर सकते हैं - उदाहरण के लिए, टास्ककिल नोटपैड फ़ाइल को बंद करने का आदेश।

123456 उप टेस्टपीआईडीपूर्णांक के रूप में मंद प्रक्रिया आईडीप्रक्रिया आईडी = शैल ("नोटपैड", vbNormalFocus)कॉल शेल ("टास्ककिल / एफ / पीआईडी" + सीएसआरटी (प्रोसेसआईडी))MsgBox ("नोटपैड प्रोसेसआईडी =" + सीएसटीआर (प्रोसेसआईडी))अंत उप

पहली पंक्ति में, नोटपैड खोला गया है और प्रोसेस आईडी को विंडोज़ द्वारा एक मान दिया गया है। हम इस मान को ProcessID वेरिएबल में स्टोर करते हैं। फिर हम नोटपैड को नोटपैड के उदाहरण को बंद करने के लिए बाध्य करने के लिए टास्ककिल का उपयोग करते हैं जिसे हमने अभी खोला है। NS /एफ स्विच बल नोटपैड समाप्त करने के लिए, और /पीआईडी स्विच बताता है टास्ककिल नोटपैड की तलाश के लिए प्रक्रिया आईडी मूल्य। CStr फ़ंक्शन P . को रूपांतरित करता हैरोसेसआईडी स्ट्रिंग प्रारूप में शेल, और MsgBox अगली पंक्ति पर, दोनों की आवश्यकता है।

VBA कोड उदाहरण खोज कर थक गए हैं? ऑटोमैक्रो का प्रयास करें!

वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!

शेल के साथ अन्य प्रोग्राम को कॉल करना

शेल कोई अन्य विंडोज प्रोग्राम खोलेगा। उदाहरण के लिए, यह कोड कॉल करता है एक्सेल, और एक्सेल फ़ाइल 'example_workbook.xlsx' खोलता है:

1 कॉल शेल ("एक्सेल" "C:\DEMO\example_workbook.xlsx""", vbNormalFocus)

यह खोली गई फ़ाइल दिखाता है:

ShellExecute और ShellExecuteEx बनाम शेल कमांड

विंडोज प्रोग्रामिंग स्पेस ऑफर करता है शैल निष्पादन तथा ShellExecuteEx फ़ंक्शन जो सॉफ़्टवेयर कोड से बाहरी प्रोग्राम को कॉल करते हैं। VBA शेल फ़ंक्शन की तुलना में, ये Windows फ़ंक्शन अधिक लचीलेपन की पेशकश करते हैं, लेकिन VBA उनका समर्थन नहीं करता है और इसलिए यह आलेख उन्हें कवर नहीं करता है।

आप साइट के विकास में मदद मिलेगी, अपने दोस्तों के साथ साझा करने पेज

wave wave wave wave wave