एक्सेल VBA रेंज ऑब्जेक्ट
⚡ स्मार्ट सारांश
Excel VBA में रेंज ऑब्जेक्ट वर्कशीट पर एक सेल या सेलों के समूह को दर्शाता है। यह पृष्ठ ऑब्जेक्ट पदानुक्रम, रेंज और सेल्स प्रॉपर्टीज़, सेलों का चयन और संदर्भ, मानों को पढ़ना और लिखना, और ऑफ़सेट प्रॉपर्टी के बारे में बताता है।

VBA रेंज क्या है?
VBA रेंज ऑब्जेक्ट आपके एक्सेल वर्कशीट में एक सेल या कई सेल का प्रतिनिधित्व करता है। यह एक्सेल VBA का सबसे महत्वपूर्ण ऑब्जेक्ट है। एक्सेल VBA रेंज ऑब्जेक्ट का उपयोग करके, आप निम्न का संदर्भ ले सकते हैं,
- एकल कोशिका
- कोशिकाओं की एक पंक्ति या स्तंभ
- कोशिकाओं का चयन
- 3-डी रेंज
जैसा कि हमने अपने पिछले ट्यूटोरियल में चर्चा की थी, VBA का उपयोग रिकॉर्ड करने और चलाने के लिए किया जाता है। मैक्रोलेकिन VBA यह कैसे पहचानता है कि शीट पर किस डेटा पर काम करने की आवश्यकता है? यहीं पर VBA रेंज ऑब्जेक्ट उपयोगी होते हैं।
VBA में ऑब्जेक्ट को संदर्भित करने का परिचय
एक्सेल के VBA रेंज ऑब्जेक्ट और ऑब्जेक्ट क्वालीफायर का संदर्भ देना।
- ऑब्जेक्ट क्वालीफायर: इसका उपयोग ऑब्जेक्ट को संदर्भित करने के लिए किया जाता है। यह उस कार्यपुस्तिका या कार्यपत्रक को निर्दिष्ट करता है जिसका आप संदर्भ दे रहे हैं।
इन सेल मानों में हेरफेर करने के लिए, गुण और तरीके उपयोग किया जाता है।
- संपत्ति: एक प्रॉपर्टी ऑब्जेक्ट के बारे में जानकारी संग्रहीत करती है।
- विधि: विधि उस ऑब्जेक्ट की क्रिया है जिसे वह निष्पादित करेगा। रेंज ऑब्जेक्ट चयनित, कॉपी, साफ़, सॉर्ट आदि जैसी क्रियाएँ कर सकता है।
VBA एक्सेल में किसी ऑब्जेक्ट को संदर्भित करने के लिए ऑब्जेक्ट पदानुक्रम पैटर्न का पालन करता है। आपको नीचे दी गई संरचना का अनुसरण करना होगा। ध्यान रखें, यहाँ डॉट (.dot) विभिन्न स्तरों पर ऑब्जेक्ट को जोड़ता है।
अनुप्रयोग.कार्यपुस्तिकाएँ.कार्यपत्रक.श्रेणी
उस पदानुक्रम तक दो अलग-अलग गुणों के माध्यम से पहुंचा जा सकता है, और रेंज गुण का उपयोग सबसे अधिक बार किया जाता है।
रेंज प्रॉपर्टी का उपयोग करके Excel VBA रेंज ऑब्जेक्ट को कैसे संदर्भित करें
रेंज गुण दो अलग-अलग प्रकार की वस्तुओं में लागू किया जा सकता है।
- वर्कशीट ऑब्जेक्ट्स
- रेंज ऑब्जेक्ट्स
रेंज प्रॉपर्टी के लिए सिंटैक्स
- कीवर्ड “रेंज।”
- कीवर्ड के बाद आने वाले कोष्ठक
- प्रासंगिक सेल रेंज
- उद्धरण (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")
जब आप Range ऑब्जेक्ट को संदर्भित करते हैं, जैसा कि ऊपर दिखाया गया है, इसे इस रूप में संदर्भित किया जाता है पूर्णतः योग्य संदर्भआपने एक्सेल को स्पष्ट रूप से बता दिया है कि आपको कौन सी रेंज चाहिए, कौन सी शीट और किस वर्कशीट में चाहिए।
उदाहरण: संदेशBox वर्कशीट्स(“शीट1”).रेंज(“ए1”).वैल्यू
रेंज प्रॉपर्टी का उपयोग करके आप कई कार्य कर सकते हैं जैसे,
- रेंज प्रॉपर्टी का उपयोग करके एकल सेल का संदर्भ लें
- Worksheet.Range प्रॉपर्टी का उपयोग करके एकल सेल को संदर्भित करें
- संपूर्ण पंक्ति या कॉलम का संदर्भ लें
- Worksheet.Range प्रॉपर्टी का उपयोग करके मर्ज किए गए सेल देखें और बहुत कुछ
इस प्रकार, रेंज प्रॉपर्टी के लिए सभी परिदृश्यों को कवर करना बहुत लंबा होगा। ऊपर वर्णित परिदृश्यों के लिए, हम केवल एक के लिए एक उदाहरण प्रदर्शित करेंगे। रेंज प्रॉपर्टी का उपयोग करके एकल सेल देखें।
Worksheet.Range प्रॉपर्टी का उपयोग करके एकल सेल को संदर्भित करें
किसी एक सेल को संदर्भित करने के लिए, उसका पता टेक्स्ट स्ट्रिंग के रूप में Range प्रॉपर्टी को पास करें।
वाक्यविन्यास सरल है “रेंज(“सेल”)”।
यहां, हम शीट से एकल सेल का चयन करने के लिए “.Select” कमांड का उपयोग करेंगे।
चरण 1) इस चरण में, अपनी एक्सेल फ़ाइल खोलें।
चरण 2) इस चरण में,
- पर क्लिक करें
बटन.
- इससे एक विंडो खुल जाएगी.
- यहां अपना प्रोग्राम नाम दर्ज करें और 'ओके' बटन पर क्लिक करें।
- यह आपको मुख्य एक्सेल फ़ाइल पर ले जाएगा, शीर्ष मेनू से मैक्रो रिकॉर्डिंग रोकने के लिए 'स्टॉप' रिकॉर्ड बटन पर क्लिक करें।
चरण 3) अगले चरण में,
- मैक्रो बटन पर क्लिक करें
शीर्ष मेनू से। यह नीचे की विंडो खोल देगा।
- इस विंडो में, 'संपादन' बटन पर क्लिक करें।
चरण 4) उपरोक्त चरण से "सिंगल सेल रेंज" नामक फ़ाइल के लिए VBA कोड एडिटर खुल जाएगा। एक्सेल शीट से "A1" रेंज का चयन करने के लिए नीचे दिखाए गए अनुसार कोड दर्ज करें।
Sub SingleCellRange() Range("A1").Select End Sub
चरण 5) अब फ़ाइल को सेव करें और नीचे दिखाए अनुसार प्रोग्राम चलाएँ।
चरण 6) आप देखेंगे कि प्रोग्राम के निष्पादन के बाद सेल “A1” चयनित है।
इसी प्रकार, आप किसी विशिष्ट नाम वाले सेल का चयन कर सकते हैं। उदाहरण के लिए, यदि आप “नाम वाले सेल को खोजना चाहते हैंGuru99- VBA ट्यूटोरियल”। आपको नीचे दिखाए गए अनुसार कमांड चलाना होगा। यह उस नाम वाले सेल का चयन करेगा।
श्रेणी("Guru99- वीबीए ट्यूटोरियल”).चयन करें
अन्य रेंज ऑब्जेक्ट को लागू करने के लिए यहां कोड नमूना है।
| एक्सेल में सेल का चयन करने के लिए रेंज | घोषित सीमा |
|---|---|
| एकल पंक्ति के लिए | रेंज(“1:1”) |
| एकल कॉलम के लिए | रेंज (“ए:ए”) |
| सन्निहित कोशिकाओं के लिए | रेंज(“A1:C5”) |
| असंलग्न कोशिकाओं के लिए | रेंज(“A1:C5, F1:F5”) |
| दो श्रेणियों के प्रतिच्छेदन के लिए | रेंज(“A1:C5 F1:F5”) (प्रतिच्छेदन सेल के लिए, याद रखें कि कोई अल्पविराम ऑपरेटर नहीं है) |
| सेल को मर्ज करने के लिए | रेंज(“A1:C5”) (सेल को मर्ज करने के लिए “merge” कमांड का उपयोग करें) |
किसी सेल का चयन करना केवल पहला कदम है। व्यवहार में, मैक्रो सेल में मौजूद डेटा को पढ़ता है और एक नया मान वापस लिखता है।
Range ऑब्जेक्ट के साथ मानों को कैसे पढ़ें और लिखें
वर्कशीट से संबंधित लगभग हर मैक्रो दो में से एक काम करता है: या तो वह सेल से कोई मान पढ़ता है, या उसमें कोई मान लिखता है। दोनों ही काम वैल्यू प्रॉपर्टी के माध्यम से होते हैं, और दोनों में से किसी के लिए भी सेल को पहले से चयनित करने की आवश्यकता नहीं होती है।
Sub ReadAndWrite() Dim Price As Double Dim Qty As Long ' Read two values out of the sheet Price = Range("B1").Value Qty = Range("B2").Value ' Write the calculated result back Range("B3").Value = Price * Qty ' Fill a whole block in one statement Range("D1:D10").Value = "Guru99" ' Clear only the contents, keeping the formatting Range("F1:F10").ClearContents End Sub
चार बिंदु इस पैटर्न को विश्वसनीय बनाते हैं।
- चयन करना आवश्यक नहीं है: लेखन Range(“B3”).Value = 10 यह सेल को पहले चुनने की तुलना में तेज़ और सुरक्षित है। रिकॉर्ड किए गए मैक्रो में .Select का भरपूर उपयोग होता है क्योंकि रिकॉर्डर माउस क्रियाओं को प्रतिबिंबित करता है, न कि इसलिए कि कोड को इसकी आवश्यकता है।
- मूल्य बनाम पाठ: .Value अंतर्निहित डेटा लौटाता है, जबकि .Text स्क्रीन पर प्रदर्शित स्वरूपित स्ट्रिंग लौटाता है, जिसे कॉलम की चौड़ाई के अनुसार छोटा किया जा सकता है। गणनाओं में .Value पढ़ें।
- एक ही पंक्ति में पूरे ब्लॉक: किसी मल्टी-सेल रेंज को असाइन करने से हर सेल एक साथ भर जाता है, जो लू की तुलना में कहीं अधिक तेज़ है।ping.
- सही बात स्पष्ट करें: ClearContents केवल मानों को हटाता है, Clear फॉर्मेटिंग को भी हटाता है, और Delete सेल को हटाता है और उनके आसपास के सेल को स्थानांतरित करता है।
रेंज प्रॉपर्टी किसी सेल को उसके अक्षर और संख्या से संबोधित करती है। दूसरी प्रॉपर्टी उसी सेल को दो संख्याओं से संबोधित करती है।
सेल संपत्ति
इसी प्रकार, रेंज में VBA आप "सेल प्रॉपर्टी" का भी उपयोग कर सकते हैं। अंतर केवल इतना है कि इसमें एक "आइटम" प्रॉपर्टी होती है जिसका उपयोग आप अपनी स्प्रेडशीट में मौजूद सेल्स को संदर्भित करने के लिए करते हैं। प्रोग्रामिंग लूप में सेल प्रॉपर्टी उपयोगी होती है।
उदाहरण के लिए,
Cells.item(Row, Column). नीचे दी गई दोनों पंक्तियाँ सेल A1 को संदर्भित करती हैं।
- Cells.item(1,1) OR
- सेल्स.आइटम(1,”ए”)
VBA में रेंज और सेल्स के बीच अंतर
रेंज और सेल्स अलग-अलग रास्तों से एक ही वर्कशीट सेल्स तक पहुंचते हैं, और सही चुनाव करने से कोड छोटा और पढ़ने में आसान हो जाता है।
| अंतर का बिंदु | रेंज | कोशिकाओं |
|---|---|---|
| पता प्रारूप | एक टेक्स्ट स्ट्रिंग, रेंज(“A1”) | दो संख्याएँ, सेल(1, 1) |
| एकाधिक कोशिकाएँ | हाँ, रेंज (“A1:C5”) | एक बार में एक कोशिका |
| एक लूप के अंदर | स्ट्रिंग संयोजन की आवश्यकता है | पंक्ति संख्या लूप काउंटर हो सकती है |
| पठनीयता | यह एक्सेल में दिखाई देने वाले पते से मेल खाता है। | कॉलम 27 की कल्पना करना AA की तुलना में अधिक कठिन है। |
| संयुक्त उपयोग | Range(Cells(1, 1), Cells(5, 3)) संख्याओं से A1:C5 का निर्माण करता है | |
व्यवहारिक नियम यह है कि एक निश्चित पते के लिए जिसे आप एक नज़र में पढ़ सकते हैं, Range का उपयोग करें, और Cells का उपयोग तब करें जब रन टाइम पर किसी पंक्ति या स्तंभ संख्या की गणना की जा रही हो।
रेंज ऑफ़सेट संपत्ति
रेंज ऑफ़सेट प्रॉपर्टी पंक्तियों/स्तंभों को उनकी मूल स्थिति से दूर चुनेगी। घोषित रेंज के आधार पर, सेल चुने जाते हैं। नीचे उदाहरण देखें।
उदाहरण के लिए,
Range("A1").Offset(RowOffset:=1, ColumnOffset:=1).Select
इसका परिणाम सेल B2 होगा। ऑफ़सेट प्रॉपर्टी सेल A1 को 1 कॉलम और 1 पंक्ति आगे खिसका देगी। आप आवश्यकतानुसार RowOffset / ColumnOffset का मान बदल सकते हैं। सेल को पीछे खिसकाने के लिए आप ऋणात्मक मान (-1) का उपयोग कर सकते हैं।
उपरोक्त कोड युक्त Excel डाउनलोड करें
ऊपर दी गई एक्सेल फ़ाइल डाउनलोड करें Code






