آموزش قبلی: بررسی کد های ماکروی ضبط شده
برای درک هر یک از دستورالعمل های ماکرویی که ضبط کرده اید ، اجازه دهید کل کد را که برحسب مورد به صورت خطی و مجموعه ، اجرا می شود ، بررسی کنیم.
اگر مفهوم هر کدام از خطوط کد را درک نکردید نگران نباشید.
هدف این بند ، این است که ایده اولیه ای درباره نحوه عملکرد 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 را کجا قرار دهیم
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
برچسب های مهم
اگر به یک وب سایت یا فروشگاه رایگان با فضای نامحدود و امکانات فراوان نیاز دارید بی درنگ دکمه زیر را کلیک نمایید.
ایجاد وب سایت یا