GetOpenFilename एक विधि है जो एफएसओ की एक विशेषता भी है, इस पद्धति का उपयोग VBA में एक फ़ाइल नाम के साथ एक निश्चित फ़ाइल खोजने और इसे चुनने के लिए किया जाता है, इस पद्धति का महत्वपूर्ण कारक इसे खोलने के लिए प्रदान की गई फ़ाइल नाम का पथ है, हम या तो फ़ंक्शन में फ़ाइल नाम का पथ पास कर सकता है या हम उपयोगकर्ता को इसे चुनने के लिए फ़ाइल पथ प्रस्तुत करने के लिए कह सकते हैं।
एक्सेल VBA अनुप्रयोग। GetOpenFilename
ऐसी परिस्थितियां हैं जहां हमें विशिष्ट फ़ाइल नाम तक पहुंचने की आवश्यकता है, और यह VBA कोडिंग के साथ संभव हो सकता है। फ़ाइल तक पहुंचने के लिए, हमें फ़ाइल पथ के साथ-साथ फ़ोल्डर पथ और फ़ाइल नाम का उल्लेख करना होगा। फ़ाइल नाम प्राप्त करने के लिए, कई कोडर्स VBA इनपुट बॉक्स को फ़ाइल पथ और फ़ाइल नाम दर्ज करने के विकल्प के रूप में देंगे। लेकिन यह अभ्यास करने का एक अच्छा विकल्प नहीं है, क्योंकि जब आप उपयोगकर्ता के सामने एक इनपुट बॉक्स प्रस्तुत करते हैं, तो वे हमेशा फ़ाइल पथ को याद नहीं करते हैं, एक फ़ोल्डर को दूसरे फ़ोल्डर से अलग करने के लिए, फ़ाइल नाम, और फ़ाइलों का विस्तार । यह उपयोगकर्ता द्वारा दिए गए इनपुट को गड़बड़ कर देता है, और अंत में, सब कुछ खराब हो जाएगा भले ही एक छोटी सी जगह चरित्र की गलती हो। सबसे अच्छा तरीका इनपुट बॉक्स को VBA की विधि से बदलना है, जिसे "GetOpenFileName" कहा जाता है।
इस लेख में, हम आपको दिखाएंगे कि किसी भी त्रुटि के बिना फ़ाइल नाम प्राप्त करने के लिए VBA GetOpenFileName का उपयोग कैसे करें।

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

- फ़ाइल फ़िल्टर: इस तर्क में, हम यह निर्दिष्ट कर सकते हैं कि किस प्रकार की फ़ाइलों का चयन करने के लिए प्रदर्शित किया जाए। उदाहरण के लिए, यदि आप "एक्सेल फाइल, *। Xlsx" का उल्लेख करते हैं, तो यह एक्सेल एक्सटेंशन "xlsx" के साथ सहेजी गई केवल एक्सेल फाइल को प्रदर्शित करेगा। कोई अन्य फाइल प्रदर्शित नहीं की जाएगी। यदि आप अनदेखा करते हैं तो सभी प्रकार की फाइलें प्रदर्शित की जाएंगी।
- फ़िल्टर इंडेक्स: इसके साथ, हम उपयोगकर्ता को फ़ाइल प्रकार का चयन करने के लिए प्रतिबंधित करते हैं। हम फ़ाइल फ़िल्टर के तहत दृश्यमान फ़िल्टर की संख्या निर्दिष्ट कर सकते हैं ।
- शीर्षक: यह चुनिंदा फ़ाइल संवाद बॉक्स शीर्षक दिखाता है।
- बटन पाठ: यह केवल Macintosh के लिए है।
- मल्टी-सेलेक्ट: यदि आप एक से अधिक फ़ाइलों का चयन करना चाहते हैं, तो ठीक है या फिर FALSE करें। मूल मूल्य गलत है।
एक्सेल VBA में GetOpenFilename का उदाहरण
नीचे VBA Application.GetOpenFilename के उदाहरण दिए गए हैं।
फ़ाइल का नाम और पथ पता प्राप्त करने के लिए एक कोड लिखें।
चरण 1: सबरूटीन शुरू करें।
कोड:
उप GetFile_Example1 () उप सब

चरण 2: एक चर को स्ट्रिंग के रूप में घोषित करें।
कोड:
सब GetFile_Example1 () फ़ाइल का नाम स्ट्रिंग अंत उप के रूप में दर्ज करें

चरण 3: इस चर के लिए, हम GetOpenFileName को असाइन करेंगे।
कोड:
सब GetFile_Example1 () फ़ाइल नाम के रूप में मंद फ़ाइलनाम = Application.GetOpenFilename () समाप्ति उप

अब तक, मैंने सभी मापदंडों को नजरअंदाज कर दिया है।
चरण 4: अब संदेश बॉक्स में चर का परिणाम दिखाएं।
कोड:
सब GetFile_Example1 () फ़ाइल नाम के रूप में मंद फ़ाइलनाम = Application.GetOpenFilename () MsgBox FileName समाप्ति उप

अब एक्सेल शॉर्टकट कुंजी F5 या मैन्युअल के माध्यम से कोड चलाएं, यह फ़ाइल का चयन करने के लिए नीचे संवाद बॉक्स दिखाएगा।

मैं किसी एक फ़ाइल का चयन करूँगा और ओके पर क्लिक करूँगा।

जैसे ही मैं फ़ाइल का चयन करता हूं, मुझे इस तरह से VBA में एक संदेश बॉक्स मिला है। यह फ़ाइल एक्सटेंशन के साथ पूर्ण फ़ोल्डर पथ और चयनित एक्सेल फ़ाइल नाम दिखाता है।
जैसा कि हम उपरोक्त छवि में देख सकते हैं, हम सभी प्रकार की फाइलें देख सकते हैं। अब मैं पहला पैरामीटर यानी फाइल फिल्टर को “एक्सेल फाइल्स, *। Xlsx” के रूप में जोड़ूंगा।
कोड:
सब GetFile_Example1 () फ़ाइल नाम के रूप में मंद फ़ाइल नाम = Application.GetOpenFilename (FileFilter: = "एक्सेल फ़ाइलें, *। Xlsx") MsgBox FileName समाप्ति उप।

अब, यदि मैं F5 कुंजी या मैन्युअल का उपयोग करके इस कोड को चलाता हूं, तो मैं केवल एक्सेल फाइल को "xlsx" एक्सटेंशन के साथ देखूंगा।

इस तरह, हम फ़ाइल नाम और फ़ाइल एक्सटेंशन के साथ फ़ोल्डर पथ प्राप्त करने के लिए "VBA Application.GetOpenFileName" विधि का उपयोग कर सकते हैं।