इस अनुभाग में, हम विचार करेंगे कि VBA क्या है, क्योंकि इस पर मैक्रोज़ लिखे हुए हैं।
VBA एक एम्बेडेड प्रोग्रामिंग भाषा है (Visual Basic for Applications) जिसे Microsoft द्वारा विकसित किया गया था। यह भाषा स्वतंत्र नहीं है, बल्कि केवल एमएस ऑफिस पैकेज में प्रक्रियाओं को स्वचालित करने के लिए है। VBA का व्यापक रूप से Excel, साथ ही Access, Word और पैकेज के अन्य प्रोग्रामों में उपयोग किया जाता है।
VBA एक सरल प्रोग्रामिंग भाषा है जिसे कोई भी सीख सकता है। एक बार जब आप इसे सीख लेते हैं, तो आप Excel कमांड देने में सक्षम होंगे, कॉलम, पंक्तियों, सेल मानों के साथ क्या करना है, वर्कशीट को स्थानांतरित/जोड़/सॉर्ट करना, पूर्व-प्रोग्राम किए गए संदेशों को प्रदर्शित करना, अपने स्वयं के सूत्र और फ़ंक्शन लिखना और बहुत कुछ। भाषा का सार वस्तुओं पर कार्य करना है।
_TblVBA कोड के साथ काम करने के लिए, हमें एक संपादक (Visual Basic Editor) की आवश्यकता है, जो डिफ़ॉल्ट रूप से Excel में पहले से ही स्थापित है। आप इसे कुंजी संयोजन "Alt+F11" दबाकर खोल सकते हैं।
आइए समझें कि VBA में कोई ऑब्जेक्ट क्या है।
VBA एक वस्तु एक तत्व है, एक संरचनात्मक कण Excel, अर्थात्: पुस्तक, शीट, रेंज, सेल।
VBA वस्तुओं में एक पदानुक्रम होता है, अर्थात वे एक-दूसरे के अधीन होते हैं। योजनाबद्ध रूप से, Excel में पदानुक्रम संरचना को निम्नानुसार दर्शाया जा सकता है:
सबसे महत्वपूर्ण ऑब्जेक्ट Application है, जो Excel प्रोग्राम से ही मेल खाता है। इसके बाद Workbook (पुस्तक), WorkSheet (शीट), Range (रेंज, या व्यक्तिगत सेल) आता है।
उदाहरण के लिए, वर्कशीट में सेल "ए1" को संदर्भित करने के लिए, हमें पदानुक्रम को ध्यान में रखते हुए निम्नलिखित पथ लिखना होगा:
Application.Workbooks("Archive").WorkSheets("Sheet1").Range("A1")
इस प्रकार, हमने Excel - एक सेल - में सबसे छोटी वस्तु को संदर्भित करना सीखा।
बदले में, VBA ऑब्जेक्ट "संग्रह" से संबंधित हैं।
VBA एक संग्रह एक ही कक्षा की वस्तुओं (किताबों, शीटों आदि का एक सेट) का एक समूह (सरणी) है। हाँ, सभी WorkSheet ऑब्जेक्ट WorkSheets संग्रह के तत्व हैं। बदले में, संग्रह भी एक वस्तु है।
एक ही वस्तु कई संग्रहों से संबंधित हो सकती है। उदाहरण के लिए, WorkSheet ऑब्जेक्ट भी Sheets संग्रह से संबंधित हैं। _TblSheets संग्रह में वे सभी शीट शामिल हैं जो कार्यपुस्तिका में हैं - दोनों चार्ट, जिन्हें शीट (Chart) भी माना जाता है, और डेटा शीट (WorkSheet)।
निम्नलिखित संग्रह VBA Excel में मौजूद हैं:
VBA में प्रत्येक ऑब्जेक्ट में गुण होते हैं। उदाहरण के लिए, एक Range ऑब्जेक्ट में एक Value या Formula गुण होता है।
WorkSheets("Sheet1").Range("A1").Value या WorkSheets("Sheet1").Range("A1").Formula
इस उदाहरण में, संपत्ति सेल या दर्ज सूत्र में दर्ज मूल्य प्रदर्शित करती है।
साथ ही, Formula प्रॉपर्टी के माध्यम से आप न केवल फॉर्मूला प्राप्त कर सकते हैं, बल्कि उसे लिख भी सकते हैं:
MsgBox Range("A1").Formula - हमें सेल "A1" में सूत्र के साथ एक संदेश प्राप्त होगा;
Range("B12").Formula = "=2+6*100" - सेल "B12" में सूत्र "=2+6*100" दर्ज करें।
अब आइए देखें कि हम किसी श्रेणी या सेल की सामग्री में कैसे हेरफेर कर सकते हैं। इसके लिए, VBA में तथाकथित विधियाँ ("क्या करें" कमांड) हैं। कोड लिखते समय, विधियों को एक बिंदु के साथ ऑब्जेक्ट से अलग किया जाता है, उदाहरण के लिए:
Range("A1").Select या Cells(1,1).Select
यह विधि (Select) सेल "A1" को चुनने के लिए निर्दिष्ट करती है।
इसके बाद, आइए इस सेल में मान हटाएँ। इसके लिए हम निम्नलिखित कोड लिखेंगे.
Selection.ClearContents
यहां प्रोग्राम हमने जो चुना है उसे "लेता है" (Selection) और इसकी सामग्री को साफ़ करता है (ClearContents)।