how automate repetitive qa tasks using excel macros
क्यूए के मैक्रो माइंडसेट के बारे में यह गहन मार्गदर्शिका बताती है कि एक्सेल मैकेट के उदाहरण और स्क्रीनशॉट के साथ एक्सेल मैक्रोज़ का उपयोग करके दोहराए जाने वाले क्यूए कार्यों को कैसे स्वचालित किया जाए:
आज की दुनिया में स्वचालन की आवश्यकता आवश्यक और बढ़ती मांगों में से एक है। आज हर कोई ऐसी चीज की तलाश कर रहा है जो उसके काम या दिनचर्या के काम में शामिल परेशानियों को कम कर दे।
आजकल, कोई भी मोबाइल स्टोर पर नहीं जाना चाहता है, अपने फोन को रिचार्ज करने के लिए कतारों में खड़ा है, यह भौतिक रूप से कहीं भी न जाने के लिए सुविधाजनक है, लेकिन एक सेकंड के भीतर फोन को ऑनलाइन रिचार्ज करना है।
नेट बैंकिंग के माध्यम से अपने यूटिलिटी बिलों का भुगतान, बुकिंग और अपने कैब को ऑनलाइन ट्रैक करना, विभिन्न ईकामर्स साइटों पर ऑनलाइन चीजों को खरीदना, वाशिंग मशीन, माइक्रोवेव, गीजर और कभी-कभी विकसित होने वाले स्मार्टफोन आदि जैसे विभिन्न स्वचालित उपकरणों का उपयोग करना, दुनिया आज वास्तव में है सेवाओं या गैजेट्स के रूप में स्मार्ट और स्वचालित उत्पादों के लिए तरसना।
इस लेख में, हम आर्टिफिशियल इंटेलिजेंस या मशीन लर्निंग के बारे में किसी भी ऑटोमेशन टूल या किसी भी चीज के उपयोग के बारे में चर्चा नहीं करने जा रहे हैं, लेकिन एक क्यूए के दैनिक दिनचर्या कार्यों को स्वचालित करने के लिए एक्सेल के मात्र उपयोग पर ध्यान दिया जाएगा।
आप क्या सीखेंगे:
QA का मैक्रो माइंडसेट
मैनुअल परीक्षकों की आमतौर पर यह मानसिकता होती है कि एक मैनुअल परीक्षक होने के नाते मुझे कुछ भी तकनीकी या दूसरे शब्दों से कोई लेना-देना नहीं है, not पता है कि मेरी चाय का कप नहीं है ’। यह शायद गलत मानसिकता है जो इंजीनियरों के रूप में हमारी वृद्धि को रोक सकती है।
एक मैनुअल क्यूए में कई दैनिक कार्य हैं जो समान वर्कफ़्लो के बाद दोहराए जा सकते हैं। एक क्यूए ऐसे कार्यों को बहुत अच्छी तरह से पहचान सकता है और उन्हें स्वचालित कर सकता है एक्सेल मैक्रोज़ का उपयोग करना और / या सूत्र।
यह दो तरीकों से मदद कर सकता है:
- मैन्युअल प्रयासों में लगने वाले समय को कम कर देता है।
- इसके अलावा, क्यूए को सीखने और तकनीकी मोर्चे पर तार्किक सोच और उन्नति के लिए अनुकूल बनाने के लिए प्रेरित करता है।
नीचे सूचीबद्ध सभी परीक्षण चरणों के लिए चीजें स्वचालित की जा सकती हैं:
- परीक्षण की योजना और अनुमान।
- टेस्ट डिजाइन या टेस्ट केस तैयारी।
- परीक्षण निष्पादन स्थिति अद्यतन।
- परीक्षण रिपोर्ट और मैट्रिक्स निर्माण।
त्वरित संदर्भ सेटिंग
# 1) एक एक्सेल के साथ बचाया। xlsxm एक्सटेंशन एक मैक्रो-सक्षम एक्सेल है।
#दो) किसी Excel पर मैक्रो को सक्षम करने के लिए, का चयन करें फ़ाइल -> विकल्प -> ट्रस्ट सेंटर -> ट्रस्ट सेंटर सेटिंग्स -> मैक्रो सेटिंग्स -> रेडियो बटन का चयन करें 'सभी मैक्रोज़ सक्षम करें' और चेकबॉक्स 'VBA प्रोजेक्ट ऑब्जेक्ट मॉडल में ट्रस्ट एक्सेस' की जांच करें। ओके पर क्लिक करें।
# 3) मेनू का चयन करें दृश्य -> मैक्रोज़ -> रिकॉर्ड मैक्रोज़ -> कुछ गतिविधि करें और मैक्रोज़ को रोकें । आप मैक्रो को संपादित कर सकते हैं और वीबीए कोड को रिकॉर्ड कर सकते हैं VBA संपादक खिड़की। इसी तरह, आप मैक्रो बनाने के लिए स्पष्ट रूप से अपने कोड जोड़ सकते हैं।
# 4) हम ऐसे दोहराए जाने वाले कार्यों के कुछ उदाहरणों पर एक नज़र डालेंगे जो एक्सेल मैक्रोज़ / फ़ार्मुलों के माध्यम से स्वचालन के लिए अच्छे उम्मीदवार हो सकते हैं।
उदाहरण उपयोग # 1
प्रत्येक कार्यात्मक चरण के अंत में, कार्यात्मक सूट से प्रतिगमन के लिए पहचाने जाने वाले कुछ परीक्षण मामलों की आवश्यकता होती है। यह हर स्प्रिंट या पुनरावृत्ति में पालन की जाने वाली प्रक्रिया है।
उपाय
एक प्रतिगमन सूट की पहचान करने और मैन्युअल रूप से बनाने के प्रयास को कम करने के लिए, नीचे दी गई अभिनव प्रक्रिया को लागू किया जा सकता है।
- आप परीक्षण मामलों / परिदृश्यों को प्रतिगमन के लिए हां / नहीं के रूप में चिह्नित करने के लिए एक अतिरिक्त कॉलम के साथ कार्यात्मक परीक्षण मामलों के साथ एक शीट बना सकते हैं।
- फिर उसी के लिए एक मैक्रो बनाएं, जैसे कि जब मैक्रो चलता है, तो to हां ’के रूप में चिह्नित प्रतिगमन के साथ सभी परीक्षण मामले / परिदृश्य दूसरी शीट पर कॉपी हो जाते हैं।
- इस प्रकार, यह स्प्रिंट के अंत में सभी कार्यात्मक परीक्षण मामलों से गुजरने के एक अतिरिक्त अभ्यास से बच जाएगा और फिर प्रत्येक परीक्षण मामले को प्रतिगमन सूट में निकाले जाने में अतिरिक्त प्रयास करेगा।
डेमो
- पहली शीट first FunctionalTestScenarios 'में सभी कार्यात्मक परीक्षण परिदृश्य / परीक्षण मामले शामिल हैं।
- एक अतिरिक्त कॉलम है Suite रिग्रेशन सूट में शामिल करें? ' परीक्षण कॉलम के अंत में test हां ’या by नहीं’ अंकित करने के लिए जोड़ा गया है, यह पहचान कर कि क्या परीक्षण परिदृश्य में से प्रत्येक को प्रतिगमन सूट में शामिल किया जाना चाहिए।
- के रूप में बनाई गई एक दूसरी शीट है 'रिग्रेशनसुइट' और यह मैक्रो के माध्यम से सभी प्रतिगमन परीक्षण परिदृश्यों को स्वचालित रूप से प्राप्त करेगा।
- CTRL + SHIFT + S मैक्रो को निष्पादित करने के लिए शॉर्टकट के रूप में सेट किया गया है।
कार्यात्मक
रिग्रेशनसुइट
VBA (मैक्रो) कोड
Sub RegressionSuite() ' Keyboard Shortcut: Ctrl+Shift+S Sheets('FunctionalTestScenarios').Activate Rows('1:1').Select Selection.AutoFilter Sheet1.Range('$A:$D').AutoFilter Field:=4, Criteria1:='Yes' Lastrow=Sheets('FunctionalTestScenarios') .Cells(Sheets('FunctionalTestScenarios').Rows.Count, 'A').End(xlUp).Row Range('A2:C2' & Lastrow).Select Selection.Copy Sheets('RegressionSuite').Select Range('A2').Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False End Sub
संहिता की व्याख्या
- चादरें ('फंक्शनलटेस्टसेंकोस')। सक्रिय: जब एक्सेल में कई शीट होती हैं, तो एक्टिवेट विधि पहली शीट को सक्रिय करती है और इसलिए ध्यान स्पष्ट रूप से पहली शीट पर सेट होता है।
- पंक्तियाँ ('1: 1')। चयन करें: यह कथन पहली शीट के सभी कॉलम के लिए पहली पंक्ति का चयन करता है।
- चयन: यह कथन चयनित पहली पंक्ति पर फ़िल्टर लागू करता है।
- Sheet1.Range ('$ A $ 1: $ D $ 38“)। ऑटफ़िल्टर फ़ील्ड: = 4, मानदंड 1: = 'हाँ': यह कथन कॉलम नंबर 4 पर ऑटो फ़िल्टर लागू करता है यानी Suite रिग्रेशन सूट में शामिल करें? ' और 'हां' मूल्य के रिकॉर्ड को फ़िल्टर करता है।
- लास्टरो = शीट्स ('फंक्शनलटेस्टसेनॉइड्स')। सेल (शीट्स ('फंक्शनलटेस्टसेनॉर्स') ।Rows.Count, 'A')। एंड (xlUp) ।Row इस कथन को पहली शीट की अंतिम पंक्ति गणना मिलती है।
- रेंज ('A2: C2' और लास्ट)। चयन: यह कथन पहली शीट की सभी पंक्तियों और स्तंभों का चयन रिग्रेशन सूट में शामिल करता है? = हाँ।
- चयन: यह कथन सभी चयनित रिकॉर्ड की प्रतिलिपि बनाता है।
- शीट्स ('रिग्रेशनसुइट')। यह कथन 2 को खोलता हैएन डीचादर।
- रेंज ('ए 2')। चयन करें: यह कथन 2 के सेल A2 का चयन करता हैएन डीचादर।
- चयन। विशेष पेस्ट: = xlPasteValues, ऑपरेशन: = xlNone, SkipBlanks _: = गलत, पारगमन: = गलत: यह कथन गंतव्य पत्रक पर स्रोत चयनित सेल मान की प्रतिलिपि बनाता है। गंतव्य सेल श्रेणी में फ़ार्मुलों का उपयोग करके केवल गणना किए गए मान होते हैं। वैकल्पिक रूप से, पेस्ट: = xlValues का भी उपयोग किया जा सकता है। कोई खाली नहीं छोड़ दिया जाता है। स्रोत कोशिकाओं को स्थानांतरित नहीं किया जाता है और कोई गणितीय संचालन नहीं किया जाता है।
उदाहरण उपयोग # 2
ऐसे समय होते हैं जब आपको 100 राज्यों या 1000 संस्थाओं (जैसे 1000 बीमा फॉर्म) के लिए परीक्षण मामलों की आवश्यकता होती है। राज्यों या संस्थाओं की इस विशाल सूची के लिए परीक्षण कदम समान और दोहराव हो सकते हैं।
इसके बावजूद, परीक्षण मामले की तैयारी सबसे अधिक समय लेने वाली गतिविधियों में से एक हो सकती है, कि ग्राहक के लिए आवश्यक अनुमानों को खरीदने के लिए परीक्षण केस दस्तावेज़ का होना बहुत महत्वपूर्ण है और QA टीम परीक्षण के प्रत्येक मामलों का परीक्षण करें सही ढंग से अनुमानित समयरेखा।
उपाय
ऐसे मामलों में, परीक्षण केस तैयारी के लंबे घंटों को मैक्रो का उपयोग करके सेकंड के एक अंश तक कम किया जा सकता है।
- आप एक शीट बना सकते हैं जिसमें आप सिर्फ इनपुट को टेस्ट केस आईडी और संस्थाओं की विशिष्ट सूची के रूप में प्रदान करते हैं।
- एक मैक्रो बनाएँ, जिसे निष्पादित करते समय, इनमें से प्रत्येक संस्थाओं के लिए परीक्षण चरणों की दोहराई गई पंक्तियों को जोड़ता है और परीक्षण मामलों को तैयार करने के लिए आवश्यक प्रयासों की पर्याप्त मात्रा में खर्च किए बिना परीक्षण केस दस्तावेज़ कुछ सेकंड में तैयार होता है।
डेमो
- पहली शीट 'GetTestcasesASAP' यहां केवल मैक्रो-संचालित शीट है, जो शुरू में रिक्त है।
- एक और चादर ‘नमूना इनपुट डेटा’ स्थूल में कोई भूमिका नहीं निभाता है। यह केवल डेमो उद्देश्यों के लिए नमूना इनपुट डेटा रखता है।
- पहली इनपुट में नमूना इनपुट डेटा रेंज A2 से B12 तक कॉपी-पेस्ट डेटा।
- आप प्रारूप में इनपुट डेटा को कॉपी-पेस्ट कर सकते हैं - कॉलम A = ……। और कॉलम बी =।
- इनपुट डेटा तैयार होने के बाद, मैक्रो को निष्पादित करने के लिए शॉर्टकट कुंजियों के रूप में CTRL + SHIFT + T दबाएं।
- प्रत्येक टेस्ट केस आईडी के लिए टेस्ट स्टेप्स स्वचालित रूप से जोड़े जाते हैं और टेस्ट केस डॉक्यूमेंट कुछ ही सेकंड में तैयार किया जाता है।
GetTestcasesASAP
नमूना इनपुट डेटा
पहली शीट में इनपुट डेटा पास्ट किया गया है।
छवि जबकि CTRL + SHIFT + T दबाकर मैक्रो निष्पादन।
VBA (मैक्रो) कोड
Sub GetTestcasesQuick() ' GetTestcasesQuick Macro ' Keyboard Shortcut: Ctrl+Shift+T Sheets('GetTestcasesASAP').Activate lastrow =Sheets('GetTestcasesASAP').Cells(Sheets('GetTestcasesASAP').Rows.Count, 'A').End(xlUp).Row Dim AddRows As Integer AddRows = 5 Dim i As Integer i = lastrow Do While i <> 1 Rows(i & ':' & i + AddRows).Insert i = i - 1 Loop ScreenUpdating = True lastrow = Sheets('GetTestcasesASAP').Cells(Sheets('GetTestcasesASAP').Rows.Count, 'A').End(xlUp).Row i = 2 While i <= lastrow + 6 Sheets('GetTestcasesASAP').Cells(i, 3) = 'Validate rates-factor combinations' Sheets('GetTestcasesASAP').Cells(i + 1, 3) = 'Batch job schedules and runs. ' Sheets('GetTestcasesASAP').Cells(i + 2, 3) = 'Commissioning calculations settlements' Sheets('GetTestcasesASAP').Cells(i + 3, 3) = 'Quick and detailed quote' Sheets('GetTestcasesASAP').Cells(i + 4, 3) = 'Benefit illustration ' Sheets('GetTestcasesASAP').Cells(i + 5, 3) = 'Benefit summary validation' i = i + 7 Wend End Sub
संहिता की व्याख्या
(ए) चादरें ('GetTestcasesASAP') सक्रिय करें: यह कथन पहली शीट को सक्रिय करता है।
सबसे अच्छा मुफ्त मैलवेयर हटाने वाला उपकरण क्या है
(b) लास्टरो = शीट्स ('गेटटेस्टेसएएसएपी')। सेल (शीट्स ('गेटटेसएएसएएसपी')। पंक्तियाँ।काउंट, 'ए')। अंत (xlUp)। इस कथन को अंतिम पंक्ति गणना मिलती है। इस बार इसे मैक्रो के निष्पादन से पहले इनपुट डेटा के एक भाग के रूप में जोड़े गए प्रारंभिक परीक्षण केस आईडी के लिए कुल संख्या की संख्या मिल जाएगी।
(c) इंटीजर के रूप में डिम AddRows: यह कथन एक पूर्णांक डेटा प्रकार के रूप में AddRows चर की घोषणा करता है।
(d) AddRows = 5: यह कथन AddRows को 5 से आरंभ करता है। चर का उपयोग प्रत्येक परीक्षण केस आईडी के बाद कुछ पंक्तियों को सम्मिलित करने के लिए किया जाता है ताकि प्रत्येक परीक्षण मामले के लिए स्थैतिक परीक्षण चरणों को जोड़ा जा सके।
(ई) मंद आई अस इंटेगर: यह कथन चर को पूर्णांक घोषित करता है।
(f) i = lastrow : यह कथन वैरिएबल i के लिए प्रारंभिक अंतिम पंक्ति गणना प्रदान करता है।
(छ) मैं जबकि १ : ऐसा तब होता है जब लूप हर टेस्ट केस आईडी के बाद 6 रिक्त पंक्तियों को सम्मिलित करता है। लूपिंग अंतिम टेस्ट केस आईडी प्रगति से शुरू होकर पहले टेस्ट केस आईडी तक होता है।
पंक्तियाँ (i & ':' और i + AddRows)। सम्मिलित करें
i = i - 1
लूप
(ज) स्क्रीनअपडेटिंग = सच : यह कथन प्रत्येक स्क्रीन अपडेट को दृश्यमान बनाता है। इसलिए, मैक्रो का प्रदर्शन थोड़ा धीमा हो सकता है। मैक्रो के प्रदर्शन को अनुकूलित करने के लिए, आप सेट भी कर सकते हैं पटपटाना = झूठ बोलना ।
स्क्रीनसेपिंग को गलत पर सेट करने से मैक्रो प्रदर्शन में सुधार होता है और इसका निष्पादन तेज हो जाता है, हालाँकि, आप मैक्रो के निष्पादन के दौरान होने वाले रुक-रुक कर परिवर्तन को देखने में सक्षम नहीं होंगे। इसके बजाय केवल मैक्रो के निष्पादन के पूरा होने के बाद परिवर्तन दिखाई देंगे।
(i) पिछलेरो = शीट्स ('गेटटेस्टेसएएसएपी')। कोशिकाएं (शीट्स ('गेटटेसकैप्सएपी')। पंक्तियां।काउंट, 'ए')। अंत (xlUp)। : यह कथन प्रत्येक टेस्टकेस के लिए नई 6 पंक्तियों को जोड़ने के बाद फिर से अंतिम पंक्ति गणना की गणना करता है।
(j) i = 2
(k) जबकि मैं<= lastrow + 6
पत्रक ('GetTestcasesASAP')। कक्ष (i, 3) = 'दरें-कारक संयोजन'
शीट्स ('GetTestcasesASAP')। कोशिकाएं (i + 1, 3) = 'बैच शेड्यूल और रन। “
शीट्स ('GetTestcasesASAP')। कोशिकाएं (i + 2, 3) = 'कमीशन गणना निपटान'
पत्रक ('GetTestcasesASAP')। कक्ष (i + 3, 3) = 'त्वरित और विस्तृत उद्धरण'
पत्रक ('GetTestcasesASAP')। कक्ष (i + 4, 3) = 'लाभ चित्रण'
पत्रक ('GetTestcasesASAP')। कक्ष (i + 5, 3) = 'सारांश सारांश सत्यापन'
i = i + 7
लागू
लूप का यह स्निपेट प्रत्येक टेस्टकेस के बाद स्टैटिक टेस्ट स्टेप्स के 6 चरणों को जोड़ता है और बाद में प्रत्येक टेस्टकेस आईडी के बाद इन लाइनों को सेट करता है।
प्रत्येक टेस्ट केस के लिए जोड़ा गया स्टैटिक टेस्ट स्टेप्स निम्नानुसार हैं:
- चरण 1: दरों-कारक संयोजनों को मान्य करें।
- चरण 2: बैच जॉब शेड्यूल और रन।
- चरण 3: कमीशन की गणना बस्तियों।
- चरण 4: त्वरित और विस्तृत उद्धरण।
- चरण 5: लाभ चित्रण।
- चरण 6: सारांश सत्यापन लाभ।
इसके अलावा, यह अगले टेस्ट केस आईडी को 6 + 2 यानी 8 के क्रम में धकेलता हैवेंपंक्ति।
जैसे: यदि TC1 पहली पंक्ति पर है, तो चरण दूसरी से सातवीं पंक्तियों में जोड़े जाते हैं और TC2 को आठवीं पंक्ति में धकेल दिया जाता है। बाकी टेस्ट केस आईडी के लिए भी इसी तरह के फैशन का पालन किया जाता है।
उदाहरण उपयोग # 3
ऐसे मामले हैं जब क्लाइंट के पास 1000 या उससे अधिक रिकॉर्ड करने के लिए एक बड़ी डेटा फ़ाइल कहीं और प्रदान की जाती है और इन विनम्र रिकॉर्ड के लिए टेस्ट केस लिखते हैं और प्रत्येक टेस्ट स्टेप के खिलाफ प्रत्येक डेटा की मैपिंग एक थकाऊ काम है। मैक्रों कुछ दिनों के प्रयास के दिनों में कटौती कर सकते हैं जिससे परीक्षण मामले की तैयारी के समय की बचत होगी।
उपाय
क्लाइंट प्रदान की गई डेटा फ़ाइल को मैक्रो-सक्षम शीट पर कॉपी किया जा सकता है। मैक्रो को निष्पादित करने पर, प्रत्येक शीट केस के लिए प्रत्येक परीक्षण चरण के खिलाफ परीक्षण डेटा को स्वचालित रूप से मैप करके परीक्षण पत्रक दूसरी शीट में स्वत: निर्मित होते हैं।
डेमो
- पहली चादर 'इनपुट फ़ाइल' और दूसरी शीट ‘ReadyTestCases ' मैक्रो में मुख्य योगदानकर्ता हैं।
- एक अन्य पत्रक role नमूना -इन्पुट्युटाइल ’मैक्रो में कोई भूमिका नहीं निभाता है। यह केवल डेमो उद्देश्यों के लिए नमूना इनपुट डेटा फ़ाइल रखता है।
- एक बार डेटा से ‘नमूना- InputFile’ या क्लाइंट-प्रदत्त डेटा फ़ाइल को पहली शीट यानी 'InputFile' में कॉपी किया जाता है,
- मैक्रो को निष्पादित करें और परीक्षण मामले स्वचालित रूप से प्रत्येक परीक्षण मामले के लिए बनाए जाते हैं, जहां ऑर्डर आईडी को टेस्ट केस आईडी के रूप में सेट किया जाता है ( ध्यान दें: InputFile में पहले कॉलम के रूप में रखे गए विशिष्ट पहचानकर्ता को रखना याद रखें)।
- अभी तक, हमारे पास मैक्रो रन के लिए कोई शॉर्टकट कुंजी सेट नहीं है, इसके बजाय हमें इसे रन विकल्प के माध्यम से चलाना होगा दृश्य -> मैक्रोज़ -> मैक्रो का चयन करें -> संपादन -> VBA विंडो।
- मैक्रो कोड गतिशील रूप से परीक्षण चरणों को संभालता है। यह एक चेक करता है, अंत में, यह देखने के लिए कि क्या कोई फ़ील्ड मान रिक्त है, यदि हाँ, तो यह उसी के लिए परीक्षण चरण को हटा देता है क्योंकि रिक्त फ़ील्ड के लिए चरण की आवश्यकता नहीं होगी। उदाहरण के लिए, यदि आप नीचे दी गई इनपुट फ़ाइल को देखते हैं, तो 2एन डीशिप तिथि के लिए रिकॉर्ड का कोई मूल्य नहीं है और तीसरी पंक्ति का क्षेत्र के लिए कोई मूल्य नहीं है। इसलिए, मैक्रो निष्पादन के बाद, ऑटो-क्रिएट किए गए परीक्षण मामलों में इन रिक्त मानों के अनुरूप परीक्षण चरण नहीं होंगे।
नमूना- InputFile
InputFile: नमूना इनपुट से कॉपी पेस्ट डेटा प्रदर्शन करने के बाद InputFile
ध्यान दें:
- कॉलम हेडर को-नमूना-इनपुटफाइल ’शीट से पेस्ट न करें।
- पीले हाइलाइट किए गए फ़ील्ड रिक्त हैं इसलिए इन रिक्त मानों के अनुरूप परीक्षण चरणों को मैक्रो के माध्यम से नहीं बनाया जाना चाहिए।
मैक्रो रन के बाद ReadyTestcases शीट की छवि।
VBA (मैक्रो) कोड
Sub Macro1() ScreenUpdating = False '-------- Assign the first column value of Inputfile sheet to first column of ReadyTestCases sheet' This is the TC Id -- ThisWorkbook.Sheets('InputFile').Activate nrow = ThisWorkbook.Sheets('InputFile').Cells(Rows.Count, 1).End(xlUp).Row ncol = ThisWorkbook.Sheets('InputFile').Cells(1, Columns.Count).End(xlToLeft).Column i = 1 j = 1 For i = 1 To nrow ThisWorkbook.Sheets('ReadyTestCases').Cells(i, 1) = ThisWorkbook.Sheets('InputFile').Cells(i, 1) Next i ' ---------------------Inserting 20 buffer blank rows for each row in InputFile sheet--------- lastrow = Sheets('InputFile').Cells(Sheets('InputFile').Rows.Count, 'A').End(xlUp).Row ThisWorkbook.Sheets('InputFile').Activate AddRows = 21 i = lastrow Do While i <> 1 Rows(i &; ':' & i + AddRows - 1).Insert i = i - 1 Loop ' Inserting 21 buffer blank rows for each row in ReadyTestCases sheet----------- lastrow = Sheets('ReadyTestCases').Cells(Sheets('ReadyTestCases').Rows.Count, 'A').End(xlUp).Row ThisWorkbook.Sheets('ReadyTestCases').Activate AddRowsTC = 21 j = lastrow Do While j <> 1 ' 1 because we dont need extra blank lines after last row Rows(j & ':' & j + AddRowsTC - 1).Insert j = j - 1 Loop '------- Input values into ReadyTestCases sheet from each row of inputfile sheet lastrow = Sheets('ReadyTestCases').Cells(Sheets('ReadyTestCases').Rows.Count, 'A').End(xlUp).Row Dim a a = 1 ThisWorkbook.Sheets('ReadyTestCases').Activate For a = 1 To lastrow ThisWorkbook.Sheets('ReadyTestCases').Cells(a,3) = ThisWorkbook.Sheets('InputFile').Cells(a, 2) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 1, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 3) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 2, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 4) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 3, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 5) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 4, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 6) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 5, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 7) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 6, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 8) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 7, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 9) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 8, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 10) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 9, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 11) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 10, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 12) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 11, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 13) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 12, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 14) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 13, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 15) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 14, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 16) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 15, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 17) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 16, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 18) ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 17, 3) = ThisWorkbook.Sheets('InputFile').Cells(a, 19) a = a + 21 Next a '------- Add verbiages reserved for each row lastrow = Sheets('ReadyTestCases').Cells(Sheets('ReadyTestCases').Rows.Count, 'C').End(xlUp).Row a = 1 ThisWorkbook.Sheets('ReadyTestCases').Activate For a = 1 To lastrow ThisWorkbook.Sheets('ReadyTestCases').Cells(a, 2) = 'Verify Order Date' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 1, 2) = 'Verify Ship Date' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 2, 2) = 'Verify Ship Mode' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 3, 2) = 'Verify Customer Id' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 4, 2) = 'Verify Customer Name' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 5, 2) = 'Verify Segment' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 6, 2) = 'Verify City' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 7, 2) = 'Verify State' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 8, 2) = 'Verify Postal Code' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 9, 2) = 'Verify Region' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 10, 2) = 'Verify Product Id' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 11, 2) = 'Verify Category' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 12, 2) = 'Verify Sub-Category' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 13, 2) = 'Verify Product Name' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 14, 2) = 'Verify Sales' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 15, 2) = 'Verify Quantity' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 16, 2) = 'Verify Discount' ThisWorkbook.Sheets('ReadyTestCases').Cells(a + 17, 2) = 'Verify Profit' a = a + 21 Next a '------Second last step- remove blank rows from ReadyTestCases and InputFile----- Deleteblankrows ('ReadyTestCases') 'call Delete blank row function for TC sheet ScreenUpdating = True End Sub ‘-------------------------------------------------------------------------------- Sub Deleteblankrows(ByVal Sheet As String) Dim wks As Worksheet Set wks = ThisWorkbook.Worksheets(Sheet) Dim i As Long wks.Activate lastrow = wks.Cells(Sheets(Sheet).Rows.Count, 'C').End(xlUp).Row With ActiveSheet For i = 1 To lastrow 'check each row of column B , if any row is empty then countA=0, delete that entire row If WorksheetFunction.CountBlank(Range(Cells(i, 2), Cells(i, 3))) = 1 Then Selection.Rows(i).EntireRow.Delete End If Next i End With End Sub
संहिता की व्याख्या
# 1) स्क्रीनअपडेटिंग = गलत: ScreenUpdating को False पर सेट करने से स्क्रीन अपडेट दिखाई नहीं देगा।
# 2) ThisWorkbook.Sheets ('InputFile')। सक्रिय करें: यह कथन शीट ates InputFile ’को सक्रिय करता है।
# 3) nrow = ThisWorkbook.Sheets ('InputFile')। सेल (पंक्तियाँ। CC, 1)। और (xlUp) .Row: इस कथन को कुल पंक्तियों की गिनती मिलती है।
# 4) ncol = ThisWorkbook.Sheets ('InputFile')। कोशिकाएं (1, कॉलम। Count)। और (xlToLeft)। कॉलम: इस कथन को कुल कॉलमों की गिनती मिलती है।
# 5) i = 1: यह कथन 1 के साथ आरंभ करता है।
# 6) j = 1: यह कथन 1 के साथ j को इनिशियलाइज़ करता है।
# 7) i = 1 के लिए
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (i, 1) = ThisWorkbook.Sheets ('InputFile')। कक्ष (i, 1)
अगला मैं : फॉर लूप कॉपी का यह स्निपेट F InputFile ’शीट की पहली कॉलम वैल्यू (ऑर्डर आईडी) को शीट‘ ReadyTestCases ’की प्रत्येक पंक्ति में टेस्टकेस आईडी के रूप में चिपका देता है।
# 8) lastrow = शीट्स ('InputFile')। सेल (शीट्स ('InputFile')। Rows.Count, 'A')। अंत (xlUp) ।Row: यह कथन InputFile की अंतिम पंक्ति गणना को फिर से बताता है।
# 9) AddRows = 21: यह कथन 21 AddRows चर को असाइन करता है। इस चर को परीक्षण चरणों के अलावा प्रत्येक परीक्षण मामले के लिए 21 अतिरिक्त रिक्त पंक्तियों को सम्मिलित करने के इरादे से 21 सौंपा गया है।
# 10) i = अंतिम: यह कथन i को नवीनतम अंतिम पंक्ति गणना प्रदान करता है।
# 11) जबकि मैं 1
पंक्तियाँ (i & ':' और i + AddRows - 1)। सम्मिलित करें
i = i - 1
लूप: यह कथन नीचे से ऊपर तक शुरू होने वाले प्रत्येक टेस्टकेस के लिए 20 पंक्तियों को जोड़ता है।
# 12) अंतिम छोर = चादरें ('रेडीएस्टकेस')। कक्ष (शीट्स ('रेडीस्टेसकेस')। Rows.Count, 'A')। अंत (xlUp) .Row: यह कथन नवीनतम कुल पंक्ति गणना को फिर से बताता है।
# 13) ThisWorkbook.Sheets ('ReadyTestCases')। सक्रिय: इस कथन के माध्यम से दूसरी शीट सक्रिय की गई है।
# 14) मंद को: यह कथन चर को घोषित करता है।
# 15) ए = 1: यह कथन 1 से 1 प्रदान करता है।
# 16) a = 1 के लिए
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 2)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 1, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 3)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 2, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 4)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 3, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 5)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 4, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 6)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 5, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 7)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 6, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 8)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 7, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 9)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 8, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 10)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 9, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 11)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 10, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 12)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 11, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 13)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 12, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 14)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 13, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 15)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 14, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 16)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 15, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 17)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 16, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 18)
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 17, 3) = ThisWorkbook.Sheets ('InputFile')। कक्ष (a, 19)
a = a + 21
अगला: लूप के लिए स्निपेट प्रत्येक टेस्ट केस आईडी के लिए प्रत्येक परीक्षण चरणों के खिलाफ इनपुटफाइल शीट के हर कॉलम से मानों को मैप करता है।
# 17) लास्टरो = शीट्स ('रेडीस्टेसकेस')। सेल (शीट्स ('रेडीएस्टेसैसेस')। रोव्स.काउंट, 'सी')। एंड (xlUp)। : यह कथन प्रत्येक परीक्षण केस आईडी के लिए 21 पंक्तियों के अतिरिक्त कुल पंक्ति गणना ReadyTestCases शीट को पुन: गणना करता है।
# 18) ए = 1: यह कथन 1 को वेरिएबल ए पर असाइन करता है।
# 19) ThisWorkbook.Sheets ('ReadyTestCases')। सक्रिय करें: यह कथन रेडीटेस्टेस शीट को सक्रिय करता है।
# 20) a = 1 के लिए
ThisWorkbook.Sheets ('ReadyTestCases')। सेल (ए, 2) = 'ऑर्डर तिथि सत्यापित करें'
ThisWorkbook.Sheets ('ReadyTestCases')। कोशिकाएं (ए + 1, 2) = 'सत्यापित शिप'
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 2, 2) = 'सत्यापन उपकरण मोड'
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 3, 2) = 'ग्राहक सेवा सत्यापित करें'
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 4, 2) = 'ग्राहक सेवा सत्यापित करें'
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 5, 2) = 'सत्यापित अनुक्रम'
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 6, 2) = 'शहर सत्यापित करें'
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 7, 2) = 'राज्य सत्यापित करें'
ThisWorkbook.Sheets ('ReadyTestCases')। सेल (ए + 8, 2) = 'सत्यापित डाक कोड'
ThisWorkbook.Sheets ('ReadyTestCases')। कोशिकाएं (ए + 9, 2) = 'सत्यापित क्षेत्र'
ThisWorkbook.Sheets ('ReadyTestCases')। सेल (ए + 10, 2) = 'उत्पाद विवरण'
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 11, 2) = 'सत्यापित करें श्रेणी'
ThisWorkbook.Sheets ('ReadyTestCases')। सेल (ए + 12, 2) = 'उप-श्रेणी सत्यापित करें']
ThisWorkbook.Sheets ('ReadyTestCases')। कक्ष (a + 13, 2) = 'सत्यापित उत्पाद सूची'
ThisWorkbook.Sheets ('ReadyTestCases')। सेल (ए + 14, 2) = 'बिक्री सत्यापित करें'
ThisWorkbook.Sheets ('ReadyTestCases')। सेल (ए + 15, 2) = 'सत्यापित मात्रा'
ThisWorkbook.Sheets ('ReadyTestCases')। सेल (ए + 16, 2) = 'डिस्काउंट सत्यापित करें'
ThisWorkbook.Sheets ('ReadyTestCases')। कोशिकाएं (a + 17, 2) = 'सत्यापित लाभ'
a = a + 21
अगला - फॉर लूप का यह स्निपेट प्रत्येक परीक्षण मामले के लिए स्थैतिक परीक्षण चरण जोड़ता है।
# 21) Deleteblankrows ('ReadyTestCases'): Function तैयार TestCases की पत्रक के लिए फ़ंक्शन Deleteblankrow फ़ंक्शन को कॉल करें।
# 22) स्क्रीनअपडेटिंग = सच: यह आपको मैक्रो निष्पादन के एक भाग के रूप में हो रहे स्क्रीन अपडेट की कल्पना करने की अनुमति देता है।
# 23) सब डिलीटब्लांक (स्ट्रिंग के रूप में बायल शीट): नीचे दिए गए कोड फ़ंक्शन डेलेटब्लेन्कोज़ के लिए है जो डेटा फ़ील्ड में कोई रिक्त मान होने पर गतिशील रूप से जाँच करेगा। यदि हाँ, तो ऐसी पंक्तियों को हटाकर रिक्त डेटा के लिए बनाया गया परीक्षण चरण बदले में हटा दिया जाएगा।
# 24) डिम वर्क्स के रूप में डिम यह कथन वर्कशीट के रूप में wks चर की घोषणा करता है।
# 25) सेट wks = ThisWorkbook.Worksheets (शीट): यह कथन इनपुट पैरामीटर के रूप में प्रदान की गई wks शीट प्रदान करता है।
# 26) डिम आई अस लॉन्ग: यह लाइनर I को लॉन्ग घोषित करता है।
# 28) wks.Activate: यह कथन पत्रक को सक्रिय करता है।
# 29) lastrow = wks.Cells (शीट्स (शीट) .Rows.Count, 'C')। End (xlUp) .Row: इस कथन को शीट पर अंतिम पंक्ति की गिनती मिलती है।
# 30) i = 1 के लिए अंतिम: पहली पंक्ति से अंतिम पंक्ति तक लूप के लिए पुनरावृति होती है।
# 31) यदि वर्कशीटफंक्शन.काउंटबैंक (रेंज (सेल (i, 2), सेल) (i, 3)) = 1 फिर: यह स्थिति जांचती है कि क्या प्रत्येक पंक्ति के लिए, दूसरा और तीसरा स्तंभ रिक्त मान में 1 के रूप में गिना जाता है।
# 32) चयन.शो (i) .EireireRow.Delete: यह कथन चयनित पंक्ति को हटाता है यदि स्थिति सत्य है।
उदाहरण उपयोग # 4
परीक्षण अनुमान टेम्पलेट में एक्सेल फ़ार्मुलों को एक मैक्रो का उपयोग करके भी चलाया जा सकता है। मैक्रो का उपयोग करके एक चार्ट भी बनाया गया है।
डेमो
- एक शीट add अनुमान ’जो उपयोगकर्ताओं को व्यावसायिक आवश्यकताओं को समझने से लेकर परीक्षण स्क्रिप्ट बनाने पर क्रियान्वयन और निष्पादन के लिए शुरू होने वाले परीक्षण चरणों के लिए अनुमानित घंटे जोड़ने में सक्षम बनाए रखेगा।
- हरे रंग की हाइलाइटेड कोशिकाएं उपयोगकर्ता प्रविष्टि के लिए सक्षम हैं। ये इनपुट फ़ील्ड हैं।
- नीले हाइलाइट किए गए ऑटो व्युत्पन्न हैं।
- दूसरी शीट में Rework मेट्रिक्स और तीसरी शीट में Complexity मेट्रिक्स शामिल हैं।
- स्तंभ D में H, L, और M के संदर्भ में उपयोगकर्ता जटिलता आकार में प्रवेश करता है, और स्तंभ E ऑटो जटिलता से कारक का उपयोग करता है 'जटिलता मेट्रिक्स' चादर।
- उपयोगकर्ता स्तंभ F में H, L, और M के संदर्भ में पुन: कार्य आकार में प्रवेश करता है, और G G ऑटो-मेट्रिक्स की शीट से vlookup का उपयोग करते हुए जटिलता के लिए कारक प्राप्त करता है।
- कारक तो अनुमान के लिए कुल प्रयासों को लाने के लिए स्तंभ एच में उपयोग किया जाता है।
- निष्पादित होने पर एक और मैक्रो चार्ट तैयार करता है और इसे चौथी शीट 'चार्ट' पर जोड़ता है।
- शामिल फ़ार्मुलों को शॉर्टकट कुंजी CTRL + SHIFT + E का उपयोग करके मैक्रो के माध्यम से संचालित किया जाता है।
अनुमान
रिवर मेट्रिक्स
जटिलता मेट्रिक्स
चार्ट
अनुमान शीट के लिए VBA (मैक्रो) कोड
' Keyboard Shortcut: Ctrl+Shift+E ThisWorkbook.Sheets(1).Activate Sheets('Estimates').Cells(4, 8) = Sheets('Estimates').Cells(4, 2) * Sheets('Estimates').Cells(4, 3) * Sheets('Estimates').Cells(4, 5) * Sheets('Estimates').Cells(4, 7) Sheets('Estimates').Cells(5, 8) = Sheets('Estimates').Cells(5, 2) * Sheets('Estimates').Cells(5, 3) * Sheets('Estimates').Cells(5, 5) * Sheets('Estimates').Cells(5, 7) Sheets('Estimates').Cells(6, 8) = Sheets('Estimates').Cells(6, 2) * Sheets('Estimates').Cells(6, 3) * Sheets('Estimates').Cells(6, 5) * Sheets('Estimates').Cells(6, 7) Sheets('Estimates').Cells(7, 8) = Sheets('Estimates').Cells(7, 2) * Sheets('Estimates').Cells(7, 3) * Sheets('Estimates').Cells(7, 5) * Sheets('Estimates').Cells(7, 7) Sheets('Estimates').Cells(8, 8) = Sheets('Estimates').Cells(8, 2) * Sheets('Estimates').Cells(8, 3) * Sheets('Estimates').Cells(8, 5) * Sheets('Estimates').Cells(8, 7) Sheets('Estimates').Cells(9, 8) = Sheets('Estimates').Cells(9, 2) * Sheets('Estimates').Cells(9, 3) * Sheets('Estimates').Cells(9, 5) * Sheets('Estimates').Cells(9, 7) Sheets('Estimates').Cells(10, 8) = Sheets('Estimates').Cells(10, 2) * Sheets('Estimates').Cells(10, 3) * Sheets('Estimates').Cells(10, 5) * Sheets('Estimates').Cells(10, 7) Sheets('Estimates').Cells(11, 8) = Sheets('Estimates').Cells(4, 8) + Sheets('Estimates').Cells(5, 8) + Sheets('Estimates').Cells(6, 8) + Sheets('Estimates').Cells(7, 8) + Sheets('Estimates').Cells(8, 8) + Sheets('Estimates').Cells(9, 8) + Sheets('Estimates').Cells(10, 8) ‘--------------------------------------------------- For i = 3 To 10 Sheets('Chart').Cells(i - 2, 1) = Sheets('Estimates').Cells(i, 1) Sheets('Chart').Cells(i - 2, 2) = Sheets('Estimates').Cells(i, 8) Next i End Sub
संहिता की व्याख्या
(ए) ThisWorkbook.Sheets (1)। आर्कटिक: पहली शीट first अनुमानों को सक्रिय करती है।
(b) पत्रक ('अनुमान')। कक्ष (4, 8) = पत्रक ('अनुमान')। कक्ष (4, 2) * पत्रक ('अनुमान')। कक्ष (4, 3) पत्रक ('अनुमान') ) .केल्स (4, 5) * शीट्स ('अनुमान')। सेल (4, 7): यह कथन कॉलम B * कॉलम C * कॉलम E * कॉलम G की गणना करता है और पंक्ति 4 के लिए स्तंभ H को असाइन करता है।
(c) पत्रक ('अनुमान')। कक्ष (5, 8) = पत्रक ('अनुमान')। कक्ष (5, 2) * पत्रक ('अनुमान')। कक्ष (5, 3) पत्रक ('अनुमान') ) .Cells (5, 5) * पत्रक ('अनुमान')। कक्ष (5, 7): यह कथन कॉलम B * कॉलम C * कॉलम E * कॉलम G की गणना करता है और पंक्ति 5 के लिए स्तंभ H को असाइन करता है।
(d) पत्रक ('अनुमान')। कक्ष (6, 8) = पत्रक ('अनुमान')। कक्ष (6, 2) * पत्रक ('अनुमान')। कक्ष (6, 3) पत्रक ('अनुमान') ) .Cells (6, 5) * पत्रक ('अनुमान')। कक्ष (6, 7): यह कथन कॉलम B * कॉलम C * कॉलम E * कॉलम G की गणना करता है और पंक्ति 6 के लिए कॉलम H को असाइन करता है।
(ई) पत्रक ('अनुमान')। कक्ष (7, 8) = पत्रक ('अनुमान')। कक्ष (7, 2) * पत्रक ('अनुमान')। कक्ष (7, 3) पत्रक ('अनुमान') ) .Cells (7, 5) * पत्रक ('अनुमान')। कक्ष (7, 7): यह कथन कॉलम B * कॉलम C * कॉलम E * कॉलम G की गणना करता है और पंक्ति 7 के लिए स्तंभ H को असाइन करता है।
(च) पत्रक ('अनुमान')। कक्ष (8, 8) = पत्रक ('अनुमान')। कक्ष (8, 2) * पत्रक ('अनुमान')। कक्ष (8, 3) पत्रक ('अनुमान') ) .सेल (8, 5) * शीट्स ('अनुमान')। सेल (8, 7): यह कथन कॉलम B * कॉलम C * कॉलम E * कॉलम G की गणना करता है और पंक्ति 8 के लिए स्तंभ H को असाइन करता है।
(छ) पत्रक ('अनुमान')। कक्ष (9, 8) = पत्रक ('अनुमान')। कक्ष (9, 2) * पत्रक ('अनुमान')। कक्ष (9, 3) पत्रक ('अनुमान') ) .सेल (9, 5) * शीट्स ('अनुमान')। सेल (9, 7): यह कथन कॉलम B * कॉलम C * कॉलम E * कॉलम G की गणना करता है और पंक्ति 9 के लिए स्तंभ H को असाइन करता है।
(h) पत्रक ('अनुमान')। कक्ष (10, 8) = पत्रक ('अनुमान')। कक्ष (10, 2) * पत्रक ('अनुमान')। कक्ष (10, 3) पत्रक ('अनुमान') ) .सेल (10, 5) * शीट्स ('अनुमान')। सेल (10, 7): यह कथन कॉलम B * कॉलम C * कॉलम E * कॉलम G की गणना करता है और पंक्ति 10 के लिए स्तंभ H को असाइन करता है।
(i) पत्रक ('अनुमान')। कक्ष (11, 8) = पत्रक ('अनुमान')। कक्ष (4, 8) + पत्रक ('अनुमान')। कक्ष (5, 8) + पत्रक ('अनुमान') ) .Cells (6, 8) + पत्रक ('अनुमान')। कक्ष (7, 8) + पत्रक ('अनुमान')। कक्ष (8, 8) + पत्रक ('अनुमान')। कक्ष (9, 8)। + पत्रक ('अनुमान')। कक्ष (10, 8): यह कथन H10 से H10 तक सेल करता है और H11 को अंतिम मान प्रदान करता है। यह मान कुल प्रयास (घंटों में) प्रदान करता है।
(j) i = 3 से 10 के लिए
पत्रक ('चार्ट')। कक्ष (i - 2, 1) = पत्रक ('अनुमान')। कक्ष (i, 1)
पत्रक ('चार्ट')। कक्ष (i - 2, 2) = पत्रक ('अनुमान')। कक्ष (i, 8)
अगला मैं : यह लूप के लिए कॉलम 1 और एस्टिमेट्स शीट के कॉलम 8 से चार्ट शीट में डेटा को कॉपी करता है। ऐसा इसलिए किया जाता है ताकि चार्ट शीट के डेटा का उपयोग पाई चार्ट तैयार करने के लिए किया जा सके। शीट 'चार्ट' के लिए लिखा गया एक और मैक्रो है जो उसी के लिए एक चार्ट तैयार करता है।
चार्ट के लिए VBA (मैक्रो) कोड
Sub CreateChart() Dim rng As Range Dim cht As Object ThisWorkbook.Sheets('Chart').Activate Set rng = ActiveSheet.Range('A2:B8') Set est = ThisWorkbook.Sheets('Chart').Shapes.AddChart2 est.Chart.SetSourceData Source:=rng est.Chart.ChartType = xl3DPieExploded est.Chart.HasTitle = True est.Chart.ChartTitle.Text = 'Test Estimates' est.Chart.SetElement (msoElementDataLabelCenter) est.Chart.SetElement (msoElementLegendBottom) End Sub
संहिता की व्याख्या
- Dim rng As Range: यह कथन आरएनजी को एक रेंज मान के रूप में घोषित करता है।
- मंद वस्तु है: यह कथन ऑब्जेक्ट वैल्यू के रूप में स्था घोषित करता है।
- यह कार्यपुस्तिका। पत्रक ('चार्ट') सक्रिय करें: यह कथन चार्ट शीट को सक्रिय करता है।
- सेट करें rng = ActiveSheet.Range ('A2: B8'): शीट-चार्ट के ए 2 से बी 8 तक की सीमा तय की जाती है।
- सेट इस्ट = ThisWorkbook.Sheets ('चार्ट')। आकृतियाँ ।ddChart2: इस कथन का उपयोग शीट-चार्ट पर एक नए चार्ट के निर्माण के लिए किया जाता है।
- est.Chart.SetSourceData स्रोत: = rng: यह कथन चार्ट में चिंतन के लिए एक डेटा रेंज प्रदान करता है।
- est.Chart.ChartType = xl3DPieExploded: चार्ट प्रकार विस्फोटित प्रकार के 3 डी पाई पर सेट है। xl3DPieExploded इस चार्ट प्रकार को निर्धारित करने में मदद करता है।
- est.Chart.HasTitle = सत्य: यह कथन सत्यापित करता है कि चार्ट में पहले से ही एक शीर्षक है।
- est.Chart.ChartTitle.Text = 'टेस्ट अनुमान': यह कथन चार्ट शीर्षक को 'टेस्ट अनुमान' से आगे बढ़ाता है।
- est.Chart.SetElement (msoElementDataLabelCenter): यह कथन चार्ट के लिए डेटा लेबल और किंवदंतियों को सेट करता है।
- est.Chart.SetElement (msoElementLegendBottom): यह कथन डेटा लेबल को चार्ट के नीचे सेट करता है।
एक मैक्रो को निष्पादित करने के तरीके
एक मैक्रो 4 तरीकों का उपयोग करके निष्पादित किया जा सकता है:
- VBA संपादक विंडो पर रन आइकन का उपयोग करना।
- Excel फ़ाइल पर, मेनू विकल्प का चयन करें दृश्य -> मैक्रोज़ -> मैक्रो देखें -> मैक्रो नाम का चयन करें और भागो का चयन करें।
- मैक्रो बनाते समय एक शॉर्टकट बनाएं, और शॉर्टकट कुंजियों को दबाने से मैक्रो का निष्पादन चालू हो जाएगा।
- सबसे उपयोगकर्ता के अनुकूल तरीका एक्शन बटन बना रहा है ( जैसे कमांड बटन) जिस पर एक मैक्रो असाइन किया जाएगा जो क्लिक करने पर मैक्रो के निष्पादन को ट्रिगर करेगा।
हम देखेंगे कि कमांड बटन कैसे जोड़ें और बटन पर मैक्रो असाइन करें। जब क्लिक किया गया बटन मैक्रो का निष्पादन करेगा।
Excel में एक प्रपत्र नियंत्रण बटन जोड़ें
- चुनते हैं मेनू s डेवलपर ’-> डालें -> प्रपत्र नियंत्रण -> बटन आइकन चुनें और एक्सेल शीट पर बटन जोड़ें।
- बटन के लिए नाम और पाठ मान इनपुट करें। इस कमांड बटन को पहचानने के लिए बटन का नाम VBA कोडिंग में उपयोग किया जाता है जबकि टेक्स्ट बटन पर प्रदर्शित होता है।
- अब कमांड बटन पर राइट क्लिक करें और विकल्प चुनें 'मैक्रो असाइन करें' मैक्रो की सूची दिखाई देती है, उस मैक्रो का नाम चुनें जिसे आप असाइन करना चाहते हैं।
- मैक्रो को असाइन करने के बाद, बटन पर क्लिक करने से असाइन किए गए मैक्रो का निष्पादन चालू हो जाता है।
- इस उदाहरण में, ‘टेस्ट अनुमान प्राप्त करें’ बटन सौंपा है 'अनुमान' स्थूल।
- इसी तरह, हम चार्ट शीट के लिए एक कमांड बटन जोड़ेंगे और चार्ट की पीढ़ी को ट्रिगर करने के लिए चार्ट के लिए मैक्रो असाइन करेंगे।
- पर क्लिक कर रहा है ‘चार्ट बनाएं’ बटन चार्ट के लिए मैक्रो चलाता है। यह मैक्रो की प्रयोज्य में सुधार करता है।
निष्कर्ष
ये कुछ वास्तविक समय के उदाहरण थे जो काम पर परीक्षक की दैनिक दिनचर्या का एक हिस्सा हो सकते हैं जो कि मैक्रो पीढ़ी के लिए स्मार्ट रूप से पहचाने जा सकते हैं और इसलिए, कार्य को स्वचालित करके अप्रासंगिक और दोहराव वाले मैनुअल प्रयासों पर पर्याप्त समय बचा सकते हैं।
प्रासंगिक स्क्रीनशॉट, VBA कोड और कोड की प्रत्येक पंक्ति की विस्तृत समझ इस लेख में शामिल की गई है। मुझे आशा है, यह QAs के लिए एक अच्छा सिर शुरू कर देगा कि कैसे अपने आप को एक मैनुअल परीक्षण मानसिकता से एक मैक्रो मानसिकता में बदल दें।
मैनुअल टेस्टर्स की नौकरी पर विश्वास करने वाले लोगों के लिए विशुद्ध रूप से एक गैर-तकनीकी नौकरी है, आइए हम उत्पादकता में सुधार के लिए तकनीकी ज्ञान के आवश्यक अनुप्रयोग के माध्यम से उन्हें गलत साबित करें।
लेखक: यह गहराई से उपयोगी पोस्ट शोभा डी द्वारा लिखी गई है। वह प्रोजेक्ट लीड के रूप में काम करती है और उसे मैनुअल, ऑटोमेशन (आईबीएम आरएफटी और सेलेनियम जावा का उपयोग करके) और एपीआई परीक्षण में 9+ वर्ष का अनुभव है।
अनुशंसित पाठ
- VBScript एक्सेल ऑब्जेक्ट्स के साथ काम करना
- सेलेनियम फ्रेमवर्क निर्माण और एक्सेल से टेस्ट डेटा तक पहुंचना - सेलेनियम ट्यूटोरियल # 21
- 5 सबसे आम परीक्षण कार्य परीक्षक परीक्षण करना भूल जाते हैं (और इससे कैसे बचें)
- शीर्ष 5 चीजें एक परीक्षक को एक्सेल में होना चाहिए (और सॉफ़्टवेयर परीक्षक के स्थानांतरण के परिप्रेक्ष्य)
- JIRA उप-कार्य उदाहरण के साथ (JIRA उप-कार्य बनाएँ)