سبد خرید
0

سبد خرید شما خالی است.

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

دستورات شرطی در VBA | دستور IF

دستور IF در وی بی
۵/۵ - (۷ امتیاز)

یکی از پایه ها در کدنویسی ( در هر زبان برنامه نویسی از جمله VBA ) دستورات شرطی هستند که با استفاده از اونا میتونید عملیات دلخواه خودتون رو به صورت شرطی اجرا کنید. قطعا تو اکسل هم با این شرایط برخورد کردید و از توابعی مثل تابع IF یا تابع Choose استفاده کردید. تو این آموزش میخوام دستوراتی که باعث اجرای شرطی کدها میشه رو بگم.
مهمترین دستورات شرطی تو وی بی دستور Select  Case و دستور IF در وی بی هست. هر دو این دستورات یک یا چندین شرط رو بررسی میکنند و بر اساس نتیجه آن یکسری دستورات متناسب رو اجرا میکنند.

دستور IF در وی بی (VBA)

عبارت IF … Then یک شرط رو بررسی میکنه و اگر نتیجه این بررسی مقدار True (شرط برقرار باشد) بخشی از کد رو اجرا میکنه و اگر نتیجه بررسی شرط False (شرط برقرار نباشد) بخش دیگری از کد رو اجرا میکنه. پس نتیجه اجرای دستور IF … Then اجرای یکی از بخش ها ( بخش اول که در صورت برقرار بودن شرط و یا بخش دوم که در صورت برقرار نبودن شرط نوشته شده) اجرا میشه.

ساختار کلی دستور IF … Then به صورت زیر هست:

در عبارت بالا ابتدا شرط یک ( Condition1) بررسی میشه و اگر برقرار بود دستورات زیر آن اجرا میشه. در صورتیکه این شرط برقرار نبود شرط بعدی (Condition2) بررسی میشه و اگه برقرار بود دستورات زیر اون اجرا میشه. در انتها اگر هیچکدام از این دو شرط برقرار نبودند (یعنی هیچکدوم از کدهای زیرمجموعه اونها اجرا نشده) زمانیکه به بخش Else میرسیم بدون بررسی اضافی، کدهای زیر اون اجرا میشه (این یعنی هیچکدوم از شرایط بالا برقرار نبوده که کدهاشون اجرا نشده و منجر به اجرا شدن دستورات زیر مجموعه Else شده).

نکته
در ساختار یک دستور IF در وی بی شما میتونید هر چند تا که لازم باشه ElseIf داشته باشید که در صورت برقرار نبودن یک شرط، شرط بعدی رو بررسی کنه و کدهای مربوط رو اجرا کنه.

 

یک مثال از دستور IF

میخوایم رنگ سلول فعال رو بر اساس عددی که وارد میکنیم تعیین کنیم. به عنوان مثال اگر مقدار وارد شده در سلول فعال از ۵ کوچکتر باشه، رنگ سلول قرمز باشه. اگر این مقدار بین ۵ تا ۱۰ باشه رنگ سلول نارنجی و در صورتیکه مقدار بیشتر از ۱۰ باشه رنگ سلول سبز باشه.

نکته
دستورات ElseIf و Else اختیاری هستند و در صورتیکه نیاز ندارید میتونند از دستور IF حذف کنید.

 

تو این آموزش در مورد نحوه استفاده از دستور IF در وی بی (VBA) صحبت شد. استفاده از این دستور، حالت های بیشتری هم داره که پیشنهاد میکنم مطلبی که مایکروسافت برای این دستور نوشته رو هم بخونید.

در مورد ساختار دستور Select Case در آموزش های بعدی صحبت میکنیم.

کلیدواژه : تابع IF
126

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

دیدگاه کاربران
  • صادق ۴ تیر ۱۴۰۱ / ۹:۲۸ ق٫ظ

    سلام وقتتون بخیر ، چطور میشه این دستور رو اجرا کرد ؟ وقتی داده یک سلول مثلا از ۵ کمتر هست یه مسیج باکس نشون بده . هشدار بده بهمون .

    ممنون میشم اگه جواب کامل بهم بدین یا دستورش رو برام بفرستین

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

      درود
      sub test()
      if range(“a1”).value<5 then msgbox (....)
      end sub

      این ساب رو میتونید در ایونت های مختلف بنا به نیاز بنویسید
      مثلا اگر در شیت ۱ هست selection change بزنید و این کد رو اونجا کپی کنید

      ی مقدار باید اشنایی با کدنویسی داشته باشید که بتونید این جزئیات رو روی فایل اعمال کنید

  • علی ۲۲ فروردین ۱۳۹۹ / ۲:۱۹ ب٫ظ

    سلام ضمن تبریک اعیاد عزیز به شما
    دوستان گشتم پاسخ جامعی ندیدم
    شرمنده من فایلی میخوام که
    ۱. از امروز به مدت مثلا ۶۰ روز بعد کار کنه (یعنی تاریخ الان رو بگیره و اجازه بده تا ۶۰ روز بعد کار کنه )
    ۲ – با تغییر تاریخ به کتربر پیغام بده تاریخ تغییر کرده
    ۳ – بعد از اولین بار فقط اجازه باز شدن ۱۰۰ بار داشته باشه
    ۴ بعد از اتمام تاریخ کلا فایل پاک بشه
    ۵ در صورت غیر فعال کردن ماکرو فایل باز نشه

    خود فایل باشه عالیه

  • مسعود ۲۱ بهمن ۱۳۹۸ / ۲:۳۶ ب٫ظ

    سلام
    اگه بخوام سلولهای پرشده یک ستون را بهمراه سلول مجاور ستون کنار را به جدول دیگه ای در شیت بعدی کپی کنم چه طور باید انجام بدم؟

    • سامان چراغی ۲۲ بهمن ۱۳۹۸ / ۷:۰۶ ق٫ظ

      سلام
      یک حلقه For Each برای ستون بنویسید که با دستور IF بررسی میکنه سلول خالی هست یا پر؟
      در قسمت پر بودن سلول با استفاده از متد Offset برای انتخاب سلول کناری و متد Copy سلول ها رو به شیت ۲ منتقل کنید.

  • مسلم میرزایی ۲۴ دی ۱۳۹۸ / ۶:۳۸ ب٫ظ

    سلام
    ممنون از اطلاعات خوب و آموزنده شما بزرگواران

  • حامد ۱۹ دی ۱۳۹۸ / ۲:۴۱ ب٫ظ

    با تشکر از زحمات فوق العاده تون
    ببخشید، اگر بخوایم یه برنامه بنویسیم که عدد ۱ رو توی ورد یادداشت کنه و بعد از اون عدد ۲ همینطور با هربار اجرای ماکرو این عدد یکی افزایش پیدا کنه، چیکار باید کرد؟
    خیلی ممنونم

  • saba ۹ اردیبهشت ۱۳۹۷ / ۶:۱۳ ب٫ظ

    ممنون از برنامه اتان

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.

توسط
تومان