کلمه VBA که مخفف Visual Basic for Applications میباشد، یک زبان برنامهنویسی میباشد که توسط شرکت مایکروسافت توسعه داده شده است. مایکروسافت شرکت ارائه دهنده ویندوز میباشد و از دیگر محصولات این شرکت نرمافزار پرکاربرد اکسل میباشد. به منظور استفاده از نرمافزار اکسل در سطح حرفهای نیاز به دانستن زبان ویژوئال بیسیک میباشد.
رباطی را در نظر بگیرید که به صورت کامل با اکسل آشنا است و فقط کافی است که شما از آن درخواست انجام کاری دهید و رباط تمامی درخاستها را به ترتیب انجام میدهد و سپس شما میتوانید نظارهگر باشید و لذت ببرید، در واقع VBA زبانی است که شما میتوانید با آن از رباط درخواست انجام کارها را بدهید.
با VBA چه کارهایی میشود انجام داد؟
- تحلیل دادههای علمی
- برنامهریزی و پیشبینی
- ایجاد فرم
- ایجاد نمودار بر روی دادهها
- ایجاد پیام
- و ……
کاربردهای VBA محدود به موارد فوق نمیباشد و هر کاری که با اکسل قابل اجرا میباشد را نیز میتوان با VBA اجرا نمود، از آنجایی که محدوده کاربرد اکسل محدود نمیباشد و هر کس بسته به نیاز خود از آن استفاده مینماید، کاربردهای VBA نیز نامحدود میباشد و کاربران بسته به نیاز خود جهت سهولت در تکرار کارها و روالها و همچنین انجام کارها بر روی حجم بالایی از اطلاعات از آن استفاده مینمایند.
برای مثال ممکن است کاربر بخواهد فرمت خاصی را بر روی تعداد زیادی از فایلها و شیتها اجرا نماید، در صورتی که این کار به صورت دستی انجام گیرد، بسیار زمان بر و خسته کننده میباشد و این در حالی است که با ایجاد کد کوتاهی، در هر زمان که نیاز باشد این فعالیتها را انجام داد.
در واقع VBA باعث اتوماتیک شدن، ایجاد تابعهای جدید، ایجاد افزودنیها به اکسل و … مورد استفاده قرار میگیرد.
مزایا و معایب VBA
- مزایا:
- کارها، به همان صورت گفته شده انجام میگیرد.
- کارها با صرعت بالا انجام میگیرد.
- درصورت برنامهنویسی صحیح، کارها بدون خطا انجام میگیرد.
- اگر به صورت صحیح برنامهریزی شود، حتی کسی که با اکسل آشنا نمیباشد میتواند نتایج مناسب به دست آورد.
- برنامهنویس اکسل قادر به انجام کارهایی میباشد که سایرین قادر به انجام آن نمیباشند.
- در هنگام اجرای برنامه، نیاز به نشستن پشت کامپیوتر نمیباشد و شما میتوانیم آن را اجرا نموده و خودتان به کارهایتان برسید و یا یک فنجان قهوه میل نمایید.
- معایب
- نیاز به دانستن زبان برنامه نویسی VBA میباشد. (که این کار چندان که فکر میکنید سخت نمیباشد)
- افراد دیگر جهت استفاده از کدها نیاز به داشتن همان نسخه اکسل میباشد. (ویژگیهایی در نسخههای جدید وجود دارد که در نسخههای قبلی اکسل قابل استفاده نمیباشند)
- در هنگام برنامهنویسی، ممکن است اشتباهاتی بهوجود آید.
ساختار VBA
در زیر به صورت خلاصه در مورد VBA توضیح داده میشود.
- کدها در محیطی تحت عنوان مودول (Module) نوشته میشود. کدهای نوشته شده در مودول توسط VBE قابل رویت و تغییر میباشد.
- درون مدلها، روالها (Sub Procedurs) و توابع (Function Procedur) نوشته میشوند. در روالها کامپیوتر مجموعهای از فرایندها را انجام میدهد و متناسب با فرایند تغییرات لازم اعمال میشوند و این در حالی است که توابع با دریافت تعدادی پارامتر ( بعضا بدون پارامتر ورودی همانند تابع now() در اکسل) یک مقدار را به عنوان خروجی نتیجه میدهند.
- اصلیترین عناصر که در VBA مورد استفاده قرار میگیرند اشیا (object) میباشند و اکسل شامل تعداد زیادی شی از جمله، کارپوشه، کاربرگ، نمودار و … میباشد که با استفاده از VBA قادر به دستکاری کردن هر یک میباشد.
- اشیا در اکسل دارای ساختاری سلسله مراتبی میباشند به گونهای که در راس تمامی آنها خود اکسل قرار میگیرد و به Application نامیده میشود و خود آن شامل اشیایی از جمله کارپوشه (Workbooks) میباشد و کارپوشه شامل تعداد زیادی اشیا از جمله کاربرگ (Worksheets) و نمودار (Chart) میباشد و به همین صورت.
- اشیا قابلیت جمعپذیری دارند به گونهای که با افزودن S در انتهای شی کاربرگ (Worksheet)، مجموع کاربرگها در نظر گرفته میشود.
- اشیا با در نظر گرفتن “.” تعیین مکان میشوند، مثلا اگر بخواهیم کارپوشه Book.xlsx را آدرس دهیم، از کد زیر استفاده میکنیم:
Application.Workbooks(“Book.xlsx”)
و اگر بخواهیم کاربرگی تحت عنوان Sheet1 را که در همان کارپوشه قرار دارد را آدرس دهیم، از کد زیر استفاده میکنیم.
Application.Workbooks(“Book.xlsx”).Worksheets(“Sheet1”)
و به همین صورت اگر سلول A1 در همان کار برگ را آدرس دهیم دارم:
Application.Workbooks(“Book.xlsx”).Worksheets(“Sheet1”).Range(“A1”)
البته اگر بدانیم که کاربرگ فعال همان کاربرگ مد نظر است، جهت آدرس دادن سلول A1 میتوانیم فقط کد زیر را بزنیم.
Range(“A1”)
و از طرف دیگر حذف قسمت Application در ابتدای کدهای فوق هیچ مشکلی به وجود نمیآورد.
- هر شی در اکسل دارای ویژگی ها و یا داراییها (Property) میباشد که قابل تغییر و یا خواندن میباشند برای مثال هر سلول به عنوان شی دارای ویژگیهایی همچون مقدار، آدرس، رنگ و … دارد که به هر ویژگی با استفاده از “.” به دنبال شی آورده میشود.
Worksheets(“Sheet1”).Range(“A1”).Value
- در VBA میتوان مقادیر مورد نظر را درون متغیرها ذخیره نمود. متغیر جزئی از زبان برنامه نویسی میباشد که مقادیر را در خود نگهداری میکند. برای نمونه، اگر بخواهیم مقدار سلول A1 را در متغیر X ذخیره نماییم، داریم:
X=Worksheets(“Sheet1”).Range(“A1”).Value
- در VBA اشیا دارای روشهایی (Method) میباشند که با استفاده از آنها میتوان تغییراتی بر روی اشیا وارد کرد.برای مثال جهت پاک کردن مقادیر مقادیر موجود در سلول A1 داریم:
Worksheets(“Sheet1”).Range(“A1”).ClearContents
- VBA شامل تمامی اجزای یک زبان برنامهنویسی پیشرفته از جمله متغیر، آرایه حلقه و … میباشد.