هنگامی که می خواهید فایل اکسل را ذخیره کنید ، چنانچه پیام هشدار زیر نمایش داده شد:
اگر روی دکمه Yes کلیک کنید ، پیام دوباره ظاهر می شود ، کلیک دکمه Cancel شما را به برگه اکسل برمی گرداند ، با کلیک دکمه No فایل ذخیره نمی شود. اما راه حل:
مرحله اول:
و یا از زبانه File گزینه Options را انتخاب کنید ، در پنجره محاوره ای Excel Options زبانه Formulas و سپس از قسمت Calculation Options گزینه Manual را انتخاب کنید.
دکمه save را فشار دهید ، اگر پیام را دوباره دریافت کردید ، روی Cancel کلیک کنید و از زبانه Formulas گزینه Calculate Now را امتحان کنید و یا کلید F9 صفحه کلید را بفشارید. فایل را ببندید.
ممکن است این مرحله را چند بار تکرار کنید.
مرحله دوم:
فایل را ذخیره و ببندید. مشکل برطرف خواهد شد.
احتمالاً در مورد ویروس های رایانه ای می دانید ، که می تواند برخی موارد ناگوار را برای سیستم شما به وجود آورد. آیا می دانید ویروس های رایانه ای نیز می توانند در یک فایل اکسل سکونت داشته باشند؟ درسته.
در واقع نوشتن ویروس رایانه ای با استفاده از VBA بسیار ساده است. یک کاربر ناآگاه می تواند یک فایل اکسل را باز کند و ویروس را به سایر فایل های اکسل و بخش های دیگر سیستم گسترش دهد.
با گذشت سال ها ، مایکروسافت به طور فزاینده ای نگران مسائل امنیتی است که چیز خوبی است. اما بدان معنی نیز است که کاربران اکسل باید چگونگی عملکرد آنها را تحمل کنند.
می توانید از مسیر File➪Options➪Trust Center➪Trust Center Settings نظیمات امنیتی اکسل را بررسی کنید.
اگر روی زبانه Macro Settings (در سمت چپ پنجره محاوره ای Trust Center) کلیک کنید گزینه های شما به شرح زیر است:
Disable all macros without notification: تمام ماکروها بدون اطلاع رسانی غیرفعال شود. این گزینه:
همه ماکروها را غیرفعال می کند ، به جز آنهایی که در پوشه های امن ذخیره شده اند.
Disable all macros with notification: احتمالا متوجه اختلاف بین این گزینه و گزینه قبلی شده اید اکنون اکسل شما را مطلع می کند که ماکروها غیرفعال شده اند. این گزینه ، گزینه پیش فرض و توصیه شده اکسل است.
این هشدار اکسل , که ماکروها فعال نیستند ، به شما اجازه می دهد به طور مشخص تعیین کنید که آیا می خواهید ماکرو را برای فایل اکسل فعال کنید یا خیر.
اگر دقیق تر بیان کنم ، چنانچه شما یک فایل حاوی ماکرو باز کنید (و ویرایشگر ویژوال بیسیک هم باز نباشد) پیام زیر , شامل یک دکمه در ریبون اکسل نمایش داده می شود ، که می توانید برای فعال کردن ماکروها کلیک کنید.
Disable all macros except digitally signed macros: فقط ماکروهایی با امضای دیجیتالی ، مجاز به اجرا هستند (اما حتی برای آن دسته از امضاهایی که به عنوان مورد امن آنها را علامت گذاری نکرده اید ، هنوز اخطار امنیتی را دریافت می کنید).
Enable all macros: اجازه می دهد همه ماکروها بدون هشدار اجرا شوند. این گزینه توصیه نمی شود زیرا امکان اجرای کد خطرناک وجود دارد.
این سناریو را در نظر بگیرید: شما یک هفته را صرف نوشتن یک برنامه VBA می کنید که باعث تغییراتی در شرکت شما خواهد شد. آن را کاملا آزمایش کرده و سپس برای رئیس خود ارسال می کنید. وی شما را به دفتر خود فرا می خواند و ادعا می کند که ماکروی شما به هیچ وجه کاری انجام نمی دهد.
چه خبر است؟
این احتمال وجود دارد ، تنظیمات امنیتی اکسل , رئیس شما اجازه نمی دهد ماکروها اجرا شوند. یا شاید گزینه پیش فرض مایکروسافت برای تنظیمات امنیتی فعال است و ماکروها را غیرفعال کند.
خط پایان؟ فقط به این دلیل که فایل اکسلی حاوی ماکرو است ، هیچ اطمینانی نیست که این ماکرو اجرا شود. همه اینها به تنظیمات امنیتی بستگی دارد و اینکه آیا کاربر برای فعال یا غیرفعال کردن ماکروها کدام گزینه را انتخاب کرده است.
باید ماکروها را برای فایل هایی که با آنها کار می کنید ، فعال کنید. توصیه من استفاده از سطح امنیتی گزینه دوم است. سپس وقتی فایلی را که ایجاد کرده اید باز کنید ، می توانید ماکروها را به سادگی فعال کنید. اگر فایل شخصی را که نمی شناسید باز می کنید ، باید ماکروها را غیرفعال کنید و کد VBA را بررسی کنید تا مطمئن شوید که حاوی هیچ چیز مخرب نیست. معمولاً شناسایی کد VBA مشکوک بسیار ساده است.
گزینه های دیگری (مانند تعیین پوشه امن) نیز برای بررسی سطح امنیت ماکروها وجود دارد که در جلد اول مجموعه کتاب هاب برنامه نویسی با اکسل به تفضیل به آنها پرداخته شده است.
*جهت دریافت کتاب های آموزش برنامه نویسی با اکسل روی تصویر کلیک کنید*
در ادامه لیستی از تمام فونت آیکن های زیر ارائه شده است:
می توانید از لینک پایین صفحه , فرمت PDF این برگه را دانلود و لذت ببرید!
چرا فونت های آیکن مهم هستند؟
من عاشق استفاده از این فونت های آیکن هستم. زیرا آنها می توانند تجسماتی عالی به داده ها و داشبورد شما اضافه کنند. ممکن است در حال فکر کردن باشید که ...
" آیا اکسل آیکن های شرطی از پیش ساخته ای در قسمت conditional formating ندارد که این کار را انجام دهد؟"
درست است.
اما ، در حالی که آیکن های شرطی می توانند عالی باشند ، مواردی وجود دارد که در واقع آنها می توانند محدود کننده باشد و غیر حرفه ای به نظر رسند.
به توازن رنگ ها در مثال زیر توجه کنید.
در جدول سمت چپ ، من از آیکن های داخلی قالب بندی شرطی اکسل استفاده کرده ام , سپس با استفاده از فونت Webdings (نویسه "n") و برخی از قالب بندی های شرطی تغییر رنگ ، جدول مشابه سمت راست را ایجاد کردم.
اولین چیزی که ممکن است توجه تان را جلب کند ، این است که دایره های قالب بندی شرطی به صورت تار دیده می شوند و غیر حرفه ای به نظر می رسند و ممکن است مخاطبان شما را خسته و بی هدف کند.
دومین موردی که ممکن است متوجه آن شوید در مورد فونت های آیکن است. من این آزادی را دارم که استیل ها را با هر رنگی که می خواهم بسازم! این می تواند جدول شما را مطابق رنگبندی نام تجاری خاص شرکت شما کند ، که باعث می شود در ارائه ها شگفت انگیز به نظر برسد.
PDFقابل چاپ رایگان!
من شخصاً از یک برگه که چند وقت پیش تهیه کردم استفاده می کنم. آن را چاپ و روی دیوار کنار کامپیوترم نصب کرده ام. اگر می خواهید یک نسخه PDF از این برگه (که در ابتدای این پست نشان داده شده است) را داشته باشید ، می توانید روی لینک زیر کلیک کنید.
در مثال فوق من از فونت های آیکن استفاده کردم تا اطلاعات من حرفه ای تر و قابل درک به نظر برسد. دوست دارم شما نیز کامنت بگذارید و توصیف کنید که چگونه می خواهید در پروژه خود از فونت های آیکون استفاده کنید. تجربه و افکار شما به کل کاربران (از جمله خود من) کمک می کند تا ایده هایی در مورد چگونگی پیشرفت کار خود داشته باشیم.
یک Add-in (افزونه) اکسل وقتی که مجبور به اجرای یک ماکرو در فایل های مختلف اکسل هستید می تواند مفید باشد.
به عنوان مثال ، فرض کنید می خواهید تمام سلول هایی که دارای خطا هستند را مشخص کنید ، به راحتی می توانید یک افزونه اکسل ایجاد کنید که با یک کلیک سلول های حاوی خطا را مشخص می کند (در تصویر متحرک زیر , افزونه به نوار ابزار دسترسی سریع اضافه شده است تا تنها با یک کلیک اجرا شود):
به طور مشابه ، ممکن است بخواهید یک تابع سفارشی ایجاد کنید و به جای copy و past چند باره کد از آن در تمام فایل های اکسل استفاده کنید.
اگر علاقه مند به یادگیری آسان VBA اکسل هستید ، مجموعه کتاب های آموزش برنامه نویسی با اکسل را بررسی کنید.
ایجاد افزونه اکسل
در این پست ، یاد خواهید گرفت که چگونه یک افزونه اکسل ایجاد کنید.
سه مرحله برای ایجاد افزونه و اضافه کردن آن به نوار ابزار دسترسی سریع وجود دارد :
به عنوان مثال ، از کد ساده زیر , که تمام سلول هایی که حاوی مقادیر خطا است را مشخص می کند , استفاده می کنیم:
Sub HighlightErrors
Selection.SpecialCells(xlCellTypeFormulas, xlErrors).Select
Selection.Interior.Color = vbRed
End Sub
پس از نوشتن (یا کپی) کد ، مراحل زیر را دنبال کنید:
اگر نمی توانید آن را ببینید ، از زبانه View گزینه Project Explorer را انتخاب کنید.
توجه: اگر یک ماکرو ضبط می کنید ، اکسل به طور خودکار یک ماژول ایجاد کرده و کد را در آن قرار خواهد داد.
بیایید ادامه دهیم و یک افزونه از این کد ایجاد کنیم.
ذخیره کد به عنوان یک افزونه اکسل
اگر فایلی که کد فوق را در آن وارد کرده اید ، فعال است مراحل زیر را دنبال کنید تا آن را به عنوان Add-in ذخیره و سپس آن را در اکسل نصب کنید.
حالا add-in فعال شده است و می توانید از آن در تمام فایل های اکسل استفاده کنید.
ممکن است هیچ زبانه یا گزینه ای در نوار ریبون نشان داده نشود ، اما افزونه در این مرحله فعال شده و کد در حال حاضر در دسترس است.
مرحله بعدی اضافه کردن افزونه به نوار ابزار دسترسی سریع است ، تا بتوانید با یک کلیک آن را اجرا کنید.
توجه: اگر افزونه ای ایجاد کرده اید که تابع سفارشی دارد ، لازم نیست که به مرحله بعدی بروید. در پایان مرحله قبلی ، تابع در همه فایل هایتان در دسترس قرار می گیرد. این مرحله برای کدهایی است که می خواهید کاری در زمانی که ماکرو را اجرا می کنید (مانند هایلایت کردن سلول های حاوی خطا) انجام شود.
اضافه کردن افزونه به نوار ابزار دسترسی سریع
برای انجام این مرحله:
در پنجره محاوره ای Excel Options ، گزینه Macros را از لیست کشویی Choose commands from انتخاب کنید. متوجه خواهید شد که ماکروی HighlightErrors در کادر پایین این قسمت لیست شده است.
امکان انتخاب آیکن برای این دکمه نیز وجود دارد ، برای این کار روی دکمه Modify کلیک کنید. پنجره Modify Button باز می شود. آیکن مورد نظر را انتخاب و سپس دکمه Ok را کلیک کنید.
پس از بازگشت به اکسل ، متوجه خواهید شد که دکمه ماکروی مربوطه به نوار ابزار دسترسی سریع اضافه شده است.
اکنون برای اجرای این کد در هر فایل اکسل ، مجموعه داده ها را انتخاب کرده و روی آیکن ماکرو در نوار ابزار دسترسی سریع کلیک کنید.
با این کار تمام سلول های حاوی خطا با رنگ قرمز مشخص می شوند. از آنجا که این ماکرو را بصورت افزونه فعال کرده اید ، می توانید از آن در همه فایل های اکسل استفاده کنید.
احتیاط: تغییرات انجام شده توسط ماکرو را نمی توان با استفاده از Ctrl + Z لغو کرد.
شما همچنین می توانید توابع سفارشی ایجاد کنید و سپس آن را به عنوان افزونه اکسل ذخیره کنیده هنگامی که افزونه را فعال می کنید ، توابع سفارشی در تمام فایل های اکسل موجود و در دسترس است.
در اکسل ، بیش از 450 تابع برگه استاندارد وجود دارد که برخی از آنها در کارهای روزانه شما بسیار مفید هستند.
همچنین…
اکسل به شما امکان ایجاد تابع سفارشی با استفاده از VBA را نیز می دهد.
بله ، درست است!
تابع تعریف شده توسط کاربر ، به طور خلاصه UDF.
و می توانم با اطمینان بگویم که هر کاربر VBA مشتاق می خواهد یاد بگیرد که یک تابع تعریف شده توسط کاربر ایجاد کند.
شما نمی خواهید؟
اگر از افرادی هستید که می خواهید تابع سفارشی ایجاد کنید ، در بخش دیدگاه کاربران نظر خود را بنویسید.
بنابراین ، امروز ، می خواهم مواردی را که باید در مورد ایجاد UDF بدانید به اشتراک بگذارم.
البته ، این یک راهنمای کلی است.
توجه: در این مطلب من از تابع تعریف شده توسط کاربر ، تابع سفارشی و UDF به طور متناوب به یک معنی استفاده کرده ام.
... پس با من باشید اگر می خواهید در دو دقیقه آینده سطح VBA خود را یک گام افزایش دهید.
چرا باید یک تابع سفارشی ایجاد کنید
همانطور که گفتم ، توابع زیادی در اکسل وجود دارد که تقریباً می تواند به شما کمک کند همه نیازهایتان را برطرف کنید و انواع محاسبات را انجام دهید.
ولی…
... گاهی اوقات ، در موقعیت های خاص ، باید UDF ایجاد کنید.
من برخی از دلایلی را که نشان می دهد چه موقع باید سراغ یک تابع سفارشی بروید ، فهرست می کنم.
1. هنگامی که هیچ تابع استاندارد اکسل برای این کار وجود ندارد
گاهی اتفاق می افتد که باید چیزی را محاسبه کنید و تابع خاصی برای این کار وجود ندارد.
می توانم شمارش تعداد کلمات موجود در یک سلول را مثال بزنم و برای این ، دریافتم که UDF می تواند یک راه حل عالی باشد.
Function MyWordCount(rng As Range) As Integer
MyWordCount = UBound(Split(rng.Value، " ")، 1) + 1
End Function
2. جایگزین فرمول پیچیده کنید
اگر با فرمول ها کار می کنید ، من مطمئن هستم که شما این موضوع را می دانید که نوشتن فرمول های پیچیده دشوار است و بعضی اوقات درک آن توسط دیگر کاربران نیز دشوار است.
بنابراین یک تابع سفارشی می تواند راه حلی برای این مشکل باشد.
پس از ایجاد UDF ، دیگر لازم نیست که آن فرمول پیچیده را دوباره و دوباره بنویسید.
3. هنگامی که نمی خواهید از فرآیند SUB استفاده کنید
می توانید برای انجام محاسبه از کد VBA استفاده کنید اما کدهای VBA پویا نیستند.
اگر می خواهید محاسبه خود را به روز کنید ، مجدداً باید آن کد را اجرا کنید.
اما اگر کد را به یک تابع تبدیل کنید ، دیگر لازم نیست که آن را هر بار اجرا کنید.
چگونه اولین تابع تعریف شده توسط کاربر خود را در اکسل ایجاد کنیم
به طور معمول ، برای ایجاد یک تابع VBA ، باید مراحل زیر را دنبال کنید:
بگذارید یک مثال ساده ذکر کنم ، اما قبل از آن ، فایل اکسل مربوطه را بارگیری کنید تا در ادامه همراه باشید.
توجه کنید:
شما باید تابعی را ایجاد کنید که بتواند نام روز را از یک مقدار تاریخ بازگرداند.
خوب ، ما تابعی داریم که شماره روز هفته را باز می گرداند اما نام آن را نمی دهد.
منظورم را دریافت کردید؟
بنابراین اجازه دهید با استفاده از مراحل زیر این تابع VBA را ایجاد کنیم.
روش دوم- در پنجره Project Explorer پروژه ای را انتخاب کنید که می خواهید ماژول به آن اضافه شود. سپس از زبانه Insert نوار ابزار استاندارد گزینه Module را انتخاب کنید.
چرا Function قبل از نام تابع؟
همانطور که در حال ایجاد یک تابع VBA هستید و از کلمه Function استفاده می کنید به اکسل می گوید که این کد به عنوان یک تابع رفتار می کند.
در پایان ، کلید ENTER را فشار دهید.
تا این مرحله ، نام تابع ، مولفه آن ، نوع داده مولفه و نوع داده خروجی تابع , تعریف شده است و شما در ماژول خود چیزی شبیه به این دارید:
اکنون در قسمت ما بین Function و End Function ، باید کد محاسبات خود را وارد کنید.
در اکسل یک تابع برگه با نام Text وجود دارد و در اینجا از همان استفاده می کنیم.
برای این کار ، باید کد زیر را بنویسید:
myDayName = WorksheetFunction.Text(InputDate, "dddddd")
با استفاده از این کد مقداری را محاسبه می کنید که باید توسط تابع بازگردد.
اگر در سلول B2 ، فرمول myDayName(A2) = را وارد کرده و اینتر را فشار دهید , نام روز را خواهید داشت.
تبریک می گویم! شما اولین تابع سفارشی خود را ایجاد کردید.
این لحظه شادی واقعی است.
اینطور نیست؟
نظر خود را در بخش دیدگاه کاربران تایپ کنید.
نحوه عملکرد این تابع و مقدار برگشتی
اولین تابع سفارشی خود را ایجاد کردید ، اما مسئله این است که شما باید درک کنید که این تابع چگونه کار می کند.
اگر به زبان ساده بگویم ، این یک کد VBA است اما ما به عنوان تابع از آن استفاده می کنیم.
بگذارید آن را به سه قسمت تقسیم کنیم:
حال بیایید آن را با جزئیات بیان کنیم؛
لحظه ای که نام تابع را در یک سلول وارد می کنید و به سلول دیگر برای مقدار مولفه (ها) ارجاع می دهید , کد اجرا می شود و از مقداری که به عنوان مولفه ارجاع داده اید برای بازگشت نتیجه استفاده می کند.
دقیق تر بیان می کنم:
در اینجا کد تابعی که ایجاد کردیم وجود دارد و می دانید که در این کد چیست.
هنگامی که در تابع به یک سلول ارجاع می دهید ، این بلوک کد برای محاسبه مقدارخروجی تابع اجرا می شود.
تاریخ را از مولفه InputDate گرفته و نام روز را برمی گرداند.
همانطور که مشاهده می کنید از علامت مساوی برای اختصاص نتیجه محاسبات به myDayname استفاده کرده ایم.
نکته مهم: وقتی کدی را برای یک تابع سفارشی می نویسید باید مراقب باشید که حتما مقدار مورد نظر برای بازگشت آن کد , به نام تابع اختصاص یابد.
نحوه بهبود تابع سفارشی
خوب ، حالا شما می دانید چگونه یک تابع سفارشی VBA ایجاد کنید.
ولی…
نکته ای وجود دارد که باید مراقب باشید , کدی که شما برای تابع استفاده کرده اید باید به اندازه کافی خوب باشد تا بتواند تمام احتمالات را در نظر بگیرد.
اگر در مورد تابعی که در بالا نوشتید صحبت کنیم می توانید نام روز را از یک تاریخ برگردانید.
ولی…
اگر مقداری که مشخص می کنید تاریخ نباشد ؟
و یا اگر سلولی که به آن ارجاع می دهید خالی باشد , چه؟
ممکن است احتمالات دیگری نیز وجود داشته باشد ، اما مطمئن هستم که شما منظور من را گرفتید.
درسته؟
بنابراین سعی خواهیم کرد این تابع سفارشی را بهبود بخشیم تا بتواند با مشکلات فوق روبرو شود.
بسیار خوب!
اول از همه ، شما باید نوع داده مولفه را تغییر داده و کد زیر را استفاده کنید:
InputDate As Variant
با این کار ، تابع سفارشی شما می تواند از هر نوع داده به عنوان ورودی استفاده کند.
در مرحله بعد ، برای بررسی شرایط InputDate باید از دستور IF استفاده کنیم.
بررسی اول این است که سلول خالی است یا خیر.
و برای این کار ، باید از کد زیر استفاده کنید:
If InputDate = "" Then
"" = myDayName
اگر سلولی که به آن ارجاع می دهید خالی باشد ، این کد تابع را خالی می کند.
یک مشکل حل شد ، بگذارید به مسئله بعدی برویم.
به غیر از تاریخ ، احتمال این وجود دارد که سلول حاوی عدد یا متن باشد.
بنابراین ، برای این کار ، باید شرایطی را نیز ایجاد کنید که باید بررسی کند که مقدار ذکر شده یک تاریخ واقعی است یا خیر.
کد:
If IsDate(InputDate) = False Then
"" = myDayName
توجه: در اینجا من برای هر دو شرط از یک blank , ("") استفاده می کنم ، به طوری که در صورت داشتن داده های طولانی می توانید به راحتی مقادیر را فیلتر کنید که مقدار ورودی خالی نباشد.
بنابراین پس از افزودن شرایط فوق ، کد به صورت زیر خواهد بود:
Function myDayName(InputDate As Variant) As String
If InputDate = "" Then
"" = myDayName
Else
If IsDate(InputDate) = False Then
"" = myDayName
Else
myDayName = WorksheetFunction.Text(InputDate, "dddddd")
End If
End If
End Function
اطمینان دارم هنوز هم می توانید تغییراتی در این تابع ایجاد کنید. بیایید در بخش دیدگاه کاربران صحبت کنیم.
نحوه استفاده از یک تابع سفارشی VBA
تا این مرحله ، با نحوه ایجاد یک تابع VBA در اکسل کاملاً آشنا شدید.
اما پس از ایجاد ، باید بدانید که چگونه می توانید از آن استفاده کنید.
در این بخش از پست ، من می خواهم بگویم که چگونه و کجا می توانید از آن استفاده کنید.
بیایید شروع کنیم:
1. به سادگی در یک برگه اکسل
چرا ما یک تابع سفارشی ایجاد می کنیم؟
برای استفاده از آن در برگه اکسل.
می توانید با استفاده از علامت تساوی و تایپ نام تابع ، یک UDF را در برگه وارد کنید و سپس مولفه های آن را مشخص کنید.
همچنین می توانید یک تابع تعریف شده توسط کاربر را از کتابخانه توابع وارد کنید.
از زبانه Formula گزینه Insert Function را انتخاب کنید , در پنجره محاوره ای باز شده دسته بندی User Defined را انتخاب کنید.از این لیست می توانید UDF مورد نظر خود را وارد کنید.
2. استفاده در سایر فرآیندها و توابع
همچنین می توانید از یک تابع در توابع دیگر یا در یک فرآیند Sub استفاده کنید.
از کد VBA زیر برای دریافت نام روز تاریخ جاری می توانید استفاده کنید.
()Sub todayDay
MsgBox "Today is" & myDayName(Date)
End Sub
توجه: حتماً در این پست دامنه یك UDF را بخوانید تا در مورد استفاده توابع در سایر فرآیندها اطلاعات بیشتری کسب كنید.
3. دسترسی به توابع از فایل های دیگر
اگر UDF را در یک فایل دارید و می خواهید از آن در فایل دیگری یا در تمام فایلها استفاده کنید این کار را با ایجاد یک افزونه برای آن انجام می دهید.
این مراحل ساده را دنبال کنید:
اول از همه ، شما باید فایل اکسل را (که در آن کد تابع سفارشی دارید) به عنوان یک افزونه ذخیره کنید.برای این:
از زبانه File گزینه Save As را انتخاب کنید , در پنجره محاوره ای باز شده فرمت فایل را Excel Add-Ins (.xalm) انتخاب کنید.
خودشه.
اکنون می توانید از تابع VBA خود در هر فایلی استفاده کنید.
راه های مختلف ایجاد یک تابع سفارشی VBA [سطح پیشرفته]
تا این مرحله ، شما می توانید یک تابع سفارشی در VBA ایجاد کنید.
اما مسئله این است که وقتی از توابع برگه اکسل استفاده می کنیم ، آنها با انواع مختلفی از مولفه ها همراه هستند.
بیایید ادامه بدیم...
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
VBA چیست؟
VBA مخفف Visual Basic for Applications است. این زبان برنامه نویسی است که می توانید برای حودکار کردن وظایفی در اکسل از آن استفاده کنید.
مزایای استفاده از VBA در اکسل چیست؟
در حالی که اکسل از ابزار ها و توابع شگفت انگیز زیادی برخوردار است ، ممکن است همه موارد مورد نیاز شما را پوشش ندهد.
VBA به شما امکان می دهد با ایجاد کدهایی که می توانند اقداماتی را به صورت خودکار انجام دهند ، توانایی Excel را ارتقا بخشید. در زیر برخی از کارهایی که می توانید با VBA انجام دهید لیست شده است:
ماکرو مجموعه ای از دستورالعمل هایی است که به زبان VBA نوشته شده است که اکسل قادر به درک و اجرای آن است. یک ماکرو می تواند حاوی یک خط ساده یا هزاران خط باشد.
در بسیاری از موارد ، کاربران تمایل دارند از عبارات کد VBA و ماکرو به صورت جایگزینی برای هم استفاده کنند.
چگونه می توان یک ماکرو را در اکسل ضبط کرد؟
حتی اگر چیزی در مورد VBA نمی دانید ، باز هم می توانید برخی از ماکرو ها را ایجاد و کارهای خود را خودکار کنید.
می توانید این کار را با ضبط ماکرو انجام دهید.
اکسل هنگامی که ماکرویی ضبط می کنید ، اقداماتی را که انجام می دهید ، تماشا می کند و آن را به زبانی که می فهمد یادداشت می کند ، که VBA است.
اکنون ، هنگامی که ضبط را متوقف می کنید ، ماکرو را ذخیره کرده و آن را اجرا کنید ، اکسل به سادگی به کد VBA تولید شده برمی گردد و دقیقاً همان مراحل را دنبال می کند.
این بدان معناست که حتی اگر شما چیزی در مورد VBA نمی دانید ، می توانید با کمک اکسل مراحل خود را یکبار انجام دهید و بعداً دوباره از این موارد استفاده کنید.
می توانید با استفاده از گزینه Record Macro که در زبانه Developer قرار دارد ، یک ماکرو ضبط کنید.
هنگامی که ماکرو را ضبط کردید ، اکسل آن را با نام مشخص شده ذخیره می کند و سپس می توانید به راحتی هر بار که می خواهید از آن استفاده کنید.
می توانید اطلاعات بیشتری در مورد ضبط یک ماکرو را اینجا بخوانید.
ضبط ماکرو در اکسل چه محدودیت هایی دارد؟
اگر چه ضبط ماکرو یک روش عالی برای تولید سریع کد است ، محدودیت های زیر را دارد:
UDF یک تابع تعریف شده توسط کاربر در VBA است , که توابع سفارشی نیز گفته می شود.
با استفاده از VBA ، می توانید یک تابع سفارشی (UDF) ایجاد کنید که می تواند دقیقاً مانند توابع برگه اکسل استفاده شود.
در مواردی که توابع برگه اکسل کافی نباشد ، توابع سفارشی مفید هستند. در چنین مواردی ، می توانید UDF های دلخواه خود را تهیه کنید تا نیازهای خود را تأمین کنید.
رخدادها در VBA چیست؟
در VBA ، رخداد عملی است که می تواند باعث اجرای ماکروی مشخص شده شود.
به عنوان مثال ، هنگامی که فایل اکسل جدیدی باز می کنید ، این یک رخداد است. وقتی یک برگه جدید اکسل ایجاد می کنید ، یک رخداد است. وقتی روی سلولی دو بار کلیک می کنید ، یک رخداد است.
رخدادهای زیادی در VBA وجود دارد و می توانید برای آنها کدی اختصاص دهید. این بدان معنی است که به محض وقوع یک رخداد ، اگر کدی برای آن رخداد تعیین کرده باشید ، آن کد بلافاصله اجرا می شود.
اکسل به محض اینكه متوجه می شود رخدادی اتفاق افتاده است به طور خودکار این كار را می كند. تنها نیاز به نوشتن کد و اختصاص آن به رخداد صحیح است.
برخی از حلقه های مفید VBA چیست؟
حلقه های زیر در VBA وجود دارد:
راه های مختلف اجرای یک ماکرو در اکسل چیست؟
می توانید از روش های زیر برای اجرای یک ماکرو در اکسل استفاده کنید:
UserForm چیست؟
UserForm یک پنجره محاوره ای است که می توانید در VBA طراحی و ایجاد کنید.
پس از ایجاد ، به روش های مختلفی در برگه اکسل قابل استفاده است:
افزونه فایلی است که می توانید آن را با اکسل بارگیری کنید.
وقتی یک افزونه ایجاد و آن را در اکسل نصب می کنید ، هر وقت برنامه اکسل باز می شود ، باز خواهد شد. می توانید ماکروهای زیادی را در یک افزونه داشته باشید و هر وقت اکسل را باز کردید ، این کدها برای استفاده در دسترس قرار بگیرند.
این کار بسیار مفید است زیرا می توانید یک افزونه ایجاد کنید و برای همه فایل های اکسل در دسترس قرار دهید. بنابراین اگر کارهایی وجود دارد که اغلب باید انجام دهید ، می توانید با نوشتن یک ماکرو و سپس ذخیره آن به عنوان افزونه ، این موارد را به صورت خودکار انجام دهید.
یکی دیگر از مزایای افزونه ها این است که می توانید فایل افزونه را با دیگران به اشتراک بگذارید. تنها کاری که باید انجام شود این است که با نصب آن ، همان ماکروها را در دسترس خواهند داشت.
ماکرو چیست؟
ماکرو دنباله ای از دستورالعمل ها است. این توالی دستورالعمل ها بعضی از جنبه های اکسل را که بطور منظم انجام می دهید ، خودکار می کند. هنگامی که با استفاده از ماکرو برخی از کارهای خود در اکسل را به صورت خودکار انجام می دهید ، می توانید با کارایی بیشتر و با خطاهای کمتری عمل کنید. به عنوان مثال ، می توانید یک ماکرو برای قالب بندی و چاپ گزارش فروش پایان ماه خود ایجاد کنید. بعد از ایجاد ماکرو ، می توانید ماکرو را اجرا کنید تا بسیاری از کارهای زمان بر را بطور خودکار انجام دهید.
برای ایجاد و استفاده از ماکروهای ساده VBA نیازی به صرف انرژی ندارید. گاه به گاه می توانید ابزار ضبط کننده ماکروی اکسل را روشن کنید: اکسل اقدامات شما را ضبط کرده و آنها را به یک ماکروی VBA تبدیل می کند. هنگام اجرای این ماکرو ، اکسل دوباره این اقدامات را انجام می دهد.
اینجا بخشی از مقدمات ماکرونویسی را می توانید مطالعه کنید.
با این حال ، کاربران پیشرفته ، می توانند کدی را بنویسند که به اکسل می گوید وظایفی را که نمی توان با ضبط کننده ماکرو ثبت کرد , انجام دهد. به عنوان مثال:
کارهایی که می توانید با ماکروی VBA انجام دهید
VBA یک زبان برنامه نویسی بسیار غنی است و هزاران کاربرد دارد. چند مورد در زیر ذکر شده است که می توانید با ماکروی VBA انجام دهید.
توجه: ممکن است VBA را با VB اشتباه بگیرید (VB مخفف ویژوال بیسیک است). VB یک زبان برنامه نویسی است. این امکان را به شما می دهد تا برنامه های اجرایی (فایل های EXE) ایجاد کنید. اگرچه VBA و VB اشتراک زیادی دارند ، اما زبان های برنامه نویسی متفاوتی هستند.
در آموزش های بعدی ، ماکروهای VBA را عمیق تر بررسی خواهیم کرد. منتظر باشید.
آموزش بعدی: اضافه کردن زبانه Developer به ریبون اکسل
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
ممکن است از خودتان بپرسید , چرا باید VBA اکسل را یاد بگیرم!
بیایید با یک مثال شروع کنیم ...
چند ماه پیش ، در یک گروه فیس بوک ، شخصی درخواست کمک کرد. وی می خواست سیستمی با معیارهای زیر ایجاد کند:
من به او کمک کردم و ماکرویی نوشتم ، وی آن را اجرا کرد و تنها با یک کلیک می توانست تمام آن کارها را انجام دهد.
اکسل هیچ راهی برای انجام کارهای فوق ارائه نمی دهد. شما باید کد بنویسید و باید با VBA اکسل کار کنید.
نحوه یادگیری VBA اکسل
یادگیری و کد نویسی در VBA (در واقع در هر زبان برنامه نویسی با اصلاحات جزئی) شما را ملزم به رعایت این مراحل می کند:
اکنون اصول را می دانید. این همش نیست. شما باید تمرین و کد نویسی کنید ، سپس کد موجود را مهندسی کنید.
من از تکنیکی برای یادگیری استفاده می کنم:
تکنیک من این است: کد را تجسم می کنم:
کل RAM (حافظه کامپیوتر) را به عنوان مکانی برای سلول ها تجسم می کنم. سلولی که در آن می توانید یک شماره یا متن یا چیز دیگری ذخیره کنید. در اینجا مراحلی را برای تجسم کد استفاده می کنم:
پس از مطالعه برخی از کدها به روش فوق ، قادر خواهید بود به همان روش کدنویسی کنید.
اگر تجربه قبلی در زمینه کد نویسی ندارید ، صریحاً بگویم ، ممکن است این موضوعات کمی پیچیده به نظر برسد. اما باور کنید ، اگر خودتان را با آنها درگیر کنید ، آن را آسان خواهید یافت و شروع به یادگیری مفاهیم برنامه نویسی خواهید کرد.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: ماکرو چیست
حتی اگر در دنیای VBA تازه کار هستید ، می توانید به راحتی یک ماکرو ضبط و بعضی از کارهایتان را خودکار کنید. این بخش ، تمام آنچه را که برای شروع ، ضبط و استفاده از ماکروها در اکسل باید بدانید پوشش می دهد.
آماده اید اولین ماکروی خود را ایجاد کنید؟
پس بیایید مقدمات کار را آماده کنیم.
1- اضافه کردن زبانه Developer به ریبون اکسل
اولین گام برای ضبط یک ماکرو ، اضافه کردن زبانه Developer به ریبون اکسل است. مراحل زیر را دنبال کنید:
روی یکی از زبانه های موجود در ریبون ، راست کلیک کنید و در پنجره باز شده ، Customize the Ribbon را انتخاب کنید تا پنجره Excel Options باز شود ، زبانه Customize Ribbon واقع در نوار سمت راست این پنجره را انتخاب کنید. سپس از لیست کشویی Customize the Ribbon در سمت راست پنجره موجود گزینه Main Tabs را انتخاب کنید. از کادر پایین نیز ، Developer را انتخاب و روی دکمه ok کلیک کنید.
با انجام مراحل فوق زبانه Developer به ریبون اضافه خواهد شد.
آموزش بعدی:مراحل ضبط ماکرو با اکسل
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: اضافه کردن زبانه Developer به ریبون اکسل
مراحل ضبط ماکرو با اکسل:
1- روی زبانه Developer کلیک کنید.
2- در ابزارهای گروه Code ، با کنترل گزینه Use Relative References مطمئن شوید که حالت ضبط با آدرس نسبی فعال باشد.
اگر این حالت فعال نیست ، روی Use Relative References کلیک کنید تا رنگ دکمه تغییر و این حالت فعال شود.
هنگامی که حالت ضبط با آدرس نسبی غیر فعال است (این حالت به صورت پیش فرض غیر فعال می باشد) کدهای VBA همیشه به همان سلول هایی که استفاده می کنید مراجعه می کند ، در حالی که وقتی این حالت روشن است ، هر عمل ضبط شده توسط اکسل ، هنگام اجرا با سلول فعال مقایسه می شود. به عنوان مثال ، فرض کنید ماکرویی به صورت زیر ضبط کرده اید:
در سلول فعال عبارت This is the best Excel tutorial را تایپ و کلید Enter را فشار می دهید.
اگر در زمان ضبط ماکرو ، سلول فعال A2 باشد و حالت ضبط با آدرس نسبی را فعال نکنید ، با اجرای ماکرو مهم نیست که کدام سلول فعال است ، ابتدا سلول A2 انتخاب شده و عبارت This is the best Excel tutorial در آن درج و سپس سلول A3 فعال می شود.
اگر از حالت ضبط با آدرس نسبی در ضبط ماکرو استفاده کنید ، کد VBA نمی تواند آدرس سلول ها را به صورت مطلق به کار برد. به عنوان مثال ، فرض کنید که سلولA1 سلول فعال باشد و شروع به ضبط ماکرو در حالت ضبط با آدرس نسبی می کنید. حالا سلول پایینی ، سلول A2 را انتخاب کنید عبارت This is the best Excel tutorial را وارد و کلید Enter را فشار دهید. هنگامی که این ماکرو را اجرا کنید ، دیگر سلول A2 انتخاب نمی شود ، بلکه نسبت به سلول فعال فعلی ، سلولی انتخاب خواهد شد. به عنوان مثال اگر زمان اجرای ماکرو ، سلول K3 سلول فعال باشد ، به سلول K4 حرکت کرده عبارت This is the best Excel tutorial را درج ، و سپس سلول K5 را انتخاب می کند.
3- از ابزارهای گروه Code ، روی دکمه Record Macro کلیک کنید.
یا دکمه Record Macro را ، که در سمت چپ نوار وضعیت ظاهر می شود کلیک کنید.
4- پنجره محاوره ای Record Macro باز خواهد شد. این پنجره به شما امکان می دهد:
اکسل یک نام پیش فرض به ماکرو اختصاص می دهد: Macro3 ،Macro2،Macro1 و ....
با این حال ، همانطور که جان والکنباخ (از برجسته ترین نویسندگان حوزه آموزش اکسل)بیان می کند انتخاب یک نام توصیفی برای عنوان ماکرو مفید است.
مواردی وجود دارد که هنگام نامگذاری یک ماکرو باید رعایت کنید. به عنوان مثال ، نام های ماکرو باید با یک حرف (نه یک عدد) یا کاراکتر زیرخط (_) شروع شوند ، نمی تواند کاراکتر فاصله یا کاراکترهای خاصی به غیر از زیرخط را داشته باشد و نباید مشابه عناوین ماکروهای موجود باشد.
به عنوان مثال ، Best Excel tutorial یک نام قابل قبول نیست ، اما Best_Excel_Tutorial مناسب است.
موضوع نامگذاری ماکروها (هم برای فرآیندهایSub و هم فرآیندهایFunction) اینجا به تفضیل پوشش داده شده است.
این مرحله اختیاری است. می توانید ماکرو را بدون میانبر صفحه کلید نیز ضبط کنید ، اما اختصاص کلید میانبر امکان می دهد که ماکرو را به سادگی با فشار دادن چند کلید اجرا کنید.
میانبرهای صفحه کلید به فرم"کلید ترکیبی+Ctrl" است. کلید ترکیبی ، می تواند یک حرف انگلیسی و یا ترکیبی از یک حرف به علاوه کلید Shift باشد.
هنگام ایجاد میانبر صفحه کلید برای ماکروها ، در انتخاب ترکیب کلیدها دقت کنید.
اگر یکی از میانبرهای داخلی اکسل را دوباره انتخاب کنید ، این انتخاب ، کلید میانبر پیشین را غیرفعال می کند. از آنجایی که اکسل چندین کلید میانبر داخلی به فرم"یک حرف انگلیسی+Ctrl" دارد احتمال غیرفعال کردن این میانبرها زیاد است.
به عنوان مثال ، میانبر صفحه کلید Ctrl+B راکه یک میانبر داخلی برای دستور Bold است ، در نظر بگیرید. اگر این کلید میانبر را به یک ماکرو اختصاص دهید ، میانبر صفحه کلید داخلی اکسل برای دستور Bold غیرفعال می شود. اگر Ctrl+B را فشار دهید ، ماکرو اجرا می شود ، اما فونت متن انتخاب شده به صورت ضخیم نوشته نخواهد شد.
یکی از راههای رفع این مشکل این است که ، میانبرهای صفحه کلید را به فرم "یک حرف انگلیسی+Ctrl+Shift" اختصاص دهید تا احتمال غیرفعال کردن کلید میانبری که از قبل وجود دارد کمتر شود. به این معنا که ، به جای انتخاب Ctrl+B ، می توانیم ترکیب Ctrl+Shift+B را به عنوان کلید میانبر به ماکرو اختصاص دهیم.
در هر صورت ، در مورد ترکیب کلیدی که انتخاب می کنید مراقب باشید.
می توانید ماکرو را در فایلی که روی آن کار می کنید (This Workbook) ، یک فایل اکسل جدید (New Workbook) و یا فایل اختصاصی ماکروها (Personal Macro Workbook ) ذخیره کنید. انتخاب پیش فرض این است که ماکرو در فایلی که روی آن کار می کنید ذخیره شود در این صورت تنها زمانی که این فایل باز است قادر به استفاده از این ماکرو خواهید بود.
این مرحله تضمین می کند که ماکرو بخشی از فایل اکسل است.
اگر New Workbook را انتخاب کنید ، اکسل یک فایل جدید ایجاد می کند و شما قادر به ضبط و ذخیره ماکرو در این فایل جدید خواهید بود ، اما همانطور که در مورد انتخاب This Workbook مشاهده کردید در این مورد نیز ، ماکرو فقط در فایل ایجاد شده کار می کند.
گزینه ذخیره سازی پیشرفته تر ، انتخاب Personal Macro Workbook (فایل اختصاصی ماکروها) است. بیل ژیلن در کتاب Excel 2013 In Depth ، فایل اختصاصی ماکروها را به این صورت تعریف می کند:
(...) یک فایل اختصاصی که برای ذخیره ماکروهای عمومی ، که امکان استفاده از آنها در هر فایلی وجود دارد ، طراحی شده است.
مزیت اصلی ذخیره ماکرو در Personal Macro Workbook این است که ، این ماکروها می تواند در فایل های اکسلی که در آینده ایجاد خواهند شد نیز مورد استفاده قرار گیرند. زیرا هنگام استفاده از اکسل ، همه این ماکروها در همان سیستمی که ذخیره شده اند ، در دسترس هستند ، صرف نظر از اینکه در حال کار روی یک فایل اکسل جدید یا فایلی متفاوت از آنچه که ماکرو را در آن ایجاد کرده اید باشید.
این مرحله اختیاری است. با این حال ، بهتر است عادت داشته باشید ، هر زمان که یک ماکروی جدید ایجاد می کنید در قسمت Description توضیحاتی را ثبت کنید تا همواره خودتان و یا همکارانتان زمان اجرای ماکرو ، از آنچه که از ماکرو انتظار می رود اطلاع داشته باشید.
بهتر است توضیحات شامل تاریخ ایجاد ماکرو و مشخصات شخصی که ماکرو را ایجاد کرده است نیز باشد.
5- پس از تعیین عنوان ماکرو ، میانبر صفحه کلید ، مشخص کردن مکان ذخیره ماکرو و درج توضیحات ماکرو ، روی دکمه OK کلیک کنید تا پنجره محاوره ای RecordMacro بسته شود.
6- در این مرحله اقداماتی که می خواهید ضبط و ذخیره شود را انجام دهید. دکمه Stop recording (توقف ضبط) را می توانید در زبانه Developer مشاهده کنید ، که نشان می دهد ضبط ماکرو در حال انجام است.
7- در پایان روی Stop recording در زبانه Developer و یا دکمه توقف ضبط که در سمت چپ نوار وضعیت ظاهر می شود ، کلیک کنید.
آموزش بعدی: مثالی از نحوه ضبط ماکرو با اکسل
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: مراحل ضبط ماکرو با اکسل
مثالی از نحوه ضبط ماکرو با اکسل
اگر مراحل توضیح داده شده در آموزش قبلی را دنبال کنید ، می توانید شروع به ایجاد ماکروهای خود کنید.
در این آموزش ، ماکرویی ضبط خواهد شد که موارد زیر را انجام می دهد:
در این مثال ، در پنجره محاوره ای RecordMacro از پارامترهای توضیح داده شده در مراحل هفت گانه آموزش قبلی ، استفاده می کنیم. به عبارت دیگر:
نام اختصاص یافته به ماکرو Best_Excel_Tutorial میانبر صفحه کلید Ctrl+Shift+B و محل ذخیره ماکرو This Workbook خواهد بود.
ادامه مراحل ضبط ماکرو را می توانید از تصویر متحرک زیر ، دنبال کنید:
تبریک می گویم! شما اولین ماکروی اکسل خود را ایجاد کرده اید!
اکنون می توانید این ماکرو را اجرا کنید.
سلولی به غیر از سلول A1 انتخاب کنید. با استفاده از میانبر صفحه کلید Ctrl+Shift +B ماکرو را اجرا کنید (کلید Ctrl و Shift را نگه دارید و سپس کلید B را فشار دهید). این میانبری بود ، که هنگام ضبط ماکرو به آن اختصاص دادیم ( برای اجرای ماکروها ، چند روش دیگر نیز وجود دارد).
چه اتفاقی می افتد؟ آیا نشانگر ماوس به سلول A1 بازگشت.
چنین نمی شود ، زیرا ماکرو را در حالت آدرس نسبی ضبط کرده اید. بنابراین مکان نما نسبت به سلول فعال فعلی (سلولی که انتخاب می کنید) عمل می کند.
در واقع چون در مرحله 7 ضبط این ماکرو ، سلول فعال را انتخاب کردید ، هر سلولی را انتخاب کنید ماکرو در آن سلول اجرا خواهد شد.
با اجرای این ماکرو تمام مراحلی که هنگام ضبط ماکرو انجام دادید ، در کمتر از یک ثانیه انجام می شود.
تمرین:
چه اتفاقی می افتد؟
امیدوارم بتوانید نخستین ماکروی خود را ایجاد کنید ، حداقل متوجه شوید که اصول ایجاد ماکروی اکسل ، چنانچه در ابتدا به نظر می رسد ، چندان پیچیده نیست.
ماکرویی که ایجاد کردید یک مثال بسیار ساده بود.
با این حال ، اطلاعاتی که ارائه شد ، جهت ایجاد طیف گسترده ای از ماکروها ، برای کاربران مبتدی کافی خواهد بود. جان والکنباخ در کتاب Excel 2013 Bible توضیح می دهد که:
در بیشتر موارد ، می توانید اقدامات خود را به عنوان یک ماکرو ضبط و سپس به سادگی ماکرو را اجرا کنید؛ نیازی به درک کدی که به طور خودکار ایجاد شده است ندارید.
بنابراین ، بار دیگر ، برای ایجاد نخستین ماکروی خود ، تبریک می گوییم!
آموزش بعدی: مواردی که ضبط کننده ماکرو قادر به انجام آن نیست
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: مثالی از نحوه ضبط ماکرو با اکسل
مرحله بعدی در ایجاد ماکروهای اکسل ، ورود به دنیای VBA است.
دوباره به نظر جان والکنباخ که در آموزش قبلی ذکر شد برگردیم ؛ این نظر بدان معنا نیست که نیازی به یادگیری برنامه نویسی ندارید.
اگر متعهد به استفاده از قدرت ماکروی اکسل هستید ، باید VBA را یاد بگیرید.
کدهای نوشته شده با استفاده از VBA ، به دلایل مختلف قدرتمندتر از ماکروی ایجاد شده با ضبط کننده ماکرو است ، یکی از مهمترین این دلایل ، این است که با استفاده از کد VBA می توانید کارهایی را انجام دهید که با استفاده از ضبط کننده ماکرو نمی تواند ثبت شوند.
درکتاب Excel 2013 Bible ، جان والکنباخ فهرستی از نمونه کارهایی که نمی توان آنها را ضبط کرد مانند نمایش پنجره های محاوره ای ، پردازش داده های چند فایل اکسل ، ایجاد add-in و...لیست کرده است.
درکتاب Excel 2013 VBA and Macros بیل ژیلن و تریسی سیرستاد بیان می کنند:
مهم است بدانید که ضبط کننده ماکرو هرگز قصد دکمه AutoSum را به طور صحیح ثبت نمی کند.
در ادامه لیستی از کارهایی که نمی توان با ضبط کننده ماکرو انجام داد ارائه شده است:
آموزش بعدی:دسترسی به محیط ویرایشگر ویژوال بیسیک
آموزش قبلی: ورود به دنیای VBA
برای شروع یادگیری نحوه برنامه نویسی با اکسل ، بهتر است نگاهی به دستورات (یا کدهایی) که هنگام ضبط ماکرو تولید کرده اید داشته باشیم.
برای انجام این کار ، باید ویرایشگر ویژوال بیسیک (VBE) را بازکنید. راه های مختلفی برای ظاهرکردن ویرایشگر ویژوال بیسیک در اکسل وجود دارد:
ساده ترین راه برای بازکردن ویرایشگر ویژوال بیسیک این است که از میانبر صفحه کلید ALT+F11 استفاده کنید (کلید ALT را نگه دارید وF11 را فشار دهید). این میانبر به صورت یک حلقه عمل می کند بنابراین هنگامی که مجددا از آن استفاده کنید به برنامه اکسل باز خواهید گشت (بدون بستن ویرایشگر ویژوال بیسیک).
زبانه Developer را انتخاب و در گروه ابزارهای Code ، روی دکمه Visual Basic کلیک کنید.
محیط ویرایشگر ویژوال بیسیک ظاهر می شود که تقریبا به شکل زیر دیده می شود:
محیط ویرایشگر ویژوال بیسیک قابل تنظیم است ، بنابراین ممکن است پنجرهایی که در رایانه شما نمایش داده می شود کمی متفاوتتر از تصویر بالا باشد.
اولین بار که این پنجره را دیدم ، سوالم این بود که ، کدهای ایجاد شده ماکرو کجا قرار گرفته اند؟
ممکن است شما هم این سؤال را داشته باشید ، پس اجازه دهید پاسخ دهیم.
آموزش بعدی: آناتومی محیط ویرایشگر ویژوال بیسیک
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
متغیرهای شیء
متغیرهای شیء چند شباهت با متغیرهای عادی دارند. در جلسه قبلی یاد گرفتید که چگونه با متغیرهای عادی کار کنید.
برای اهداف این دوره ، تفاوت اصلی در داده هایی است که توسط متغیر ذخیره و نشان داده می شوند. با استفاده از متغیرهای شیء:
اعلان متغیرهای شیء
قواعدی که در مورد اعلان متغیر شیء اعمال می شوند ، به طور قابل ملاحظه ای شبیه به آنهایی است که در یک دستور تعریف متغیر عادی اعمال می شوند.
بنابراين ، ساختار پایه دستور اعلان یک متغیر شیء به شرح زير است:
ساختار زیر یک دستور تعریف متغیر شیء است:
نام متغیر شیء کلمه کلیدی As نوع داده
تفاوت اصلی اعلان یک متغیر عادی و اعلان متغیر شیء در نوع داده (آیتم شماره 3) است. هنگام اعلان یک متغیر شیء ، نوع داده را به عنوان Object یا حتی بهتر از این , کلاس شیء که متغیر شیء را نشان می دهد مشخص می کنید (به عنوان مثال ، Workbook ، Worksheet یا Range)
نحوه تخصیص داده به متغیر شیء
برای اختصاص داده به یک متغیر شیء ، از یک دستور انتساب با ساختار زیر استفاده می کنید:
Set عبارت تخصیص=نام متغیر شیء
ساختار دستور تخصیص که در هنگام کار با یک متغیر شیء مورد استفاده قرار می گیرد ، شبیه دستور تخصیصی است که در هنگام کار با یک متغیر عادی استفاده می کنید. تفاوت اصلی آنها ، در کلید واژه Set است.
در جلسه بعدی ، نحوه اتصال فرآیند ها به یکدیگر برای انتقال داده با استفاده از فراخوانی آنها را یاد می گیرید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: دسترسی به محیط ویرایشگر ویژوال بیسیک
در محیط ویرایشگر ویژوال بیسیک چه می بینید.
گزینه ها و بخشهای مختلفی وجود دارد که در ابتدا ممکن است کاملا جدید باشند. می توانید این محیط را به 6 بخش اصلی تقسیم کنید:
2- نوار ابزار: مانند نوارابزار دسترسی سریع صفحه نمایش اکسل است که شامل برخی از گزینه های مفید بوده و می توانید گزینه های بیشتری نیز به آن اضافه کنید. مزیت آن این است که تنها با یک کلیک می توانید از ابزارهای آن استفاده کنید.نوار ابزار نمایش داده شده در تصویر فوق ، نوار ابزار استاندارد و پیش فرض ویرایشگر ویژوال بیسیک است.با این وجود 3 نوار ابزار دیگر نیز وجود دارد:
علاوه بر موارد فوق ، ویرایشگر ویژوال بیسیک امکان می دهد که نوار ابزار را ، به چند روش سفارشی کنید.
می توانید تمام این تنظیمات را با رفتن به زبانه View و انتخاب گزینه Toolbars تغییر دهید. ویرایشگر ویژوال بیسیک یک لیست با 4 نوار ابزار مختلف و گزینه هایی برای دسترسی به پنجره محاوره ای Customize را نمایش می دهد.
نوار ابزاری که با نماد تیک در سمت چپ آن مشخص شده است در حال حاضر توسط اکسل نمایش داده می شود. می توانید این نماد را برای افزودن یا پنهان کردن یک نوار ابزار خاص ، با کلیک بر روی نام آن ، اضافه یا حذف کنید. همچنین می توانید چند نوار ابزار را به ویرایشگر ویژوال بیسیک اضافه کنید. اگر روی Customize کلیک کنید ، ویرایشگر ویژوال بیسیک پنجره محاوره ای Customize را نشان می دهد که به شکل زیر است:
با استفاده از این پنجره ، می توانید جنبه های اضافی مربوط به نوار ابزار که توسط ویرایشگر ویژوال بیسیک نمایش داده می شود را کنترل کنید. برای مثال، این پنجره شامل ، امکان کنترل نمایش نوار ابزار ، منوی میانبر یا اضافه کردن نوار ابزار جدید است.
همچنین می توانید با کلیک بر روی فلش کوچک در انتهای نوار ابزار نیز ، با حذف یا اضافه کردن گزینه ها آن را سفارشی کنید.با کلیک کردن روی سه نقطه خاکستری (ابتدای نوار ابزار) و کشیدن آن می توانید نوار ابزار را حرکت دهید.
3- پنجرهProject Explorer: این قسمت محلی است که می توانید لیستی از تمام فایل های اکسل باز و برگه های آنها و افزونه هایی که بارگذاری می شوند را در آن مشاهده کنید. به عنوان مثال ، اگر یک فایل با 3 برگه داشته باشید ، در این پنجره نشان داده می شود. هر فایل اکسل و یا افزونه هایی که در حال حاضر باز است در Project Explorer به عنوان یک Project (پروژه) جداگانه ظاهر می شود.
ماژول ها (modules) فرمهای کاربر (user forms) و ماژول های کلاس (class modules) موجود در فایل های اکسل نیز در این پنجره لیست می شود.
یک پروژه ، همانطور که در وبسایت مایکروسافت بیان شده است ، مجموعه ای از ماژول ها است. جان والکنباخ در کتاب Excel VBA Programming for Dummies بیان می کند که یک پروژه می تواند به عنوان مجموعه ای از اشیاء که به صورت یک طرح کلی مرتب شده اند شناخته شود. هر پروژه ممکن است شامل پوشه های زیر باشد:
همانطور که در تصویر فوق می بینید ، تنها پروژه ای که ظاهر شده است ، پروژه Record Macro. xlsm است. در پوشه Microsoft Excel Objects می توانید ببینید که فایل اکسل دارای یک برگه است. در نهایت این پروژه شامل یک ماژول VBA نیز است ، بنابراین پوشه ماژول قابل مشاهده است. هیچ شیءModules , UserForm Class یا References وجود ندارد. بنابراین ، پوشه های مربوط به آنها ظاهر نمی شود.
ویرایشگر ویژوال بیسیک این امکان را می دهد که قسمت های مختلف لیست را با کلیک روی "+" یا "-" گسترش دهید یا جمع کنید. هنگامی که یک پوشه گسترش می یابد می توانید اجزای داخل آن را ببینید.
اگر Project Explorer را نمی بینید ، می توانید آن را با استفاده از روش های زیر نمایش دهید:
می توانید پنجره Project Explorer را با استفاده از یکی از روش های زیر مخفی کنید:
4- پنجره Properties: این پنجره ویژگی اشیائی که در حال حاضر در Project Explorer انتخاب شده است را نمایش می دهد و این امکان را می دهد که این ویژگی ها را ویرایش کنید. به این پنجره به ویژه هنگام ایجاد UserFormها بیشتر نیاز خواهیدداشت. اغلب از این پنجره برای تغییر نام و ویژگی Visible برگه اکسل استفاده می شود.
امکان پنهان کردن یا نمایش پنجره Properties نیز وجود دارد.
اگر ویرایشگر ویژوال بیسیک در حال حاضر پنجره Properties را نمایش نمی دهد ، یا از میانبر صفحه کلید F4 استفاده کنید و یا روی آیکن پنجره Properties در نوارابزار کلیک کنید.
برای نمایش آن ، همچنین می توانید از زبانه view گزینه Properties Window را انتخاب کنید.
این پنجره را می توانید به کمک یکی از روش های زیر مخفی کنید:
5- پنجره کد:در این پنجره ، کد VBA ضبط شده با اکسل یا کد نوشته شده توسط کاربر نمایش داده می شود. در ادامه خواهیددید که ماکروی ضبط شده شما نیز ، در پنجره کد یک ماژول ذخیره شده است. علاوه بر نمایش کد ، در واقع در این پنجره می توانید کدهای VBA را بنویسید یا ویرایش کنید.
برای هر شیء موجود در قسمت Project Explorer ، مانند فایل ها ، برگه ها ، ماژول ها و ... یک پنجره کد وجود دارد. با انجام هر کدام از موارد زیر می توانید به پنجره کد شیء مورد نظر موجود در Project Explorer ، دسترسی داشته باشید:
* دوبار کلیک روی شیء
استثناء این قانون UserFormها است. اگر روی UserForm دوبار کلیک کنید ، ویرایشگر ویژوال بیسیک UserForm را در نمای طراحی نمایش می دهد.
* انتخاب شیء و سپس ، کلیک روی گزینه Code در زبانه View
* با استفاده از میانبر صفحه کلید F7
* انتخاب شیء و کلیک روی آیکن View Code که در بالای پنجره Project Explorer ظاهر می شود.
* راست کلیک بر روی شیء و انتخاب View Code از لیست باز شده
6- پنجره Immediate: هدف اصلی این پنجره ، این است که به شما کمک کند تا متوجه خطاهای موجود در کدها شوید ، و برای چک کردن و یا اشکال زدایی کد VBA از آن استفاده کنید.یکی از راه های استفاده از این پنجره ، استفاده از دستور Print.Debug در داخل کد و سپس اجرای ماکرو است.اگر نتیجه Print.Debug را در پنجره Immediate دریافت کنیم ، می دانیم که حداقل کد تا آن خط مشکلی ندارد.
این پنجره به طور پیش فرض قابل مشاهده نیست و می توانید آن را با انجام هر یک از موارد زیر نمایش دهید:
* با استفاده از میانبر صفحه کلید Ctrl + G
* با کلیک روی زبانه view و انتخاب گزینه Immediate Window
می توانید پنجره Immediate را به کمک یکی از روش های زیر مخفی کنید:
آموزش بعدی: محل قرارگیری کدهای VBA ماکروی ضبط شده
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
اگر به یک وب سایت یا فروشگاه رایگان با فضای نامحدود و امکانات فراوان نیاز دارید بی درنگ دکمه زیر را کلیک نمایید.
ایجاد وب سایت یا