نسخه جدید افزونه تقویم شمسی منتشر شد!!! جزئیات بیشتر در صفحه این محصول (سابقه افزونه تقویم شمسی) نوشته شده.
سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه
تمام دسته ها
  • تمام دسته ها
  • ابزارها
  • افزونه ها
  • اکسل مدیا
  • Power BI
  • Power Pivot
  • Power Query
  • توابع اکسل
  • دسته‌بندی نشده
  • دیده بان
  • گوگل شیت
  • مسائل کاربردی
  • معرفی کتاب
  • نمودار ها
  • وی بی - ماکرو

۳ روش برای افزایش خوانایی کدهای وی بی (VBA)

اصول خوانایی کد
۵/۵ - (۴ امتیاز)

اصول خوانایی کد برای نمایش کدهای وی بی (VBA)

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

در زمان نوشتن کد برای شما کاملا واضح هست که کد برای چی نوشته شده و کارکردش چیه، اما باید کدها رو طوری بنویسید که اگه ۶ ماه دیگه هم برگشتید تا کد رو بررسی کنید (به هر دلیلی مثل اصلاح کد و یا بهبود اونها) مثل الان براتون روشن باشه و با کمترین زمان بتونید کدها رو تغییر بدید. حالت سخت تر اینه که فردی دیگه ای کدهای شما رو بخواد بخونه و متوجه بشه که چی هست.

امروز میخوایم در مورد کامنت ها، تورفتگی و شکستگی خطوط کد صحبت کنیم. اینها ابزارهایی هستند که تو تبدیل کدهای شما به کدهایی واضح کمک میکنند.

اصول خوانایی کد: کامنت ها (Comments)

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

کامنت ها به وسیله زبان وی بی (VBA) اجرا نمیشن برای همین تأثیری در خروجی برنامه هم ندارن. تو زبان وی بی (VBA) هر چیزی که بعد از کارکتر (‘) بیاید رو به عنوان یک کامنت در نظر میگیره. به همین دلیل تو ویرایشگر کد وی بی (VBA) رنگ کامنت ها به رنگ سبز تغییر میکنند.

تو مثال زیر یک قطعه کد وجود داره که با استفاده از کامنت ها خطوط مهم، کد رو توضیح دادیم:

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

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

[su_heading]هر دقیقه ای که شما صرف ایجاد توضیح مناسب برای کدهاتون میکنید در آینده ساعت ها زمان شما رو برای ویرایش کدها ذخیره میکنه.[/su_heading]

تورفتگی کدها

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

شکستگی خطوط

بعضی وقت ها به خاطر منطق مسئله مجبور میشیم که یک خط از کد رو خیلی طولانی بنویسیم. وجود خطوط بلند یکی دیگه از اصول خوانایی کد هست باعث میشه که کدها یکدست دیده نشن. از طرفی وسط یک خط نمیشه با زدن اینتر (Enter) به خط بعدی رفت و مابقی کد رو از اونجا نوشت (با انجام این کار به ما پیغام داده میشه که باعث ایجاد خطا میشه). اما یک راه برای ایجاد این شکستگی تو کدهای بلند وجود داره.
زمانیکه میخواید یک خط رو به دو خط تبدیل کنید باید در قسمتی که قصد شکستن خط رو دارید یک فاصله و زیرخط بذارید ( _) و بعد از آن اینتر بزنید. با این کار نشون به اجرا کننده برنامه نشون دادیم ادامه این خط از کد در خط بعدی قرار داده شده.
در مثال زیر نشون میدیم که چطوری شکستگی خطوط باعث افزایش خوانایی کدهای وی بی میشه. دستور If زیر رو در نظر بگیرید:

با اضافه شدن شکستگی خط، همان ساختار رو به صورت زیر میتونیم استفاده کنیم:

بعد از اینکه ساختار If رو به صورت بالا شکستیم و تبدیل به سه خط کردیم، شرایط مختلف رو به راحتی تشخیص میدید.
در این آموزش سعی کردیم نشون بدیم که نحوه توضیح و نوشتن کدهای وی بی چقدر میتونه تو خوانایی و روشن بودن مفهوم کد تأثیر داشته باشه که نتیجه آن ذخیره ساعت ها وقت شما در درک کدها و کاهش احتمال به وجود آمدن خطا است.

اگر به زبان برنامه نویسی VBA علاقه دارید حتما پیشنهاد میکنم دوره ماکرونویسی در اکسل رو ببینید.

کلیدواژه : مقدماتی
133

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

دیدگاه کاربران
  • مجتبی ۲۳ آذر ۱۴۰۱ / ۳:۰۰ ق٫ظ

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

    • آواتار
      حسنا خاکزاد ۲۴ دی ۱۴۰۱ / ۲:۴۶ ب٫ظ

      درود بر شما
      در خصوص سوالات اکسلی در خدمتتون هستیم

  • رضا ۹ اردیبهشت ۱۳۹۹ / ۷:۴۲ ق٫ظ

    سلام
    آبا این امکان وجود دارد که چند ماکرو را با یک دکمه اجرا کنیم؟

    • سامان چراغی ۹ اردیبهشت ۱۳۹۹ / ۵:۵۸ ب٫ظ

      سلام
      بله، کافیه ماکروهای دیگه رو درون یک ماکرو فراخوانی کنید و این ماکرو رو اجرا کنید.

      • رضا ۹ اردیبهشت ۱۳۹۹ / ۶:۵۸ ب٫ظ

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

        • سامان چراغی ۱۱ اردیبهشت ۱۳۹۹ / ۷:۱۱ ب٫ظ

          اسم ماکرو های مورد نظر رو در بدنه ماکرو اول بنویسید

          • رضا ۱۶ اردیبهشت ۱۳۹۹ / ۱۰:۰۵ ب٫ظ

            ممنون از راهنماییتون
            یک سوال دیگه داشتم من یک کد نوشتم از دستور if و elseif استفاده کردم که شرطم حدود ۶۰۰ حالت داره که بعد از هر if یک سری دستور اجرا میشه مثلا بعد از if اول دستور a و دستور x و y بعد از if دوم دستور b و دستور x و y الی آخر یعنی دستور x و y توی همه شرطها تکرار میشه.
            آیا راهی برای خلاصه کردنش وجود داره؟ لطفا راهنمایی کنید.

          • سامان چراغی ۲۴ اردیبهشت ۱۳۹۹ / ۹:۰۲ ب٫ظ

            سلام
            خواهش میکنم.
            اگر دستور یا دستوراتی در همه حالت ها تکرار میشه، بهتره دستورات رو بعد از پایان IF بذارید چون در هر صورت این کدهای تکراری باید اجرار شوند.
            لذا نیازی به قرار گرفتن در ساختار IF ندارند.
            اما برای دستوراتی که وابسته به حالت خاص هست می بایست در ساختار IF لحاظ شوند.
            البته در موارد خاصی با توجه به شرایط مسئله ممکنه بشه با ترفندهایی تعداد خط کدها رو کاهش داد.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان