مجموعه آفیس مایکروسافت (MicroSoft Office) از پرکاربردترین و مهمترین مجموعه نرم افزار رایانه ای در جهان است که یکی از نرم افزارهای پر کاربرد آن، نرم افزار اکسل (Excel) است. مدارس و دانشگاهها، ادارات دولتی و خصوصی، فروشگاهها، کاربران عادی و بسیاری دیگر از این نرم افزار استفاده میکنند. در اکسل به دو شیوه میتوان دادهها را مدیریت و برنامه ریزی کرد یکی روش فرمول نویسی و دیگری برنامه نویسی، که در این مطلب قصد داریم درمورد برنامه نویسی در اکسل با VBA، صحبت کنیم. پس با ما همراه باشید.
VBA چیست؟
VBA مخفف Visual Basic for Applications یک زبان برنامه نویسی است که در مجموعه برنامههای آفیس استفاده میشود. همینجا باید متذکر شویم که VBA در نرم افزارهای تخصصی دیگر از جمله AutoCad، ARCGIS و غیره نیز قابل استفاده است.
این زبان در واقع زیر مجموعهای از Visual Basic 6.0 است که شباهتهایی هم به زبان VB دارد اما این دو از یکدیگر جدا بوده و زبانهای برنامهنویسی متفاوتی هستند. زبان VB بیشتر برای توسعه برنامه دسکتاپ مورد استفاده قرار میگیرد، در صورتی که از زبان VBA فقط میتوانیم در محیط برنامههای دیگر نظیر اکسل، استفاده کنیم.
کاربرد VBA در اکسل
در اکسل کارهای متنوعی میتوان انجام داد از جمله ذخیره اطلاعات مشتری، ذخیره نمرات دانش آموزان و دانشجویان، تحلیل علمی داده ها، ایجاد نمودار از پایگاه داده، ایجاد فرم ها، بودجه بندی و پیش بینیهای مالی و موارد بسیار دیگری که میتوانیم نام ببریم.
در تمامی موارد ذکر شده میتوان با استفاده از زبان VBA در اکسل کدی نوشت که قسمتی از اکسل، کاری را به صورت خودکار انجام دهد و لازم نباشد کاربر خود به صورت دستی همان کار را انجام دهد. به عنوان مثال میتوان یک برنامه ثبت سفارش خرید و فروش کالا را با خروجیهای مختلف ایجاد کرده و اطلاعات را ساماندهی و گزارشهای ماهیانه و سالیانه تهیه کرد.
VBA در اکسل، به طور خودکار اکسل را نرم افزار میزبان فرض میکند و دیگر لازم نیست در ابتدای کدها حتما نوع نرم افزار (به عنوان مثال ورد، اکسل، پاورپونت و ...) را مشخص کنیم. به جز مواردی که بخواهیم از طریق برنامه نویسی در اکسل، نرم افزارهای دیگری را کنترل کنیم.
مزایای استفاده از VBA چیست؟
تقریبا هر کاری را که در اکسل انجام میدهیم، میتوانیم روال انجام آن را بصورت خودکار کنیم. برای این کار، باید دستورالعمل هایی را وارد کنیم که اکسل انجام دهد. خودکارسازی کار در اکسل با استفاده از زبان VBA مزایای مختلفی دارد از جمله میتوان به موارد زیر اشاره کرد:
- اکسل همیشه کار را به همان روشی که برنامه نویسی کردیم، انجام میدهد که این باعث ثبات در کارها میشود.
- سرعت انجام کارها در اکسل بالاتر از انجام کار به شیوه دستی میشود.
- اگر یک برنامه نویس خوب ماکرو باشیم، اکسل اغلب کارها را بدون خطا انجام میدهد.
- اگر دستورات به درستی نوشته و تنظیم شده باشد، هر کاربر آشنا به اکسل میتواند کارها را در اکسل با اجرای ماکرو انجام دهد.
- با برنامه نویسی VBA ما میتوانیم کارهایی را در اکسل انجام دهیم که امکان انجام آن به صورت دستی غیرممکن است و این میتواند ما را تبدیل به یک فرد محبوب در محل کار کند.
- برای انجام کارهای طولانی و وقت گیر، دیگر نیازی نیست دائم جلوی رایانه خود بنشینیم و خود را خسته کنیم، بلکه اکسل خود همه کارها را بصورت اتوماتیک در حالی که ما در حال استراحتیم، انجام میدهد.
معایب استفاده از VBA
هر کاری که مزایا دارد، معایبی هم به همراه خواهد داشت. چند مورد از معایبی که برنامه نویسی در اکسل دارد از این قرارند:
- ما برای نوشتن برنامه خود در اکسل باید برنامه نویسی با VBA را بلد باشیم. البته یادگیری آن سخت نیست.
- سایر افرادی که میخواهند از برنامههای ما استفاده کنند، لازم است که نرم افزار اکسل را روی سیستم خود داشته باشند و امکان ارائه برنامهها به صورت مستقل وجود ندارد.
- گاهی اوقات برنامه VBA طبق خواست ما کار نخواهد کرد و در انجام کارها و محاسبات اشتباهی رخ میدهد که در این مواقع باید به دنبال اشکال زدایی و رفع مشکلات احتمالی باشید.
- همانطور که میدانید مایکروسافت دائما در حال ارتقا مجموعه نرم افزارهای خود از جمله اکسل است. حتی اگر مایکروسافت تلاش زیادی برای سازگاری بین نسخههای مختلف اکسل انجام دهد، ممکن است در مواردی کد VBA ما، روی نسخههای قبلی یا بعدی اکسل به درستی کار نکند.
چگونه میتوان با VBA در اکسل برنامه نویسی کرد؟
در ادامه سعی میکنیم با یک مثال ساده، شما را با نحوه برنامه نویسی در اکسل آشنا کنیم. در برنامهی ما، فرمی نمایش داده میشود و نام کاربر را میپرسد، سپس کاربر با واردکردن نام خود، پیغامی دریافت میکند.
مبانی اولیه برنامه نویسی VBA
قبل از اینکه بتوانیم کدنویسی را آغاز کنیم، نیاز داریم کمی با اصول اولیه برنامه نویسی آشنا شویم. مبانی زیر برای شروع کار به ما کمک میکند:
- متغیر (Variable): در مدرسه عبارت (x+2y) را به ما میدادند و میگفتند جواب را در صورتی x = 1 و y = 3 باشد را پیدا کنید، در این عبارت x و y متغیر هستند. همانطور که در مثال وجود دارد به متغیرها هر عددی مثلا همین 1 و 3 را میتوان اختصاص داد، یا آنها میتوانند به ترتیب 2 و 4 تغییر کنند. متغیرها به طور خلاصه محلی در حافظه هستند.
- قوانین نامگذاری متغیر ها
- از کلمات رزرو شده نمیتوان به عنوان اسم متغیر، استفاده کرد: اگر فرضا ما دانشجو باشیم نمیتوانیم از عناوین استاد یا مدرس استفاده کنیم، زیرا این عناوین مختص استادان و مسئولان دانشگاه است. در VBA نیز بعضی کلمات که معنی ویژه ای دارند به عنوان کلمات رزرو شده تعیین شده اند و ما نمیتوانیم از آنها به عنوان نام متغیر استفاده کنیم.
- در نام متغیر نمیتوان از فاصله استفاده کرد: ما نمیتوانیم دو کلمه جدا شده از هم را بعنوان نام متغیر استفاده کنیم. به عنوان مثال first number صحیح نیست و باید برای نامگذاری به این صورت firstNumber یا first_number استفاده کنیم.
- از اسامی توصیفی برای نامگذاری استفاده کنید: بسیار وسوسه انگیز است که نام متغیر خود را variable بگذاریم اما باید از این کار اجتناب کنیم. بهتر است از نامهای توصیفی مانند رنگ، قیمت، جنس و غیره استفاده کنیم که تاثیر فراوانی در خوانایی کد VBA ما دارد.
- عملگرهای حسابی: این عملگرها برای محاسبات استفاده میشوند و از اولویت عمگرها یا قوانین BODMAS که مخفف انگلیسی کلمات براکت ها، تقسیم، ضرب، جمع و تفریق است، تبعیت میکنند. بنابراین به یاد داشته باشید هنگام کار با عبارتی که حاوی چندین عملگر حسابی است، از این قوانین برای اولویت عملگر استفاده کنید.
- + برای اضافه کردن
- – برای تفریق
- * برای ضرب
- / برای تقسیم
- عملگرهای منطقی – بر روی عبارات منطقی اعمال میشود و نتیجه یا درست (True) یا نادرست (False) است. از این عملگرها برای شرطها استفاده میشود.
- If statements
- OR
- NOT
- AND
- TRUE
- FALSE
دسترسی به گزینههای توسعه دهنده را فعال کنید
برای استفاده از VBA در اکسل باید گزینه توسعه دهنده را فعال کنیم تا زبانه Developer برای ما نمایش داده شود که برای این کار از طریق منوی File به بخش Options می رویم و سپس گزینه Ribbon Customize را کلیک میکنیم.
ضمنا میتوانیم به صورت میانبر روی هر کدام از زبانهها راست کلیک کنیم و گزینه Customize the Ribbon کلیک کنیم. در بخش Ribbon Customize از قسمت Main Tabs گزینه Developer را فعال میکنیم.
سلام VBA
اکنون نحوه کد نویسی در VBA را بررسی میکنیم. تمام برنامه VBA باید با “Sub” شروع و با “End Sub” پایان یابد. در کنار sub نامی که میخواهیم به برنامه اختصاص دهیم نوشته میشود. تکه کد زیر، پایه تمامی کدهایی هست که خواهیم نوشت.
Sub name()
.
.
End Sub
ساخت یک دکمه در اکسل
یک WorkBook جدید باز میکنیم و به زبانه Developer میرویم و از قسمت Controls روی جعبه کشویی Insert کلیک میکنیم و دکمه فرمان را مطابق تصویر انتخاب میکنیم.
می توانیم دکمه ایجاد شده را به هر کجا که خواستیم منتقل کنیم. بعد از تثبیت دکمه، پنجره محاوره ای زیر نمایان میشود.
نام ماکرو را به btnHelloWorld_click تغییر میدهیم و روی گزینه New کلیک میکنیم که پنجره کد نویسی نمایش داده میشود.
کدهای دستورالعمل زیر را وارد میکنیم
Dim name As String
name = InputBox(“لطفا نام خود را وارد کنید”)
MsgBox “ سلام” + name
که در اینجا:
- " Dim name As String" متغیری به نام name ایجاد میکند. متغیر متن، عدد و سایر کارکترها را میپذیرد، زیرا ما آن را به عنوان رشته تعریف میکنیم.
- " name = InputBox(“لطفا نام خود را وارد کنید”)" تابع ساخته شده InputBox را فراخوانی میکندکه یک پنجره را با عنوان لطفا نام خود را وارد کنید، را نمایش میدهد. سپس نام وارد شده در متغیر name ذخیره میشود.
- " MsgBox “ سلام” + name" تابع ساخته شده MsgBox را فراخوانی میکند تا سلام به همراه نام وارد شده را در کادر نمایش دهد.
پنجره کامل شده کد کامل باید به شکل زیر باشد
پنجره کد را میبندیم و بر روی Button 1 راست کلیک کرده و Edit text را انتخاب میکنیم و نام آن را به "گفتن سلام" تغییر میدهیم. اکنون روی دکمه گفتن سلام کلیک میکنیم و در کادر ورودی نام خود را وارد کرده و تایید میکنیم. با انجام این کار، کادر پیغام سلام نمایش داده میشود.
خب تبریک! ما موفق شدیم اولین برنامه خود را با VBA در اکسل بنویسیم. این فقط یک مثال ساده بود که جهت آشنایی شما با این زبان برنامه نویسی آورده شد. VBA به قدری قدرتمند است که میتوان برنامههای بسیار پیچیده ای در آن کد نویسی کرد.
جمع بندی
با توجه به طیف گستردهی کاربران اکسل و نیز کاربردی بودن آن، لزوم خودکارسازی کارها در اکسل به شدت احساس میشود. زبان برنامهنویسی VBA با قدرت و توانایی هایی که دارد، توانسته در محیط اکسل، امکاناتی برای کاربران مهیا کند که آنها را از انجام کارهای تکراری و پیچیده خلاص کند.
ما در این مقاله گفتیم که VBA چیست و چه مزایا و معایبی دارد. با یک مثال خیلی ساده، شما را با محیط کدنویسی VBA آشنا کردیم و این میتواند شروعی برای کارهای بزرگتر باشد. هر فردی که علاقمند به مباحث اکسل و برنامه نویسی در اکسل است، میتواند با مراجعه به منابع آموزشی فراوانی که برنامه نویسی VBA دارد، آغاز به برنامه نویسی در این حوزه کند.
شما تا به حال با VBA برنامه نویسی کرده اید؟ نظر شما درمورد این زبان برنامه نویسی چیست؟