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


+ جلسه دهم- ادامه مبحث DO-LOOP آغاز FUNCTION نویسی در اکسل

جلسه دهم

ادامه do-loop

در جلسه گذشته با حلقه شرطی DO-LOOP  تا اندازه ای آشنا شدیم. در این جلسه می خواهیم با ارائه مثالهایی بیشتر با کاربرد این حلقه در برنامه نویسی ویژوال بیسیک بپردازیم.

 

کاربرد عبارت Until IsEmpty  در حلقه شرطی DO-LOOP

در جلسه گذشته مثالی زدیم که تلاش بر این بود که برنامه ای نوشته شود تعداد سلهای پر در یک ستون اکسل را نشان دهد. در آنجا دیدیم که از خط برنامه زیر در برنامه جهت رسیدن به این هدف استفاده نمودیم:

Loop While Cells(i, 1)<>""

به جای این عبارت در صورتی که از حلقه شرطی DO-LOOP استفاده می کنیم می توانیم از عبارت زیر استفاده نماییم:

Loop Until IsEmpty(Cells(i, 1))

 

 

لذا برنامه به شکل زیر اصلاح می گردد:

 

Sub do_loop()

i = 0 

         Do

              i = i + 1

Loop Until IsEmpty(Cells(i, 1))          

   Cells(1, 2) = i - 1

End Sub

 

مثال دوم: می خواهیم برنامه ای بنویسیم مجموع مقادیر 1 تا 100 را بدون آنکه در سلهای جدول این اعداد را نشان دهد، در یک MASSAGE BOX نشان دهد.برنامه به شکل زیر نوشته می شود:

Sub do_loop2()

           i = 1

       Sum = 0

            Do

                  Sum = Sum + i

                  i = i + 1

            Loop While i <= 100

      MsgBox Sum

End Sub

 

مثال سوم:تعدادی عدد در سلهای یک ستون اکسل وجود دارد که برخی سلهای همان ستون خالی و فاقد عدد است. برنامه ای بنویسید که آخرین عدد آن ستون را در سطر B1 بنویسد.

برنامه مورد اشاره به شکل زیر نوشته خواهد شد:

 

Sub do_loop3()

      i = 1000

            Do

                   i = i - 1

           Loop While IsEmpty(Cells(i, 1))

      MsgBox i

End Sub

 

ساخت  function در اکسل

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

 

جهت نیل به این منظور وارد محیط VBA شده

برای اینکه برنامه ای در این محیط بنویسیم به جای عبارات SUB  و در آخر برنامه END SUB از عبارت FUNCTION  به صورت و فرمت زیر استفاده می شود.دقت شود که در پرانتزی که مقابل عبارت  FUNCTION قرار دارد، متغیرهایی که مورد نیاز برنامه است و می بایست در برنامه استفاده گردد، وارد می شود و با یک "," از هم جدا می شود.

 

FUNCTION(    ,     ,      ,     ) AS VARIANT

محاسبات برنامه

END FUNCTION

 

می خواهیم تابعی بنویسیم با معرفی نمودن سه مالفه در آمد، هزینه و درصد مالیات، خالص در آمد را محاسبه نماید:

 

Function netprofit(income, cost, tax) As Variant

t = 1 - tax

netprofit = (income - cost) * t

End Function

 

وارد محیط excel  می شویم.حال از از گزینه insert حالت function  را انتخاب می کنیم.در پنجره باز شده از کمبو باکس مقابل عبارت select a category  or گزینه user difind را انتخاب می کنیم.ملاحظه می کنیم که برنامه جدید ما در اینجا وجود دارد. حال برای اجرای این برنامه دو حالت پیش روی ماست.

الف- استفاده از گزینه user difand برای اجرای برنامه که در این حالت پنجره ای باز می شود و از ما می خواهد که هر یک از سه متغیر برنامه را مشخص کنیم تا در نهایت حاصل را به ما گزارش نماید.

 

 

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

=NETPROFIT(A1;B1;C1)

بدیهی است سلهای داخل پرانتز به ترتیب در اینجا در بر گیرنده در آمد، هزینه و درصد مالیات می باشد.

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