آشنایی با امکانات خطایابی کدهای VBA

آشنایی با امکانات خطایابی کدهای VBA در اکسل

بروز خطا در  فرآیند برنامه نویسی  امری اجتناب ناپذیری می باشد .

اینکه بروز خطا در اکسس و احتمال وقوع آن را به صفر برسانیم امری مطلوب است اما اینکه تا چه حد در انجام این کار موفق باشیم مطلبی جداگانه است .

اما خواه ناخواه خطاها در فرآیند کد نویسی بروز و ظهور خواهد کرد .

یکی از قابلیت های خوبی که ویرایشگر  کدهای VBA  دارد امکانات متعددی است که از آنها می توانیم در جهت خطایابی کدهای نوشته شده از آنها بهره ببریم  .

در این مطلب آموزشی می خواهیم به معرفی امکانات موجود جهت خطایابی کدهای VBA پرداخته و با نحوه عملکرد و کاربرد هر کدام از آنها آشنا شویم .

ابزارها و تکنیک های خطایابی کدهای VBA

برنامه ویرایشگر کدهای VBA ابزار های مختلفی را جهت خطایابی و رفع خطاهای احتمالی در اختیار ما قرار می دهند . این ابزارها به قرار زیر می باشند :

  1. قابلیت Auto Data Tips

Auto Data Tips قابلیتی است که  استفاده از آن این امکان را برای ما فراهم می آورد که در حین فرآیند خطابابی وقتی موس خود را بر روی یک متغیر ببریم دیتایی که در آن متغیر ذخیره شده است را برای ما در یک کادر کوچک  به نمایش می گذارد .

تصویر زیر گویای مطلب فوق است .

خطایابی کدهای VBA در اکسل

 

همانگونه که در تصویر مشاهده می نمایید کد فوق در  محل مشخص شده دچار خطا شده است .

بنابراین  نیاز به یافتن علتی داریم  که باعث بروز این خطا شذه است .

یکی از دلایلی که می تواند باعث بروز خطا شود این است که یک مقدار نامناسب را در این متغیر ذخیره نماییم .

برای اینکه بدانیم چه مقداری در این متغیر ذخیره شده است کافی است مانند انچه که در تصویر فوق ملاحظه می نمایید با بردن نشانگر ماوس بر روی متغیر مذکور مقدار عددی ذخیره شده در آن را در قالب یک Auto Data Tips مشاهده نماییم .

چگونه قابلیت Auto Data Tips  را فعال نماییم 

گاهی برای اینکه بتوانیم از این قابلیت در حین خطایابی کدهای خود استفاده کنیم لازم است که آن را فعال نمایم .

برای فعال نمودن این قابلیت مراحل زیر را دنبال نمایید :

  1. ابتدا با استفاده از کلیدهای ترکیبی ALT+F11  وارد برنامه ویرایشگر کدهای VBA شوید
  2. هز منوی Tools  منوی Option  را انتخاب نمایید .

خطایابی کدهای VBA در اکسل

 ۳٫ در مرحله بعد پنجره زیر برای شما نمایش داده خواهد شد . 

آشنایی با امکانات خطایابی کدهای VBA در اکسل

در این پنجره تیک مربوط به گزینه Auto Data Tips را بزنید با این کار قابلیت مذکور برای شما فعال می شود . 

 

  • قابلیت Break point 

یکی دیگر از قابلیت های کاربردی که در فرآیند خطایابی کدها می توانیم از آن بهره ببریم قابلیت Break point  است .

فرض نمایید که شما روالی حاوی خطوط کد متعددی دارید .

حال اگر بخواهید قبل از اینکه تمامی خطوط کد خود را اجرا نمایید خط به خط کد خود را اجرا نمایید تا از عملکرد هرکدام از آنها و اینکه به درستی کار می نمایند مطمئن شوید می توانید از قابلیت Break point بهره ببرید . 

در واقع Break point  این امکان را به شما می دهد که فرآیند اجرای کدهای خود را در نقطه خاصی که مد نظر شماست متوقف نمایید . 

 

چگونه قابلیت Break point  را فعال نماییم ؟

برای فعال نمودن این قابلیت ابتدا خطی از کدهای خود را که مد نظر داریم که اجرای روال ما در آن نقطه متوقف شود را انتخاب می کنیم .

درگام بعد فقط کافی است برروی نوار عمودی سمت چپ صفحه کد نویسی یک کلیک نماییم .

با این کار مشاهده خواهید نمود که یک دایره رنگی در محل کلیک شده ظاهر شده و خط کد مورد نظر ما نیز بصورت هایلایت رنگی در می آید .

تصویر زیر گویای این امر است .

خطایابی در اکسل

به خط کدی که تصوسط فلش مشخص شده است توجه نمایید . در این خط ما یک Input Box  را تعریف نموده ایم .

می خواهیم کنترل نماییم که آیا این Input Box عمل می کند یا خیر برای این منظور  یک Break Point  را در اولین خط بعد از خط مورد نظر خود ایجاد می کنیم .

اکنون اگر کد خود را اجرا نماییم مشاهده خواهیم نمود روال ما تا قبل از محل مورد نظر ما اجرا می شود و پیغام مربوط به Input Box  برای ما به نمایش در می آید .ولی سایر خطوط کد ما اجرا نخواهد شد .

بدین ترتیب می توانیم خط به خط کد خود را اجرا نماییم تا از صحت عملکرد هر کدام از آنها مطمئن شویم .

برای حذف Break pint  فقط کافی است یک بار بر روی نقطه مورد نظر کلیک نمایید .

 

  • ابزار  Whaches

یکی دیگر از امکاناتی که می توان از آن برای پایش کدهای نوشته شده استفاده کرد ابزار Whaches  است

استفاده از این کادر هنگامی میسر است که ویرایشگر کدهای شما در حالت Break قرار داشته باشد .

با استفاده از این ابزار به راحتی می توان کنترل نمود که یک عبارت محاسباتی دارای چه مقادیری بوده و از چه نوع دیتایی تشکیل شده است .

اضافه نمودن کادر Whaches  به محیط کد نویسی 

برای اینکه بتوانیم از امکانات Whatch  بهره ببریم ابتدا باید کادر مربوطه را به محیط کار خود اضافه نماییم . 

برای این کار می توانیم از منوی View  بر روی گزینه  whatch Window  کلیک نمایید . 

ابزار  Whaches در خطایابی vba

بعد از این کار کادری در انتهای صفحه کاری شما تحت عنوان Watches  نمایان می شود . 

 

کار با امکانات کادر Whatch 

 این کادر دارای چهار ستون می باشد که می توانید در شکل زیر آنها را مشاهده نماییید . 

کار با امکانات کادر Whatch 

عملکرد هر کدام از این ستون ها به قرار زیر است : 

  1. Expression 

 در این ستون می توانید نام متغیر و یا یک عبارت محاسباتی را قرار دهید .

برای این کار می توانید متغیر مربوطه را از طریق Drag  کردن به محیط کادر Whatch  منقل نمایید . 

۲٫  Value 

این ستون مقداری را که در حال حاضر درون متغیر قرار گرفته است یا نتیجه عبارت محاسباتی را نمایش می دهد . 

۳٫ Type 

این ستون نوع دیتای ذخیره شده در متغیر را نمایش می دهد . 

۴٫ Context 

این ستون محل قرارگیری متغیر را نمایش می دهد.

برای درک بهتر مفاهیم فوق به تصویر زیر نگاه کنید. 

 کار با امکانات کادر Whatch 

وقتی که در حالت Break  هستیم در ابتدای امر مشاهده می کنید که مقادیر نمایش داده شده برای همه متغیرها صفر است

این بدان معنی است که هیچ مقداری در این متغیر ذخیره نشده است .

اما اگر با دکمه F8  کدهای خود را مرحله به مرحله اجرا کنیم چیزی همانند تصویر زیر را مشاهده می کنید . 

 کار با امکانات کادر Whatch 

همانگونه که مشاهده می کنید در این کادر می توانید کنترل نمایید که هر کدام از متغیرهای شما چه مقادیری را در خود ذخیره خواهند نمود.

و اما کاربرد آن در خطایابی کدهای VBA 

اگر در کادر بالا دقت نمایید مقدار متغیر int1  در ستون Value  برابر صفر شده است .

اما در بدنه کد   مقدار متغیر int1  یک عبارت فرضی “tyg”   است . اما چرا مقدار ان در این کادر صفر است یعنی هیچ مقداری برای آن ذخیره نشده است . 

این به این خاطر است که ما در قسمت تعریف متغیر   ما نوع متغیر int1  را از نوع integer  تعریف کرده ایم . 

یعنی این متغیر باید یک مقدار عددی داشته باشد در صورتی که ما یک مقدار غیر عددی به آن اختصاص داده ایم و به همین خاطر هیچ مقداری در آن ذخیره نشده و مقدار نمایش داده شده در کادر مربوطه برابر عدد صفر است در صورتی که سایر متغیر ها مقادیر مورد نظر را در خود ذخیره می نمایند  . 

 

  • آشنایی با کادر   Local window 

یکی دیگر از ابزار کاربردی در خطایابی کدهای VBA در اکسل کادر  local window  می باشد . 

ابتدا ببینیم که چگونه می توانیم این کادر به محیط کاری خود اضافه کنیم تا از آن بتوان خطایابی کدهای VBA در اکسل استفاده نمود . 

تصویر زیر نحوه فراخوانی این کادر را نمایش  می دهد . 

 

 

خطایابی در اکسل

 

و اما در خصوص کاربرد این کادر در خطایابی کدهای VBA در اکسل می توان گفت که این کادر دقیقا دارای کاربردی مشابه کادر Watch window  دارد اما تفاوتی که بین این دو وجود دارد در این است که حوزه غملکرد این کادر فقط محدود به همین ماژولی است  که کادر مربوطه در آن قرار دارد .

این نکته در نام این کادر نیز منعکس شده است . 

امادر مورد کادر Watch Window  وضعیت به گونه ای دیگر رقم می خورد چرا که با استفاده از ان می توان به تمامی ماژول ها و متغیرها ی موجود در آنها دسترسی داشت و مقادیر ذخیره شده در آنها را مورد بررسی قرار داد . 

 

– کادر Immediate Window 

Immediate Window یکی از پرکاربردترین و مفیدترین امکاناتی است که برنامه ویرایشگر کدهای VBA در اختیار برنامه نویس قرار داده است . 

با استفاده از کادر به راحتی می توانید کدهای خود را قبل از اجرا شدن در محیط اصلی از طریق کادر اجرا نمایید تا متوجه شوید که آیا کدهای شما به درستی اجرا می شوند یا خیر . 

فراخوانی کادر  Immediate Window  

تصویر زیر نحوه فراخوانی این کادر را به شما نمایش می دهد . 

کار با Immediate Window 

 

این کادر فقط یک صفحه کاری کوچک است و در واقع همانند یک آزمایشگاه کوچک شما می توانید عملکرد  کدهای خود را در محیط آن آزمایش نمایید .

یکی از مهمترین و بارزترین تفاوت هایی که بین این کادر و کادر های Watch window  و  Local Window  وجود دارد در این است که شما به راحتی می توانید مقادیر یک متغیر را تغییر داده و مقادیر جدیدی را برای وارد نمایید .

در حالی که در دو کادر قبلی فقط امکان مشاهده مقادیر متغیرها فراهم بود و امکانی برای تغییرات در آنها وجود ندارد .

کار با پنجره Immediate Window

 

یه تصویر زیر توجه کنید 

خطایابی کدهای VBA در اکسل

تصویر فوق با یک مثال ساده طرز کار این کادر را نمایش می دهد .

ما در این کادر یک ماژول داریم که درون ان یک تابع محاسباتی ساده داریم که دو عدد را با یکدیگر جمع می کند .

حال می خواهیم بدانیم که خروجی این تابع به چه نحو است .

برای این کار می توانیم به راحتی کادر Immediate  را فراخوانی کنیم .

حال کاری که باید بکنیم این است که  تابع خود را در این کادر اجرا نماییم .

برای این کار ما دو راه پیش رو داریم

راه اول اینکه در داخل کادر Immediate  قبل از نام تابع یک علامت ؟ را تایپ نموده و سپس کلید Enter  را از روی صفحه کلید خود فشار دهیم 

با این کار کد مورد نظر ما اجرا شده و نتیجه و خروجی آن برای ما نمایش داده می شود. 

راه دوم برای اجرای این کد استفاده از عبارت Debug.print  در داخل خود بدنه ماژول می باشد

تصویر زیر نحوه انجام این کار را نمایش می دهد .

خطایابی کدهای VBA در اکسلهمانطور که ملاحظه می کنید برای اجرای تابع کفی است در برابر  عبارت Debug.print نام تابع خود را بیاورید

بعد از اجرای کدها ملاحظه خواهید نمود که خروجی تابع شما در کادر مربوطه چاپ شده است . .

 

آموزش اکسل 2016 بازدید : 188 views ۸ اسفند, ۱۳۹۷ ۰