آموزش VBA در اکسل – از صفر تا صد + فیلم رایگان
- خواهید آموخت چگونه کارهای تکراری در اکسل را با «VBA» خودکار کنید.
- میآموزید چگونه ماکرو بسازید و با کدنویسی قابلیتهای بیشتری به آن بدهید.
- نحوه استفاده از متغیرها، ثابتها و عملگرها در برنامهنویسی «VBA» را یاد میگیرید.
- میآموزید عملیات متنی، شرطی و حلقهها را برای تحلیل و پردازش دادهها به کار ببرید.
- نحوه ایجاد توابع و «Sub Procedure» و استفاده از آنها در پروژههای اکسل را یاد خواهید گرفت.
- با اصول طراحی فرمهای ساده و تعامل با کاربر در «VBA» آشنا میشوید.

فیلم آموزشی برنامهنویسی VBA در اکسل
با زبان برنامه نویسی VBA یک بار کدی نوشته میشود و به دفعات مختلف میتوانید از آن استفاده کنید. استفاده از این ابزار باعث میشود سرعت انجام کارها بهطور قابل توجهی افزایش پیدا کند و از طریق خودکارسازی فرایندها به کاهش خطاها و ثبات کارها کمک زیادی میکند. در این مطلب میخواهیم آموزش VBA در اکسل را با انجام مثالهای عملی به شما آموزش دهیم.
VBA در اکسل چیست؟
VBA مخفف عبارت «Visual Basic for Applications» به معنی «زبان برنامهنویسی ویژوال بیسیک برای نرمافزارها» است.

ماکرو چیست؟
اگرچه برای استفاده از ماکروها به آموزش VBA در اکسل و دانش اولیه درباره آن نیاز دارید، اما برای ایجاد و برنامهریزی ماکروها نیاز نیست کدنویس ماهری باشید. همچنین توجه کنید ماکروهای VBA قطعه کدهای برنامهنویسی هستند که در محیط اکسل اجرا میشوند.
آموزش فعال سازی گزینه Developer در اکسل
سربرگ «توسعهدهنده» (Developer) به طور پیشفرض در «ریبون» (Ribbon) اکسل غیرفعال است و به منظور نمایش آن باید تنظیمات لازم برای فعالسازی آن را اعمال کنید. برای سفارشیسازی نوار منوی ریبون اکسل مراحل زیر را دنبال کنید.
برای نمایش سربرگ توسعهدهنده در مکانی دلخواه از Ribbon اکسل، کلیک راست و گزینه «Customize the Ribbon» را انتخاب کنید. از طریق منوی «File» بخش «Options» نیز میتوان به گزینه «Customize Ribbon» دسترسی پیدا کرد.

در پنجره Excel Options در سمت چپ به بخش Customize Ribbon بروید و در سمت راست از بین زیر مجموعه Main Tabs در قسمت پایین، تیک گزینه Developer را بزنید و برای تایید روی گزینه OK کلیک کنید.

با انجام مراحل بالا، سربرگ توسعهدهنده به ریبون سربرگهای اکسل اضافه میشود و میتوانید به آن دسترسی داشته باشید. برای غیرفعالسازی آن نیز میتوانید همین مراحل را انجام دهید و در آخر تیک گزینه Developer را بردارید.
آشنایی با رابط گرافیکی ویرایشگر VBA
با کلیدهای ترکیبی ALT + F11 صفحه کلید میتوانید رابط گرافیکی VBA را باز کنید. روش دیگر باز کردن محیط گرافیکی VBA، انتخاب Visual Basic در سربرگ Developer است.

آموزش ایجاد ماکرو در اکسل با استفاده از Command Button


در ادامه برای خودکار سازی فرایندهای انجام شده با دکمه، یک ماکرو را به Command Button اختصاص دهید. برای انجام این کار مراحل زیر را دنبال کنید.
- روی Command Button کلیک راست و از بین گزینههای نمایشیافته View Code را انتخاب کنید.

- در صفحه کدنویسی باز شده، کدهای نوشته شده در تصویر زیر را به رویداد Command Button1 اضافه کنید.

- بعد از اضافه کردن کد به صفحه کدنویسی دکمه، ویرایشگر VBA را ببندید و روی دکمه موجود در کاربرگ اکسل کلیک کنید. مطمئن شوید «حالت طراحی» (Design Mode) در حالت انتخاب نباشد. با زدن دکمه مطابق با کد نوشته شده عبارت «simplilearn» در سلول A1 نمایش داده میشود.

آموزش VBA در اکسل و ایجاد Message Box
«کادر محاورهای پیام» (MsgBox) در اکسل برای نمایش و اطلاعرسانی پیام به کاربران استفاده میشود. ایجاد کادر محاورهای پیام بسیار ساده است و با نوشتن یک خط کد در صفحه کدنویسی دکمه، میتوانید پیامی را به کاربران خود نمایش دهید.
برای نمایش پیام به کاربران، قطعه کد نمایش داده شده در تصویر زیر را به صفحه کدنویسی Command Button اضافه کنید.

بنابراین وقتی روی دکمه کلیک کنید، پیام «Welcome to Simplearn» نمایش داده میشود.

آموزش VBA در اکسل و ایجاد Input Box
با استفاده از تابع «InputBox» کدی ایجاد میشود که کاربر امکان وارد کردن مقادیر دلخواه را داشته باشد.
برای اضافه کردن تابع InputBox به دکمه و گرفتن دادههای ورودی کاربران، مراحلی که در ادامه گفته میشود را دنبال کنید.
- متغیرهایی با نام دلخواه ایجاد و نوع داده ورودی آنها را مشخص کنید. یک متغیر میتواند هر نوع دادهای اعم از رشتهای، اعداد ثابت، اعشاری و سایر موارد را در خود جای دهد. در این مثال متغیری به نام myValue با مقدار داده ورودی دلخواه تعریف میشود.
- کد نمایش داده شده در تصویر زیر را در صفحه کدنویسی Command Button برای دریافت مقادیر ورودی از کاربر وارد کنید.

- بنابراین با کلیک روی دکمه کادر جدیدی برای دریافت دادههای ورودی به شما نمایش داده میشود. با وارد کردن داده دلخواه و زدن دکمه OK، داده وارد شده در سلول A1 نمایش داده خواهد شد.

آشنایی با متغیرها، ثابتها و عملگرها در زبان برنامه نویسی VBA
آموزش VBA در اکسل بسیار ساده است و قوانینی مشابه با سایر زبانهای برنامهنویسی دارد.
آموزش VBA در اکسل با معرفی متغیرها
- نام متغیر: نام منحصربهفردی است که در طول برنامه با فراخوانی آن میتوان به متغیر مربوطه دسترسی پیدا کرد.
نوع متغیر: دادهها انواع مختلفی دارند که متناسب با نوع نیاز میتوان انواع دادههای عددی و غیرعددی را در زبان برنامهنویسی VBA برای کدنویسی استفاده کرد.
دادهها در زبان برنامهنویسی VBA به دو دسته دادههای عددی و دادههای غیرعددی تقسیم میشوند.
- دادههای عددی: دادههای عددی شامل مقادیر دادهای «بایت» (Byte)، «اعداد صحیح» (Integer)، «متغیر عدد صحیح طولانی» (Long)، «ممیز شناور با یک رقم دقت اعشار» (Single)، «ممیز مضاعف شناور» (Double)، «نوع عددی برای واحد پولی» (Currency)، «اعداد اعشاری یا دهدهی» (Decimal) و دیگر موارد هستند.
- دادههای غیرعددی: دادههای غیرعددی شامل مقادیر دادهای «رشتهای» (String)، «زمان و تاریخ» (Date)، «مقدار True یا False یا همان درست یا غلط»، (Boolean)، «شیء» (Object) و «متنوع» (variant) هستند.

در تصویر بالا متغیری از نوع عددی (Integer) با نام x و مقدار 23 تعریف شده است که در سلول A1 قرار میگیرد. متغیر دیگر از نوع رشته (String) با نام Book و مقدار Learn VBA در سلول A2 تعریف میشود.
آموزش VBA در اکسل با معرفی ثابت ها
ثابتها مقادیر دادهای ثابتی هستند که مقدار آنها در طول اجرای برنامه تغییر نمیکند. برای مثال، اگر شما متغیری به صورت Const MyInt As Integer=10 تعریف کنید. مقدار داده ۱۰ در طول اجرای برنامه ثابت خواهد بود و تغییر نمیکند. سینتکس دادههای ثابت به صورت زیر است:
در مثال زیر سه نوع متغیر ثابت از نوع داده عدد، تاریخ و رشته تعریف شده است:

با کلیک روی دکمه مقادیر ثابت تعریف شده در سلولهای B1 ،A1 و C1 نمایش داده میشوند.

آموزش کار با رشته ها در برنامه نویسی VBA اکسل
دستکاری رشتهای به فرایند تحلیل، دستکاری و بررسی موثر مقادیر دادههای رشتهای اشاره دارد. رشتهها از مهمترین متغیرهای مورد استفاده در زبان برنامهنویسی VBA هستند. به همین دلیل، در این بخش به آموزش دستکاری رشتهها در VBA پرداخته شده است.
شروع کار با رشته ها در زبان برنامه نویسی VBA
در زبان برنامهنویسی VBA شما میتوانید با استفاده از عملگر «&» دو رشته را به هم متصل کنید. این عملگر به عنوان «الحاق» (Concatenation) نیز شناخته میشود. در مثال زیر دو رشته تعریف شده است که با استفاده از عملگر «&» در خروجی به هم الحاق میشوند.

با کلیک روی دکمه میتوانید نتیجه کد مربوط به رشتهها را مانند تصویر زیر مشاهده کنید:

استخراج کلمه کلیدی از سمت چپ رشته ها
در بخش دوم از کار با رشتهها کلمه کلیدی مد نظر از سمت چپ رشته با استفاده از کد زیر استخراج خواهد شد. در این کد، متغیر رشتهای با نام text تعریف شده است و تعداد کاراکترهای قابل استخراج از سمت چپ این متغیر با مقدار عددی «۵» بهوسیله تابع Left تعیین و در نهایت مقدار استخراج شده با MsgBox نمایش داده میشود.

با کلیک روی دکمه، خروجی تابع Left در کادر متنی نمایش داده میشود.

آشنایی با گزاره شرطی IF در زبان برنامه نویسی VBA
در صورت درست بودن (پاسخ True) گزاره IF، کدهای این تابع مانند سینتکس زیر اجرا میشوند.
در مثال زیر برای تعریف گزاره شرطی IF متغیری از جنس عددی با نام scoreتعریف میشود، اگر متغیر score بزرگتر از ۵۰ باشد، نتیجه «مردود» (PASS) در سلول B1 نمایش داده خواهد شد.

عدد score در تصویر بیشتر از ۵۰ است، پس نتیجه گزاره شرطی IF در سلول B1 با عنوان PASS نمایش داده خواهد شد.

آشنایی با گزاره شرطی IF-Else در زبان برنامه نویسی VBA
عبارت IF برای بررسی گزارههای شرطی استفاده میشود. در این عبارت، اگر یک گزاره شرطی پاسخ True را برگرداند، مقدار متناسب با آن نمایش داده خواهد شد، در غیر اینصورت برای پاسخ «نادرست» (False) دستورات مربوط به Else اجرا میشوند.
در مثال زیر، دو متغیر با نامهای x و y با مقادیر عددی به ترتیب ۱۹۰۴ و ۱۴۵۰ تعریف شده است. میخواهیم با گزاره شرطی IF بررسی کنیم کدام یک از این متغیرها بزرگتر هستند. شرط بزرگ بودن متغیرها با مقدار عددیشان تناسب دارد. بنابراین اگر x بزرگتر از y باشد متن X is greater than Y (X بزرگتر از Y است) و در غیر اینصورت Y is greater than X (Y بزرگتر از X است) نمایش داده خواهد شد.

با کلیک روی دکمه پیامی نمایش داده میشود که با توجه به عدد بزرگتر متغیر x، کادر پیام «X is greater than Y» را نمایش میدهد.

آشنایی با حلقه For در زبان برنامه نویسی VBA
حلقه For دستور کنترلی است که به کاربران کمک میکند حلقههای تکرار شونده ایجاد کنند.
در مثال زیر، متغیر a با مقدار ۶ تعریف و حلقه Loop از ۰ تا ۶ با گام 2 اجرا میشود.

تصویر زیر اعداد تکرار شده در حلقه ۰ تا ۶ با گام ۲ را نشان میدهد که هیچ عددی تکرار نشده و خروجی ۰ نمایش داده شده است.

آشنایی با حلقه While در زبان برنامه نویسی VBA
حلقه While (While Loop) دنبالهای از دستورات را تا زمان درست بودن شرطها و رسیدن به کلمه کلیدی Wendاجرا میکند. در صورت نادرست بودن شرط از حلقه خارج شده و دستور بعدی بررسی میشود.
در مثال زیر متغیری به نام Counter با مقدار ۱ را تعریف میکنیم. تا زمانیکه متغیر ما از عدد ۶ کمتر باشد به Counter یک عدد اضافه خواهد شد و در کادر پیام، عبارت The Current Value is " & Counter نمایش داده میشود.

با کلیک روی دکمه در تصویر زیر مشاهده میکنید که به عدد Counter یک واحد اضافه شده و با خروجی ۲ نمایش داده شده است.

آموزش تابع در برنامه نویسی VBA اکسل
تابعها کدهای از پیش تعریف شده هستند که در هر بخش از برنامه میتوان آنها را فراخوانی کرد.

با استفاده از کد زیر میتوانید تابع تعریف شده در مرحله قبل را فراخوانی کنید.

در این کد با تابع Area دو متغیر x و y از نوع Double تعریف میشود. با ضرب دو متغیر مقدار عددی تابع ۴ ضرب ۵ شده و بهوسیله جمع با عدد ۲ خروجی Area با عدد ۲۲ نمایش داده میشود.

آموزش زیر رویه ها در برنامه نویسی VBA در اکسل
«زیر رویهها» (Sub Procedures) کارایی مشابه تابعها با تفاوتهای جزئی دارند. این تابعها مقادیری را برنمیگردانند و میتوان بدون نیاز به کلمههای کلیدی آنها را فراخوانی کرد.
در کد زیر با استفاده از Sub Procedure مقدار Area را محاسبه میکنیم.

مثال بالا نشان میدهد چگونه Sub Procedureها بدون بازگرداندن مقادیر عملیاتی را انجام میدهند.

با کلیک روی دکمه نتیجه Sub Procedure مانند تصویر زیر خواهد بود. این دستور برای زمانی مورد استفاده قرار میگیرد که فقط میخواهید عملیاتی انجام شود و داشتن یا نداشتن خروجی در آن اهمیت زیادی ندارد.

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














با درود-سپاسگزار آموزشهای خوبتان هستم