اجزای زبان VBA

در این قمست به بررسی اجزای زبان VBA، که عبارتند از کامنت‌ها، ورچسب، متغیرها، ثابت‌ها و آرایه ها، می‌پردازیم.

Comments

هنگامی که بخواهید در مورد قسمتی از کد توضیحی بدهید تا در مراجعتهای بعدی، سریع تر به فرایند پی ببرید و یا افراد دیگر بهتر بتوانند منطق برنامه نوشته شده را درک نمایند می‌توانید از کامنت استفاده نمایید.

به منظور قرار دادن کامنت درون برنامه می‌توانید از علامت ‘ در ابتدای کامتن استفاده نماید.(به صورت پیشفرض خط مربوط به کامنت با رنگ سبز نشان داده می‌شود)، در هنگام اجرای برنامه، زمانی که به علامت ‘ می‌رسد از روی آن عبور می کند و شما می‌توانید از کامنت در ابتدای خط یا در وسط خط استفاده نمایید( همانند زیر)

Sub macro1()

‘اين کد مقدار سلول (1و1) را برابر با 2 قرار ميدهد
Range(“A1″).Select ‘انتخاب سلول
Selection.Value = 2 ‘مقداردهي به سلول

End Sub

هر جای برنامه که علامت ‘ وجود داشته باشد، از ادامه‌ی آن به عنوان کامنت در نظر گرفته می‌شود مگر این که از علامت ‘ در بین ” ” استفاده شود. مانند برنامه زیر

Sub macro2()
MsgBox “روزتان به خير'”
End Sub

که خروجی ان پیغامی به صورت زیر می‌باشد.

Macro 3

ورچسب (Lable)

در VBA می‌توانید خط‌های برنامه را نام گذاری نمایید و در مواقع نیاز، از سیستم درخواست نمایید خط خاصی را اجرا نمایید و از قسمتی از برنامه پرش انجام دهد.

 

 

به منظور نام گزاری خطوط، باید در ابتدای خط نام آن را آورده و بعد از نام خط از علامت : استفاده نموده. همانند زیر

Sub macro3()
A0: Dim x As Double
A1: x = InputBox(“لطفا يک عدد مثبت را وارد نماييد”)
A2: If x < 0 Then GoTo A5
A3: MsgBox (x) ^ 0.5
A4: Exit Sub
A5: MsgBox “مقدار وارد شده نامعتبر مي باشد”
End Sub

در این کد خطوط برنامه به ترتیب با نامهای A0 تا A5 نام‌گذاری شده اند. کارهای انجام شده در هر خط عبارتند از.

A0: در این خط نوع متغیر X تعریف می‌گردد.

A1: در این قسمت از کاربر خواسته می‌شود مقدار مد نظر را وارد نماید.

Macro 2_1

A2: در این قسمت از کد، عدد وارد شده چک می‌شود و در صورت منفی بودن عدد وارد شده به خط A5 رفته و در آن به کاربر پیغام می‌دهد که عدد وارد شده نامعتبر می‌باشد.

Macro 2_2

A3: در صورتی که عدد وارد شده بزرگتر از صفر باشد از خط A2 به خط A3 رفته و مقدار مجذور عددی که توسط کاربر وارد شده است را در پیغامی نمایش می دهد و با رسیدن به خط A4 از برنامه خارج می‌شود.

 

متغیر

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

x = 1
y = “فروردين”
Z = 1.2 * x
u = False
m = #3/14/2004#

در نامگذاری متغیر می‌توانید از حروف، اعداد و بعضی از علائم استفاده نمایید که البته باید اوللین جزء نام متغیر، کلمه باشد و هیچ فاصله‌ای در نام متغیر استفاده نشود و همچنین از عباراتی همچون FOR, IF و .. که به عنوان برنامه‌های از VBA شناخته شده اند به عنوان اسم متغیر نمی‌توانید استفاده نمایید.

 

علاوه بر اسم متغیر، نوع آن نیز قابل اهمیت می‌باشد که به منظور افزایش سرعت اجرا، کاهش فضای مورد استفاده و همچنین کاهش احتمال بروز خطا، بهتر است هر متغیری که استفاده می‌شود، نوعش از قبل مشخص شود، در جدول زیر نوع متغیرهای کاربردی در اکسل، با توجه به فضایی از حافظه که اشغال می‌کنند آورده شده است.

Variable type

 

علاوه بر نام و نوع متغیر، محدوده‌ی تاثیر گزاری متغیر نیز جزء فاکتورهی اساسی در هنگام تعریف متغیر می‌باشد. به منظور تعریف محدوده تاثیر گذاری متغیر از چهار واژه Dim, Static, Private, Public استفاده می‌شود. در واقع سه نوع محدوده‌تاثیر گذاری برای متغیر ها وجود دارد که در جدول زیر آورده شده است.

 

محدوده فعالیت نحوه تعریف
درون روال با استفاده از Dim و یا Static داخل روال مد نظر صورت می‌گیرد.
تمامی روالهای داخل مودول با استفاده از Dim و یا Private در ابتدای مودول مد نظر صورت می‌گیرد.
تمامی مودولها با استفاده از Public در ابتدای مودول صورت می‌گیرد.

 

ثابت

به منظور حفظ و نگهداری مقادیر ثابت، از ثابت استفاده می‌شود و در طول اجرای برنامه، ثوابت قابل تغییر نمی‌باشند.به منظور تعریف ثابت از Const استفاد می‌شود.( مانند زیر)

Const x As Integer = 4
Const p As Date = #3/12/2004#
Const s As String = “vba”

 

رشته

نوعی متغیر است که در خود مقادیر را به صورت کاراکتری یا متن نگه می‌دارد. در هنگام تعریف رشته میتوان طول آن را با علامت * مشخص نمود، همانند زیر

Dim username As String * 20
Dim suername As String

مطابق با آنچه در بالا می‌بینید میتوانید اعداد و تاریخ را به صورت رشته‌ای تعریف نمایید ولی مشکلی ممکن است به وجود آید آن است که در این حالت دیگر نمی‌توانید عمل جمع یا سایر عملیات ها را بر روی آنها انجام دهید.

 

تاریخ

به منظور تعریف تاریخ باید از علامت # در ابتدا و آنتهای آن استفاده نمایید.

 

آرایه

آرایه مجموعه‌ای از متغیرها می‌باشد که دارای اسم یکسانی هستند در ارتباط با متغیرها باید گفت که می‌توان بدون تعریف متغیر از آن استفاده نمود ولی در مورد آرایه ها این چنین نمی‌باشد و حتما باید قبل از به کارگیری تعریف گردند.به منظور تعریف آرای می‌توان از Dim و Public استفاده نمود، همانند زیر

 

Dim myarray(0 To 100) As Integer
Dim myarray(100) As Integer

دو آرایه فوق نتایج یکسانی دارند. باید گفت که در VBA شمارنده آرایه از صفر شروع می‌شود که به منظور تغییر دادن آن از صفر به یک می‌توان دستور زیر را به کار برد.

Option Base 1

به منظور تعریف آرایه با ابعاد بالا تر به صورت زیر عمل می‌کنیم.

Dim x(0 To 100, 0 To 100) As String
Dim x(100, 100, 100) As Double

اگر بخواهیم ابعاد آرایه را در طول فرایند تغییر دهیم و یا آین که ابعاد آن را متغیر تعریف نماییم از دستور ReDim استفاده می‌کنیم. همانند زیر

ReDim x(150, 150, 150) As Integer

مشکلی که دستور فوق دارد آن است که اگر در میان اجرا از این دستور استفاده شود، مقادیر قبلی موجود در آرایه از بین می‌رود، به منظور جلوگیری از پاک شدن مقادیر گذشته از دستور ReDim Preserve استفاده می‌شود.

ReDim Preserve x(150, 150, 150) As Integer