آشنایی با برنامه نویسی اکسل (VBA) و ماکرو (قسمت سوم)
به نام خداوند یخشنده مهربان
در ابتدا بایستی از بابت تاخیر دراز مدت در ارائه مطلب از همه دوستان عذرخواهی کنم.
در این بخش می خواهیم با مفهوم و کلیات VBA آشنا شویم. هرچند که این آموزش کمی در سطح بالا بوده و بیشتر مناسب کسانی است که با مفاهیم برنامه نویسی آشنایی قبلی داشته و یا اینکه کمی با مفاهیم کار کرده اند اما، به سهم خودم سعی می کنم تا آموزش ها طوری ارائه گردد که برای همه ی دوستان مناسب باشد.
همانطور که می دانید، برنامه نویسی در محیط اکسل بسیار شبیه برنامه نویسی در محیط های دیگر برنامه نویسی می باشد منتها با کمی تغییرات. بطور مثال در اکسل ما مفهومی به نام شیت داریم که براحتی می توانیم با استفاده از دستورات برنامه نویسی به آن شیت اشاره نموده و به آن و یا به بخشی از آن مانند یک سلول خاص آن شیت اشاره کرده و براحتی یک عدد و یک متن و یا یک فرمول را در آن نوشت.
حالا مطالب را با هم مرور می کنیم:
VBA در یک نگاه
اگر بخواهیم نگاهی گذرا بر آنچه که VBA در مورد آن کاربرد دارد داشته باشیم می توانیم نگاهی به موارد زیر بیندازیم. البته می توان به تفصیل درباره هر کدام از آنها صحبت کرد.
عملیاتهایتان را در VBA با استفاده از نوشتن و یا رکورد کردن آنها در یک VBA Module انجام می دهید. که این کار را با استفاده از محیط ادیتور VBA که VBE نام دارد انجام می دهید.یک VBA Module شامل Sub Procedureها می باشد. که در حالت عادی کاربرد خاصی ندارد و در حقیقت کدی می باشد که یک عمل را برای شما انجام می دهد. در زیر شما یک Sub Procedure را می بینید که Test نام دارد. این برنامه حاصل 1+1 را نمایش می دهد.
Sub Test ()
Sum = 1 + 1
MsgBox "The answer is "& Sum
End Sub
یک VBA Module همچنین می تواند شامل یکسری Function Procedure باشد.Function Procedure یک مقدار را بر می گرداند. شما می توانید آنرا از یک VBA Procedure دیگر فراخوانی کنید و یا اینکه حتی از آن بعنوان یک تابع در یک فرمول بهره ببرید. نمونهای از یک Function Procedure که AddTwo نام دارد را در زیر مشاهده می کنید. این تابع دو عدد دریافت نموده (بعنوان آرگومان) و حاصل جمع دو عدد را بر می گرداند.
Function AddTwo (arg1, arg2)
AddTwo = arg1 + arg2
End Function
عناصر قابل دستکاریِ VBA. اکسل حدود 100 نوع آبجکت که قابل دستکاری هستند را برای شما فراهم می آورد. مثالهایی از این عناصر را می توان یک Workbook، Worksheet، یک محدوده سلول ( Range)، یک نمودار( Chart ) و یا یک شکل در نظر گرفت. بطور کلی شما عناصر زیادی در دسترس دارید که می توانید آنها را دستکاری نمایید.
عناصر در یک سلسله قرار می گیرند. عناصر می توانند بعنوان یک نگهدارنده برای سایر عناصر عمل کنند. و برنامه اکسل در بالاترین سطح این سلسله قرار دارد. اکسل خودش به تنهایی یک آبجکت می باشد که Application نامیده می شود و سایر آبجکتها مانند عناصر Workbook و عناصر CommandBar را شامل می شود. آبجکت Workbook شامل سایر عناصر مانند عناصر Worksheet و عناصر چارت نیز می شود. آبجکت Worksheet شامل عناصر Range و عناصر Pivot Table می شود. عبارت Object اشاره به چیدمان این عناصر دارد.
عناصر هم نوع، Collection را تشکیل می دهند. بطور مثال، Worksheets Collection شامل تمامی Worksheetهای موجود در یک Workbook خاص می شود. Charts Collection شامل تمامی عناصر چارت موجود در یک Workbook می شود. Collection ها خودشان هم آبجکت هستند.
با استفاده از یک نقطه(Dot) می توان به یک آبجکت و عناصر اش اشاده داشت. بطور مثال برای اشاره به Workbook با نام Book1.xls می توان به شیوه زیر اقدام کرد:
Application.Workbooks ("Book1.xls")
این اشاره ایست به Workbook با نام Book1.xls در Workbooks Collection. Workbooks Collection در Application Object قرار گرفته است. و با رفتن به یک مرحله بالاتر، شما می توانید به Sheet1 در Book1.xls اشاره کنید. مانند زیر:
Application.Workbooks ("Book1.xls").Worksheets ("Sheet1")
همانند مثال زیر و با رفتن به یک مرحله پایین تر می توانید به یک سلول خاص در یک شیت خاص اشاره کنید. در این مثال، سلول A1
Application.Workbooks("Book1.xls").Worksheets ("Sheet1").Range ("A1")
اگر از یک Reference مشخص صرفنظر کنید، اکسل از آبجکت فعال استفاده می کند. اگر Book1.xls بعنوان Workbook فعال باشد، شما می توانید براحتی از Reference قبلی استفاده کنید همانند زیر:
Worksheets ("Sheet1").Range ("A1")
اگر بدانید که Sheet1 شیت فعال باشد، می توانید براحتی به سلول A1 اشاره کنید.
Range ("A1")
آبجکتها دارای ویژگیهایی هستند (Properties) شما می توانید Properties را بعنوان تنظیمی (Setting) برای آبجکت در نظر بگیرید. بطور مثال، آبجکت Range ویژگیهایی با نام مقدار (Value) و آدرس (Address) دارد. یک آبجکت Chart ویژگیهایی همانند عنوان (HasTitle) و نوع (Type) دارد. شما می توانید از VBA برای مشخص کردن ویژگیها و تغییر آنها استفاده کنید.
با استفاده از Property Name و Object Name که با استفاده از نقطه (Dot) از هم جدا شده اند، به Property یک آبجکت دسترسی داشته باشید. بطور مثال شما می توانید به Value سلول A1 بصورت زیر دسترسی داشته باشید.
Worksheets ("Sheet1").Range ("A1").Value
می توانید مقادیر را به متغیرها انتصاب دهید. متغیر (Variable) یک عنصر نامگذاری شده است که اشیاء را ذخیره می کند. شما می توانید در کد VBA خودتان از متغیرها به منظور نگهداری مقادیر عددی، متنی و یا تنظیمات Property استفاده کنید. به منظور انتساب دادن مقدار سلول A1 در Sheet1 به یک متغیر که Interest نامیده می شود بایستی از VBA کد زیر استفاده نمود.
Interest = Worksheets ("Sheet1").Range ("A1").Value
آبجکتها دارای متدهایی هستند. Method عبارتست از یک اکشن اکسل که بوسیله آبجکت اجرا می شود. بطور مثال یکی از متدهای مربوط به آبجکت Range متد ClearContents می باشد. این متد محتوای Range را حذف میکند.
نمایش متد با استفاده از ترکیبی از نقطه (Dot) و نام آبجکت. بطور مثال عبارت زیر محتوای سلول A1 را حذف می کند.
Worksheets ("Sheet1").Range ("A1").ClearContents
VBA
همه ساختارهای یک زبان برنامه نویسی مدرن را شامل می شود. شامل آرایه ها و حلقه های
Loop
ما را از نظرات و سئوالات خوبتان محروم نفرمایید. نظرات شما باعث دلگرمی ماست.




