Visual Basic for Applications:
कमांड लाइन तर्कों को पढ़ना

कैसे:

VBA में कमांड लाइन आर्ग्यूमेंट्स को सीधे पढ़ने के लिए सीधे प्रोग्रामिंग वातावरण की तुलना में, VBA में एक निर्मित सुविधा नहीं है, क्योंकि यह मुख्यत: माइक्रोसॉफ्ट ऑफिस एप्लीकेशंस के भीतर एम्बेड करने के लिए डिज़ाइन किया गया है। हालाँकि, थोड़ी सी रचनात्मकता के साथ, हम विंडोज स्क्रिप्ट होस्ट (WSH) का उपयोग करके या बाहरी API को कॉल करके समान फ़ंक्शनलिटी प्राप्त कर सकते हैं। यहाँ WSH का उपयोग करके एक व्यावहारिक परिहार है:

  1. VBA को आर्ग्यूमेंट्स पास करने के लिए एक VBScript बनाएं:

    सबसे पहले, एक VBScript फ़ाइल (yourScript.vbs) लिखें जो आपके VBA एप्लीकेशन (जैसे कि एक Excel मैक्रो) को लॉन्च करे और कमांड लाइन आर्ग्यूमेंट्स पास करे:

Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open "C:\YourMacroWorkbook.xlsm"
objExcel.Run "YourMacroName", WScript.Arguments.Item(0), WScript.Arguments.Item(1)
objExcel.Quit
  1. VBA में आर्ग्यूमेंट्स एक्सेस करें:

    अपने VBA एप्लीकेशन (YourMacroWorkbook.xlsm) में, मैक्रो (YourMacroName) को संशोधित करें या पैरामीटर्स स्वीकार करने के लिए बनाएं:

Sub YourMacroName(arg1 As String, arg2 As String)
    MsgBox "Argument 1: " & arg1 & " Argument 2: " & arg2
End Sub
  1. अपनी स्क्रिप्ट चलाएं:

    आवश्यकतानुसार आर्ग्यूमेंट्स पास करते हुए कमांड लाइन से VBScript को निष्पादित करें:

cscript yourScript.vbs "Hello" "World"

इससे आपके VBA मैक्रो को “Hello” और “World” आर्ग्यूमेंट्स के साथ निष्पादित करना चाहिए, जो उन्हें एक मैसेज बॉक्स में प्रदर्शित करता है।

गहराई में:

ऐतिहासिक संदर्भ में, VBA को माइक्रोसॉफ्ट ऑफिस एप्लीकेशंस की क्षमताओं को विस्तारित करने के लिए तैयार किया गया था, न कि एक स्वतंत्र प्रोग्रामिंग वातावरण के रूप में। ऐसे में, कमांड लाइन के साथ सीधा संवाद इसके प्राथमिक दायरे के बाहर है, जो कमांड लाइन आर्ग्यूमेंट्स को पढ़ने के लिए निर्मित समर्थन की कमी को समझाता है।

ऊपर उल्लिखित विधि, हालांकि प्रभावी, एक मूल समाधान की तुलना में अधिक एक परिहार है, जो बाहरी स्क्रिप्टिंग का उपयोग करके अंतर को पाटती है। यह दृष्टिकोण जटिलता और संभावित सुरक्षा चिंताओं को पेश कर सकता है क्योंकि इसे मैक्रोज़ को सक्षम करने और निष्पादित करने के लिए सुरक्षा सेटिंग्स को कम करने की आवश्यकता होती है।

कमांड लाइन आर्ग्यूमेंट्स पर भारी रूप से निर्भर कार्यों के लिए या विंडोज़ ऑपरेटिंग सिस्टम के साथ अधिक सहज एकीकरण की आवश्यकता वाले कार्यों के लिए, अन्य प्रोग्रामिंग भाषाएं जैसे कि PowerShell या Python अधिक मजबूत और सुरक्षित समाधान प्रदान कर सकती हैं। ये विकल्प कमांड लाइन आर्ग्यूमेंट्स के लिए सीधा समर्थन प्रदान करते हैं और बाहरी इनपुट की आवश्यकता वाले स्वतंत्र एप्लीकेशन या स्क्रिप्ट्स के लिए बेहतर उपयुक्त हैं जो उनके व्यवहार को गतिशील रूप से संशोधित करते हैं।