برای اکثر ما ، مسیر برنامهنویسی با VBA اکسل با نیاز به انجام برخی کارهایی که با ابزارهای استاندارد در اکسل انجام نمیشود ، آغاز میشود. این نیازها برای هریک از ما متفاوت است. مانند ایجاد خودکار فایلهای جداگانه برای تمام سطرهای یک مجموعه داده و یا خودکارسازی ارسال دهها گزارش بصورت ایمیل و....
نکته زیبایی که در مورد VBA اکسل وجود دارد اینه که برای حل مشکلات با استفاده از آن ، لازم نیست حرفهای باشید. میتوانید تنها به اندازهای یاد بگیرید که مشکلی را حل کنید ، یا میتوانید فراتر بروید و راههایی برای رسیدن به انواع سناریوهای هوشمندسازی را کشف کنید. اگر هیچ شناختی با برنامهنویسی ندارید این کتاب میتواند به شما کمک کند تا قدرت زبان VBA را برای خودکارسازی و هوشمندتر شدن اقدامات اکسل به دست آورید (خوب ، البته مدتی طول خواهد کشید).
به هر کتابفروشی سر بزنید ، کتابهای زیادی در مورد برنامهنویسی با اکسل پیدا خواهید کرد. یک مرور سریع میتواند به شما کمک کند تصمیم بگیرید که آیا این کتاب برای شما مناسب است یا خیر. این کتاب :
- نیازی به تجربه قبلی برنامه نویسی ندارد.
- متداول ترین دستورات را پوشش میدهد.
آنچه درباره خواننده کتاب فرض شده است
افرادی که کتاب مینویسند معمولا یک خواننده هدف در ذهن خود دارند. برای این کتاب ، خواننده هدف من گروهی از کاربران اکسل است که در طول سالها (بصورت حضوری یا در فضای مجازی) با آنها ملاقات کردهام. نکات زیر کم و بیش خواننده این کتاب را توصیف میکند:
- در کار خود مرتب از اکسل استفاده میکند و سطح خود در اکسل را متوسط میداند.
- میخواهد کارهایی انجام دهد که در حال حاضر نمیتواند آن را با اکسل انجام دهد.
- تجربه برنامهنویسی کمی دارد و یا اصلا ندارد.
محتویات کتاب
مجموعه کتابهای برنامهنویسی با اکسل به گونهای فصلبندی شدهاند که مطالعه مطالب آن برای خواننده راحت و قابل درک باشد. کتاب حاضر را به دوازده فصل عمده تقسیم کردهایم که هر یک شامل چندین بخش است. اگرچه فصلها را با توالی نسبتا منطقی تنظیم کردهایم ، میتوانید آنها را به هر ترتیبی که میخواهید مطالعه کنید.
منابع استفاده شده در کتاب
در ادامه یک پیش نمایش از آنچه برای شما آماده شده است ارائه میشود:
فصل اول: دستور IF…Then…Else
در این فصل دستور IF…Then…Else مورد بررسی قرار خواهد گرفت. در VBA این دستور به شما امکان میدهد تا شرطی را بررسی و براساس آن عمل کنید. این دستور در بسیاری از موارد بسیار ارزشمند و مفید است. در این فصل با ساختار مختلف دستور IF…Then…Else و برخی از نمونههای عملی آن آشنا خواهید شد.
فصل دوم: دستور Select Case
در فصل اول با استفاده از دستور IF…Then…Else میتوانستید برای تجزیه و تحلیل شروط متعدد و اجرای کد بر اساس این شروط استفاده کنید. ساختار مشابه دیگری که امکان میدهد شروط متعدد را بررسی کنید دستور SELECT CASE میباشد. در این فصل با عملکرد این دستور آشنا خواهید شد.
فصل سوم: حلقهها
بعد از مطالعه این فصل مفاهیم و اطلاعات مهم مورد نیاز برای ایجاد و اجرای حلقههای تکرار در برنامههای VBA و ماکروها را یاد خواهید گرفت. خواهید دانست حلقه چیست و کاربردها و مزایای آن کدامند. ساختار اصلی حلقههایی که اکسل از آنها پشتیبانی میکند را خواهید دانست و (از بین آنها) با حلقههایی که مدام سر و کار خواهید داشت آشنا خواهید شد. حلقههای VBA عبارتند از:
- For…Next
- For Each…Next
- Do While و Do Until
علاوه بر این حلقهها ، با حلقه While…Wend نیز آشنا میشوید و یاد خواهیدگرفت که حلقه ...Do چیست و چه اقدامات احتیاطی باید برای جلوگیری از ایجاد حلقههای بیپایان انجام دهید. در نهایت با مطالعه مطالب این فصل ، آماده خواهید شد تا حلقههای شگفت انگیز VBA اکسل را ایجاد کنید.
فصل چهارم: توابع برگه اکسل و توابع داخلی VBA در برنامه نویسی
حتی اگر تا به حال از VBA استفاده نکردهاید به احتمال زیاد با توابع برگه اکسل آشنا هستید. اینها توابعی است که شما هر بار فرمولی را در برگه اکسل مینوشتید استفاده میکردید. چند نمونه از توابع برگه عبارتند از: SUM ، IF ، IFERROR وVLOOKUP.
توابع برگه اکسل به شرح زیر عمل میکنند:
1. معمولا یک یا چند مولفه دریافت میکنند. برخی از استثنائات برای این قانون وجود دارد ، زیرا بعضی از توابع مانند TRUE و FALSE مولفهای ندارند.
2. محاسبات خاصی انجام میدهند.
3. در نهایت مقداری را به عنوان نتیجه باز میگردانند.
VBA اکسل نیز دارای برخی توابع مفید است که دقیقا همین کار را انجام میدهد. به عبارت دیگر ، توابع داخلی VBA مولفههایی را دریافت و مقادیری را باز میگرداند. توابع VBA هنگام ایجاد ماکروهای پیچیده و پیشرفته میتواند نقش مهمی ایفا کند.
استفاده از توابع روشی عالی برای افزایش قدرت و انعطافپذیری ماکروها است. توابع میتوانند باعث شوند با تلاش کم و کدنویسی کوتاه ، برنامههای قدرتمندی ایجاد کنید. با استفاده از این توابع میتوانید بصورت حرفهای ماکرونویسی کنید. اگر این ایده را دوست دارید ، این فصل برای شما مناسب است.
بعد از مطالعه این فصل تمام ابزارهای مورد نیاز برای استفاده از توابع در ماکروها را دارید. به ویژه خواهید دانست:
- نحوه فراخوانی توابع در VBA که شامل چندین راهبرد است و می¬تواند در کار با این توابع به شما کمک کند.
- توابع برگه که نمی¬توانید در VBA استفاده کنید ، کدامند و چگونه می¬توانید آنها را شناسایی کنید.
فصل پنجم: چند تابع مهم VBA
در این فصل لیست کوچکی از توابع مفید VBA گردآوری شده است. در این لیست توابع تخصصی یا مبهم را کنار گذاشتهایم.
در ادامه فصل نیز چند تابع مهم معرفی و مثالهایی از نحوه کاربرد آنها ارائه شده است.
فصل ششم: کار با برگههای اکسل در VBA
به غیر از کار با سلولها و محدودهها (که در جلد اول مجموعه با آنها آشنا شدید) کار با برگهها (worksheets) قسمت دیگری است که باید بدانید ، تا از کارایی VBA در اکسل استفاده کنید. در این فصل ، جزئیات کار با برگهها را به طور کامل پوشش داده و برخی از نمونههای عملی را نشان خواهیم داد.
فصل هفتم: کار با فایلهای اکسل در VBA
در این فصل نحوه کار با فایلهای اکسل (workbook) در VBA را پوشش خواهیم داد. در اکسل Workbook یک شیء است که بخشی از مجموعه Workbooks میباشد. در یک Workbook نیز اشیاء مختلفی مانند برگهها (worksheets) برگههای نمودار (chart sheets) سلولها (cells) ، محدودهها (ranges) ، نمودار (chart) اشکال (shapes) و ... وجود دارد.
با VBA میتوانید بسیاری از مسائل مربوط به یک شیء Workbook (مانند باز کردن یک فایل ، ذخیره و بستن فایل ، ایجاد فایل جدید ، تغییر ویژگیهای فایل و ...) را انجام دهید.
فصل هشتم: ایحاد و اجرای توابع سفارشی در VBA
با مطالعه فصول چهارم و پنجم درک بسیار خوبی از توابع VBA اکسل خواهید داشت ، در این فصل نیز نحوه ایجاد توابع سفارشی را شروع خواهیم کرد. با استفاده از VBA میتوانید یک تابع سفارشی (که تابع تعریف شده توسط کاربر نیز نامیده میشود) مشابه توابع برگه اکسل ایجاد کنید.
ایجاد توابع سفارشی وقتی که توابع موجود برگه اکسل کافی نیست میتواند برای خدمت به نیازهایتان مفید باشد. با این حال ، اطلاعاتی که در پایان فصل کسب خواهید کرد محدود به این مطلب نخواهد بود.
خواهید آموخت که چرا ممکن است بخواهید توابع سفارشی ایجاد کنید و با توابع سفارشی درست مانند توابع استاندارد اکسل کار کنید. یاد خواهید گرفت که چگونه میتوانید به توابع سفارشی ایجاد شده توضیحاتی اضافه کنید و آنها را به منظور تسهیل استفاده ، برای افرادی که فایلهای اکسل خود را با آنها به اشتراک میگذارید سازماندهی کنید.
فصل نهم: تکنیکهای مدیریت خطا در VBA
مهم نیست که برنامهنویسی با VBA را چگونه آموختهاید ، خطاها همیشه بخشی از آن است. خطاها ممکن است از منابع مختلفی مانند کدنویسی اشتباه ، عملیات غیرممکن (تقسیم عدد بر صفر) یا خطاهای غیرمنتظره ناشی شود.
هدف نهایی مدیریت خطا نوشتن کدی است که از نمایش پیامهای خطا در اکسل تا حد امکان جلوگیری کند. به عبارت دیگر ، خطاهای احتمالی را پیشبینی کرده و با آنها مقابله کنید قبل از اینکه اکسل برای نمایش پیامهای خطا (و معمولا) با اطلاعاتی محدود ، شانسی داشته باشد. بهترین راه ، درک درستی از تمام نتایج احتمالی است که میتوانید با کد دریافت کنید. در این فصل ، راههای مختلفی جهت مدیریت موثر خطاها نشان خواهیم داد:
- تفاوت بین خطاهای حین برنامهنویسی و خطاهای زمان اجرا را یاد خواهید گرفت.
- با نحوه شناسایی و مدیریت خطاهای زمان اجرا آشنا خواهید شد.
- با نحوه عملکرد دستورات on Error آشنا میشوید.
- یاد خواهید گرفت که چگونه میتوانید از یک خطا به نفع خود استفاده کنید.
فصل دهم: رخدادها و فرآیندهای خودکار
هنگامی که ماکرویی را در اکسل ضبط میکنید یا مینویسید ، باید آن را اجرا کنید تا دستورالعملهای آن اجرا شود. در غیر این صورت ، تمام کارهای شما در زمینه طراحی و کدنویسی بیهوده بوده است.
در اکسل ، چند گزینه مختلف برای فراخوانی یا اجرای یک فرآیند Sub وجود دارد. در جلد اول این مجموعه(کلیک کنید) 9 روش مختلف را توضیح دادیم که با استفاده از این روشها میتوانستید یک فرآیند Sub را اجرا کنید. مانند استفاده از پنجره محاورهای macros ، اختصاص ماکرو به یک دکمه ، استفاده از میانبر و ...
روش بسیار مفید اجرای ماکرو ، این است که به اکسل بگوییم هنگام وقوع یک رخداد ، فرآیند Sub به طور خودکار اجرا شود. با دانستن نحوه انجام این کار میتوانید برنامههایی بنویسید که قادر به انجام کارهایی باشد که در صورت عدم استفاده از این روش غیرممکن خواهد بود.
این فصل به موضوع رخدادهای VBA میپردازد. تمام اطلاعات مورد نیاز برای درک اینکه رخدادهای VBA چیست و نحوه استفاده از آنها در ماکرو را ارائه میدهیم. توضیح میدهیم که چگونه کدها را تنظیم کتید تا هنگام وقوع یک رخداد ، ماکرو بطور خودکار اجرا شود (نه ، این فصل در مورد روشهای اجرای ماکرو نیست).
فصل یازدهم: برقراری ارتباط با کاربر (پنجرههای محاورهای سفارشی)
در این فصل با نحوه ایجاد پنجرههای محاورهای سفارشی (UserForm) و کنترلهای آن مانند دکمه ، جعبه لیست ، جعبه انتخاب و ... آشنا خواهید شد. خواهید فهمید چه موقع از UserForm استفاده کنید و نحوه نمایش آن را خواهید آموخت. همچنین نمونههای بسیاری از پنجرههای محاورهای سفارشی از پایه تا پیشرفته و حاوی نکات و ترفندهای مفید ارائه شده است.
فصل دوازدهم: سایر مباحث
فلسفه من برای درک نحوه برنامهنویسی با اکسل تأکید زیاد بر بررسی مثالها است. دریافتهام که یک مثال خوب یک مفهوم را بسیار بهتر از یک توصیف طولانی بیان میکند. اگر این کتاب را مطالعه کنید حتما با من موافق خواهید بود. این فصل شما را با تکنیکهای مفید برنامهنویسی اکسل آشنا میکند. در این فصل با ارائه نمونههایی ضمن پیشبرد سطح دانش شما در VBA برخی از راه حل های مشکلات موجود نیز بیان خواهد شد.
این نمونهها را در دستههای زیر ارائه کردهایم:
- کار با شیء Range
- تغییر تنظیمات اکسل
- افزایش سرعت کد VBA
- نحوه ایجاد و استفاده از Add-in (افزونه) اکسل
مطالعه این مقدمه اولین قدم شما بود. اکنون زمان آن رسیده است که یک برنامه نویس حرفهای شوید. اگر جدیدا به دنیای VBA وارد شدهاید ، اکیدا پیشنهاد میکنم که از فصل اول شروع کرده و توالی فصلها را رعایت کنید.