در ادامه لیستی از تمام فونت آیکن های زیر ارائه شده است:
![]()
می توانید از لینک پایین صفحه , فرمت 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 و مهمتر از همه ، دستورالعمل هایی که اکسل برای تایپ This is the best Excel tutorial، تنظیم خودکار عرض ستون سلول فعال ، تغییر رنگ زمینه سلول فعال به قرمز و تغییر رنگ فونت سلول فعال به آبی ، اجرا می کند را به شما نشان دهد.
متوجه خواهید شد که (نه تنها در این مثال ، بلکه معمولا هنگام ضبط ماکرو) کد VBA ممکن است شامل برخی از اقداماتی باشد که شما انجام نداده اید جان والکنباخ ، در کتاب Excel 2013 Bible بیان می کند که این تنها نتیجه فرعی روشی است که اکسل برای ترجمه عملیات کد استفاده می کند.
به عبارت دیگر، در حال حاضر جای نگرانی در مورد خطوط کدی که شما ایجاد نکرده اید ، نیست.
پنجره کد ماکرویی که ایجاد کرده اید ، شامل خطوط کد زیر است:
عبارت Sub اساس فرآیندSub است. این فرآیند یکی از دو نوع فرآیندی است که می توانید در اکسل ایجاد کنید. نوع دیگر ، فرآیند Function است.
خوب ... این خط کد چه عملی انجام می دهد؟
به سادگی به اکسل می گوید که در حال نوشتن یک فرآیندSub هستید.
فرآیندهای Sub بایستی همیشه با موارد زیر شروع شوند:
علاوه بر این ، فرآیندهای Sub همیشه باید با دستور End Sub پایان یابد ، همانطور که می توانید در آخرین خط کد نشان داده شده در تصویر زیر (با شماره 8 مشخص شده است) ببینید.

این خطوط توضیحاتی است که فقط برای ارائه اطلاعاتی قرار داده شده است. این توضیحات دارای خصوصیات زیر است:
همانطور که اینجا توضیح داده شد ، این خط کد به اکسل می گوید که سلول فعال فعلی را انتخاب کند. اگر دقیقتر بیان کنیم:
این خط به اکسل فرمان می دهد که متن This is the best Excel tutorial در سلول فعال وارد شود.
اجازه دهید هر یک از قسمت های مختلف این دستور را بررسی کنیم:
بخش آخر R1C1 ، اشاره به الگوی آدرس دهی R1C1 است .
اگر به خاطر داشته باشید ، در اینجا ، بیان شد که چرا باید ضبط در حالت آدرس نسبی را فعال کنید و نحوه انجام این کار را یاد گرفتید.
همانطور که اینجا بیان شد ، این دستور باعث می شود که اکسل ستون سلول فعال را متناسب با متنی که ماکرو درج کرده است ، به صورت خودکار تنظیم کند.
بخش های مختلف این دستور به شرح زیر است:
ماکروی شما در حال حاضر دو مورد از چهار مورد درخواستی را اجرا کرده است:
همانطور که انتظار دارید ، اقدام بعدی که اکسل انجام خواهد داد ، تغییر رنگ زمینه سلول فعال به رنگ قرمز است.
شاید انتظار داشته باشید که تغییر رنگ زمینه سلول فعال یک گام ساده باشد. ولی به نظر می رسد که اکسل نیاز به انجام چند مرحله برای این اقدام دارد.
هدف اصلی دستور With…End With ، ساده سازی ترکیب اجرای چند دستورالعمل است که همه آنها به یک شیء واحد اشاره می کنند بدون اینکه هر بار به آن شیء ارجاع شود.
در مورد این مثال این شیء سلول فعال است. همانطور که در تصویر زیر مشاهده می کنید ماکروی ضبط شده حاوی دو دستور With…End With می باشد.

ترکیب دستور With…End With به شرح زیر است:
ابزار بیان شیء With
[دستورالعملها]
End With
در مثال حاضر ابزار بیان شیء ، برای دستور With…End With اول Selection.Interior و برای دستور With…End With دوم ، که در ادامه توضیح داده می شود ، Selection.Font می باشد.
در مورد اولین دستور With…End With ، هر یک از این موارد به شرح زیر است:

حال که یک درک اولیه از آنچه که دستور With…End With انجام می دهد دارید ، اجازه دهید نگاهی به خطوط کد این دستور داشته باشیم:
1. With Selection.Interior
این خط به اکسل می گوید که هنگام اجرای دستورالعمل ها که بخشی از دستور With…End With هستند باید همیشه به داخل سلول فعال ارجاع شود.
نحوه انجام کار چگونه است؟
Selection نشان دهنده انتخاب فعلی است که در این مثال سلول فعال است. Interior به درون یک شی اشاره می کند ، که در این مورد داخل سلول فعال است.
2. Pattern = xlSolid
این کد اولین خط از دستور With…End With است که اشاره به داخل سلول فعال دارد و به اکسل می گوید رنگ الگوی درونی سلول فعال یک رنگ یکپارچه است. این کار به شرح زیر انجام می شود:
3. PatternColorIndex = xlAutomatic
این خط کد نحوه تنظیم را به شرح زیر ، برای درون سلول فعال مشخص می کند:
4. Color = 255
این خط دستوری است که در واقع به اکسل اعلام می کند چه رنگی باید برای پرکردن داخل سلول فعال استفاده کند.
Color رنگ سلول را با توجه به شماره ای (که در این مورد 255 است) مشخص می کند ، که در ماژول Best_Excel_Tutorial قرمز است.
5. TintAndShade = 0
این خط کد ، تنظیم طیف رنگی را که برای پر کردن سلول فعال انتخاب شده است به اکسل دستور می دهد.
TintAndShade وضوح یا تیرگی یک رنگ را تنظیم می کند. هنگامی که TintAndShade برابر با 0 تعیین شود ، (همانطور که در این مورد است) این ویژگی رنگ تغییری نمی کند.
6. PatternTintAndShade = 0
همانطور که ممکن است تصور کنید ، این خط به اکسل انتقال می دهد که الگو باید بدون طرح سایه ، داخل سلول فعال قرارگیرد.
PatternTintAndShade الگوی رنگ و سایه را برای داخل یک شیء ، در این مورد سلول فعال ، تنظیم می کند.
7. End With
این خط به اکسل اعلام می کند که پایان دستور With…End With است.
بنابراین ، خطوط بعدی به یک شیء متفاوت از آنچه که در دستور With…End With به آن اشاره می شد ارجاع می شود.
در مورد مثال مورد استفاده در این بخش ، پایان دستور With…End With اول نشان می دهد که دستورات بعدی به الگوی زمینه سلول فعال اشاره نمی کند.
در آیتم قبل دستور With…End With را یاد گرفتید و با ساختار کلی آن آشنا شدید.
بنابراین ، مستقیما به توضیح خط به خط دستور With…End With دوم پرداخته شده است.
همانطور که احتمالا انتظار دارید ، آخرین دستورالعمل هایی را که هنگام ایجاد ماکرو انجام دادید ، باید انجام شود: تغییر رنگ فونت سلول فعال به رنگ آبی.
1. With Selection.Font
همانطور که بیان شد ، این خط شروع دستور With…End With است و به اکسل می گوید که دستورات زیر با شیئ که در اینجا ظاهر می شود ، کار می کنند. در این مورد ، این شیء Selection.Font است.
Selection ، در ماکروی Best_Excel_Tutorial ، سلول فعال است.
به عبارت دیگر ، Selection.Font به معنای فونت متن در سلول فعال است. بنابراین ، Selection.Font اساسا اکسل را مطلع می کند که تمام خطوط کد که بخشی از دستور With…End With هستند ، اشاره به فونت سلول فعال دارد.
2. Color = -4165632
این خط از کد ، مشابه چهارمین خط کد دستور With…End With اول است و به اکسل می گوید چه رنگی باید برای فونت سلول فعال استفاده شود.
Color رنگ را تعیین می کند ، عدد (در این مورد -4165632) کد رنگی است که به رنگ آبی اشاره دارد.
3. TintAndShade = 0
این خط دقیقا مشابه یکی از خطوط دستور With…End With اول است. از آنجا که TintAndShade وضوح یک رنگ را تعیین می کند ، هنگامی که TintAndShade برابر با 0 (همانطور که در این مورد است) تعیین شود ، این ویژگی فونت سلول فعال تغییری نمی کند.
4. End With
این خط پایان دستور With…End With است. بنابراین ، خطوط کد بعدی به فونت سلول فعال ارجاع نمی دهد.
دستور End خاتمه دادن به اجرای چیزی است ، و در این مورد ، پایان فرآیند Sub است. این بدان معنی است هنگامی که اکسل این خط کد را اجرا می کند ، ماکرو متوقف خواهد شد. به عبارت دیگر ، این پایان کد نخستین ماکرویی است که ایجاد کردید.
در خط کد "ActiveCell.FormulaR1C1 = "This is the best Excel tutorial از متن This is the best Excel tutorial استفاده شده است ، می توانید هر متن دیگری (مثلا نام خودتان) را نیز انتخاب کنید.
همچنین می توانید با تغییر اعداد ، رنگ های دیگری برای زمینه و فونت سلول انتخاب کنید.
به صفحه اصلی اکسل برگردید و دوباره ماکرو را (با استفاده از میانبر صفحه کلید Ctrl+Shift+B که به آن اختصاص داده اید) اجرا و بررسی کنید چه اتفاقی می افتد.
به عنوان مثال ، اگر Selection.Columns.AutoFit را حذف کنید، چه اتفاقی رخ می دهد؟
آن را امتحان کنید.
به صفحه اصلی اکسل برگردید و دوباره ماکرو را با این تغییر اجرا کنید.
چه اتفاقی می افتد؟ آیا این تغییر چیزی بود که انتظار داشتید؟
در مراحل بعدی:
با بررسی کدهای نوشته شده توسط ضبط کننده ماکرو ، می توانید ایده هایی برای شروع ماکرونویسی بدست آورید. به عنوان مثال ، اگر از شما بخواهم یک ستون را با استفاده از کدنویسی فیلتر کنید و در ابتدا هیچ نظری نداشته باشید که به چه صورت است ، می توانید به سرعت یک ماکرو ضبط کنید بعد به سراغ ماکروی ایجاد شده رفته تا ببینید اکسل چه کدهایی ثبت کرده است. با بررسی و ویرایش این کدها می توانید ماکروی خود را بنویسید.
آموزش بعدی: کد های آماده VBA را کجا قرار دهیم
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
در اکسل ، معمولا از سطر و ستون برای آدرس دهی یک سلول به شکل زیر استفاده می شود:
این سبک آدرس دهی به عنوان سبک A1 شناخته می شود. سلول گوشه بالا سمت چپ صفحه اکسل , بصورت A1 آدرس دهی می شود.
سبک دومی نیز برای ارجاع به سلول وجود دارد. در این سبک ، سطر و ستون با عدد شناسایی می شود. به عبارت دیگر:
این سبک آدرس دهی به عنوان سبک R1C1 شناخته می شود ، سلول گوشه بالا سمت چپ صفحه اکسل , بصورت R1C1 آدرس دهی می شود.
چند دلیل برای یادگیری نحوه کار با سبک R1C1 وجود دارد. یکی از دلایل اصلی این واقعیت است که , هنگام کار با VBA ، سبک R1C1 انعطاف پذیر ، کارآمد و راحت تر است.
سلول با آدرس ثابت
به کمک دستور Range می توانید به یک سلول روی برگه ای که در آن اقدام به نوشتن کد کرده اید , دسترسی داشته باشید. قالب این دستور به شکل زیر است:
Range("آدرس سلول")
به مثال زیر توجه کنید:
Range("B7")="Excel"
با نوشتن این خط کد , هرگاه کد اجرا شود , مقدار سلول B7 حاوی عبارت Excel می شود.
دو نکته در مورد مثال بالا مطرح است. اول اینکه در دستور , آدرس سلول مورد نظر حتما باید بین دو علامت (" ") قرار گیرد. مورد دیگر اینکه اگر با یک متن ثابت سر و کار داشته باشید , ( مانند Excel در این مثال) باید حتما آن را بین دو علامت (" ") قرار دهید.
کار با سلول با آدرس متغیر
گاهی در هنگام کدنویسی نیاز پیدا می کنید که آدرس سلول ها را متغیر در نظر بگیرید. برای چنین مواقعی باید از دستور Cells با ترکیب زیر کمک بگیرید:
Cells(شماره ستون , شماره سطر)
ساختار سبکR1C1
هنگام ایجاد آدرس سلولی به سبک R1C1 ، اصول زیر بایستی در نظر گرفته شود:
o شماره پس از حرف R نشان دهنده شماره سطر است؛ و
o شماره پس از حرف C نشان دهنده شماره ستون است.
آدرس هایی که با رعایت قوانین بالا ایجاد می شود , مطلق هستند.
نحوه ارجاع به سلول فعال ، با استفاده از سبک R1C1
اگر شماره های پس از حروف R یا C را حذف کنید ، به همان سطر یا ستون آدرس سلول اشاره می کنید. از این رو:
نحوه ایجاد آدرس نسبی با سبک R1C1
o هنگامی که مقدار پیمایش سطر را مشخص می کنید (شماره بعد از حرف R) :
o هنگامی که مقدار پیمایش ستون را مشخص می کنید (شماره بعد از حرفC ):
بنابراين ، ساختار آدرس دهی نسبی در سبک R1C1 به شکل زیر می باشد:
"R[RowOffset#]C[ColumnOffset#]"
در جلسه بعدی ، یاد می گیرید که چگونه با operator (عملگر)ها در VBA کار کنید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: مبانی کد های VBA ماکروی ضبط شده
دو مکان وجود دارد که می توانید کد VBA را به اکسل اضافه کنید:
هنگامی که کدی را به پنجره کد هر یک از اشیاء اضافه می کنید ، اجرای آن وابسته به برخی رخدادهای آن شیء است. به عنوان مثال ، اگر می خواهید به محض بازشدن فایل اکسل پیامی نمایش دهید ، این کد در پنجره کد شیء ThisWorkbook قرار می گیرد (که نشانگر فایل اکسل است).
در این مورد رخداد شیء ، باز شدن فایل اکسل است.
به همین ترتیب ، اگر می خواهید از یک برگه اکسل محافظت کنید ، کد را بایستی در پنجره کد Worksheet وارد کنید.
این رخدادها به عنوان محرک هایی هستند که با روی دادن آنها ماکرو اجرا خواهد شد.
برعکس ، کدهای ذخیره شده در ماژول باید به صورت دستی (و یا از طریق کدهای دیگر) اجرا شود.
هنگامی که ماکرویی ضبط می کنید ، اکسل به طور خودکار یک ماژول ایجاد می کند و کدهای ضبط شده را در آن وارد می کند. حال اگر بخواهید این کد را اجرا کنید ، باید به صورت دستی این کار را انجام دهید.
به طور پیش فرض ، ماژول بخشی از فایل اکسل نیست. هنگامی که یک ماکرو ضبط می کنید اکسل به طور خودکار یک ماژول قبل از شروع به ضبط ، در فایل اکسل ایجاد می کند. مواقعی وجود دارد که ممکن است بخواهید بدون ضبط ، ماکرویی ایجاد کنید. به کمک یکی از روش های زیر می توانید این کار را انجام دهید.
روش1- چگونه یک ماژول VBA ایجاد کنیم

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

با اجرای این مراحل ، بلافاصله پوشه Modules ایجاد و یک شیء با عنوان Module1 به آن اضافه می شود. اگر در سمت چپ محیط ویرایشگر ویژوال بیسیک قسمت Project Explorer را مشاهده کنید , خواهید دید که ماژولی با نام Module1 نمایش داده می شود.
اگر قبلا یک ماژول وارد کرده باشید ، مراحل فوق یک ماژول جدید ایجاد می کند.
هنگامی که ماژول ایجاد شده است ، می توانید بر روی آن دوبار کلیک کرده و پنجره کد را برای آن باز کنید. حال می توانید کد را داخل پنجره کد کپی کنید و یا خودتان آن را بنویسید و سپس ذخیره کنید.
درست همانطور که می توانید ماژول های جدید VBA را به یک پروژه اضافه کنید ، می توانید آنها را با استفاده از یکی از دو روش زیر حذف کنید.
توجه داشته باشید که ، همانطور که جان والکنباخ در کتاب Excel VBA Programming for Dummies بیان می کند ، تنها ماژول های VBA را می توانید حذف کنید:
راه دیگری برای حذف سایر ماژول های VBA وجودندارد ، آنهایی که برای اشیاء Sheet یا ThisWorkbook استفاده می شوند.
روش1- نحوه حذف ماژول VBA
با استفاده از این روش ، می توانید ماژول VBA را با دنبال کردن دو مرحله ساده زیر حذف کنید.

module_name نام ماژولی است که می خواهید حذف شود. برای مثال ، هنگام حذف Module2 منوی File تقریبا به شکل زیر نمایش داده می شود:
روش2- نحوه حذف ماژول VBA

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

در اغلب موارد ، دلیل حذف یک ماژول VBA این است که کدی داخل آن وجود ندارد. در این صورت ، روی No کلیک کنید.
اگر به هر دلیلی ، می خواهید ماژول را قبل از حذف ذخیره کنید ، روی Yes کلیک کنید. این فایل با فرمت bas. ذخیره می شود. برای انتقال یک ماژول بدون حذف آن نیز ، روی آن راست کلیک کرده و در لیست باز شده گزینه Export File… را انتخاب کنید.از میانبر صفحه کلید Ctrl + E نیز می توانید استفاده کنید. فایل ذخیره شده را می توانید با کلیک راست روی پروژه دیگری و انتخاب گزینه (Import File…) واردکنید.

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