هر کس می تونه به شما اکسل یاد بده. اما من ، آنچه را که می توانيد با آن انجام دهيد ...

اشتراک در خبرنامه

جهت عضویت در خبرنامه لطفا ایمیل خود را ثبت نمائید

Captcha

آمار بازدید

  • بازدید امروز : 9
  • بازدید دیروز : 22
  • بازدید کل : 80693

خطای : Calculation is Incomplete. Recalculate before save


هنگامی که می­ خواهید فایل اکسل را ذخیره کنید ، چنانچه پیام هشدار زیر نمایش داده شد:

اگر روی دکمه Yes کلیک کنید ، پیام دوباره ظاهر می­ شود ، کلیک دکمه Cancel شما را به برگه اکسل بر­می­ گرداند ، با کلیک دکمه No فایل ذخیره نمی­ شود. اما راه حل:

مرحله اول:

  1. دکمه Cancel را کلیک کنید.
  2.  محاسبه اکسل را به صورت دستی تنظیم کنید. برای اینکار ، از زبانه Formulas ریبون و از مجموعه ابزار­های Calculation Options گزینه Manual را انتخاب کنید.

 و یا از زبانه File گزینه Options را انتخاب کنید ، در پنجره محاوره ­ای Excel Options زبانه Formulas و سپس از قسمت Calculation Options گزینه Manual را انتخاب کنید.

  1. از زبانه Formulas ریبون ، گزینه Calculate Sheet را کلیک کنید و یا دکمه­ های ترکیبی Shift+F9 را بفشارید.

دکمه save را فشار دهید ، اگر پیام را دوباره دریافت کردید ، روی Cancel کلیک کنید و از زبانه Formulas گزینه Calculate Now را امتحان کنید و یا کلید F9 صفحه کلید را بفشارید. فایل را ببندید.

ممکن است این مرحله را چند بار تکرار کنید.

مرحله دوم:

  1. فایل را باز کنید.
  2. نحوه محاسبه اکسل را به Automatic تغییر دهید.

فایل را ذخیره و ببندید. مشکل برطرف خواهد شد.

خطای : Calculation is Incomplete. Recalculate before save
انتشار : ۱۵ بهمن ۱۳۹۸

برچسب های مهم

تنظیمات امنیتی ماکرو


احتمالاً در مورد ویروس ­های رایانه ­ای می­ دانید ، که می­ تواند برخی موارد ناگوار را برای سیستم شما به وجود آورد. آیا می­ دانید ویروس­ های رایانه ­ای نیز می ­توانند در یک فایل اکسل سکونت داشته باشند؟ درسته.

در واقع نوشتن ویروس رایانه ­ای با استفاده از 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 مشکوک بسیار ساده است.

گزینه­ های دیگری (مانند تعیین پوشه امن) نیز برای بررسی سطح امنیت ماکرو­ها وجود دارد که در جلد اول مجموعه کتاب هاب برنامه نویسی با اکسل به تفضیل به آن­ها پرداخته شده است.

*جهت دریافت کتاب های آموزش برنامه نویسی با اکسل روی تصویر کلیک کنید*

 

کتاب آموزش ماکرو نویسی با اکسل

تنظیمات امنیتی ماکرو
انتشار : ۲۳ دی ۱۳۹۸

برچسب های مهم

فونت های آیکن Wingdings و Webdings


در ادامه لیستی از تمام فونت آیکن های زیر ارائه شده است:

  • Webdings font
  • Wingdings font
  • Wingdings 2 font
  • Wingdings 3 font

فونت های آیکن Wingdings و Webdings

می توانید از لینک پایین صفحه , فرمت PDF این برگه را دانلود و لذت ببرید!

چرا فونت های آیکن مهم هستند؟

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

" آیا اکسل آیکن های شرطی از پیش ساخته ای در قسمت conditional formating ندارد که این کار را انجام دهد؟"

درست است.

اما ، در حالی که آیکن های شرطی می توانند عالی باشند ، مواردی وجود دارد که در واقع آنها می توانند محدود کننده باشد و غیر حرفه ای به نظر رسند.

به توازن رنگ ها در مثال زیر توجه کنید.

فونت های آیکن Wingdings و Webdings

در جدول سمت چپ ، من از آیکن های داخلی قالب بندی شرطی اکسل استفاده کرده ام , سپس با استفاده از فونت Webdings (نویسه "n") و برخی از قالب بندی های شرطی تغییر رنگ ، جدول مشابه سمت راست را ایجاد کردم.

اولین چیزی که ممکن است توجه تان را جلب کند ، این است که دایره های قالب بندی شرطی به صورت تار دیده می­ شوند و غیر حرفه ای به نظر می رسند و ممکن است مخاطبان شما را خسته و بی هدف کند.

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

PDFقابل چاپ رایگان!

من شخصاً از یک برگه که چند وقت پیش تهیه کردم استفاده می کنم. آن را چاپ و روی دیوار کنار کامپیوترم نصب کرده ام. اگر می خواهید یک نسخه PDF از این برگه (که در ابتدای این پست نشان داده شده است) را داشته باشید ، می توانید روی لینک زیر کلیک کنید.

در مثال فوق من از فونت های آیکن استفاده کردم تا اطلاعات من حرفه ای تر و قابل درک به نظر برسد. دوست دارم شما نیز کامنت بگذارید و توصیف کنید که چگونه می خواهید در پروژه خود از فونت های آیکون استفاده کنید. تجربه و افکار شما به کل کاربران (از جمله خود من) کمک می کند تا ایده هایی در مورد چگونگی پیشرفت کار خود داشته باشیم.

فونت های آیکن Wingdings و Webdings
انتشار : ۱۹ دی ۱۳۹۸

برچسب های مهم

نحوه ایجاد و استفاده از Add-in (افزونه) اکسل


یک Add-in (افزونه) اکسل وقتی که مجبور به اجرای یک ماکرو در فایل ­های مختلف اکسل هستید می ­تواند مفید باشد.

به عنوان مثال ، فرض کنید می­ خواهید تمام سلول ­هایی که دارای خطا هستند را مشخص کنید ، به راحتی می ­توانید یک افزونه اکسل ایجاد کنید که با یک کلیک سلول های حاوی خطا را مشخص می­ کند (در تصویر متحرک زیر , افزونه به نوار ابزار دسترسی سریع اضافه شده است تا تنها با یک کلیک اجرا شود):

نحوه ایجاد و استفاده از Add-in (افزونه) اکسل

به طور مشابه ، ممکن است بخواهید یک تابع سفارشی ایجاد کنید و به جای copy و past چند باره کد از آن در تمام فایل­ های اکسل استفاده کنید.

اگر علاقه مند به یادگیری آسان VBA اکسل هستید ، مجموعه کتاب های آموزش برنامه نویسی با اکسل را بررسی کنید.

ایجاد افزونه اکسل

در این پست ، یاد خواهید گرفت که چگونه یک افزونه اکسل ایجاد کنید.

سه مرحله برای ایجاد افزونه و اضافه کردن آن به نوار ابزار دسترسی سریع وجود دارد :

  • ضبط / نوشتن کد
  • ذخیره کد به عنوان یک افزونه
  • اضافه کردن افزونه به نوار ابزار دسترسی سریع

نوشتن / ضبط کد در یک ماژول

به عنوان مثال ، از کد ساده زیر , که تمام سلول­ هایی که حاوی مقادیر خطا است را مشخص می کند , استفاده می ­کنیم:

 Sub HighlightErrors

   Selection.SpecialCells(xlCellTypeFormulas, xlErrors).Select

   Selection.Interior.Color = vbRed

End Sub

پس از نوشتن (یا کپی) کد ، مراحل زیر را دنبال کنید:

  • یک فایل اکسل باز کنید
  • کلید­های Alt + F11 را فشار دهید تا پنجره ویرایشگر ویژوال بیسیک باز شود.
  • در ویرایشگر ویژوال بیسیک ، می­ توانید اشیاء Microsoft Excel Objects (اشیاء مایکروسافت اکسل) را که در project explorer لیست شده است ببینید.

پنجره project explorer 

اگر نمی­ توانید آن را ببینید ، از زبانه View گزینه Project Explorer را انتخاب کنید.

project explorer

  • بر روی یکی از اشیاء مایکروسافت اکسل راست کلیک کرده و از لیست باز شده گزینه Insert و سپس از زیر مجموعه آن Module را انتخاب کنید. با این کار یک شیء ماژول ایجاد می­ کنید.

ایجاد ماژول در VBA

  • بر روی ماژول ایجاد شده دوبار کلیک کنید و در پنجره کد باز شده , ماکروی فوق را وارد کنید (آن را copy و paste کنید).
  • کلید­های Alt + F11 را فشار دهید تا به برگه اکسل بازگردید.

توجه: اگر یک ماکرو ضبط می­ کنید ، اکسل به طور خودکار یک ماژول ایجاد کرده و کد را در آن قرار خواهد داد.

بیایید ادامه دهیم و یک افزونه از این کد ایجاد کنیم.

ذخیره کد به عنوان یک افزونه اکسل

اگر فایلی که کد فوق را در آن وارد کرده اید ، فعال است مراحل زیر را دنبال کنید تا آن را به عنوان Add-in ذخیره و سپس آن را در اکسل نصب کنید.

  • به زبانه File بروید و روی Save As کلیک کنید.

ذخیره کد به عنوان یک افزونه اکسل

  • در پنجره محاوره ای Save As فرمت فایل را به xlam تغییر دهید. نامی که به فایل اختصاص داده اید، نام Add-in شماست. در این مثال ، فایل با نام Highlight Errors ذخیره می­ شود.

ذخیره کد به عنوان یک افزونه اکسل

  • متوجه خواهید شد که مسیر فایل ذخیره شده به طور خودکار تغییر می کند. شما می توانید از مسیر پیش فرض استفاده کنید و یا اگر می­ خواهید , آن را تغییر دهید.
  • یک فایل جدید اکسل باز کنید و به زبانه Developer بروید.
  • روی گزینه Excel Add-ins کلیک کنید.

ذخیره کد به عنوان یک افزونه اکسل

  • در پنجره محاوره­ ای Add-ins ، از طریق دکمه Browse فایلی را که ذخیره کرده بودید انتخاب و روی OK کلیک کنید. افزونه شما در لیست افزونه های در دسترس قرار خواهد گرفت , آن را انتخاب و روی OK کلیک کنید.

ذخیره کد به عنوان یک افزونه اکسل

حالا add-in فعال شده است و می توانید از آن در تمام فایل­ های اکسل استفاده کنید.

ممکن است هیچ زبانه یا گزینه­ ای در نوار ریبون نشان داده نشود ، اما افزونه در این مرحله فعال شده و کد در حال حاضر در دسترس است.

مرحله بعدی اضافه کردن افزونه به نوار ابزار دسترسی سریع است ، تا بتوانید با یک کلیک آن را اجرا کنید.

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

اضافه کردن افزونه به نوار ابزار دسترسی سریع

ضافه کردن افزونه به نوار ابزار دسترسی سریع

برای انجام این مرحله:

  • روی نقطه­ ای دلخواه از ریبون راست ­­کلیک و در لیست باز­ شده گزینه Customize Quick Access Toolbar را انتخاب کنید.

ضافه کردن افزونه به نوار ابزار دسترسی سریع

در پنجره محاوره ­ای Excel Options ، گزینه Macros را از لیست کشویی Choose commands from انتخاب کنید. متوجه خواهید شد که ماکروی HighlightErrors در کادر پایین این قسمت لیست شده است.

ضافه کردن افزونه به نوار ابزار دسترسی سریع 

  • ماکروی HighlightErrors را انتخاب و سپس دکمه Add را کلیک کنید تا ماکرو به لیست سمت راست اضافه شود.
  • برای تکمیل روند و پیاده سازی تغییرات ، دکمه OK را در گوشه پایین سمت راست پنجره محاوره ای فشار دهید.

ضافه کردن افزونه به نوار ابزار دسترسی سریع

امکان انتخاب آیکن برای این دکمه نیز وجود دارد ، برای این کار روی دکمه Modify کلیک کنید. پنجره Modify Button باز می شود. آیکن مورد نظر را انتخاب و سپس دکمه Ok را کلیک کنید.

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

ضافه کردن افزونه به نوار ابزار دسترسی سریع

اکنون برای اجرای این کد در هر فایل اکسل ، مجموعه داده­ ها را انتخاب کرده و روی آیکن ماکرو در نوار ابزار دسترسی سریع کلیک کنید.

ضافه کردن افزونه به نوار ابزار دسترسی سریع

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

احتیاط: تغییرات انجام شده توسط ماکرو را نمی توان با استفاده از Ctrl + Z لغو کرد.

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

ایجاد تابع سفارشی با استفاده از VBA


در اکسل ، بیش از 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 را ایجاد کنیم.

  • اول از همه ، ویرایشگر ویژوال بیسیک را با استفاده از کلید میانبر ALT + F11 باز کنید , یا به زبانه Developer بروید و  روی دکمه Visual Basic کلیک کنید.

دسترسی به ویرایشگر ویژوال بیسیک در اکسل

  • درج یک ماژول: روش اول- در پنجره Project Explorer پروژه ای را انتخاب کنید که می خواهید ماژول به آن اضافه شود. روی یکی از اشیاء فایل اکسل که در پنجره Project Explorer مشاهده می کنید راست کلیک کنید. در لیست باز شده مکان نما را روی گزینه Insert قرار دهید و از لیست کشویی روی Module کلیک کنید.

درج یک ماژول در اکسل

روش دوم- در پنجره Project Explorer پروژه ای را انتخاب کنید که می خواهید ماژول به آن اضافه شود. سپس از زبانه Insert نوار ابزار استاندارد گزینه Module را انتخاب کنید.

درج یک ماژول در اکسل

  • نکته بعدی تعریف یک نام برای تابع است و در اینجا من از myDayName استفاده می کنم. بنابراین شما باید Function mydayName را بنویسید.

تعریف یک نام برای تابع سفارشی در اکسل

چرا Function قبل از نام تابع؟

همانطور که در حال ایجاد یک تابع VBA هستید و از کلمه Function استفاده می کنید به اکسل می گوید که این کد به عنوان یک تابع رفتار می کند.

  • پس از آن ، شما باید مولفه هایی را برای UDF تعریف کنید. بنابراین پرانتز شروع را وارد کنید و InputDate as Date را تایپ کنید.

معرفی مولفه های تابع سفارشی در اکسل 

  • در اینجا InputDate نام مولفه است و date نوع داده آن است. همیشه بهتر است نوع داده را برای مولفه تعریف کنید.
  • اکنون ، پرانتز را ببندید و As String بنویسید. در اینجا شما نوع داده نتیجه تابع را تعریف می کنید. همانطور که ذکر شد , می خواهیم نام روز به صورت متن بازگردانده شود ، بنابراین نوع داده آن باید به صورت String باشد.

ایجاد تابع سفارشی در اکسلدر پایان ، کلید 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 چیست؟

VBA مخفف Visual Basic for Applications است. این زبان برنامه نویسی است که می توانید برای حودکار کردن وظایفی در اکسل از آن استفاده کنید.

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

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

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

  •   متن های تکراری وارد کنید. بعضی اوقات ممکن است لازم باشد متن استانداردی را در طیف وسیعی از سلول ها وارد کنید. می توانید بجای تایپ آن ماکرو ایجاد کنید.به عنوان مثال ، می توانید یک متن استاندارد را برای پیام فکس ایجاد کنید که شامل تمام اطلاعاتی است که تغییر نمی کند ، مانند نام ، آدرس و شماره تلفن. سپس هر زمان که می خواهید یک فکس جدید ارسال کنید ، به جای کپی کردن مجدد اطلاعات ، ماکرو را اجرا کنید تا متن استاندارد را وارد کنید.
  •  مراحلی را که مرتباً در اکسل انجام می دهید ، خودکار کنید. به عنوان مثال ، ممکن است نیاز به تهیه گزارش فروش پایان ماه داشته باشید. می توانید یک ماکرو ایجاد کنید تا این کار را برای شما انجام دهد.
  • عملیات تکراری را خودکار کنید. اگر نیاز به انجام کاری در فایل های مختلف دارید ، می توانید هنگام انجام آن برای بار اول ، یک ماکرو ضبط کنید. سپس به ماکرو اجازه دهید عمل خود را در فایل های دیگر تکرار کند.
  • یک دستور سفارشی ایجاد کنید. به عنوان مثال ، می توانید چندین دستور اکسل را با هم ترکیب کنید ,که تنها با فشردن یک کلید صفحه کلید یا کلیک ماوس اجرا شوند.
  • می توانید برای کاربرانی که اطلاعات زیادی در مورد اکسل ندارند ، پیشاپیش الگوهای ساده ای  ایجاد کنید. به عنوان مثال ، می توانید یک الگوی هزینه ماهانه بدون خطا را تنظیم کنید.
  • می توانید یک تابع جدید ایجاد کنید. اگرچه اکسل طیف گسترده ای از توابع داخلی را دارد ، اما می توانید توابع سفارشی نیز بسازید که فرمول های شما را بسیار ساده می کند.
  • برنامه های کاملی مبتنی بر ماکرو ایجاد کنید. می توانید با استفاده از ماکروی اکسل پنجره های محاوره ای سفارشی ایجاد کرده و دستورات جدیدی را به ریبون اکسل اضافه کنید.
  • افزونه (add-in) های سفارشی برای اکسل ایجاد کنید. بیشتر افزونه های موجود برای اکسل با ماکروهای اکسل ساخته شده اند.

ماکروی اکسل چیست؟

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

در بسیاری از موارد ، کاربران تمایل دارند از عبارات کد VBA و ماکرو به صورت جایگزینی برای هم استفاده کنند.

چگونه می توان یک ماکرو را در اکسل ضبط کرد؟

حتی اگر چیزی در مورد VBA نمی دانید ، باز هم می توانید برخی از ماکرو ها را ایجاد و کارهای خود را خودکار کنید.

می توانید این کار را با ضبط ماکرو انجام دهید.

اکسل هنگامی که ماکرویی ضبط می کنید ، اقداماتی را که انجام می دهید ، تماشا می کند و آن را به زبانی که می فهمد یادداشت می کند ، که VBA است.

اکنون ، هنگامی که ضبط را متوقف می کنید ، ماکرو را ذخیره کرده و آن را اجرا کنید ، اکسل به سادگی به کد VBA تولید شده برمی گردد و دقیقاً همان مراحل را دنبال می کند.

این بدان معناست که حتی اگر شما چیزی در مورد VBA نمی دانید ، می توانید با کمک اکسل مراحل خود را یکبار انجام دهید و بعداً دوباره از این موارد استفاده کنید.

می توانید با استفاده از گزینه Record Macro که در زبانه Developer قرار دارد ، یک ماکرو ضبط کنید.

ضبط ماکرو در اکسل

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

می توانید اطلاعات بیشتری در مورد ضبط یک ماکرو را اینجا بخوانید.

ضبط ماکرو در اکسل چه محدودیت هایی دارد؟

اگر چه ضبط ماکرو یک روش عالی برای تولید سریع کد است ، محدودیت های زیر را دارد:

  • نمی توانید کد را بدون انتخاب شیء اجرا کنید. اگر می خواهید ضبط کننده ماکرو به برگه اکسل بعدی برود و تمام سلول های پر شده ستون A را هایلایت کند ، بدون اینکه از برگه فعلی خارج شوید ، قادر به انجام این کار نخواهید بود. اگر من از شما بخواهم این کار را انجام دهید ، حتی شما نیز قادر به انجام این کار نخواهید بود (بدون خارج شدن از برگه فعلی) و اگر شما نمی توانید خودتان این کار را انجام دهید ، ضبط کننده ماکرو اقدامات شما را چگونه ضبط کند. در چنین مواردی ، باید به صورت دستی کد را ایجاد یا ویرایش کنید.
  • نمی توانید با ابزار ضبط ماکرو توابع سفارشی ایجاد کنید. با استفاده از VBA ، می توانید توابع سفارشی ایجاد کنید که می تواند در برگه اکسل همانند توابع داخلی اکسل از آنها استفاده کنید. می توانید با نوشتن کد به صورت دستی این توابع را ایجاد کنید.
  • نمی توانید کدها را بر اساس رخدادهایی اجرا کنید. در VBA می توانید از بسیاری از رخدادها - مانند باز کردن یک فایل اکسل ، ایجاد یک برگه جدید ، دوبار کلیک روی یک سلول و غیره ، برای اجرای یک کد مرتبط با آن رخداد استفاده کنید. برای این کار نمی توانید از ابزار ضبط ماکرو استفاده کنید.
  • با ضبط کننده ماکرو نمی توانید حلقه ی تکرار ایجاد کنید. هنگامی که به طور دستی کد را وارد می کنید ، می توانید قدرت حلقه ها را در VBA (مانند For Next، For Each Next، Do While، Do until) اعمال کنید. اما هنگامی که یک ماکرو ضبط می کنید ، نمی توانید این کار را انجام دهید.
  • نمی توانید شرایط را تجزیه و تحلیل کنید: می توانید با استفاده از ضبط کننده ماکرو ، شرط های موجود در کد را بررسی کنید. اگر یک کد VBA را به صورت دستی می نویسید ، می توانید از دستورهای IF Then Else استفاده کنید تا یک وضعیت را تجزیه و تحلیل کرده و یک کدی را در صورت برقرار بودن شرط اجرا کنید (یا در صورت برقرار نبودن شرط کد دیگری را اجرا کنید).

UDF در VBA اکسل چیست؟

UDF یک تابع تعریف شده توسط کاربر در VBA است , که توابع سفارشی نیز گفته می شود.

با استفاده از VBA ، می توانید یک تابع سفارشی (UDF) ایجاد کنید که می تواند دقیقاً مانند توابع برگه اکسل استفاده شود.

در مواردی که توابع برگه اکسل کافی نباشد ، توابع سفارشی مفید هستند. در چنین مواردی ، می توانید UDF های دلخواه خود را تهیه کنید تا نیازهای خود را تأمین کنید.

رخدادها در VBA چیست؟

در VBA ، رخداد عملی است که می تواند باعث اجرای ماکروی مشخص شده شود.

به عنوان مثال ، هنگامی که فایل اکسل جدیدی باز می کنید ، این یک رخداد است. وقتی یک برگه جدید اکسل ایجاد می کنید ، یک رخداد است. وقتی روی سلولی دو بار کلیک می کنید ، یک رخداد است.

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

اکسل به محض اینكه متوجه می شود رخدادی اتفاق افتاده است به طور خودکار این كار را می كند. تنها نیاز به نوشتن کد و اختصاص آن به رخداد صحیح است.

برخی از حلقه های مفید VBA چیست؟

حلقه های زیر در VBA وجود دارد:

  • For Next
  • Do While
  • Do Until
  • For Each Next

راه های مختلف اجرای یک ماکرو در اکسل چیست؟

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

  • ماکرو را به یک شکل اختصاص دهید.
  • ماکرو را به یک دکمه اختصاص دهید.
  • ماکرو را از ریبون (زبانه Developer) اجرا کنید.
  • ماکرو را از ویرایشگر ویژوال بیسیک اجرا کنید.
  • ماکرو را با استفاده از میانبر صفحه کلید ، اجرا کنید.
  • ماکرو را با استفاده از ماکروی دیگر فراخوانی کنید.

UserForm چیست؟

UserForm یک پنجره محاوره ای است که می توانید در VBA طراحی و ایجاد کنید.

پس از ایجاد ، به روش های مختلفی در برگه اکسل قابل استفاده است:

  • می توانید از آن برای دریافت ورودی از کاربر استفاده کنید.
  • می توانید یک فرم تهیه کرده و داده ها را در اکسل ضبط کنید.
  • می توانید دکمه هایی به UserForm اضافه کنید و گزینه هایی را در اختیار کاربر قرار دهید. همچنین می توانید کدی به این دکمه ها اعمال کنید تا هر بار که کاربر روی یک دکمه کلیک کند ، یک ماکرو خاص اجرا شود.

افزونه (add-in) چیست؟

افزونه فایلی است که می توانید آن را با اکسل بارگیری کنید.

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

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

یکی دیگر از مزایای افزونه ها این است که می توانید فایل افزونه را با دیگران به اشتراک بگذارید. تنها کاری که باید انجام شود این است که با نصب آن ، همان ماکروها را در دسترس خواهند داشت.

آشنایی با ماکرو VBA


ماکرو چیست؟

ماکرو دنباله ای از دستورالعمل ها است. این توالی دستورالعمل ها بعضی از جنبه های اکسل را که بطور منظم انجام می دهید ، خودکار می کند. هنگامی که با استفاده از ماکرو برخی از کارهای خود در اکسل را به صورت خودکار انجام می دهید ، می توانید با کارایی بیشتر و با خطاهای کمتری عمل کنید. به عنوان مثال ، می توانید یک ماکرو برای قالب بندی و چاپ گزارش فروش پایان ماه خود ایجاد کنید. بعد از ایجاد ماکرو ، می توانید ماکرو را اجرا کنید تا بسیاری از کارهای زمان­ بر را بطور خودکار انجام دهید.

برای ایجاد و استفاده از ماکروهای ساده VBA نیازی به صرف انرژی ندارید. گاه به گاه می توانید ابزار ضبط کننده ماکروی اکسل را روشن کنید: اکسل اقدامات شما را ضبط کرده و آنها را به یک ماکروی VBA تبدیل می کند. هنگام اجرای این ماکرو ، اکسل دوباره این اقدامات را انجام می دهد.

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

 با این حال ، کاربران پیشرفته ، می توانند کدی را بنویسند که به اکسل می گوید وظایفی را که نمی توان با ضبط کننده ماکرو ثبت کرد , انجام دهد. به عنوان مثال:

 کارهایی که می توانید با ماکروی VBA انجام دهید

 VBA یک زبان برنامه نویسی بسیار غنی است و هزاران کاربرد دارد. چند مورد در زیر ذکر شده است که می توانید با ماکروی VBA انجام دهید.

  •  متن های طولانی و تکراری وارد کنید. بعضی اوقات ممکن است لازم باشد متن استانداردی را در طیف وسیعی از سلول ها وارد کنید. می توانید بجای تایپ آن , ماکرویی ایجاد کنید. به عنوان مثال ، می توانید یک متن استاندارد را برای پیام فکس ایجاد کنید که شامل تمام اطلاعاتی است که تغییر نمی کند ، مانند نام ، آدرس و شماره تلفن. سپس هر زمان که می خواهید یک فکس جدید ارسال کنید ، لازم است که به جای تایپ کردن مجدد اطلاعات ، ماکرو را اجرا کنید.
  •  مراحلی را که مرتباً در اکسل انجام می دهید ، خودکار کنید. به عنوان مثال ، ممکن است نیاز به تهیه گزارش فروش پایان ماه داشته باشید. می توانید یک ماکرو ایجاد کنید تا این کار را برای شما انجام دهد.
  • عملیات تکراری را خودکار کنید. اگر نیاز به انجام کاری در فایل های مختلف دارید ، می توانید هنگام انجام آن برای بار اول ، یک ماکرو ضبط کنید. سپس به ماکرو اجازه دهید این عمل را در فایل های دیگر تکرار کند.
  • یک دستور سفارشی ایجاد کنید. به عنوان مثال ، می توانید چندین دستور اکسل را با هم ترکیب کنید ,که تنها با فشردن یک کلید از صفحه کلید یا کلیک ماوس اجرا شوند.
  • می توانید برای کاربرانی که اطلاعات زیادی در مورد اکسل ندارند ، پیشاپیش الگوهای ساده ای ایجاد کنید. به عنوان مثال ، می توانید یک الگوی هزینه ماهانه بدون خطا تنظیم کنید.
  • می توانید یک تابع جدید ایجاد کنید. اگرچه اکسل طیف گسترده ای از توابع داخلی را دارد ، اما می توانید توابع سفارشی نیز بسازید که فرمول های شما را بسیار ساده می کند.
  • برنامه های کاملی مبتنی بر ماکرو ایجاد کنید. می توانید با استفاده از ماکروی اکسل پنجره های محاوره ای سفارشی ایجاد کرده و دستورات جدیدی را به ریبون اکسل اضافه کنید.
  • افزونه (add-in) های سفارشی برای اکسل ایجاد کنید. بیشتر افزونه های موجود برای اکسل با ماکروهای اکسل ساخته شده اند.

  توجه: ممکن است VBA را با VB اشتباه بگیرید (VB مخفف ویژوال بیسیک است). VB یک زبان برنامه نویسی است. این امکان را به شما می دهد تا برنامه های اجرایی (فایل های EXE) ایجاد کنید. اگرچه VBA و VB اشتراک زیادی دارند ، اما زبان های برنامه نویسی متفاوتی هستند.

در آموزش های بعدی  ، ماکروهای VBA را  عمیق تر بررسی خواهیم کرد. منتظر باشید.

 آموزش بعدی: اضافه کردن زبانه Developer به ریبون اکسل

*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*

 

کتاب آموزش ماکرو نویسی با اکسل

آشنایی با ماکرو  VBA
انتشار : ۹ مهر ۱۳۹۸

برچسب های مهم

نحوه یادگیریVBA اکسل


ممکن است از خودتان بپرسید , چرا باید VBA اکسل را یاد بگیرم!

بیایید با یک مثال شروع کنیم ...

چند ماه پیش ، در یک گروه فیس بوک ، شخصی درخواست کمک کرد. وی می خواست سیستمی با معیارهای زیر ایجاد کند:

  1. این فرد می خواست در فایل خود تعداد ی برگه ایجاد کند (ممکن است تعداد 50 ، 60 یا 100 یا هر شماره ای باشد) ،
  2. سپس ، الگوی نام گذاری را برای برگه ها مشخص کند,
  3. و تمام موارد فوق فقط با یک کلیک انجام شود.

من به او کمک کردم و ماکرویی نوشتم ، وی آن را اجرا کرد و تنها با یک کلیک می توانست تمام آن کارها را انجام دهد.

اکسل هیچ راهی برای انجام کارهای فوق ارائه نمی دهد. شما باید کد بنویسید و باید با VBA اکسل کار کنید.

نحوه یادگیری VBA اکسل

یادگیری و کد نویسی در VBA (در واقع در هر زبان برنامه نویسی با اصلاحات جزئی) شما را ملزم به رعایت این مراحل می کند:

  1. قبل از هر چیز با محیط VBA اکسل آشنا شوید: نحوه نمایش زبانه developer ، باز کردن پنجره Code ، ذخیره یک فایل حاوی ماکرو و ....
  2. حال باید بدانید که چگونه با استفاده از ضبط کننده ماکرو می توانید برای انجام برخی کارها کدی تولید کنید (یادگیری این تکنیک بعداً هنگام نوشتن کدهای پیچیده به شما کمک می کند).
  3. اکنون کتابی در رابطه با آموزش VBA اکسل تهیه کنید. تکرار می کنم ، شما ساختار VBA را به صورت مرحله به مرحله یاد خواهید گرفت. این مهمترین چیز در هر زبان برنامه نویسی است: یادگیری ساختار و آشنایی با اصطلاحات و دستورات مهم ، مانند اشیاء ، مجموعه ها ، ویژگی اشیاء ، شیوه های عمل ، متغیرها و دستورهای (IF... THEN ، FOR ...NEXT، WITH... END WITH  SELECT CASE).
  4.  اکنون یاد بگیرید چگونه UDF (توابع تعریف شده توسط کاربر ، توابع ایجاد شده توسط شما) با یک یا دو مولفه یا دامنه ای از مولفه ها ایجاد و استفاده کنید.
  5. اکنون بیاموزید که فرم های کاربری (User Forms) ایجاد و استفاده کنید.
  6. مرحله آخر: یاد بگیرید که با رخداد­های اکسل کار کنید.

اکنون اصول را می دانید. این همش نیست. شما باید تمرین و کد نویسی کنید ، سپس کد موجود را مهندسی کنید.

من از تکنیکی برای یادگیری استفاده می کنم:

تکنیک من این است: کد را تجسم می کنم:

 کل RAM (حافظه کامپیوتر) را به عنوان مکانی برای سلول ها تجسم می کنم. سلولی که در آن می توانید یک شماره یا متن یا چیز دیگری ذخیره کنید. در اینجا مراحلی را برای تجسم کد استفاده می کنم:

  1. شروع به خواندن کد می کنم.
  2.  متغیرها را در یک کاغذ یا سلول های یک برگه اکسل وارد می کنم.
  3. اکنون مشاهده می کنم که مقادیر موجود در سلول ها با پیشرفت اجرای کد چگونه در حال تغییر است.
  4. وقتی یک سلول مقادیر قدیمی خود را تغییر می دهد ، روی آن خط می کشم و مقادیر جدید را بالاتر از مقادیر قدیمی می نویسم.
  5. به این ترتیب ، وقتی تمام کد اجرا شد ، کد را کاملاً می فهمم.

پس از مطالعه برخی از کدها به روش فوق ، قادر خواهید بود به همان روش کدنویسی کنید.

اگر تجربه قبلی در زمینه کد نویسی ندارید ، صریحاً بگویم ، ممکن است این موضوعات کمی پیچیده به نظر برسد. اما باور کنید ، اگر خودتان را با آنها درگیر کنید ، آن را آسان خواهید یافت و شروع به یادگیری مفاهیم برنامه نویسی خواهید کرد.

*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*

  کتاب آموزش ماکرو نویسی با اکسل

اضافه کردن زبانه Developer به ریبون اکسل


آموزش قبلی: ماکرو چیست

حتی اگر در دنیای VBA تازه ­کار هستید ، می­ توانید به ­راحتی یک ماکرو ضبط و بعضی از کارهایتان را خودکار کنید. این بخش ، تمام آنچه را که برای شروع ، ضبط و استفاده از ماکرو­ها در اکسل باید بدانید پوشش می­ دهد.

آماده ­اید اولین ماکروی خود را ایجاد کنید؟

پس بیایید مقدمات کار را آماده­ کنیم.

1- اضافه کردن زبانه Developer به ریبون اکسل

اولین گام برای ضبط یک ماکرو ، اضافه کردن زبانه Developer به ریبون اکسل است. مراحل زیر را دنبال کنید:

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

 اضافه کردن زبانه Developer به ریبون اکسل

با انجام مراحل فوق زبانه Developer به ریبون اضافه خواهد ­شد.

اضافه کردن زبانه 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 و یا دکمه توقف ضبط که در سمت چپ نوار وضعیت ظاهر می ­شود ، کلیک کنید.

مراحل ضبط ماکرو با اکسل

آموزش بعدی: مثالی از نحوه ضبط ماکرو با اکسل

*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*

کتاب آموزش ماکرو نویسی با اکسل

مثالی از نحوه ضبط ماکرو با اکسل


آموزش قبلی: مراحل ضبط ماکرو با اکسل

مثالی از نحوه ضبط ماکرو با اکسل

اگر مراحل توضیح داده شده در آموزش قبلی را دنبال کنید ، می­ توانید شروع به ایجاد ماکروهای خود کنید.

در این آموزش ، ماکرویی ضبط خواهد شد که موارد زیر را انجام می­ دهد:

  • عبارت This is the best Excel tutorial را به سلول فعال وارد می­ کند.
  • عرض ستون سلول فعال را به صورت خودکار تنظیم می ­کند.
  • رنگ زمینه سلول فعال را به قرمز تغییر می­ دهد.
  • رنگ فونت سلول فعال را به آبی تغییر می­ دهد.

در این مثال ، در پنجره محاوره ­ای RecordMacro از پارامترهای توضیح داده شده در مراحل هفت گانه آموزش قبلی ، استفاده می­ کنیم. به عبارت دیگر:

نام اختصاص­ یافته به ماکرو Best_Excel_Tutorial میانبر صفحه کلید Ctrl+Shift+B و محل ذخیره ماکرو This Workbook خواهد بود.

  1. سلولA1 را انتخاب کنید (سلول­ فعال).
  2. روی زبانه Developer کلیک کنید.
  3. دکمه Use Relative References را کلیک کنید تا فعال شود.
  4. سپس روی دکمه Record Macro کلیک کنید.
  5. در پنجره محاوره­ ای قسمت­ های مورد نیاز را پر کنید.
  6. روی دکمه OK کلیک کنید.
  7. مجددا سلول A1 (سلول فعال) را انتخاب کنید.
  8. متن را داخل سلول تایپ کنید و...

ادامه مراحل ضبط ماکرو را می ­توانید از تصویر متحرک زیر ، دنبال کنید:

آموزش ماکرونویسی با اکسل

تبریک می­ گویم! شما اولین ماکروی اکسل خود را ایجاد کرده ­اید!

اکنون می­ توانید این ماکرو را اجرا کنید.

سلولی به غیر از سلول A1 انتخاب کنید. با استفاده از میانبر صفحه کلید Ctrl+Shift +B ماکرو را اجرا کنید (کلید Ctrl و Shift را نگه دارید و سپس کلید B را فشار دهید). این میانبری بود ، که هنگام ضبط ماکرو به آن اختصاص دادیم ( برای اجرای ماکرو­ها ، چند روش دیگر نیز وجود دارد).

چه اتفاقی می ­افتد؟ آیا نشانگر ماوس به سلول A1 بازگشت.

چنین نمی­ شود ، زیرا ماکرو را در حالت آدرس نسبی ضبط کرده ­اید. بنابراین مکان­ نما نسبت به سلول فعال فعلی (سلولی که انتخاب می­ کنید) عمل می­ کند.

در واقع چون در مرحله 7 ضبط این ماکرو ، سلول­ فعال را انتخاب کردید ، هر سلولی را انتخاب کنید ماکرو در آن سلول اجرا خواهد شد.

با اجرای این ماکرو تمام مراحلی که هنگام ضبط ماکرو انجام دادید ، در کمتر از یک ثانیه انجام می ­شود.

تمرین:

  1. مراحل فوق را با انتخاب سلول دیگری به غیر از A1 ، در مرحله 7 ، تکرار کنید.

چه اتفاقی می ­افتد؟

  1. مراحل فوق را در حالت ضبط ماکرو با آدرس مطلق نیز تکرار کنید.

امیدوارم بتوانید نخستین ماکروی خود را ایجاد­ کنید ، حداقل متوجه شوید که اصول ایجاد ماکروی اکسل ، چنانچه در ابتدا به نظر می ­رسد ، چندان پیچیده نیست.

ماکرویی که ایجاد کردید یک مثال بسیار ساده بود.

با این حال ، اطلاعاتی که ارائه شد ، جهت ایجاد طیف گسترده­ ای از ماکروها ، برای کاربران مبتدی کافی خواهد بود. جان والکنباخ در کتاب Excel 2013 Bible توضیح می­ دهد که:

در بیشتر موارد ، می­ توانید اقدامات خود را به عنوان یک ماکرو ضبط و سپس به سادگی ماکرو را اجرا کنید؛ نیازی به درک کدی که به طور خودکار ایجاد شده است ندارید.

بنابراین ، بار دیگر ، برای ایجاد نخستین ماکروی خود ، تبریک می­ گوییم!

آموزش بعدی: مواردی که ضبط کننده ماکرو قادر به انجام آن نیست

*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*

 

کتاب آموزش ماکرو نویسی با اکسل

مثالی از نحوه ضبط ماکرو با اکسل
انتشار : ۶ مهر ۱۳۹۸

برچسب های مهم

ورود به دنیای VBA


آموزش قبلی: مثالی از نحوه ضبط ماکرو با اکسل

مرحله بعدی در ایجاد ماکروهای اکسل ، ورود به دنیای VBA است.

دوباره به نظر جان والکنباخ که در آموزش قبلی ذکر شد بر­­گردیم ؛ این نظر بدان معنا نیست که نیازی به یادگیری برنامه­ نویسی ندارید.

اگر متعهد به استفاده از قدرت ماکروی اکسل هستید ، باید VBA را یاد بگیرید.

کد­های نوشته شده با استفاده از VBA ، به دلایل مختلف قدرتمندتر از ماکروی ایجاد شده با ضبط کننده ماکرو است ، یکی از مهم­ترین این دلایل ، این است که با استفاده از کد VBA می­ توانید کارهایی را انجام دهید که با استفاده از ضبط کننده ماکرو نمی­ تواند ثبت شوند.

مواردی که ضبط کننده ماکرو قادر به انجام آن نیست

درکتاب Excel 2013 Bible ، جان والکنباخ فهرستی از نمونه کارهایی که نمی­ توان آنها را ضبط کرد  مانند نمایش پنجره ­های محاوره­ ای ، پردازش داده ­های چند فایل اکسل ، ایجاد add-in و...لیست کرده است.

درکتاب Excel 2013 VBA and Macros بیل ­ژیلن و تریسی سیرستاد بیان می­ کنند:

مهم است بدانید که ضبط کننده ماکرو هرگز قصد دکمه AutoSum را به ­طور صحیح ثبت نمی­ کند.

در ادامه لیستی از کار­هایی که نمی­ توان با ضبط کننده ماکرو انجام داد ارائه شده است:

  • با ضبط کننده ماکرو نمی­توانید یک تابع سفارشی ایجاد کنید ؛ با استفاده از VBA، می­ توانید توابع سفارشی ایجاد کنید که می­ توان از آن­ها مانند سایر توابع داخلی اکسل استفاده کرد.
  • نمی­توانید کدها را بر اساس یک رخداد اجرا کنید ؛ در VBA می­ توانید از بسیاری از رخداد­ها مانند باز شدن فایل اکسل ، اضافه کردن یک برگه ، دوبار ­کلیک روی سلول و ... برای اجرای کد مرتبط با آن رخداد استفاده کنید.
  • نمی­ توانید با ابزار ضبط کننده ماکرو حلقه تکرار ایجاد کنید ؛ هنگامی که به صورت دستی کدنویسی می­ کنید ، می­ توانید از حلقه­ های تکرار (از جمله For Next، Do While، untilDo) در VBA استفاده کنید. اما با ضبط کننده ماکرو نمی­ توانید این کار را انجام دهید.
  • نمی ­توانید شرایط را تجزیه و تحلیل کنید ؛ اگر یک کد VBA را به صورت دستی بنویسید ، می­ توانید با استفاده از دستور IF Then Else برای تجزیه و تحلیل یک شرط استفاده کنید و اگر شرط برقرار بود کد اجرا شود (یا اگر برقرار نباشد کد دیگری اجرا شود).
  • هنگامی که یک ماکرو ضبط می­ کنید ، هیچ مولفه­ ای نخواهید داشت ؛ یک فرآیند می­ تواند از مولفه­ های ورودی استفاده کند که برای انجام کاری در  ماکرو استفاده می­ شود. در حالی که با ضبط کننده ماکرو این کار را نمی­ توان انجام داد ، زیرا ماکرو­های ضبط شده مستقل هستند و به هیچ یک از ماکرو­های موجود دیگر متصل نیستند

آموزش بعدی:دسترسی به محیط ویرایشگر ویژوال بیسیک

 *جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*

 

کتاب آموزش ماکرو نویسی با اکسل

ورود به دنیای VBA
انتشار : ۶ مهر ۱۳۹۸

برچسب های مهم

دسترسی به محیط ویرایشگرویژوال بیسیک


آموزش قبلی: ورود به دنیای VBA

برای شروع یادگیری نحوه برنامه نویسی با اکسل ، بهتر است نگاهی به دستورات (یا کدهایی) که هنگام ضبط ماکرو تولید کرده ­اید داشته باشیم.

برای انجام این کار ، باید ویرایشگر ویژوال بیسیک (VBE) را باز­کنید. راه­ های مختلفی برای ظاهر­کردن ویرایشگر ویژوال بیسیک در اکسل وجود دارد:

  • با استفاده از میانبر صفحه کلید (ساده­ ترین و سریع ­ترین راه)

ساده­ ترین راه برای باز­کردن ویرایشگر ویژوال بیسیک این است که از میانبر صفحه کلید ALT+F11 استفاده کنید (کلید ALT را نگه دارید وF11 را فشار دهید). این میانبر به صورت یک حلقه عمل می ­کند بنابراین هنگامی که مجددا از آن استفاده ­کنید به برنامه اکسل باز خواهید گشت (بدون بستن ویرایشگر ویژوال بیسیک).

  • با استفاده از زبانه Developer

زبانه Developer را انتخاب و در گروه ابزار­های Code ، روی دکمه Visual Basic کلیک کنید.

دسترسی به ویرایشگر ویژوال بیسیک در اکسل

محیط ویرایشگر ویژوال بیسیک ظاهر می­ شود که تقریبا به شکل زیر دیده می­ شود:

دسترسی به محیط ویرایشگر ویژوال بیسیک

محیط ویرایشگر ویژوال بیسیک قابل تنظیم است ، بنابراین ممکن است پنجره­ایی که در رایانه شما نمایش داده می­ شود کمی متفاوت­­تر از تصویر بالا باشد.

اولین بار که این پنجره را دیدم ، سوالم این بود که ، کد­های ایجاد شده ماکرو کجا قرار گرفته ­اند؟

ممکن است شما هم این سؤال را داشته باشید ، پس اجازه دهید پاسخ دهیم.

  آموزش بعدی: آناتومی محیط ویرایشگر ویژوال بیسیک

*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*

 

کتاب آموزش ماکرو نویسی با اکسل

مبانی ماکرونویسی جلسه (8)


متغیرهای شیء

متغیرهای شیء چند شباهت با متغیرهای عادی دارند. در جلسه قبلی یاد گرفتید که چگونه با متغیرهای عادی کار کنید.

برای اهداف این دوره ، تفاوت اصلی در داده هایی است که توسط متغیر ذخیره و نشان داده می شوند. با استفاده از متغیرهای شیء:

  • آدرس شیء را ذخیره می کنید ؛ و
  • نمای کلی از اشیاء مدل اکسل را نشان می­ دهید.

اعلان متغیرهای شیء

قواعدی که در مورد اعلان متغیر شیء اعمال می شوند ، به طور قابل ملاحظه ای شبیه به آنهایی است که در یک دستور تعریف متغیر عادی اعمال می شوند.

بنابراين ، ساختار پایه دستور اعلان یک متغیر شیء به شرح زير است:

  1. یک کلمه کلیدی (Dim ، Private ، Public یا Static)
  2. نام متغیر شیء
  3. کلید واژه As و به دنبال آن , نوع داده متغیر شیء

ساختار زیر یک دستور تعریف متغیر شیء است:

نام متغیر شیء کلمه کلیدی As نوع داده

 تفاوت اصلی اعلان یک متغیر عادی و اعلان متغیر شیء در نوع داده (آیتم شماره 3) است. هنگام اعلان یک متغیر شیء ، نوع داده را به عنوان Object یا حتی بهتر از این , کلاس شیء که متغیر شیء را نشان می­ دهد مشخص می کنید (به عنوان مثال ، Workbook ، Worksheet یا Range)

نحوه تخصیص داده به متغیر شیء

برای اختصاص داده به یک متغیر شیء ، از یک دستور انتساب با ساختار زیر استفاده می کنید:

Set عبارت تخصیص=نام متغیر شیء

ساختار دستور تخصیص که در هنگام کار با یک متغیر شیء مورد استفاده قرار می گیرد ، شبیه دستور تخصیصی است که در هنگام کار با یک متغیر عادی استفاده می کنید. تفاوت اصلی آنها ، در کلید واژه Set است.

در جلسه بعدی ، نحوه اتصال فرآیند ها به یکدیگر برای انتقال داده با استفاده از فراخوانی آنها را یاد می گیرید.

*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*

کتاب آموزش ماکرو نویسی با اکسل

آناتومی محیط ویرایشگر ویژوال بیسیک


 آموزش قبلی: دسترسی به محیط ویرایشگر ویژوال بیسیک

در محیط ویرایشگر ویژوال بیسیک چه می­ بینید.

گزینه­ ها و بخش­های مختلفی وجود دارد که در ابتدا ممکن است کاملا جدید باشند. می­ توانید این محیط را به 6 بخش اصلی تقسیم کنید:

محیط ویرایشگر ویژوال بیسیک

  1. نوار منو:این قسمت ، شامل چندین زبانه است. هر یک از این زبانه ­ها نیز حاوی دستوراتی است که می­ توانید آنها را برای تعامل و کار با اجزای مختلف ویژوال بیسیک بکار ببرید.یکی از نکاتی که هنگام کلیک بر روی هر زبانه متوجه خواهید شد ، این است که برخی از دستور­ها دارای میانبر صفحه کلید هستند که در آن نمایش داده می­ شود. برای مثال ، به زبانه Debug نگاهی بیندازید:

آناتومی محیط ویرایشگر ویژوال بیسیک

2- نوار ابزار: مانند نوار­ابزار دسترسی­ سریع صفحه نمایش اکسل است که شامل برخی از گزینه­ های مفید بوده و می ­توانید گزینه ­های بیشتری نیز به آن اضافه کنید. مزیت آن این است که تنها با یک کلیک می ­توانید از ابزارهای آن استفاده کنید.نوار ­ابزار نمایش داده شده در تصویر فوق ، نوار ابزار استاندارد و پیش­ فرض ویرایشگر ویژوال بیسیک است.با این وجود 3 نوار ­ابزار دیگر نیز وجود دارد:

  • نوار ابزار Debug
  • نوار ابزار Edit
  • نوار ابزار UserForm

علاوه بر موارد فوق ، ویرایشگر ویژوال بیسیک امکان می­ دهد که نوار ابزار را ، به چند روش سفارشی کنید.

می­ توانید تمام این تنظیمات را با رفتن به زبانه View و انتخاب گزینه Toolbars تغییر دهید. ویرایشگر ویژوال بیسیک یک لیست با 4 نوار ­ابزار مختلف و گزینه ه­ایی برای دسترسی به پنجره محاوره ­ای Customize را نمایش می­ دهد.

آناتومی محیط ویرایشگر ویژوال بیسیک

نوار ابزاری که با نماد تیک در سمت چپ آن مشخص شده است در حال حاضر توسط اکسل نمایش داده می­ شود. می­ توانید این نماد را برای افزودن یا پنهان کردن یک نوار ابزار خاص ، با کلیک بر روی نام آن ، اضافه یا حذف کنید. همچنین می ­توانید چند نوار­ ابزار را به ویرایشگر ویژوال بیسیک اضافه کنید. اگر روی Customize کلیک کنید ، ویرایشگر ویژوال بیسیک پنجره محاوره­ ای Customize را نشان می­ دهد که به شکل زیر است:

آناتومی محیط ویرایشگر ویژوال بیسیک

با استفاده از این پنجره ، می­ توانید جنبه­ های اضافی مربوط به نوار ابزار که توسط ویرایشگر ویژوال بیسیک نمایش داده می شود را کنترل کنید. برای مثال، این پنجره شامل ، امکان کنترل نمایش نوار ابزار ، منوی میانبر یا اضافه کردن نوار ابزار جدید است.

همچنین می­ توانید با کلیک بر روی فلش کوچک در انتهای نوار ابزار نیز ، با حذف یا اضافه کردن گزینه­ ها آن را سفارشی کنید.با کلیک کردن روی سه نقطه خاکستری (ابتدای نوار ابزار) و کشیدن آن می­ توانید نوار ابزار را حرکت دهید.

آناتومی محیط ویرایشگر ویژوال بیسیک

3- پنجرهProject Explorer: این قسمت محلی است که می ­توانید لیستی از تمام فایل­ های اکسل باز و برگه­ های آنها و افزونه ­هایی که بارگذاری می ­شوند را در آن مشاهده کنید. به عنوان مثال ، اگر یک فایل با 3 برگه داشته باشید ، در این پنجره نشان داده می ­شود. هر فایل اکسل و یا افزونه ه­ایی که در حال حاضر باز است در Project Explorer به عنوان یک Project (پروژه) جداگانه ظاهر می ­شود.

ماژول­ ها (modules) فرم­های­ کاربر (user forms) و ماژول­ های­­­ کلاس (class modules) موجود در فایل­ های اکسل نیز در این پنجره لیست می­ شود.

یک پروژه ، همان­طور که در وب­سایت مایکروسافت بیان شده است ، مجموعه ­ای از ماژول ها است. جان والکنباخ در کتاب Excel VBA Programming for Dummies بیان می­ کند که یک پروژه می ­تواند به عنوان مجموعه ­ای از اشیاء که به صورت یک طرح کلی مرتب شده ­اند شناخته شود. هر پروژه ممکن است شامل پوشه ­های زیر باشد:

  • یک پوشه به نام Microsoft Excel Objects (اشیاء مایکروسافت اکسل) ، که همیشه در هر پروژه ظاهر می­ شود. این پوشه معمولا شامل 2 نوع شیء است :
  1. برگه های موجود در فایل­ اکسل مربوطه. به عبارت دیگر هر یک از برگه ­ها یک شیء جداگانه محسوب می ­شود.
  2. خود فایل اکسل ، که ThisWorkbook نامیده می­ شود.
  • پوشه ماژول هنگامی ایجاد می ­شود که پروژه حاوی ماژول­ های VBA باشد.
  • اگر پروژه حاوی شیء UserForm ، که برای ایجاد پنجره محاوره­ ای سفارشی استفاده می ­شود باشد Project Explorer یک پوشه به نام Forms را نشان می­ دهد.
  • یک پروژه همچنین می­ تواند شامل ماژول­ های کلاس باشد ، در این حالت پنجره پروژه ، یک پوشه به نام Class Modules را نیز نشان خواهد داد.
  • در نهایت ، اگر پروژه دارای Reference است ، یک پوشه هم به نام References نشان داده می­ شود.

آناتومی محیط ویرایشگر ویژوال بیسیک

همان­طور که در تصویر فوق می­ بینید ، تنها پروژه ­ای که ظاهر شده است ، پروژه Record Macro. xlsm است. در پوشه Microsoft Excel Objects می­ توانید ببینید که فایل اکسل دارای یک برگه است. در نهایت این پروژه شامل یک ماژول VBA نیز است ، بنابراین پوشه ماژول قابل مشاهده است. هیچ شیءModules , UserForm  Class یا References وجود ندارد. بنابراین ، پوشه ­های مربوط به آنها ظاهر نمی­ شود.

ویرایشگر ویژوال بیسیک این امکان را می ­دهد که قسمت­ های مختلف لیست را با کلیک روی "+" یا "-" گسترش دهید یا جمع کنید. هنگامی که یک پوشه گسترش می­ یابد می­ توانید اجزای داخل آن را ببینید.

اگر Project Explorer را نمی ­بینید ، می ­توانید آن را با استفاده از روش­ های زیر نمایش دهید:

  • از کلید میانبر Ctrl+R استفاده کنید.
  • روی آیکن Project Explorer در نوار­ابزار کلیک کنید.

آناتومی محیط ویرایشگر ویژوال بیسیک

  • به زبانه View بروید و روی گزینه Project Explorer کلیک کنید.

آناتومی محیط ویرایشگر ویژوال بیسیک

می­ توانید پنجره Project Explorer را با استفاده از یکی از روش­ های زیر مخفی کنید:

  • با کلیک دکمه ضربدر
  • با راست کلیک در هر نقطه ­ای از پنجره Project Explorer و انتخاب گزینه Hide

4- پنجره Properties: این پنجره ویژگی اشیائی که در حال حاضر در Project Explorer انتخاب شده است را نمایش می­ دهد و این امکان را می ­دهد که این ویژگی­ ها را ویرایش ­کنید. به این پنجره به ویژه هنگام ایجاد UserForm­ها بیشتر نیاز خواهید­داشت. اغلب از این پنجره برای تغییر نام و ویژگی Visible برگه اکسل استفاده می­ شود.

امکان پنهان کردن یا نمایش پنجره Properties نیز وجود دارد.

اگر ویرایشگر ویژوال بیسیک در حال حاضر پنجره Properties را نمایش نمی­ دهد ، یا از میانبر صفحه کلید F4 استفاده کنید و یا روی آیکن پنجره Properties در نوار­ابزار کلیک کنید.

آناتومی محیط ویرایشگر ویژوال بیسیک

برای نمایش آن ، همچنین می ­توانید از زبانه view گزینه Properties Window را انتخاب کنید.

آناتومی محیط ویرایشگر ویژوال بیسیک

این پنجره را می­ توانید به کمک یکی از روش­ های زیر مخفی کنید:

  • با کلیک دکمه ضربدر
  • با راست کلیک در هر نقطه ­ای ازپنجره Properties و انتخاب گزینه Hide

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 را به کمک یکی از روش­ های زیر مخفی کنید:

  • با کلیک دکمه ضربدر
  • با راست کلیک در هر نقطه­ ای ازپنجره Immediate و انتخاب گزینه Hide

آموزش بعدی: محل قرار­گیری کد­های VBA ماکروی ضبط شده

  *جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*

 

کتاب آموزش ماکرو نویسی با اکسل

آناتومی محیط ویرایشگر ویژوال بیسیک
انتشار : ۱۵ آبان ۱۳۹۸

حقوق مادی و معنوی این سایت متعلق به exceldepo می باشد.

فید خبر خوان    نقشه سایت    تماس با ما