آموزش VBA در اکسل – از صفر تا صد + فیلم رایگان
اکسل را میتوان یکی از پرکاربردترین نرمافزارهای مایکروسافت آفیس به شمار آورد که در بسیاری از زمینههای دانشگاهی، تجاری و موارد مشابه استفاده چشمگیری دارد. برنامهنویسی و فرمول نویسی در اکسل مدیریت و سفارشیسازی دادهها را سادهتر میکند. VBA زبان برنامهنویسی مایکروسافت آفیس برای برنامههای ورد، اکسل و اکسس است. با استفاده از زبان برنامهنویسی VBA در اکسل میتوان فرایند انجام برخی کارها را خودکارسازی کرد. به همین دلیل، یادگیری آموزش VBA در اکسل برای سادهتر شدن فرایند انجام کارها از اهمیت بالایی برخوردار است.
فیلم آموزشی برنامهنویسی VBA در اکسل
با زبان برنامه نویسی VBA یک بار کدی نوشته میشود و به دفعات مختلف میتوانید از آن استفاده کنید. استفاده از این ابزار باعث میشود سرعت انجام کارها بهطور قابل توجهی افزایش پیدا کند و از طریق خودکارسازی فرایندها به کاهش خطاها و ثبات کارها کمک زیادی میکند. در این مطلب میخواهیم آموزش VBA در اکسل را با انجام مثالهای عملی به شما آموزش دهیم.
VBA در اکسل چیست؟
VBA مخفف عبارت «Visual Basic for Applications» به معنی «زبان برنامهنویسی ویژوال بیسیک برای نرمافزارها» است.
کدهای زبان برنامهنویسی VBA که هنگام ضبط و تولید ماکروها ایجاد میشوند بهوسیله انسانها قابل خواندن و ویرایش هستند. امروزه این زبان برنامهنویسی استفاده چشمگیری دارد و در بسیاری از برنامههای آفیس همچون «اکسل» (Excel)، «ورد» (Word) و «اکسس» (Access) استفاده میشود. VBA ابزاری رویداد محور است، به طوری که با آن میتوانید یک یا چندین عملیات را به صورت خودکار در سیستم شخصی خود اجرا کنید. این کار با نوشتن دستورات زبان برنامهنویسی VBA در ماژولهای قابل ویرایش و ساخت ماکروهای سفارشی انجام میشود. در ادامه با آموزش VBA در اکسل با نحوه استفاده از این ابزار بیشتر آشنا خواهید شد.
پیش از ادامه این مبحث لازم است یادآور شویم که میتوانید VBA را با استفاده از مجموعه آموزش برنامه نویسی وی بی ای، مقدماتی تا پیشرفته فرادرس یاد بگیرید.
ماکرو چیست؟
در حالت کلی، ماکرو ابزاری سودمند برای ضبط و پخش فرایندهای انجام شده در نرمافزارهای آفیس مثل اکسل است. شما میتوانید با ماکرو مراحلی که در نرمافزارهای آفیس انجام میدهید را ضبط و آنها را برای خودکارسازی فرایندها پخش کنید. با این حال احتمال اشتباه در فرایند ضبط ماکروها بسیار زیاد است و باید این کار را با دقت زیادی انجام دهید. برای حل این مشکل، زبان برنامهنویسی VBA ایجاد شده که فرایند استفاده از ماکروها را آسانتر میکند، زیرا ماکروها عملیات تعریف شده با استفاده از کدهای VBA را اجرا میکنند. در واقع ماکروهای VBA با خودکارسازی کارها به طور قابل توجهی باعث صرفهجویی در زمان میشوند.
اگرچه برای استفاده از ماکروها به آموزش VBA در اکسل و دانش اولیه درباره آن نیاز دارید، اما برای ایجاد و برنامهریزی ماکروها نیاز نیست کدنویس ماهری باشید. همچنین توجه کنید ماکروهای VBA قطعه کدهای برنامهنویسی هستند که در محیط اکسل اجرا میشوند.
آموزش فعال سازی گزینه Developer در اکسل
سربرگ «توسعهدهنده» (Developer) به طور پیشفرض در «ریبون» (Ribbon) اکسل غیرفعال است و به منظور نمایش آن باید تنظیمات لازم برای فعالسازی آن را اعمال کنید. برای سفارشیسازی نوار منوی ریبون اکسل مراحل زیر را دنبال کنید.
نکته: منظور از ریبون «نوار ابزار» (Toolbars) بالای صفحه اکسل است که به شما در پیدا کردن و دسترسی به ابزارها و دستورات مورد نیاز کمک زیادی میکند.
برای نمایش سربرگ توسعهدهنده در مکانی دلخواه از 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) میتوانید ماکرو جدیدی بسازید. حال که سربرگ توسعهدهنده فعال شد و با محیط گرافیکی VBA آشنا شدید، برای آموزش VBA در اکسل وقت آن رسیده برنامه ماکرویی را با استفاده از Command Button ایجاد کنید و ماکرونویسی در اکسل را یاد بگیرید. برای قرار دادن دکمه فرمان در «کاربرگ» (WorkSheet) اکسل مراحل زیر را دنبال کنید.
ابتدا صفحه گسترده جدیدی را در اکسل باز کرده و از زبانه «Developer» بخش «Insert» گزینهی «ActiveX Controls» و سپس «Command Button» را انتخاب کنید. شرح ساده مراحل به صورت زیر است:
1Developer tab > Insert > ActiveX Controls > 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» کدی ایجاد میشود که کاربر امکان وارد کردن مقادیر دلخواه را داشته باشد. مقادیر وارد شده بهوسیله کاربر را میتوان از طریق «کادر محاورهای» (Dialog Box) نمایش داد. سینتکس (Syntax) نوشتن تابع InputBox از قوانین زیر پیروی میکند:
1InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
برای اضافه کردن تابع InputBox به دکمه و گرفتن دادههای ورودی کاربران، مراحلی که در ادامه گفته میشود را دنبال کنید.
- متغیرهایی با نام دلخواه ایجاد و نوع داده ورودی آنها را مشخص کنید. یک متغیر میتواند هر نوع دادهای اعم از رشتهای، اعداد ثابت، اعشاری و سایر موارد را در خود جای دهد. در این مثال متغیری به نام myValue با مقدار داده ورودی دلخواه تعریف میشود.
- کد نمایش داده شده در تصویر زیر را در صفحه کدنویسی Command Button برای دریافت مقادیر ورودی از کاربر وارد کنید.
- بنابراین با کلیک روی دکمه کادر جدیدی برای دریافت دادههای ورودی به شما نمایش داده میشود. با وارد کردن داده دلخواه و زدن دکمه OK، داده وارد شده در سلول A1 نمایش داده خواهد شد.
آشنایی با متغیرها، ثابتها و عملگرها در زبان برنامه نویسی VBA
آموزش VBA در اکسل بسیار ساده است و قوانینی مشابه با سایر زبانهای برنامهنویسی دارد.
برای کدنویسی در اکسل نیاز نیست برنامه نویس ماهری باشید، آشنایی با عملگرها، ثابتها و متغیرها و نحوه به کارگیری آنها به شما کمک میکند برنامههای خود را ایجاد و دادههایتان را به آسانی مدیریت کنید. در ادامه شما را با متغیرها، عملگرها و ثابتها در اکسل بیشتر آشنا میکنیم.
آموزش VBA در اکسل با معرفی متغیرها
متغیرها به انواع دادههایی گفته میشود که میتوانند مقادیری را در خود ذخیره کنند. شما میتوانید قبل از شروع برنامه یا هنگام کدنویسی، متغیرهای مدنظر خود را با انواع مقادیر داده عددی، رشتهای و سایر موارد ایجاد کنید. سینتکس تعریف متغیرها به صورت زیر است:
1Dim <<variable_name>> As <<variable_type>>
- نام متغیر: نام منحصربهفردی است که در طول برنامه با فراخوانی آن میتوان به متغیر مربوطه دسترسی پیدا کرد.
نوع متغیر: دادهها انواع مختلفی دارند که متناسب با نوع نیاز میتوان انواع دادههای عددی و غیرعددی را در زبان برنامهنویسی 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 تعریف کنید. مقدار داده ۱۰ در طول اجرای برنامه ثابت خواهد بود و تغییر نمیکند. سینتکس دادههای ثابت به صورت زیر است:
1Const <<constant_name>> As <<constant_type>> = <<constant_value>>
در مثال زیر سه نوع متغیر ثابت از نوع داده عدد، تاریخ و رشته تعریف شده است:
با کلیک روی دکمه مقادیر ثابت تعریف شده در سلولهای B1 ،A1 و C1 نمایش داده میشوند.
آموزش کار با رشته ها در برنامه نویسی VBA اکسل
دستکاری رشتهای به فرایند تحلیل، دستکاری و بررسی موثر مقادیر دادههای رشتهای اشاره دارد. رشتهها از مهمترین متغیرهای مورد استفاده در زبان برنامهنویسی VBA هستند. به همین دلیل، در این بخش به آموزش دستکاری رشتهها در VBA پرداخته شده است.
شروع کار با رشته ها در زبان برنامه نویسی VBA
در زبان برنامهنویسی VBA شما میتوانید با استفاده از عملگر «&» دو رشته را به هم متصل کنید. این عملگر به عنوان «الحاق» (Concatenation) نیز شناخته میشود. در مثال زیر دو رشته تعریف شده است که با استفاده از عملگر «&» در خروجی به هم الحاق میشوند.
با کلیک روی دکمه میتوانید نتیجه کد مربوط به رشتهها را مانند تصویر زیر مشاهده کنید:
استخراج کلمه کلیدی از سمت چپ رشته ها
در بخش دوم از کار با رشتهها کلمه کلیدی مد نظر از سمت چپ رشته با استفاده از کد زیر استخراج خواهد شد. در این کد، متغیر رشتهای با نام text تعریف شده است و تعداد کاراکترهای قابل استخراج از سمت چپ این متغیر با مقدار عددی «۵» بهوسیله تابع Left تعیین و در نهایت مقدار استخراج شده با MsgBox نمایش داده میشود.
با کلیک روی دکمه، خروجی تابع Left در کادر متنی نمایش داده میشود.
آشنایی با گزاره شرطی IF در زبان برنامه نویسی VBA
تابع IF در اکسل عبارت شرطی برای بررسی مقدار شرطها است.
در صورت درست بودن (پاسخ True) گزاره IF، کدهای این تابع مانند سینتکس زیر اجرا میشوند.
1If(boolean_expression) Then
2
3 Statement 1
4
5 .....
6
7 .....
8
9 Statement n
10
11End 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 اکسل
تابعها کدهای از پیش تعریف شده هستند که در هر بخش از برنامه میتوان آنها را فراخوانی کرد.
در زبان برنامهنویسی VBA نیز مانند تمامی زبانهای دیگر میتوانید یک بار تابعها با آرگومانهای مشخصی را ایجاد و به دفعات مکرر در برنامههای مختلف از آنها استفاده کنید. برای ایجاد تابعها در پنجره برنامهنویسی اکسل به بخش Insert > Module رفته و یک «ماژول» (Module) جدید بسازید. تصویر زیر «رویه» (Procedure) یک تابع ساده با دو آرگومان را نشان میدهد. در واقع، در این کد متغیری به نام z از نوع Double تعریف شده و است تابع Area با دو مقدار ۵ و ۴ را که با عدد ۲ جمع میشوند در متغیر z قرار میدهد.
با استفاده از کد زیر میتوانید تابع تعریف شده در مرحله قبل را فراخوانی کنید.
در این کد با تابع 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 نسبت به سایر زبانهای برنامهنویسی سادهتر است، با این حال ویژگیها و دستورات پیشرفته آن سختیهای خاص خود را دارد. به همین دلیل نمیتوان آن را آسانترین زبان برنامهنویسی معرفی کرد. اما باید توجه کنید برای استفاده از این زبان برنامهنویسی نیاز نیست کدنویس ماهری باشید.
با درود-سپاسگزار آموزشهای خوبتان هستم