How to speed up your macro (VBA coding) - 6 Ways

Abu Dujana

 
Advisor
Designer
Teacher
Writer
Joined
Apr 25, 2018
Messages
368
Likes
402
Points
182
Location
Karachi, Pakistan
#1
السلام علیکم و رحمۃ اللہ و برکاتہ۔۔

وی بی اے کوڈنگ یا میکرو ریکارڈنگ میں ایک مسئلہ یہ ہوتا ہے کہ اگر آپ ضروری اقدامات نہ اٹھائیں تو اس کی پرفارمنس (سیکنڈوں میں )سلو ہوتی ہیں۔ذیل میں ہم چند انتہائی ضروری اقدامات پیش کرتے ہیں جن کی وجہ سے آپ کی وی بی اے کوڈنگ میں بہتری اور تیزی آئیگی۔

٭۔ شیٹ کیلکولیشن کو روکنا۔۔

کیا آپ جانتے ہیں کہ ہر مرتبہ جب آپ میکرو چلاتے ہیں تو شیٹ میں موجود ہر وہ سیل جس میں فارمولا ہوتا ہے اس کی ویلیو اپڈیٹ یا تبدیل ہوتی رہتی ہے؟ کسی شیٹ میں اگر زیادہ فارمولے ہوں تو میکرو پرفارمنس کافی حد تک سست پڑ جاتی ہے۔ اسی معاملے سے نمٹنے کے لئے آپ کوڈنگ کے شروع اور آخر میں یہ پراپرٹی استعمال کریں۔
Code:
Sub Macro1()
Application.Calculation = xlCalculationManual
 'Your macro code goes here
Application.Calculation = xlCalculationAutomatic
End Sub

٭۔ سکرین اپڈیٹنگ کو بند کرنا۔۔

آپ نے اکثر نوٹ کیا ہوگا جب آپ میکرو چلاتے ہیں تو اسکرین ٹمٹانا شروع کرتا ہے۔ یہ ٹمٹانا اس لئے ہوتا ہے کہ ہر میکرو چلاتے وقت ایکسل شیٹ کی اسکرین کو دوبارہ لوڈ کرتا ہے۔ اس سکرین کے بار بار لوڈ کرنے سے بچنے کے لئے آپ اس پراپرٹی کو میکرو کے شروع میں ڈس ایبل کردیں اور آخر میں ان ایبل کردیں۔

Code:
Sub Macro1()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
 'Your macro code goes here
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

٭۔ سٹیٹس بار اپڈیٹس کو عارضی طور پر بند کرنا۔

آپ میکرو میں مزید تیزی لانے کے لئے یہ پراپرٹی استعمال کرسکتے ہیں۔
Code:
Sub Macro1()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
'Your macro code goes here
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
End Sub

ایونٹس کو نظر انداز کرنا۔۔

اگر آپ نے کسی شیٹ میں ایونٹس سیٹ کر رکھے ہیں تو جب بھی آپ میکرو رن کریں گے ، میکرو سے پہلے ایونٹس خود بخود چلیں گے اور اس کے بعد میکرو چلے گی۔۔اسی لئے اپنے کوڈنگ کا تیز نتیجہ حاصل کرنے کے لے ایونٹس کو عارضی طور پر بند کریں۔۔ کوڈنگ یہ ہیں۔۔
Code:
Sub Macro1()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
'Your macro code goes here
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
End Sub

٭۔ پیج بریک کو چھپانا۔۔

بعض اوقات پیج بریک کو عارضی طور پر "آف" کرنے سے بھی میکرو میں تیزی آتی ہے۔ کوڈنگ ملاحظہ ہو۔
Code:
Sub Macro1()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
Activesheet.DisplayPageBreaks = False
 'Your macro code goes here
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
Activesheet.DisplayPageBreaks = True
End Sub

٭۔ پیوٹ ٹیبل کے اپڈیٹس کو معطل کرنا۔۔

اگر آپ کے ورک بک میں پیوٹ ٹیبل کا بھی استعمال ہوا ہے تو اس کو بھی کنٹرول کرنے سے میکرو تیزی سے کام کرتا ہے۔​

Code:
Sub Macro1()
ActiveSheet.PivotTables("PivotTable1").ManualUpdate=True
 'Your macro code goes here
ActiveSheet.PivotTables("PivotTable1").ManualUpdate=False
End Sub
اس ضروری اور اہم مگر آسان ٹپس کے ساتھ ابو دُجانہ کو دیجیے اجازت۔۔
اللہ حافظ۔۔​
 

Doctor

 
Team Leader
Most Popular
Dynamic Brigade
Developer
Expert
Teacher
Writer
Joined
Apr 25, 2018
Messages
909
Likes
1,355
Points
467
Location
Rawalpindi
#3
بہت مفید انفارمیشن شیئر کی ہے
اشتراک کا شکریہ​
 
Top