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


آموزش برنامه نویسی اکسل : Select Case

آموزش برنامه نویسی اکسل : Select Case
نویسنده : امیر انصاری
همانطور که شما کاملاً آگاه هستید، جهان یک مکان پیچیده است و گاهی اوقات ماکروهای شما در جاهایی لازم است نه تنها یک شرط ، دو، سه و یا پنج شرط را در نظر بگیرند، بلکه ممکن است لازم شود تا دهها، صدها و هزاران وضعیت را در شرایط در نظر بگیرند. همچنین زمانهایی وجود دارد که ممکن است چندین شرط مختلف نیاز به عکس العمل های یکسان داشته باشند. برای اینگونه ارزیابی های پیچیده، بیانیه Select Case یک راه حل عالی می باشد.

آموزش سالیدورکز 20-2019



قصد داریم تا در اینجا شما را با بیانیه Select Case آشنا کنیم. استفاده از ساختار Select Case آسان می باشد، و پیگیری کدها در این ساختار ساده تر از ساختار if می باشد. مشابه کلمات کلیدی If و ElseIf شما از کلمه کلیدی Case در یک ساختار Select Case استفاده می کنید تا وضعیت یک شرط خاص را ارزیابی کنید. شما به هر تعداد بیانیه Case که نیاز باشد، می توانید داشته باشید، و فقط اولین کدی که در ارزیابی ها به True برسد، اجرا خواهد شد.

بهترین روش برای درک Select Case اینست که آن را در عمل همراه با مثال هایی ببینید. ماکرویی که در زیر می بینید در واقع همان مثالی است که در آموزشهای If ارائه دادیم. با این تفاوت که در اینجا به جای ساختار If…Then…ElseIf از ساختار Select Case استفاده شده است:

Sub WeekdayTestSelectCase()
Select Case Weekday(VBA.Date)
Case 2 ‘Monday
MsgBox “Ugghhh - - Back to work.”, , “Today is Monday”
Case 3 ‘Tuesday
MsgBox “At least it’s not Monday anymore!”, , “Today is Tuesday”
Case 4 ‘Wednesday
MsgBox “Hey, we’re halfway through the work week!”, , “Today is Wednesday”
Case 5 ‘Thursday
MsgBox “Looking forward to the weekend.”, , “Today is Thursday”
Case 6 ‘Friday
MsgBox “Have a nice weekend!”, , “Today is Friday!”
Case 1, 7 ‘Saturday or Sunday
MsgBox “Hey, it’s currently the weekend!”, , “Today is a weekend day!”
End Select
End Sub

احتمالاً متوجه شده اید که در این ساختار کدهای تکراری کمتری وجود دارند، چرا که شرط اصلی که Weekday(VBA.Date) می باشد در قسمت Select Case یکبار آمده است و در قسمت Case ها فقط نتیجه شرط ذکر شده است. علاوه بر آن، هر Case کاملاً واضح است و خواندن ماکرو ساده تر می باشد.

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

با استفاده از Select Case شما می توانید شرطهای مختلفی را در یک Case گروه بندی کنید، تا به یک نتیجه مشترک از آنها برسید. به عنوان مثال ماههای ژانویه، فوریه و مارچ هر سه در فصل اول سال هستند. اگر شما می خواهید یک پیام تولید کنید که فصل جاری را نشان بدهد، ماکروی زیر به شما نشان می دهد که چگونه ماهها را در Case ها دسته بندی کنید:

Sub CurrentQuarter()
Select Case Month(VBA.Date)
Case 1 To 3: MsgBox “Quarter 1”
Case 4 To 6: MsgBox “Quarter 2”
Case 7 To 9: MsgBox “Quarter 3”
Case 10 To 12: MsgBox “Quarter 4”
End Select
End Sub

همانطور که می توانید ببینید، شما نیازی ندارید تا 12 بیانیه Case جداگانه برای رسیدگی به هر شرط در مورد هر ماه ایجاد کنید، شما به سادگی می توانید محدودۀ ماهها را با استفاده از بیانیۀ To در هر Case بررسی کنید. در این مثال من یکی دیگر از ویژگی های مفید VBA را برای شما رونمایی کرده ام و آن استفاده از کاراکتر کالن (:) می باشد. با استفاده از این کاراکتر می توانید چندین خط جداگانه را در یک خط بنویسید. اگر در این مثال از کالن (:) استفاده نمی کردیم باید هر کدام از آن کدها را در خطی جداگانه می نوشتیم. البته من خودم معمولاً از کاراکتر کالن (:) به این شکل استفاده نمی کنم اما بعضی وقتها که کدهای شما کوتاه هستند، استفاده از کالن (:) می تواند خوانایی کدهای شما را بیشتر کند. به هر حال یک امر سلیقه ای است.


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

آموزش بعدی : آموزش برنامه نویسی اکسل : جعبه پیام (Message Boxes)



دیدگاه ها(0)

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

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

لطفا پیش از ارسال دیدگاه ، به نکات زیر توجه فرمایید :

- از نوشتن دیدگاه های غیر مرتبط با پست جدا خودداری کنید. دیدگاه ها و سوالات متفرقۀ خود را می توانید در تالارهای گفتمان خوش آموز مطرح نمایید.
- لطفاً دیدگاه های خود را با حروف فارسی تایپ کنید، دیدگاه های فینگیلیش تایید نمی شوند.
- قبل از ارسال دیدگاه حتما متن پست و نظرات سایر دوستان را بخوانید . نظرات اسپم و تکراری تایید نخواهند شد.
- نظر شما ممکن است بدون پاسخ تایید شوند که در این صورت باید منتظر پاسخ از سوی دیگر کاربران باشید .
- لطفا انتقادات و پیشنهادات و همچنین درخواست های خود را از طریق ایمیل khoshamoz[at].hotmail.com ارسال نمایید
- چرا آموزش های سایت خوش آموز در قالب فایل pdf به صورت یکجا ارائه نمی شوند؟
- چرا برخی پرسش های کاربران پاسخ داده نمی شوند؟


دوره رایگان آموزش جامع برنامه نویسی اکسل (VBA) از مقدماتی تا پیشرفته

دوره رایگان آموزش جامع برنامه نویسی اکسل (VBA) از مقدماتی تا پیشرفته