همه چیز درباره برنامه نویسی در اکسل با (VBA) + آموزش یک مثال عملی

دسته بندی: نرم افزار
زمان مطالعه: 9 دقیقه
۲۱ بهمن ۱۳۹۸

مجموعه آفیس مایکروسافت (MicroSoft Office) از پرکاربردترین و مهمترین مجموعه نرم افزار رایانه ای در جهان است که یکی از نرم افزار‌های پر کاربرد آن، نرم افزار اکسل (Excel) است. مدارس و دانشگاهها، ادارات دولتی و خصوصی، فروشگاهها، کاربران عادی و بسیاری دیگر از این نرم افزار استفاده می‌کنند. در اکسل به دو شیوه می‌توان داده‌ها را مدیریت و برنامه ریزی کرد یکی روش فرمول نویسی و دیگری برنامه نویسی، که در این مطلب قصد داریم درمورد برنامه نویسی در اکسل با VBA، صحبت کنیم. پس با ما همراه باشید.

فهرست محتوای این مقاله

VBA چیست؟

VBA مخفف Visual Basic for Applications یک زبان برنامه نویسی است که در مجموعه برنامه‌های آفیس استفاده می‌شود. همین‌جا باید متذکر شویم که VBA در نرم افزارهای تخصصی دیگر از جمله AutoCad، ARCGIS و غیره نیز قابل استفاده است.

این زبان در واقع زیر مجموعه‌ای از Visual Basic 6.0 است که شباهت‌هایی هم  به زبان VB دارد اما این دو از یکدیگر جدا بوده و زبان‌های برنامه‌نویسی متفاوتی هستند. زبان VB بیشتر برای توسعه برنامه دسکتاپ مورد استفاده قرار می‌گیرد، در صورتی که از زبان VBA فقط می‌توانیم در محیط برنامه‌های دیگر نظیر اکسل، استفاده کنیم.

excel vba

کاربرد VBA در اکسل

در اکسل کار‌های متنوعی می‌توان انجام داد از جمله ذخیره اطلاعات مشتری، ذخیره نمرات دانش آموزان و دانشجویان، تحلیل علمی داده ها، ایجاد نمودار از پایگاه‌های داده، ایجاد فرم ها، بودجه بندی و پیش بینی‌های مالی و موارد بسیار دیگری که می‌توانیم نام ببریم.

در تمامی موارد ذکر شده می‌توان با استفاده از زبان VBA در اکسل کدی نوشت که قسمتی از اکسل، کاری را به صورت خودکار انجام دهد و لازم نباشد کاربر خود به صورت دستی همان کار را انجام دهد. به عنوان مثال می‌توان یک برنامه ثبت سفارش خرید و فروش کالا را با خروجی‌های مختلف ایجاد کرده و اطلاعات را ساماندهی و گزارش‌های ماهیانه و سالیانه تهیه کرد.

VBA در اکسل، به طور خودکار اکسل را نرم افزار میزبان فرض می‌کند و دیگر لازم نیست در ابتدای کدها حتما نوع نرم افزار (به عنوان مثال ورد، اکسل، پاورپونت و ...) را مشخص کنیم. به جز مواردی که بخواهیم از طریق برنامه نویسی در اکسل، نرم افزار‌های دیگری را کنترل کنیم.

مزایای استفاده از VBA چیست؟

تقریبا هر کاری را که در اکسل انجام می‌دهیم، می‌توانیم روال انجام آن را بصورت خودکار کنیم. برای این کار، باید دستورالعمل هایی را وارد کنیم که اکسل انجام دهد. خودکارسازی کار در اکسل با استفاده از زبان VBA مزایای مختلفی دارد از جمله می‌توان به موارد زیر اشاره کرد:

  • اکسل همیشه کار را به همان روشی که برنامه نویسی کردیم، انجام می‌دهد که این باعث ثبات در کارها می‌شود.
  • سرعت انجام کارها در اکسل بالاتر از انجام کار به شیوه دستی می‌شود.
  • اگر یک برنامه نویس خوب ماکرو باشیم، اکسل اغلب کارها را بدون خطا انجام می‌دهد.
  • اگر دستورات به درستی نوشته و تنظیم شده باشد، هر کاربر آشنا به اکسل می‌تواند کارها را در اکسل با اجرای ماکرو انجام دهد.
  • با برنامه نویسی VBA ما می‌توانیم کارهایی را در اکسل انجام دهیم که امکان انجام آن به صورت دستی غیرممکن است و این می‌تواند ما را تبدیل به یک فرد محبوب در محل کار کند.
  • برای انجام کارهای طولانی و وقت گیر، دیگر نیازی نیست دائم جلوی رایانه خود بنشینیم و خود را خسته کنیم، بلکه اکسل خود همه کارها را بصورت اتوماتیک در حالی که ما در حال استراحتیم، انجام می‌دهد.

excel Disadvantages

معایب استفاده از 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 را فعال می‌کنیم.

excel Developer

سلام VBA

اکنون نحوه کد نویسی در VBA را بررسی می‌کنیم. تمام برنامه VBA باید با “Sub” شروع و با “End Sub” پایان یابد. در کنار sub نامی که می‌خواهیم به برنامه اختصاص دهیم نوشته می‌شود. تکه کد زیر، پایه تمامی کدهایی هست که خواهیم نوشت.

Sub name()

.

.

End Sub

ساخت یک دکمه در اکسل

یک WorkBook جدید باز می‌کنیم و به زبانه Developer می‌رویم و از قسمت Controls روی جعبه کشویی Insert کلیک می‌کنیم و دکمه فرمان را مطابق تصویر انتخاب می‌کنیم.

insert button

می توانیم دکمه ایجاد شده را به هر کجا که خواستیم منتقل کنیم. بعد از تثبیت دکمه، پنجره محاوره ای زیر نمایان می‌شود.

change macro name

نام ماکرو را به btnHelloWorld_click تغییر می‌دهیم و روی گزینه New کلیک می‌کنیم که پنجره کد نویسی نمایش داده می‌شود.

کد‌های دستورالعمل زیر را وارد می‌کنیم

Dim name As String

name = InputBox(“لطفا نام خود را وارد کنید”)

MsgBox “ سلام” + name

که در اینجا:

  • " Dim name As String" متغیری به نام name ایجاد می‌کند. متغیر متن، عدد و سایر کارکترها را می‌پذیرد، زیرا ما آن را به عنوان رشته تعریف می‌کنیم.
  • " name = InputBox(“لطفا نام خود را وارد کنید”)" تابع ساخته شده InputBox را فراخوانی می‌کندکه یک پنجره را با عنوان لطفا نام خود را وارد کنید، را نمایش می‌دهد. سپس نام وارد شده در متغیر name ذخیره می‌شود.
  • " MsgBox “ سلام” + name" تابع ساخته شده MsgBox را فراخوانی می‌کند تا سلام به همراه نام وارد شده را در کادر نمایش دهد.

پنجره کامل شده کد کامل باید به شکل زیر باشد

windows code VBA

پنجره کد را می‌بندیم و بر روی Button 1 راست کلیک کرده و Edit text را انتخاب می‌کنیم و نام آن را به "گفتن سلام" تغییر می‌دهیم. اکنون روی دکمه گفتن سلام کلیک می‌کنیم و در کادر ورودی نام خود را وارد کرده و تایید می‌کنیم. با انجام این کار، کادر پیغام سلام نمایش داده می‌شود.

windows massage

خب تبریک! ما موفق شدیم اولین برنامه خود را با VBA در اکسل بنویسیم. این فقط یک مثال ساده بود که جهت آشنایی شما با این زبان برنامه نویسی آورده شد. VBA به قدری قدرتمند است که می‌توان برنامه‌های بسیار پیچیده ای در آن کد نویسی کرد.

جمع بندی

با توجه به طیف گسترده‌ی کاربران اکسل و نیز کاربردی بودن آن، لزوم خودکارسازی کارها در اکسل به شدت احساس می‌شود. زبان برنامه‌نویسی VBA با قدرت و توانایی هایی که دارد، توانسته در محیط اکسل، امکاناتی برای کاربران مهیا کند که آنها را از انجام کارهای تکراری و پیچیده خلاص کند.

ما در این مقاله گفتیم که VBA چیست و چه مزایا و معایبی دارد. با یک مثال خیلی ساده، شما را با محیط کدنویسی VBA آشنا کردیم و این می‌تواند شروعی برای کارهای بزرگتر باشد. هر فردی که علاقمند به مباحث اکسل و برنامه نویسی در اکسل است، می‌تواند با مراجعه به منابع آموزشی فراوانی که برنامه نویسی VBA دارد، آغاز به برنامه نویسی در این حوزه کند.

شما تا به حال با VBA برنامه نویسی کرده اید؟ نظر شما درمورد این زبان برنامه نویسی چیست؟

چه امتیازی به این مقاله می دید؟
نویسنده عبدالرضا مولایی
هیچوقت برای یادگیری دیر نیست؛ همیشه چیزهای جدید برای آموختن وجود دارد.. این دو جمله، همیشه آویزه‌ی گوش منه، چون باعث میشه از یادگیری چیزهای تازه هراسی نداشته باشم.

نظرات کاربران

معصومه مولایی

ممنونم. عالی بود. می خوام ادامه بدم.

فرهاد

دستت درد نکنه خیلی زیبا و روان و گویا توضیح دادی

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :