VBA ۾ "فنڪشن" ۽ "ذيلي" طريقا

بلٽ ان VBA افعال

ان کان اڳ جو توهان پنهنجو VBA فنڪشن ٺاهڻ شروع ڪريو، اهو ڄاڻڻ سٺو آهي ته Excel VBA وٽ اڳ ۾ ٺهيل ڪمن جو هڪ ڀرپور مجموعو آهي جيڪو توهان استعمال ڪري سگهو ٿا جڏهن توهان پنهنجو ڪوڊ لکندا آهيو.

انهن ڪمن جي هڪ فهرست ڏسي سگھجي ٿو VBA ايڊيٽر ۾:

  • هڪ Excel ورڪ بڪ کوليو ۽ VBA ايڊيٽر لانچ ڪريو (هي ڪرڻ لاءِ ڪلڪ ڪريو Alt + F11) ، ۽ پوءِ پريس F2.
  • اسڪرين جي مٿين کاٻي پاسي واري ڊراپ ڊائون لسٽ مان لائبريري چونڊيو VBA.
  • تعمير ٿيل VBA طبقن ۽ افعال جي ھڪڙي فهرست ظاهر ٿيندي. ونڊو جي تري ۾ ان جي مختصر وضاحت ڏيکارڻ لاءِ فنڪشن جي نالي تي ڪلڪ ڪريو. دٻائڻ F1 ان خصوصيت لاءِ آن لائن مدد وارو صفحو کوليندو.

ان کان علاوه، مثالن سان گڏ تعمير ٿيل VBA افعال جي مڪمل فهرست Visual Basic Developer Center تي ملي سگھي ٿي.

VBA ۾ ڪسٽم طريقا ”فنڪشن“ ۽ ”سب“

Excel Visual Basic ۾، حڪمن جو هڪ سيٽ جيڪو هڪ مخصوص ڪم انجام ڏئي ٿو هڪ طريقيڪار ۾ رکيل آهي. فعل (فعل) يا سب (Subroutine). عمل جي وچ ۾ بنيادي فرق فعل и سب اهو عمل آهي فعل موٽڻ جو نتيجو ، عمل سب - نه.

تنهن ڪري، جيڪڏهن توهان کي عمل ڪرڻ جي ضرورت آهي ۽ ڪجهه نتيجو حاصل ڪرڻ جي ضرورت آهي (مثال طور، ڪيترن ئي انگن جو مجموعو)، پوء اهو طريقو عام طور تي استعمال ڪيو ويندو آهي. فعل، ۽ صرف ڪجهه عملن کي انجام ڏيڻ لاءِ (مثال طور، سيلز جي گروپ جي فارميٽنگ کي تبديل ڪريو)، توهان کي عمل کي چونڊڻ جي ضرورت آهي. سب.

دلائل

مختلف ڊيٽا دليلن کي استعمال ڪندي VBA طريقيڪار ڏانهن منتقل ڪري سگھجن ٿيون. دليل جي فهرست بيان ڪئي وئي آهي جڏهن هڪ طريقيڪار جو اعلان ڪيو وڃي. مثال طور، عمل سب VBA ۾ شامل ڪري ٿو ڏنل عدد (Integer) هر سيل کي منتخب ٿيل حد ۾. توھان ھن نمبر کي ھڪڙي دليل کي استعمال ڪندي طريقي سان منتقل ڪري سگھو ٿا، جھڙوڪ:

ذيلي AddToCells(i As Integer) ... آخر ذيلي

ذهن ۾ رکو ته طريقيڪار لاء دلائل هجڻ ضروري آهي فعل и سب VBA ۾ اختياري آهي. ڪجهه طريقا دليلن جي ضرورت نه ڪندا آھن.

اختياري دليل

VBA طريقيڪار اختياري دليلن سان ٿي سگھي ٿو. اھي دليل آھن جيڪي صارف بيان ڪري سگھن ٿا جيڪڏھن اھي چاھين، ۽ جيڪڏھن اھي ختم ڪيا ويا آھن، طريقيڪار انھن لاء ڊفالٽ قدر استعمال ڪري ٿو.

پوئين مثال ڏانهن واپسي، هڪ عددي دليل ٺاهڻ لاءِ فنڪشن کي اختياري، ان کي هن طرح قرار ڏنو ويندو:

ذيلي AddToCells (اختياري i Integer = 0)

هن معاملي ۾، انٽيگر دليل i ڊفالٽ 0 هوندو.

هڪ طريقيڪار ۾ ڪيترائي اختياري دليل ٿي سگهن ٿا، جن مان سڀئي دليلن جي فهرست جي آخر ۾ درج ٿيل آهن.

قدر ۽ حوالي سان دليلن کي پاس ڪرڻ

VBA ۾ دليلن کي ٻن طريقن سان ھڪڙي طريقي سان منظور ڪري سگھجي ٿو:

  • طرفان ويال - قدر جي لحاظ کان دليل پيش ڪرڻ. هن جو مطلب اهو آهي ته صرف قيمت (يعني دليل جي هڪ ڪاپي) طريقيڪار ڏانهن گذريو ويو آهي، ۽ تنهن ڪري طريقيڪار جي اندر دليل ۾ ڪيل ڪا به تبديلي گم ٿي ويندي جڏهن طريقيڪار ختم ٿي ويندي.
  • پاران ريف - حوالي سان دليل پيش ڪرڻ. اهو آهي، ميموري ۾ دليل جي جڳهه جو اصل پتو طريقيڪار ڏانهن گذريو ويو آهي. طريقيڪار جي اندر دليلن ۾ ڪيل ڪي به تبديليون محفوظ ڪيون وينديون جڏهن طريقيڪار ختم ٿي ويندو.

لفظ استعمال ڪرڻ طرفان ويال or پاران ريف طريقيڪار جي اعلان ۾، توهان وضاحت ڪري سگھو ٿا ته ڪيئن دليل کي طريقيڪار ڏانهن منتقل ڪيو ويو آهي. اهو هيٺ ڏنل مثالن ۾ ڏيکاريل آهي:

ذيلي AddToCells(ByVal i As Integer) ... آخر ذيلي
هن معاملي ۾، انٽيگر دليل i قدر ذريعي گذريو. عمل ڇڏڻ کان پوء سب سڀني سان ٺهيل i تبديليون گم ٿي وينديون.
ذيلي AddToCells(ByRef i As Integer) ... آخر ذيلي
هن معاملي ۾، انٽيگر دليل i حوالي سان منظور. عمل ڇڏڻ کان پوء سب سڀني سان ٺهيل i تبديلين کي variable ۾ محفوظ ڪيو ويندو جيڪو پروسيس ۾ گذري ويو سب.

ياد رکو ته VBA ۾ دليلن کي ڊفالٽ جي حوالي سان منظور ڪيو ويو آهي. ٻين لفظن ۾، جيڪڏهن لفظ استعمال نه ڪيا ويا آهن طرفان ويال or پاران ريف، پوءِ دليل حوالي سان منظور ڪيو ويندو.

طريقيڪار سان اڳتي وڌڻ کان اڳ فعل и سب وڌيڪ تفصيل سان، انهن ٻن قسمن جي طريقيڪار جي خاصيتن ۽ فرقن تي هڪ ٻيو نظر وجهڻ مفيد ٿيندو. هيٺ ڏنل VBA طريقيڪار جا مختصر بحث آهن فعل и سب ۽ سادي نموني ڏيکاريا ويا آهن.

VBA عمل "فنڪشن"

VBA ايڊيٽر پروسيس کي سڃاڻي ٿو فعلجڏهن اهو هيٺ ڏنل افتتاحي ۽ بند ڪرڻ واري بيانن جي وچ ۾ بند ٿيل حڪمن جي هڪ گروهه کي منهن ڏئي ٿو:

فنڪشن... فنڪشن ختم ڪريو

جيئن اڳ ذڪر ڪيو ويو، عمل فعل VBA ۾ (جيئن ته سب) ھڪ قدر موٽائي ٿو. ھيٺ ڏنل ضابطا واپسي جي قيمتن تي لاڳو ٿين ٿا:

  • واپسي جي قيمت جي ڊيٽا جو قسم لازمي طور تي عمل جي سر ۾ بيان ڪيو وڃي فعل.
  • متغير جنهن ۾ واپسي جي قيمت شامل آهي ساڳئي طريقي سان نالو رکيو وڃي فعل. هي متغير الڳ الڳ اعلان ڪرڻ جي ضرورت ناهي، ڇاڪاڻ ته اهو هميشه پروسيس جي هڪ لازمي حصو جي طور تي موجود آهي. فعل.

اهو هيٺين مثال ۾ چڱي طرح بيان ڪيو ويو آهي.

VBA فنڪشن جو مثال: 3 نمبرن تي رياضياتي آپريشن کي انجام ڏيڻ

هيٺ ڏنل VBA پروسيسنگ ڪوڊ جو هڪ مثال آهي فعل، جنهن کي قسم جا ٽي دليل وٺن ٿا ٻٽا (ڊبل-پريجن فلوٽنگ پوائنٽ نمبر). نتيجي طور، طريقيڪار هڪ ٻيو نمبر قسم جي موٽائي ٿو ٻٽاپهرين ٻن دليلن جي رقم جي برابر مائنس ٽيون دليل:

فنڪشن SumMinus (dNum1 جيئن ڊبل، dNum2 ٻيڻو، dNum3 جيئن ڊبل) جيئن ڊبل SumMinus = dNum1 + dNum2 - dNum3 آخر فنڪشن

اهو تمام سادو VBA عمل آهي فعل بيان ڪري ٿو ته ڊيٽا ڪيئن دليلن جي ذريعي طريقي سان منتقل ڪئي وئي آهي. توھان ڏسي سگھوٿا ته ڊيٽا جو قسم جيڪو طريقي سان موٽايو ويو آھي ان جي وضاحت ڪئي وئي آھي ٻٽا (لفظ چون ٿا جيئن ڊبل دليلن جي فهرست کان پوء). اهو مثال پڻ ڏيکاري ٿو ته ڪيئن عمل جو نتيجو فعل ساڳئي نالي سان هڪ متغير ۾ ذخيرو ٿيل طريقي جي نالي سان.

VBA جي عمل کي سڏيندي "فنڪشن"

جيڪڏهن مٿي سادو عمل فعل Visual Basic ايڊيٽر ۾ هڪ ماڊل ۾ داخل ڪيو ويو آهي، ان کي ٻين VBA طريقيڪار مان سڏي سگهجي ٿو يا هڪ Excel ورڪ بڪ ۾ ورڪ شيٽ تي استعمال ڪيو وڃي.

ڪال ڪريو VBA پروسيسنگ "فنڪشن" ٻئي طريقي سان

طريقو فعل هڪ ٻئي VBA جي طريقيڪار کان سڏي سگهجي ٿو صرف انهي طريقي سان متغير کي تفويض ڪندي. هيٺ ڏنل مثال ڏيکاري ٿو هڪ عمل کي ڪال سمينس، جنهن کي مٿي بيان ڪيو ويو آهي.

ذيلي مکيه () ڊبل ڪل جي طور تي ڊبل ڪل = SumMinus (5, 4, 3) آخر ذيلي

ڪال ڪريو VBA طريقيڪار "فنڪشن" هڪ ورڪ شيٽ مان

VBA عمل فعل هڪ Excel ورڪ شيٽ مان سڏي سگهجي ٿو ساڳئي طرح ڪنهن ٻئي بلٽ ان ايڪسل فنڪشن وانگر. تنهن ڪري، اڳئين مثال ۾ ٺهيل طريقيڪار فعل - سمينس هڪ ورڪ شيٽ سيل ۾ هيٺ ڏنل اظهار داخل ڪندي سڏي سگهجي ٿو:

=SumMinus(10, 5, 2)

VBA عمل "ذيلي"

VBA ايڊيٽر سمجهي ٿو ته ان جي سامهون هڪ طريقيڪار آهي سبجڏهن اهو هيٺ ڏنل افتتاحي ۽ بند ڪرڻ واري بيانن جي وچ ۾ بند ٿيل حڪمن جي هڪ گروهه کي منهن ڏئي ٿو:

ذيلي... آخر ذيلي

VBA طريقيڪار ”سب“: مثال 1. سينٽرل الائنمينٽ ۽ فونٽ جي سائيز جي تبديلي سيلز جي چونڊيل رينج ۾

هڪ سادي VBA طريقيڪار جي هڪ مثال تي غور ڪريو سب، جنهن جو ڪم سيلز جي چونڊيل رينج جي فارميٽنگ کي تبديل ڪرڻ آهي. سيلز مرڪز آهن (ٻئي عمودي ۽ افقي طور تي) ۽ فونٽ جي سائيز کي تبديل ڪيو ويو آهي صارف جي بيان ڪيل:

Sub Format_Centered_And_Sized(اختياري iFontSize As Integer = 10) Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Size = iFontSize آخر ذيلي

اهو طريقو سب عمل ڪري ٿو پر نتيجو نه ٿو ڏئي.

هي مثال هڪ اختياري دليل پڻ استعمال ڪري ٿو فونٽ سائيز. جيڪڏهن دليل فونٽ سائيز عمل ۾ نه گذريو سب, پوء ان جي ڊفالٽ قيمت آهي 10. جڏهن ته، جيڪڏهن دليل فونٽ سائيز عمل ۾ گذريو سب, پوء سيلز جي چونڊيل حد کي مقرر ڪيو ويندو فونٽ سائيز تي مقرر ڪيل صارف پاران.

VBA ذيلي پروسيجر: مثال 2: سيلز جي چونڊيل رينج ۾ سينٽر الائن ۽ بولڊ فونٽ

هيٺ ڏنل طريقو ساڳيو آهي جيڪو صرف بحث ڪيو ويو آهي، پر هن ڀيري، ريسائيز ڪرڻ بدران، سيلز جي چونڊيل رينج تي هڪ بولڊ فونٽ انداز لاڳو ٿئي ٿو. هي هڪ مثالي عمل آهي سب، جنهن ۾ ڪوبه دليل نه آهي:

Sub Format_Centered_And_Bold() Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Bold = True End Sub

ايڪسل VBA ۾ "ذيلي" عمل کي ڪال ڪرڻ

ٻئي طريقي سان VBA پروسيس کي "سب" ڪال ڪريو

هڪ VBA طريقيڪار کي سڏڻ لاء سب ٻئي VBA طريقيڪار کان، توهان کي لفظ لکڻ جي ضرورت آهي بوٽ، عمل جو نالو سب ۽ وڌيڪ قوس ۾ طريقيڪار جا دليل آهن. اهو هيٺ ڏنل مثال ۾ ڏيکاريل آهي:

ذيلي مکيه () ڪال فارميٽ_ سينٽرڊ_ ۽_سائز (20) آخر ذيلي

جيڪڏهن عمل Format_Centered_And_Sized هڪ کان وڌيڪ دليل آهن، انهن کي ڪاما سان الڳ ڪيو وڃي. هن وانگر:

ذيلي مکيه () ڪال فارميٽ_سينٽرڊ_انڊ_سائز(arg1, arg2, ...) آخر ذيلي

ڪال ڪريو VBA طريقيڪار "ذيلي" ورڪ شيٽ مان

طريقو سب سڌو سنئون ايڪسل شيٽ سيل ۾ داخل نه ٿي ڪري سگھجي، جيئن طريقي سان ٿي سگھي ٿو فعلڇاڪاڻ ته عمل سب قيمت واپس نه ڪندو. بهرحال، طريقيڪار سب، جن جو ڪوبه دليل نه آهي ۽ قرار ڏنو ويو آهي پبلڪ (جيئن هيٺ ڏيکاريل آهي) ورڪ شيٽ جي استعمال ڪندڙن لاءِ دستياب هوندو. اهڙيء طرح، جيڪڏهن مٿي ذڪر ڪيل سادي طريقا سب Visual Basic Editor ۾ ماڊل ۾ داخل ڪيو ويو، طريقيڪار Format_Centered_And_Bold هڪ Excel ورڪ شيٽ ۾ استعمال لاء دستياب ٿي ويندي، ۽ طريقيڪار Format_Centered_And_Sized - دستياب نه ٿيندو ڇو ته ان ۾ دليل آهن.

ھتي آھي ھڪڙو آسان طريقو ھلائڻ لاءِ (يا عمل ڪرڻ) ھڪڙو عمل سب, ورڪ شيٽ مان رسائي لائق:

  • پريس Alt + F8 (کي دٻايو ھن ۽ ان کي دٻائڻ دوران، ڪنجي کي دٻايو F8).
  • ميڪرو جي فهرست ۾ جيڪو ظاهر ٿئي ٿو، چونڊيو جيڪو توهان هلائڻ چاهيو ٿا.
  • پريس هل (هلڻ)

عمل انجام ڏيڻ سب جلدي ۽ آساني سان، توهان ان کي ڪيبورڊ شارٽ ڪٽ تفويض ڪري سگهو ٿا. ان لاءِ:

  • پريس Alt + F8.
  • ميڪرو جي لسٽ ۾ جيڪو ظاهر ٿئي ٿو، اهو چونڊيو جيڪو توهان ڪي بورڊ شارٽ کٽ ڏيڻ چاهيو ٿا.
  • پريس جي پيراميٽر (اختيارن) ۽ ڊائلاگ باڪس ۾ جيڪو ظاهر ٿئي ٿو، ڪي بورڊ شارٽ ڪٽ داخل ڪريو.
  • پريس OK ۽ ڊائلاگ بند ڪريو ميڪرو (ميڪرو).

توجه: جڏهن هڪ ميڪرو کي ڪيبورڊ شارٽ ڪٽ تفويض ڪريو، پڪ ڪريو ته اهو Excel ۾ معياري طور استعمال نه ڪيو ويو آهي (مثال طور، Ctrl + سي). جيڪڏهن توهان اڳ ۾ ئي موجود ڪيبورڊ شارٽ ڪٽ چونڊيو ٿا، اهو ميڪرو ڏانهن ٻيهر لڳايو ويندو، ۽ نتيجي طور، صارف حادثي سان ميڪرو شروع ڪري سگهي ٿو.

VBA طريقيڪار جو دائرو

ھن سبق جو حصو 2 متغير ۽ مستقل جي دائري ۽ لفظن جي ڪردار تي بحث ڪيو. پبلڪ и پرائيويٽ. اهي لفظ به استعمال ڪري سگھجن ٿا VBA طريقيڪار سان:

عوامي ذيلي AddToCells(i As Integer) ... آخر ذيلي
جيڪڏهن طريقيڪار جو اعلان لفظ کان اڳ آهي پبلڪ، پوءِ اهو طريقو موجود هوندو سڀني ماڊيولن لاءِ انهي VBA پروجيڪٽ ۾.
خانگي ذيلي AddToCells(i As Integer) ... آخر ذيلي
جيڪڏهن طريقيڪار جو اعلان لفظ کان اڳ آهي پرائيويٽ, ته پوء اهو طريقو موجود هوندو صرف موجوده ماڊل لاءِ. اهو نه ٿو سڏي سگهجي جڏهن ڪنهن ٻئي ماڊل ۾ يا هڪ Excel ورڪ بڪ مان.

ياد رکو ته جيڪڏهن VBA طريقيڪار جو اعلان ڪرڻ کان اڳ فعل or سب لفظ داخل نه ڪيو ويو آهي، ڊفالٽ ملڪيت پروسيس لاء مقرر ڪئي وئي آهي پبلڪ (اهو آهي، اهو هر هنڌ موجود هوندو هن VBA پروجيڪٽ ۾). هي متغير اعلانن جي ابتڙ آهي، جيڪي ڊفالٽ طور آهن پرائيويٽ.

VBA طريقيڪار "فنڪشن" ۽ "سب" مان جلدي نڪرڻ

جيڪڏھن توھان کي ختم ڪرڻ جي ضرورت آھي VBA جي عمل جي عمل کي فعل or سب، ان جي قدرتي ختم ٿيڻ جو انتظار ڪرڻ کان سواءِ ، پوءِ هن لاءِ آپريٽر آهن Exit Function и سبٽي نڪرڻ. انهن آپريٽرز جو استعمال هيٺ ڏيکاريل آهي هڪ سادي طريقي سان استعمال ڪندي مثال طور. فعلA جيڪو وڌيڪ عملن کي انجام ڏيڻ لاءِ مثبت دليل حاصل ڪرڻ جي اميد رکي ٿو. جيڪڏهن هڪ غير مثبت قدر پروسيس تي گذريو وڃي ته پوءِ وڌيڪ آپريشن نه ٿي ڪري سگهجن، تنهن ڪري صارف کي هڪ غلطي پيغام ڏيکاريو وڃي ۽ طريقيڪار کي فوري طور تي نڪرڻ گهرجي:

فنڪشن VAT_Amount(sVAT_Rate As Single) As Single VAT_Amount = 0 If sVAT_Rate <= 0 پوءِ MsgBox "SVAT_Rate جي هڪ مثبت قدر جي توقع ڪئي وئي پر وصول ڪيو ويو" & sVAT_Rate Exit Function End If... End Function

مهرباني ڪري نوٽ ڪريو ته عمل مڪمل ڪرڻ کان اڳ فعل - VAT_ رقم, هڪ تعمير ٿيل VBA فنڪشن ڪوڊ ۾ داخل ڪيو ويو آهي پيغام موڪليو، جيڪو صارف کي ڊيڄاريندڙ پاپ اپ ڏيکاري ٿو.

جواب ڇڏي وڃو