حلقه ها در وي ب ي اي LOOPS IN VBA EXCEL 2007

FOR  يكي از پر كاربردترين نوع حلقه در زبان هاي برنامه نويسي است و براي شمارش بكار ميرود. ساختارش چنين است :

FOR    انتها        تو          ابتدا = شمارنده           STEP گام

عمليات

NEXT

مثال : در ساختار زير سلول هاي ستون A  تا A100 از 1 تا 100 پر مي شوند:

FOR  I=1 TO 100

CELLS(I,1)=I

NEXT

مثال : جدولي در كاربرگ 1 طراحي كنيد كه شامل ستون نام و دريافتي و ماه دريافت باشد ، سپس اسامي چند نفر را در آن وارد نماييد ( تكراري هم داشته باشد ) آنگاه ماكرويي طراحي كنيد كه نام فرد را دريافت كرده سپس جمع كل دريافتي هاي وي را نمايش دهد .

 

SELECT CASE IN VBA

يكي ديگر از ابزار هاي كنترلي در وي بي اي SELECT CASE است . اين ابزار مانند چند IF  تو در تو است و شكل آن به صورت زير است :

SELECT CASE  متغير

CASE  محدوده 1

عمليات 1

CASE  محدوده 2

عمليات 2

CASE ELSE

عمليات

END SELECT

به طور مثال ساختاري طراحي كنيد كه عددي را از كاربر گرفته و سپس رده ي آنرا مشخص كند:

1-اگر عدد 1 يا 2 يا 3 باشد رده A

2- اگر عدد بزرگتر از 3 و كوچكتر از 7 باشد رده ي B

3-  اگر عدد بزرگتر از 7 باشد رده ي C

4- در غير اين صورت پيام خطا صادر كند.

نمايش داده شود:

SUB TEST()

DIM X!

X=INPUTBOX("X:")

SELECT CASE X

CASE 1,2,3

MSGBOX " A"

CASE 3 TO 7

MSGBOX " B"

CASE IS > 7

MSGBOX "C"

CASE ELSE

MSGBOX " ERROR"

END SELECT

END SUB

 

استفاده از اكسل در امور حسابداري

برخي از دوستان درباره تهيه ي گزارش از ليست ها زياد مي پرسند به ويژه تابع VLOOKUP  لازم است كه توضيحي مختصر درباره انواع ليست ها و گزارش هايي كه اكسل قادر است تهيه كند ارايه نمايم :

اكسل قادر است دو نوع گزارش كلي از ليستهايش تهيه كند:

1- ليست هايي كه آيتم هاي تكراراي دارند. مثل حقوق دستمزد كه يك نفر قادر است بارها پول دريافت كند .

2- ليست هايي كه اجازه ي تكرار ندارند. مثل مشخصات فردي درون اداره كه يكنفر نبايد دوبار ثبت شده باشد.

در مورد اول ابزار هايي چون

1-تابع  SUBTOTAL

2- SUMIF, SUMIFS

3- تركيب آرايه اي SUM & IF

4- توابع پايگاه داده  يا DSUM

5-PIVOTTABLE يا جداول محوري ( بسيار مهم )

6- ابزار  SUBTOTAL

را مي توان استفاده كرد، كه تمامي آنها را در آرشيو مي توانيد بيابيد.

اما مورد دوم ليست هاي غير تكراري است كه ابزار هاي آن عبارتند از :

توابع  INDEX و MATCH و VLOOKUP , HLOOKUP

 اين توابع در ليست هاي تكراري استفاده ي چنداني ندارد

 

استفاده از ساختارهای کنترلی در وی بی ای اکسل  if , select case

if  يكي از پر كاربرترين ابزارهاي وي بي اي در عمليات كنترلي است.

ساختار آن به شرح زير است:

if   شرط   then

عمليات 

elseif شرط then

عمليات

else

عمليات

endif

 

مثال - دو عدد را از كاربر گرفته اگر مساوي باشند كلمه مساوي و درغير اين صورت نامساوي را نمايش دهد.

sub test1()

dim a!

dim b!

a=inputbox("a")

b=inputbox("b")

if a=b then

 msgbox "equal"

else

 msgbox " not equal"

endif

end sub

مثال 2- دو عدد درون a1 , b1  را مقايسه كند و هر كدام كه كوچكتر است را پاك كند .

مثال 3- اسامي و حقوق مبناي چند كارمند را دريافت كرده اگر حقوق بيش از 400$ باشد ماليات 10 درصد محاسبه شود در غير اين صورت 7 درصد محاسبه شود.

مثال ۴- میانگین اعداد درون ستون A  از كاربرگ 1 را با همين ستون از كاربرگ 2 مقايسه كرده هر كدام كه بزرگتر بود نام آن كاربرگ به MAX  تغيير يابد.

نكات اين تمرين :براي تغيير نام مثلا كابرگ 1 :

SHEETS(1).NAME="MAX"

براي استفاده از يك تابع درون وي بي اي از

   APPLICATION.WORKSHEETFUNCTION. نام تابع

I = APPLICATION.WORKSHEETFUNCTION.AVERAGE(RANGE("A:A"))

(اين فرمول ميانگين تمام اعداد درون ستون A  را به درون متغيير  I  مي ريزد.)

استفاده مي كنيم . توجه داشته باشيد كه توابع مشخص هستند و مقادير آنها بايد درون يك متغيير ريخته شود.

توجه كنيد براي  انتخاب  كاربرگ يك مي توان از دستور زير استفاده كرد :

SHEETS(1).SELECT