1-1: تب Developer
2-1: ویرایشگر VBA
3-1: ماکروها (Macros)
4-1: Object, Method And Parameter
5-1: نوار ابزار Developer
6-1: دکمه ها (Buttons)
7-1: Offset
8-1: Resize
1-2: متغیرها (Variables)
2-2: کار با متغیرها (Variables)
3-2: Option Explicit
4-2: جمع / تفریق
5-2: ضرب / تقسیم
6-2: انواع متغیرها
1-3: دستور IF
2-3: Else … ElseIf
3-3: شرط ها (Conditions)
4-3: عملگرهای منطقی
5-3: تمرین اول
6-3: تمرین دوم
7-3: Select Case
8-3: تمرین سوم
9-3: With … End With
1-4: رشته های متنی (Strings)
2-4: Change Case
3-4: Trim, Len, Space
4-4: Replace
5-4: ?In the String
6-4: Left and Right
7-4: تابع Mid
8-4: تمرین چهارم
1-5: For Loops
2-5: For Each
3-5: ویژگی Cells
4-5: Do Loops
1-6: آشنایی با آرایه ها (Arrays)
2-6: Arrays, Loops
3-6: آرایه چند بعدی (Multi Array)
4-6: Arrays and Split
1-7: Subroutines
2-7: ارسال مقادیر به Sub
3-7: آشنایی بیشتر با Message Box
4-7: توابع (Functions)
5-7: استفاده ار توابع اکسل در VBA
6-7: دستور Set
1-8: بازکردن فایل متنی (Text File)
2-8: اضافه کردن اطلاعات به فایل متنی
1-9: یوزر فرم ها (User Forms)
2-9: دکمه ها (Buttons)
3-9: اجرای یوزر فرم
4-9: اضافه کردن پنل جدید
5-9: سفارشی سازی نوار ابزار اکسل
1-10: نمایشگر تصاویر (Picture Viewer)
2-10: طراحی فرم
3-10: اضافه کردن دکمه ها
4-10: اضافه کردن Tab جدید
5-10: رویداد Initialize Form (مقداردهی اولیه)
6-10: درج اطلاعات تصویر در TextBox
7-10: دکمه رادیویی (Option Button)
8-10: بارگذاری تصاویر (ImageBox)
9-10: دکمه های بعدی / قبلی
10-10: اضافه کردن تصویر جدید
11-10: ذخیره تصویر جدید
12-10: کپی کردن تصویر
1-11: نمودار (Chart)
1-12: کنترل Treeviews
2-12: Parent/Child Nodes
3-12: راه اندازی اولیه (Initialize)
4-12: رویداد Node Click
در این بخش با نحوه ضبط ماکرو آشنا می شویم و خواهیم دید که اکسل چطور برایمان کد می نویسد. از همین الان به خاطر داشته باشد با ضبط ماکرو کدهایی که اکسل برای یک کار کوچک هم ایجاد می کند معمولا زیاد می باشند، اما کدهایی که ما درنهایت به آن نیاز داریم بسیار کمتر است بنابراین نگران این موضوع نباشید.
قبل از ضبط ماکرو ابتدا همانند تصویر ذیل پنجره اکسل و ویرایشگر VBA را در کنار هم قرار دهید:
در ویندوز به راحتی می توان پنجره دو برنامه درحال اجرا را در کنار هم قرار داد، مراحل ذیل را به ترتیب انجام دهید:
- روی پنجره اکسل کلیک کنید تا فعال شود
- دکمه ویندوز را روی کیبورد نگه دارید سپس کلید مکان نمای سمت چپ را بزنید.
- روی پنجره ویرایشگر VBA کلیک کنید تا فعال شود
- دکمه ویندوز را روی کیبورد نگه دارید سپس کلید مکان نمای سمت راست را بزنید.
پنجره اکسل و ویرایشگر VBA هانند تصویر بالا در کنار یکدیگر قرار داد. در این صورت هنگام کار با اکسل همزمان می توانیم کدهایی که ایجاد می شوند را ببینیم.
حال می خواهیم ماکرویی ایجاد کنیم که محتوای سلول را وسط چین نماید. ابتدا در سلول A1 تا A6 اعداد 1 تا 6 را وارد کنید.
از تب Developer و از بخش Code روی Record Macro کلیک کنید:
کادر Record Macro به صورت ذیل باز می شود:
در قسمت Macro Name نام ماکرو را وارد کنید. گفتیم نام ها را طوری انتخاب می کنیم که بیانگر کاری باشد که انجام می دهیم. در اینجا می خواهیم محتوای سلول ها را وسط چین کنیم بنابراین نام ماکرو را Center_Text بزارید.
در قسمت Store macro in نیز از منوی کشویی Personal Macro Workbook را انتخاب کرده:
و OK نمایید:
حال ما هرکاری را در اکسل انجام دهیم در ویرایشگر VBA کد مرتبط با آن تولید می شود. محدوده A1 تا A6 را انتخاب کنید و از تب Home بخش Alignment گزینه center را انتخاب کنید.
به تب Developer بازگردید و از بخش Code روی Stop Recording کلیک کنید تا ضبط ماکرو متوقف شود:
به پنجره VBA نگاه کنید. اگر این اولین بار است که از ضبط ماکرو استفاده کرده اید در کادر VBAProject یک Object جدید به نام Personal.XLSB ایجاد شده است. روی علامت + کنار آن کلیک کنید تا محتوای آن نشان داده شود.
نکته : با دوبار کلیک روی نام Object نیز می توان محتوای آن را نمایش داده یا پنهان کرد
روی پوشه Modules دوبار کلیک کنید تا محتوای آن نشان داده شود. حال روی ماژول 1 (Module1) دوبار کلیک کنید تا کدهایی با ضبط ماکرو ایجاد شده اند را ببینید.
می بینید که اکسل یک Sub ایجاد کرده و کدهای مورد نیاز را در آن قرار داده است. فعلا نیازی نیست مفهوم تمامی کدهایی که ایجاد می شود را بدانید اما آشنایی مختصر با آن ها خالی از لطف نیست. خط های سبز رنگ برای نوشتن توضیحات (Comments) در مورد کد هستند و اجرا نمی شوند. در خط اول محدوده A1 تا A6 قرار دارد و زمانی که در اکسل این محدوده را انتخاب کردید ایجاد شده است و در ادامه برای محدوده انتخاب شده اکسل مواردی را اعمال کرده است. تنها موردی که در اینجا مهم است مقدار xlCenter برای horizontal alignment است دیگر موارد که ایجاد شده اند ضرورتی ندارند. به مرور که در کدنویسی پیشرفت کرده و تجربه کسب نمایید راه های زیادی برای کوتاه تر نوشتن کدها پیدا می کنید. برای مثال بجای نوشتن تمامی کدهای بالا تنها یک خط کد ذیل کافی است:
Range(“A1:A6”).HorizontalAlignment = xlCenter
در مورد Range در بخش بعدی بحث خواهیم کرد.برای ذخیره کارهایی که انجام دادیم در ویرایشگر VBA از منوی File گزینه Save Personal.XLSB را انتخاب کنید.
حال بیایید ماکرویی ایجاد کنیم که متن را انتخاب کرده و آن را Bold نماید(دوباره پنجره اکسل و ویرایشگر VBA را در کنار هم قرار دهید). از تب Developer و از بخش Code روی Record Macro کلیک کنید. در کادر بازشده نام ماکرو را Make_Bold انتخاب و OK نمایید.
دوباره محدوده A1 تا A6 را انتخاب و از تب Home بخش Font روی آیکون Bold کلیک کنید. به پنجره VBA نگاه کنید، زمانی که این کارها را انجام می دادیم اکسل کدهای آن را برایمان ایجاد کرده است. همانند:
Range(“A1:A6”).Select
Selection.Font.Bold = True
ضبط ماکرو را از تب Developer بخش Code متوقف کنید.
برای تمرین بیشتر ماکروهایی ضبط کنید که نوع فونت، رنگ و اندازه متن را نیز تغییر دهد. با انجام این تمرین ها متوجه می شوید که اکسل برای این کار ساده چقدر کدهای زیادی ایجاد کرده است. همانطور که گفتیم و دیدیم نیازی به نگرانی نیست چون بیشتر این کدها اضافه بوده و درنهایت کدها بسیار کوتاه تر از چیزی است که می بینید.
قبل رفتن به بخش بعدی بهتر است تمامی ماکروهایی که ایجاد کردیم را حذف کنیم. برای اینکار از تب Developer بخش Code روی Macros کلیک کنید
ماکرو ها را از لیست انتخاب و Delete کنید. اگر در زمان حذف ماکرو با پیغام ذیل مواجه شدید:
کارد Macro را بسته و از تب View اکسل و از بخش Window روی Unhide کلیک کنید:
حال به طریقی که گفته شد ماکرو ها را حذف کنید و در پایان از پنجره VBA کارهایتان را ذخیره نمایید (File > Save).











