VBA کے ساتھ ایکسل میکرو پروگرامنگ کرتے وقت بچنے کی 4 غلطیاں۔

VBA کے ساتھ ایکسل میکرو پروگرامنگ کرتے وقت بچنے کی 4 غلطیاں۔

مائیکروسافٹ ایکسل۔ پہلے ہی ایک قابل ڈیٹا تجزیہ کا آلہ ہے ، لیکن میکرو کے ساتھ بار بار کاموں کو خودکار کرنے کی صلاحیت کے ساتھ بصری بنیادی برائے ایپلی کیشنز (VBA) میں سادہ کوڈ لکھ کر یہ بہت زیادہ طاقتور ہے۔ غلط استعمال کیا گیا ، تاہم ، VBA مسائل پیدا کر سکتا ہے۔





یہاں تک کہ اگر آپ پروگرامر نہیں ہیں ، وی بی اے سادہ افعال پیش کرتا ہے جو آپ کو اپنی اسپریڈشیٹ میں متاثر کن فعالیت شامل کرنے کی اجازت دیتا ہے۔





اس سے کوئی فرق نہیں پڑتا ہے کہ آپ ایک VBA گرو ہیں جو ایکسل میں ڈیش بورڈز بناتے ہیں ، یا ایک نوزائیدہ سادہ سکرپٹ لکھتے ہیں جو بنیادی سیل حساب کرتے ہیں۔ صاف ، بگ فری کوڈ لکھنا سیکھنے کے لیے پروگرامنگ کی ان آسان تکنیکوں پر عمل کریں۔





VBA کے ساتھ شروع کرنا

VBA آپ کے لیے ہر قسم کی صاف ستھری چیزیں کر سکتا ہے۔ میکرو لکھنے سے لے کر جو شیٹس میں ترمیم کرتا ہے۔ VBA سکرپٹ کا استعمال کرتے ہوئے ایکسل اسپریڈشیٹ سے ای میل بھیجنا۔ آپ کی پیداوری پر بہت کم حدود ہیں۔

اگر آپ نے ایکسل میں وی بی اے میں پروگرام نہیں کیا ہے اس سے پہلے کہ آپ کو اپنے ایکسل پروگرام میں ڈویلپر ٹولز کو فعال کرنا پڑے گا۔ اچھی خبر یہ ہے کہ ، ڈویلپر ٹولز کو چالو کرنا دراصل بہت آسان ہے۔ بس جاؤ فائل۔ > اختیارات اور پھر ربن کو حسب ضرورت بنائیں۔ . بس منتقل کریں۔ ڈویلپر بائیں پین سے دائیں طرف ٹیب.



یقینی بنائیں کہ چیک باکس میں یہ ٹیب فعال ہے ، اور اب ڈویلپر ٹیب آپ کے ایکسل مینو میں ظاہر ہوگا۔

یہاں سے کوڈ ایڈیٹر ونڈو میں جانے کا سب سے آسان طریقہ صرف پر کلک کرنا ہے۔ کوڈ دیکھیں۔ بٹن کے نیچے کنٹرول کرتا ہے۔ ڈویلپر مینو میں۔





اب آپ VBA کوڈ لکھنے کے لیے تیار ہیں! یہ ٹیب وہ جگہ ہے جہاں آپ VBA تک رسائی حاصل کریں گے۔ ایکسل میں میکرو ریکارڈ کرنا۔ . اب جب کہ ایکسل کام کرنے کے لیے تیار ہے آئیے کچھ عام غلطیوں سے بچنے کے لیے ، اور ان کو روکنے کے طریقے بتاتے ہیں۔

1. خوفناک متغیر نام

اب چونکہ آپ کوڈ ونڈو میں ہیں ، اب وقت آگیا ہے کہ وی بی اے کوڈ لکھنا شروع کریں۔ بیشتر پروگراموں میں پہلا اہم مرحلہ ، چاہے وہ وی بی اے میں ہو یا کسی دوسری زبان میں ، آپ کے متغیرات کی وضاحت کر رہا ہے۔ متغیرات کو مناسب طریقے سے نام نہ دینا پروگرامنگ کی سب سے عام غلطیوں میں سے ایک ہے جو نئے ڈویلپر کرتے ہیں۔





فارمیٹنگ کے بغیر کاپی پیسٹ کیسے کریں۔

کوڈ لکھنے کی میری کئی دہائیوں کے دوران ، جب میں متغیر نام کنونشنوں کی بات کرتا ہوں تو میں نے بہت سے مکاتب فکر کو دیکھا ہے اور مشکل سے کچھ اصول سیکھے ہیں۔ متغیر نام بنانے کے لیے کچھ تیز تجاویز یہ ہیں:

  • ان کو ہر ممکن حد تک مختصر بنائیں۔
  • انہیں ہر ممکن حد تک وضاحتی بنائیں۔
  • انہیں متغیر قسم (بولین ، عدد ، وغیرہ ...) کے ساتھ پیش کریں۔

یہاں ایک پروگرام کا ایک نمونہ اسکرین شاٹ ہے جسے میں اکثر پی سی کی معلومات اکٹھا کرنے کے لیے ایکسل سے WMIC ونڈوز کال کرنے کے لیے استعمال کرتا ہوں۔

جب آپ ماڈیول یا آبجیکٹ کے اندر کسی فنکشن کے اندر متغیرات استعمال کرنا چاہتے ہیں (میں اس کی وضاحت ذیل میں کروں گا) ، تو آپ کو اعلان کو پہلے سے پیش کرتے ہوئے اسے 'عوامی' متغیر کے طور پر اعلان کرنے کی ضرورت ہے عوام . بصورت دیگر ، متغیرات کو لفظ کے ساتھ پیش کرتے ہوئے اعلان کیا جاتا ہے۔ کوئی نہیں .

جیسا کہ آپ دیکھ سکتے ہیں ، اگر متغیر ایک عدد ہے تو اس کے ساتھ پہلے سے بنا ہوا ہے۔ int . اگر یہ تار ہے تو p . یہ ایک ذاتی ترجیح ہے جو بعد میں مدد کرتی ہے جبکہ آپ پروگرامنگ کر رہے ہوتے ہیں کیونکہ آپ ہمیشہ جانتے ہوں گے کہ متغیر کس قسم کا ڈیٹا رکھتا ہے نام پر نظر ڈال کر۔

نیز ، اپنی ایکسل ورک بک میں شیٹس کا نام ضرور رکھیں۔

اس طرح ، جب آپ اپنے ایکسل وی بی اے کوڈ میں شیٹ کے نام کا حوالہ دیتے ہیں ، تو آپ ایسے نام کا حوالہ دے رہے ہیں جو سمجھ میں آتا ہے۔ مندرجہ بالا مثال میں ، میرے پاس ایک شیٹ ہے جہاں میں نیٹ ورک کی معلومات کھینچتا ہوں ، لہذا میں شیٹ کو 'نیٹ ورک' کہتا ہوں۔ جب بھی میں نیٹ ورک شیٹ کا حوالہ دینا چاہتا ہوں ، میں اسے بغیر دیکھے جلدی کر سکتا ہوں کہ یہ شیٹ نمبر کیا ہے۔

2. لوپنگ کے بجائے توڑنا۔

سب سے زیادہ عام مسائل میں سے ایک نئے وی بی اے پروگرامرز کو ہوتا ہے جب وہ کوڈ لکھنا شروع کرتے ہیں وہ لوپس سے مناسب طریقے سے نمٹ رہے ہیں۔

ایکسل میں لوپنگ بہت عام ہے کیونکہ اکثر آپ ڈیٹا کی اقدار کو پوری قطار یا کالم میں پروسیس کر رہے ہوتے ہیں ، لہذا آپ کو ان سب پر کارروائی کرنے کے لیے لوپ کی ضرورت ہوتی ہے۔

نئے پروگرامر اکثر ایک لوپ (VBA for loops یا VBA do while loops) کو فوری طور پر توڑنا چاہتے ہیں جب کوئی خاص شرط درست ہو۔

VBA لوپ کو توڑنے کے لیے استعمال ہونے والے اس طریقے کی ایک مثال یہ ہے۔

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

نئے پروگرامرز اس نقطہ نظر کو اپناتے ہیں کیونکہ یہ آسان ہے۔ کوشش کریں اور واضح طور پر کسی لوپ کو توڑنے سے گریز کریں۔

زیادہ تر نہیں ، اس 'وقفے' کے بعد آنے والا کوڈ عملدرآمد کے لیے اہم ہے۔ حالات کو سنبھالنے کا ایک بہت ہی صاف ستھرا اور زیادہ پیشہ ورانہ طریقہ جہاں آپ آدھے راستے سے ایک لوپ چھوڑنا چاہتے ہیں وہ صرف باہر نکلنے کی حالت کو VBA کی طرح بیان میں شامل کرنا ہے۔

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

یہ آپ کے کوڈ کے منطقی بہاؤ کی اجازت دیتا ہے۔ اب کوڈ لوپ ہو جائے گا اور 6 تک پہنچنے کے بعد بند ہو جائے گا۔

3. Arrays استعمال نہ کرنا۔

ایک اور دلچسپ غلطی جو کہ نئے وی بی اے پروگرامرز کرتے ہیں وہ یہ ہے کہ حساب کے عمل کے دوران قطار اور کالموں کے ذریعے فلٹر ہونے والے متعدد نیسٹڈ لوپس کے اندر ہر چیز پر کارروائی کرنے کی کوشش کی جائے۔

یہ کارکردگی کے بڑے مسائل کا باعث بھی بن سکتا ہے۔ ایک کالم کے ذریعے لوپ کرنا اور ہر بار اقدار کو نکالنا آپ کے پروسیسر پر قاتل ہے۔ نمبروں کی لمبی فہرستوں کو سنبھالنے کا ایک زیادہ موثر طریقہ ایک صف کو استعمال کرنا ہے۔

اگر آپ نے پہلے کبھی کوئی صف استعمال نہیں کی ہے تو کوئی خوف نہ کریں۔ ایک صف کو آئس کیوب ٹرے کے طور پر تصور کریں جس میں ایک مخصوص تعداد میں 'کیوب' آپ معلومات ڈال سکتے ہیں۔ کیوب کی تعداد 1 سے 12 تک ہے ، اور اسی طرح آپ ان میں ڈیٹا ڈالتے ہیں۔

آپ ٹائپ کرکے آسانی سے ایک صف کی وضاحت کرسکتے ہیں۔ Dim arrMyArray (12) بطور انٹیجر۔ .

PS4 کنٹرولر کمپیوٹر پر کام نہیں کر رہا

اس سے ایک 'ٹرے' بنتی ہے جس میں 12 سلاٹ دستیاب ہیں جو آپ کو بھرنے کے لیے دستیاب ہیں۔

صف کے بغیر قطار لوپنگ کوڈ کی طرح نظر آتا ہے:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

اس مثال میں ، کوڈ رینج کے ہر ایک سیل کے ذریعے پروسیس کر رہا ہے اور درجہ حرارت کا حساب کتاب کر رہا ہے۔

اگر آپ کبھی بھی انہی اقدار پر کوئی اور حساب کتاب کرنا چاہتے ہیں تو عمل پیچیدہ ہوگا۔ آپ کو اس کوڈ کو ڈپلیکیٹ کرنا ہوگا ، ان تمام خلیوں کے ذریعے عملدرآمد کرنا ہوگا ، اور اپنا نیا حساب کتاب کرنا ہوگا۔ سب ایک تبدیلی کے لیے!

ایک صف کا استعمال کرتے ہوئے ، یہاں ایک بہتر مثال ہے۔ پہلے ، آئیے صف بنائیں۔

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

کی x-1 صف عنصر کی طرف اشارہ کرنے کے لیے صرف ضروری ہے کیونکہ For لوپ 1 سے شروع ہوتا ہے۔ صف عناصر کو 0 سے شروع کرنے کی ضرورت ہے۔

اب جب آپ کے پاس صف ہے تو مواد پر کارروائی کرنا بہت آسان ہے۔

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

یہ مثال پوری صف صف سے گزرتی ہے ( یو باؤنڈ آپ کو صف میں اعداد و شمار کی تعداد دیتا ہے) ، درجہ حرارت کا حساب لگاتا ہے ، اور پھر اسے ایک اور صف میں رکھتا ہے جسے کہتے ہیں arrMyTemps .

4. بہت سارے حوالوں کا استعمال۔

چاہے آپ مکمل ویژول بیسک یا وی بی اے میں پروگرام کر رہے ہوں ، آپ کو کچھ خصوصیات تک رسائی کے لیے 'حوالہ جات' شامل کرنے کی ضرورت ہوگی۔

حوالہ جات 'لائبریریوں' کی طرح ہیں جو فعالیت سے بھری ہوئی ہیں اگر آپ اس فائل کو فعال کرتے ہیں تو آپ اس میں ٹیپ کرسکتے ہیں۔ آپ ڈویلپر ویو میں حوالہ جات پر کلک کرکے تلاش کر سکتے ہیں۔ اوزار مینو میں اور پھر کلک کریں۔ حوالہ جات .

آپ کو اس ونڈو میں جو کچھ ملے گا وہ آپ کے موجودہ VBA پروجیکٹ کے لیے فی الحال منتخب کردہ تمام حوالہ جات ہیں۔

آپ کو اس فہرست کو چیک کرنا چاہیے کیونکہ غیر ضروری حوالہ جات نظام کے وسائل کو ضائع کر سکتے ہیں۔ اگر آپ کوئی XML فائل ہیرا پھیری استعمال نہیں کرتے ہیں ، تو پھر مائیکروسافٹ XML کو کیوں منتخب کیا جائے؟ اگر آپ ڈیٹا بیس کے ساتھ بات چیت نہیں کرتے ہیں تو مائیکروسافٹ ڈی اے او وغیرہ کو ہٹا دیں۔

اگر آپ کو یقین نہیں ہے کہ یہ منتخب حوالہ جات کیا کرتے ہیں ، دبائیں۔ F2 اور آپ آبجیکٹ ایکسپلورر دیکھیں گے۔ اس ونڈو کے اوپری حصے میں ، آپ براؤز کرنے کے لیے حوالہ لائبریری کا انتخاب کرسکتے ہیں۔

ایک بار منتخب ہونے کے بعد ، آپ تمام اشیاء اور دستیاب افعال دیکھیں گے ، جن کے بارے میں مزید جاننے کے لیے آپ کلک کر سکتے ہیں۔

مثال کے طور پر ، جب میں DAO لائبریری پر کلک کرتا ہوں تو یہ جلدی سے واضح ہو جاتا ہے کہ یہ سب ڈیٹا بیس سے منسلک اور بات چیت کے بارے میں ہے۔

اپنے پروگرامنگ پروجیکٹ میں استعمال ہونے والے حوالوں کی تعداد کو کم کرنا صرف اچھی بات ہے ، اور آپ کی مجموعی درخواست کو زیادہ موثر انداز میں چلانے میں مدد ملے گی۔

ایپل واچ پر مزید اسٹوریج کیسے حاصل کریں۔

ایکسل VBA میں پروگرامنگ

دراصل ایکسل میں کوڈ لکھنے کا پورا خیال بہت سے لوگوں کو خوفزدہ کرتا ہے ، لیکن یہ خوف واقعی ضروری نہیں ہے۔ ایپلی کیشنز کے لیے بصری بنیادی زبان سیکھنے کے لیے ایک بہت ہی آسان زبان ہے ، اور اگر آپ مذکورہ بالا بنیادی عام طریقوں پر عمل کرتے ہیں تو آپ اس بات کو یقینی بنائیں گے کہ آپ کا کوڈ صاف ، موثر اور سمجھنے میں آسان ہے۔

اگرچہ وہاں نہ رکیں۔ ایکسل کے ساتھ مہارت کی مضبوط بنیاد بنائیں a شروع کرنے والوں کے لیے VBA ٹیوٹوریل۔ . پھر اپنی اسپریڈشیٹ کو خودکار بنانے میں مدد کے لیے وسائل کے ساتھ VBA اور میکرو کے بارے میں سیکھتے رہیں۔

بانٹیں بانٹیں ٹویٹ ای میل۔ کیا یہ ونڈوز 11 کو اپ گریڈ کرنے کے قابل ہے؟

ونڈوز کو دوبارہ ڈیزائن کیا گیا ہے۔ لیکن کیا یہ آپ کو ونڈوز 10 سے ونڈوز 11 میں منتقل کرنے پر راضی کرنے کے لیے کافی ہے؟

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پیداوری
  • پروگرامنگ۔
  • پروگرامنگ۔
  • بصری بنیادی پروگرامنگ۔
  • مائیکروسافٹ ایکسل۔
مصنف کے بارے میں انتھونی گرانٹ(40 مضامین شائع ہوئے)

انتھونی گرانٹ ایک فری لانس مصنف ہے جو پروگرامنگ اور سافٹ ویئر کا احاطہ کرتا ہے۔ وہ پروگرامنگ ، ایکسل ، سافٹ وئیر ، اور ٹیکنالوجی میں کمپیوٹر سائنس کا بڑا ماہر ہے۔

انتھونی گرانٹ سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔