برنامه نويسي در محيط ويژوال بيسيك كاربرد در اكسل(VB)


+ جلسه ششم- ساختار برنامه SELECT CASE در اکسل

جلسه ششم:

 

Select CASE

 

دستور SELECT CASE دستوری با کاربردی مانند IF می باشد. در جهت استفاده از این دستور ما نیازمند تعریف متغیری مانند X هستیم و سپس برای متغیر مورد اشاره شروط مورد نیاز را می گذاریم.

 

 

شکل کلی دستور Select Case

 

Select Case  نام متغیر

 Case           حالت اول

دستورات

 Case حالت دوم

دستورات

.

.

.

 

Case Else

دستورات

 End Select

 


در زیر برنامه ای نوشته شده است که برای مقادیر مختلف موجود در سل A1 یک شیت اکسل عبارات A , B, C, … را در سل مقابل آن می گذارد.

 Sub level( )

 x = Range("a1").Value

 Select Case x

 Case 17 To 20

Range("b1").Value = " A"

 Case 14 To 17

Range("b1").Value = " B"

            Case 12 To 14

Range("b1").Value = " C"

 Case 10 To 12

Range("b1").Value = " D"

            Case 0 To 10

Range("b1").Value = " E"

Case Else

Range("b1").Value = "false"

 End Select 

End Sub


ساختار حلقه ای FOR Each - NEXT

حلقه ها دستوراتی هستند که می توان جهت انجام دستورات تکراری از آنها استفاده نمود. حلقه FOR Each برای کار بر روی عضوهای(members) یک مجموعه(collection) استفاده می شود. مجموعه شامل تعدادی شیء یکسان است. به عنوان مثال Range("A1:A10") یک ‍collection ‌ است زیرا تعدادی عضو به نام سلول است که همگی از یک جنس هستند. worksheet های یک فایل اکسل مجموعه ای به نام Worksheets تشکیل می دهند. چارتهای یک فایل اکسل مجموعه ای به نام Charts تشکیل می دهند.

الگوی زیر الگوی استفاده از یک حلقه FOR Each در برنامه نویسی می باشد:

 

 

For Each عضو In مجموعه

            دستورات

NEXT

 

 

 

در برنامه ای که در زیر نوشته شده عملیات مورد نظر بر روی ردیفهای 1 تا 10 ستون A  انجام می شود.برنامه به گونه ای نوشته شده است که اعداد کمتر از 10موجود در ستون اول، را Bold ‌کند

 

 

حال با استفاده و ترکیب دو دستور FOR-NEXT به سادگی برنامه مورد اشاره به شرح ذیل نوشته می شود:

 

 Sub range_level ()

 

Sub a()

 

 

 For Each c In Range("a11:h20")

    If x < 10 Then c.Font.Bold = True

 Next

 

End Sub

استفاده از دستور ROW در برنامه:

 

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

تنها نکته موجود در این برنامه وجود دستور ROW است که از دسته دستوراتی مانند VALUE می باشد که در اینجا ROW به مفهوم ردیف مورد نظر می باشد.و برای نیل به هدف بالا می بایست دو متغیر تعریف نمود.

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

 

 

Sub range_level()

 Dim c As Range

 For Each c In Range("a1:a10")

 x = c.Value

i = c.Row

 

Select Case x

 

Case 17 To 20

                   Cells(i, 2) = "A"

 Case 14 To 17

 Cells(i, 2) = "B"

 Case 12 To 14

Cells(i, 2) = "C"

Case 10 To 12

 Cells(i, 2) = "D"

 Case 0 To 10

  Cells(i, 2) = "E"

 Case Else

 Cells(i, 2) = "ERROR"

          End Select

 

 Next

 

End Sub

نویسنده : حامد بیرامی ; ساعت ۱۱:٢٦ ‎ق.ظ ; ۱۳۸۸/۱٠/٢۱
تگ ها:
comment نظرات () لینک