خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش برنامه نویسی اکسل : ساختارهای تصمیم گیری: If…Then…Else

آموزش برنامه نویسی اکسل : ساختارهای تصمیم گیری: If…Then…Else
نویسنده : امیر انصاری
در اغلب موارد، ارزیابی شما به جای یک شرط، شامل دو یا بیشتر از دو شرط می باشد. هنگامی که شما دو شرط دارید و هر کدام از این شرطها منجر به انجام کارهای خاص خودشان می گردند، شما نیاز دارید تا این دو شرط را با بیانیه Else از یکدیگر جدا کنید.

سیستم یکپارچۀ سازمانی راهکار



مثالی را که در آموزش قبلی آوردیم کمی گسترش می دهیم، فرض کنید تصمیم دارید تا اگر امروز Friday بود پیغامی به کاربر نمایش داده شود، و اگر هر روز دیگری غیر از Friday بود، پیام جداگانه ای به کاربر نمایش داده شود. در اینجا شیوه نگارش این ماکرو آمده است:

If Weekday(VBA.Date) = 6 Then
MsgBox “Have a nice weekend!”, , “Today is Friday!”
Else
MsgBox “Alas, today is not Friday.”, , “Not Friday yet!”
End If

در این مثال، تنها یکی از شرایط امکان ارزیابی شدن به True را دارد، چرا که امروز یا Friday است و یا الزاماً روز دیگری غیر از Friday می باشد. این بلوک از کد طوری طراحی شده است که در یک زمان فقط یکی از دو پیام نمایش داده می شوند و هرگز هر دوی آنها با هم نمایش داده نخواهند شد.

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

یک عادت خوب اینست که در طراحی هایتان شرطهایی را که احتمال True شدنشان بیشتر است بالاتر از سایر شرطها قرار بدهید. به این ترتیب، در بیشتر وقتها، شرط اول True خواهد بود و VBA زمانش را برای بررسی سایر سناریوهای غیر محتمل جایگزین، هدر نخواهد داد. با داشتن این نکته در ذهن، مثال قبلی یک فرصت خوب است تا به شما نشان بدهیم چگونه باعث شوید کدهایتان سریعتر اجرا شوند.

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

If Weekday(VBA.Date) <> 6 Then
MsgBox “Alas, today is not Friday.”, , “Not Friday yet!”
Else
MsgBox “Have a nice weekend!”, , “Today is Friday!”
End If


آموزش قبلی : آموزش برنامه نویسی اکسل : ساختارهای تصمیم گیری: If…Then

آموزش بعدی : آموزش برنامه نویسی اکسل : If…Then…ElseIf



نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.