STDIN और STDOUT
इनपुट चर के माध्यम से Sub
दिनचर्या और Function
एस के लिए इनपुट
Public Sub A(ByRef B as String)
को कम किया जा सकता है
Sub a(b$)
Public
औरByRef
कॉल VBA और इस प्रकार निहित के लिए डिफ़ॉल्ट हैं, और (लगभग) हमेशा गिरा दिया जा सकता है।
प्रकार शाब्दिक $
बलों b
प्रकार की होनी चाहिएString
।
अन्य प्रकार के शाब्दिक
!
एक
@
मुद्रा
#
दोहरा
%
पूर्णांक
$
तार
&
लंबा
^
LongLong (केवल 64 बिट)
इसके अलावा, यह आमतौर पर स्वीकार किया जाता है कि आप इनपुट चर को डिफ़ॉल्ट प्रकार के रूप में छोड़ सकते हैं, Variant
और किसी भी प्रकार-आधारित त्रुटियों को अनसुना कर सकते हैं। उदाहरण के लिए। Sub E(F)
जिसमें F
प्रकार के होने की उम्मीद है Boolean[]
(जो इस तरह दिनचर्या में पारित हो जाएगा E Array(True, False, False)
)
Sub
रूटीन और तत्काल विंडो फ़ंक्शंस के माध्यम से इनपुट करनाCells
VBA में पूरी तरह से कार्यात्मक कंसोल नहीं है और इस प्रकार इसके पास कोई आधिकारिक STDIN नहीं है , और इस प्रकार कुछ के लिए अनुमति देता है पासिंग इनपुट के साथ खेलने की ।
एक्सेल में, आम तौर पर सेल या रेंज की कोशिकाओं से इनपुट लेना स्वीकार किया जाता है, जिसे पसंद किया जा सकता है
s=[A1]
जिसका तात्पर्य .value
सेल से है [A1]
(जिसे भी संदर्भित किया जा सकता है cells(1,1)
या)range("A1")
उदाहरण समस्या: संदेश बॉक्स में इनपुट प्रदर्शित करें
वाया सबरूटीन Sub A:msgbox[A1]:End Sub
विंडो फ़ंक्शन को तत्काल रद्द करता है msgbox[A1]
इनपुट वाया सशर्त संकलन तर्क
VBA प्रोजेक्ट्स कमांड लाइन से या VBAProject Properties के माध्यम से तर्क लेने का समर्थन करते हैं (प्रोजेक्ट एक्सप्लोरर के माध्यम से देखें -> [आपका VBA प्रोजेक्ट] - (राइट क्लिक) -> VBAProject Properties -> सशर्त संकलन तर्क
यह काफी हद तक उपयोगी है Error Code Challenges के
सशर्त संकलन तर्क को देखते हुए n=
[some_value] यह कोड को निष्पादित करने की अनुमति देता है जो एक त्रुटि कोड का उत्पादन करेगा, जिसके मूल्य के आधार पर n
। ध्यान दें, यह n=
VBAProject Properties फलक के सशर्त संकलन तर्क अनुभाग में आपके कोड के लिए 2 बाइट्स के अतिरिक्त के लिए कहता है ।
उदाहरण कोड
...
#If n=3 then
return '' Produces error code '3', Return without GoSub
#ElseIf n=20 then
resume '' Produces error code '20', Resume without Error
#EndIf
...
आउटपुट वाया फंक्शन वैल्यू
यहां कहने के लिए बहुत कुछ नहीं है, नीचे उद्धृत का सामान्य रूप लगभग कॉम्पैक्ट है जैसा कि इसे बनाया जा सकता है।
Public Function A(b)
...
A=C
End Function
ध्यान दें: अधिकांश मामलों में यह अधिक बाइट है जो विधि को सबरूटीन में बदल देता है और VBE को आउटपुट तुरंत विंडो (नीचे देखें) करता है।
VBE इमीडिएट विंडो के माध्यम से Sub
दिनचर्या और Function
s से आउटपुट
VBE के लिए आउटपुट तुरंत विंडो (AKA VBE डीबग विंडो) पाठ आधारित चुनौतियों के लिए VBA के लिए एक सामान्य आउटपुट विधि है, हालांकि, यह याद रखना महत्वपूर्ण है कि Debug.Print "Text"
कॉल काफी गोल्फ हो सकता है।
Debug.Print "Text"
कार्यात्मक रूप से समान है
Debug.?"Text"
के रूप में ?
करने के लिए autoformats Print
।
Sub
अन्य तरीकों के माध्यम से दिनचर्या और VBE तत्काल विंडो कार्यों से आउटपुट
पर दुर्लभ अवसर है, जब स्थिति सिर्फ सही है, तो आप इनपुट अधिक तुच्छ VBA के लिए उपलब्ध आदानों में से कुछ से इस तरह के फ़ॉन्ट आकार समायोजक, फ़ॉन्ट चयनकर्ता के रूप में लेते हैं, और ज़ूम कर सकते हैं। (उदा। शब्द फ़ॉन्ट आकार चयनकर्ता का अनुकरण करना )