ساختار کدنویسی در برنامه نویسی VBA
7 دقیقه
زمان مطالعه
0 رای
۵
بازدید
۱۳۹۸/۴/۳
تاریخ انتشار
وقتی برای اولین بار به کدهای وی بی ای (VBA) نگاه میکنیم، ممکن است سطرهای کد، کمی پیچیده و ترسناک به نظر برسد. اما کدهای وی بی ای (VBA) دارای ساختار مشخصی است که با فهم این ساختار درک کدهای نوشته شده و همچنین نوشتن کدهای ویژوال بیسیک بسیار ساده تر خواهد شد.
فهم ساختار کدنویسی وی بی ای (VBA)
وی بی ای (VBA) نوعی زبان برنامه نویسی است که در گروه زبان های برنامه نویسی شی گرا قرار میگیرد. اما برنامه نویسی شئ گرا به چه معنی است؟ از یک مثال ساده شروع میکنیم. از اشیاء درون خانه شما بعنوان یک مثال شروع میکنیم. شما در خانه خود چند اتاق دارید که در هرکدام از اتاق ها چندین وسیله وجود دارد و هرکدام از این وسیله ها مجموعه ای از کارها را انجام میدهند. برای مثال اگر بخواهیم یخچال را در خانه شما باز کنیم می بایست به شکل زیر عمل کنیم:
خانه > آشپزخانه > یخچال > باز کردن
به همین شکل اگر قصد خوابیدن داشته باشید:
خانه > اتاق خواب > تخت خواب > خوابیدن
در نمونه اول، یخچال فقط در آشپزخانه قرار دارد و در اتاق خواب هیچ یخچالی وجود ندارد، به همین دلیل شما نمیتوانید از کد زیر استفاده کنید:
خانه > اتاق خواب > یخچال
اگر سعی کنید با رفتن به اتاق خواب در یخچال را باز کنید، خطا رخ خواهد داد. اکسل نیز از الگویی دقیقا شبیه به همین الگو در برنامه نویسی وی بی ای (VBA) استفاده میکند. اگر بخواهیم سلول A1 را در یک شیت خاص انتخاب کنیم می بایست از ساختار کد زیر استفاده کنیم:
Excel -> ExampleWorkbook.xlsx -> Sheet1 -> Cell A1 -> Select
اگر کدهای خود را با باز کردن یک سند ورد شروع کنید یا یک ورک شیت اشتباه را وارد کنید قادر به انتخاب کردن سلول مورد نظر نخواهید بود. در نتیجه ترتیب اشیاء در برنامه نویسی وی بی ای بسیار اهمیت دارد.
فیلم آموزشی درک ساختار برنامه نویسی در اکسل
اگر دوست دارید با برنامه نویسی شی گرا و ساختار برنامه نویسی وی بی ای بیشتر آشنا شوید می توانید این فیلم آموزشی رو ببینید.
فرض های وی بی ای
اگر یک ماکرو ضبط کنید و سپس با مراجعه به صفحه وی بی ای (VBA) کدهای آن را مشاهده کنید، متوجه خواهید شد که سطرهای کد ساخته شده با نمونه های بالا متفاوت است. دلیل این موضوع مجموعه فروضی است که وی بی ای (VBA) در نظر می گیرد.
یکبار دیگر به مثال یخچال برمیگردیم.شما تاکنون میدانید که یخچال در آشپزخانه قرار دارد. بنابراین اگر میخواهید در یخچال را باز کنید کافیست از کد زیر استفاده کنید:
یخچال > باز کردن
در بسیاری از موارد همین مقدار از کد کافیست و اکسل فرض میکند که منظور شما از یخچال، یخچال خودتان است و قصد باز کردن یخچال همسایه را ندارید. برای باز کردن یخچال همسایه می بایست از فرمول زیر استفاده کنید:
خانه همسایه > آشپزخانه > یخچال > باز کردن
به همین شکل VBA همیشه دارای فرض هایی است که شما را در کدنویسی یاری میکنند. برای مثال شما میتوانید به جای کدهای زیر:
Application.Workbooks("ExmpleWorkbook.xlsx").Sheets("Sheet1").Range("A1").Select
از کد کوتاه شده زیر استفاده کنید:
Range("A1").Select
نوع نرم افزار
وی بی ای (VBA) در اکسل فرض میکند ما از اکسل بعنوان نرم افزار میزبان استفاده میکنیم و نه word یا power point . بنابراین شما نیازی نیست در ابتدای کدهای خود نوع نرم افزار را مشخص کنیم. مگر اینکه بخواهیم از طریق برنامه نویسی در اکسل نرم افزارهای دیگری را کنترل کنیم که در مطالب آینده در مورد آن توضیح خواهیم داد.
ورک بوک
وی بی ای (VBA) در اکسل، همچنین فرض میکند که ورک بوک فعال که شما در حال کدنویسی در آن هستید، همان ورک بوکی است که میخواهیم از آن استفاده کنیم. بنابراین اگر میخواهید آدرس یک سلول را در کدهای خود استفاده کنیم، نیاز به مشخص کردن ورک بوک نیست و به صورت پیش فرض ورک بوک فعال مورد استفاده قرار میگیرد. با اینحال، اگر میخواهیم ورک بوکی غیر از ورک بوک فعال را در کدهای خود مورد استفاده قرار دهیم، می بایست در کدنویسی به آن اشاره کنیم.
ورک شیت
شبیه به ورک بوک، VBA ورک شیت فعال را نیز بعنوان میزبان در نظر میگیرد و شما برای استفاده از محدوده های ورک شیت فعلی نیاز به وارد کردن نام ورک شیت در ابتدای کدهای خود ندارید. اما برای استفاده از دیگر ورک شیت ها می بایست به شکل زیر عمل کنید:
- (“Sheets(“sheetname: با استفاده از این دستور به یک شیت با نام Sheetname اشاره خواهد شد.
- (Sheets(4: با این دستور به چهارمین ورک شیت از سمت چپ اشاره خواهد شد.
- ActiveSheet: این دستور به ورک شیت فعال اشاره میکند.
مثال:
اگر بخواهیم سلول A1 را از شیت فعال انتخاب کنیم به شکل زیر عمل میکنیم:
Range("A1").Select
اگر بخواهیم سلول A1 را از شیت چهارم یک ورک بوک به نام “Example.xlsx” انتخاب کنیم،کدهای ما به شکل زیر خواهد بود:
Workbooks("Example.xlsx").Sheets(4).Range("A1").Select
اگر بخواهیم شیت 1 از ورک بوکی که در حال کدنویسی در آن هستیم را انتخاب کنیم، از کدهای زیر استفاده میکنیم:
ThisWorkbook.Sheets("Sheet1").Range("A1").Select
فهم مشخصه های اشیاء در برنامه نویسی وی بی ای
مشخصه ها، صفت های اشیاء هستند. در خانه شما، اتاق ها، یخچال و دیگر وسیله ها دارای صفت هایی از قبیل وزن، طول، ارتفاع و … هستند. در VBA نیز اشیاء دارای چنین مشخص هایی هستند.
برای مثال اگر بخواهیم ارتفاع ردیف 9 را که یکی از مشخصه های آن است تغییر دهیم به شکل زیر عمل میکنیم:
Rows(9).RowHeight = 30
برای تغییر رنگ سلول به صورت زیر کدنویسی میکنیم( 65535 کد رنگ زرد است):
Range("A1").Interior.Color = 65535
مشخصه های اشیاء با هم یکسان نیستند و هر شئ مشخصه های خاص خود را دارد. برای مثال ممکن است مشخصه هایی که یخچال دارد، کمد نداشته باشد.
متد (method) در برنامه نویسی VBA
متد فعالیت هایی است که یک شئ میتواند انجام دهد. برای مثال شما میتوانید یخچال را باز کنید ولی نمیتوانید تلویزیون را باز کنید. هر عملی که میتوانید بر روی یک شئ انجام دهید، متد آن شئ محسوب میشود. درست شبیه به مشخصه ها، متدها نیز مخصوص هر شئ هستند و از یک شئ به یک شئ دیگر با هم تفاوت دارند.
انتخاب یک سلول، یک متد محسوب میشود:
Range("A1").Select
حذف یک ورک شیت نیز متد است:
Worksheets(4).Delete
مطالب عنوان شده در این قسمت ممکن است کمی نسبت به قسمت های اولیه پیچیده تر باشد ولی با رعایت قانون طلایی عنوان شده در ابتدای این دوره و استفاده عملی از هزکدام از این مفاهیم به درک عمیقتری نسبت به آنها خواهید رسید. البته نیازی به حفظ کردن تمام اشیاء و مشخصه ها و متدها وجود ندارد و اکسل ابزارهایی را برای تسهیل کار در اختیار شما قرار داده است:
Object Browser
با مراجعه به پنجره Visual basic editor آیکن نشان داده شده در تصویر زیر را انتخاب کنید:
ابزار object browser باز خواهد شد. در این ابزار لیست کاملی از اشیاء، مشخصه ها و متدها نمایش داده میشود.

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

Tools -> Options -> Editor -> Auto List Members
البته اگر در درک مفاهیم بالا دچار سردرگمی شدید، جای هیچ نگرانی نیست. در قسمت های آینده بارها به این مفاهیم اشاره خواهیم کرد و به تدریج با این مسائل آشنا خواهید شد. برای مطالعه مطالب قبل در زمینه برنامه نویسی VBA در اکسل میتوانید به صفحه زیر مراجعه کنید:
دوره رایگان برنامه نویسی VBA در اکسل
این محتوا چطور بود؟
نظر شما بهبود محتوا کمک میکند

امیر دائی
500k دنبالکنندهاز بچگی عاشق برنامه نویسی بودم