متغیرها
وقتی در VBA کار می کنید ، داده ها معمولا در یکی از دو عنصر زیر ذخیره می شوند:
VBA فضایی از حافظه را به متغیر اختصاص می دهد و محل ذخیره سازی برای داده تا زمانی که تعریف شده است ، رزرو می شود.
هنگامی که یک متغیر ایجاد می کنید ، می توانید با استفاده از نام (یا دستکاری) متغیر تعریف شده , داده های ذخیره شده را مشاهده کنید.
با اعلان متغیر:
می توانید نام متغیر و نوع داده ذخیره شده را مشخص کنید.
نحوه تعریف و اعلان متغیر
متغیرها را به دو روش می توان ایجاد کرد:
در عمل , تعریف صریح متغیر توصیه می شود.
نوع داده متغیر
نوع داده متغیر به نحوه ذخیره داده اشاره دارد.
هنگامی که در کد خود نوع داده را برای متغیر مشخص می کنید ، به VBA می گویید که چگونه این متغیر را ذخیره و چقدر فضا برای آن اختصاص دهد. به عنوان مثال ، اگر نیاز به استفاده از یک متغیر برای نگه داشتن شماره ماه دارید ، می توان از نوع داده BYTE که می تواند مقادیر0 تا 255 را در نظر بگیرد , استفاده کنید. از آنجایی که تعداد ماهها بیشتر از 12 نبوده و همیشه بصورت عدد صحیح می باشد ، این انتخاب درست بوده و فضای کمتری از حافظه را نیز استفاده می کند.
برعکس ، اگر نیاز به یک متغیر برای ذخیره تعداد سطرهای اکسل دارید ، باید از یک نوع داده استفاده کنید که می تواند عددی را تا 1048756 جای دهد. بنابراین بهتر است از نوع Long data استفاده کنید.
Variant نوع داده پیش فرض است. به عبارت دیگر ، اگر به صراحت نوع داده یک متغیر را اعلام نکنید، به صورت پیش فرض نوع داده آن Variant تعیین می شود.
متغیرهای Variant تقریبا هر نوع داده را می توانند نگه دارند.
در جداول زیر انواع دادههای موجود که می توانید در VBA استفاده کنید نشان داده شده است.
اعلان صریح یک متغیر (و نوع داده آن)
متغیر (و نوع داده آن) را با دستوری قبل از محل استفاده آن اعلام می کنید ,که در این دستور :
بنابراين، ساختار اصلی دستور تعریف متغير ، به شرح زير است:
نوع داده As نام متغیر کلمه کلیدی
در این ساختار ، موارد زیر را در نظر بگیرید:
کلمات کلیدی اعلام متغیر Dim ، Private ، Public و Static است. هر کدام از این کلمات کلیدی تاثیر متفاوتی بر متغیر دارند. رایج ترین کلمه کلیدی استفاده شده Dim است.
مقرراتی که برای نام متغیر اعمال می شوند ، به لحاظ مؤلفه مشابه با آنهایی است که به نام فرآیند ها اعمال می شوند. درباره قوانین نامگذاری فرآیند در جلسه اول یاد گرفتید.
اعلان صریح نوع داده متغیر اختیاری است. به عبارت دیگر، می توانید نوع داده را حذف کنید.
دامنه متغیر
متغیرها می توانند 3 دامنه مختلف داشته باشند:
علاوه بر این ، هنگام کار با متغیرهای سطح فرآیند، می توانید با متغیرهای استاتیک نیز کار کنید. متغیرهای استاتیک عمر طولانی تر از متغیرهای معمول در سطح فرآیند دارند و زمانی که اجرای فرایند پایان می یابد تنظیم مجدد نمی شود.
متغیرهای سطح فرآیند (یا محلی)
این محدود ترین دامنه متغیر است.
همانطور که از نام آن مشخص می شود، متغیرهای سطح فرایند (که به عنوان متغیرهای محلی نیز شناخته می شود) تنها می توانند درون فرآیندی که در آن تعریف می شوند استفاده شوند. این امر در مورد هر دو فرآیند Sub و Function صادق است.
به عبارت دیگر، وقتی اجرای یک فرآیند به پایان می رسد، هر متغیر محلی نیز متوقف می شود و اکسل حافظه ای را که متغیر استفاده می کرد آزاد می کند.
متغیرهای سطح ماژول (یا خصوصی)
ایده های پشت مفهوم متغیرهای سطح ماژول به میزان مشخصی شبیه آنچه که در رابطه با متغیرهای سطح فرآیند دیده اید است.
متغیرهای سطح ماژول برای استفاده در هر فرآیند درون ماژول که در آن متغیر VBA اعلام شده است ، در دسترس هستند. بنابراین ، متغیرهای سطح ماژول ، پس از اجرا شدن یک فرآیند نیز ، مقدار خود را نگه می دارند. با این حال ، در فرآیندهای دیگر همان پروژه VBA در دسترس نیستند.
به عنوان یک نتیجه از موارد فوق ، اکسل مقادیر اختصاص داده شده به متغیرهای سطح ماژول را برای استفاده یا دسترسی درون ماژول مربوطه ذخیره می کند. بنابراین ، متغیرهای سطح ماژول ارزش های خود را بین فرآیندها حفظ می کنند ، تا زمانی که این فرآیندها در همان ماژول قرار داشته باشند. متغیرهای سطح ماژول به شما اجازه می دهند ارزش یک متغیر را از یک فرآیند به دیگری منتقل کنید.
متغیرهای VBA سطح ماژول Public (یا عمومی)
میزان دسترسی به متغیرهای عمومی VBA بیشتر از متغیرهای سطح ماژول است:
متغیرهایی که با دستور Public اعلام شده اند برای همه فرآیندهای تمام ماژول ها قابل دسترسی است , مگر اینکه ماژول خصوصی در حال اجرا باشد. اگر ماژول خصوصی فعال باشد ، متغیرها فقط درون پروژه ای که در آن تعریف شده اند در دسترس هستند.
دامنه پیش فرض و طول عمر یک متغیر
محدوده پیش فرض یک متغیر فرآیندی است که در آن اعلام شده است.
طول عمر پیش فرض یک متغیر برابر با زمانی است که فرآیندی که در آن تعریف شده است در حال اجرا است. به عبارت دیگر ، به طور پیش فرض ، یک متغیر تا زمانی که فرآیند مربوطه در حال اجرا است ، زنده است.
در جلسه بعدی ، یاد می گیرید که چگونه با متغیر بسیار قدرتمند Object کار کنید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
expressions (عبارات بیان بیان)
expression ها ترکیبی از توابع ، کلمات کلیدی ، عملگرها ، متغیرها و ثابت ها است. برای دستیابی به اهدافی از expression ها استفاده می کنید از جمله:
عملگرها
عملگرها یکی از عناصری هستند که می توانید هنگام ایجاد expression ها استفاده کنید. عملگرها ، نمادهایی است که اجازه می دهد با سایر مولفه های expression کار کنید.
می توان عملگرهای VBA را در 5 دسته طبقه بندی کرد:
عملگرهای ریاضی
از این عملگرها برای انجام محاسبات ریاضی استفاده کنید. عملگرهای ریاضی VBA , در زیر لیست شده است:
عملگرهای مقایسه ا ی
از این عملگرها برای انجام مقایسه استفاده می شود:
عملگرهای منطقی
برای ساخت عبارات منطقی از عملگرهای منطقی استفاده کنید:
عملگرهای اتصال
از این عملگر ها جهت پیوند رشته ها , برای ایجاد یک رشته جدید استفاده کنید. عملگرهای پیوند VBA عبارتند از:
عملگر تخصیص
از عملگر تخصیص (=) برای اختصاص یک مقدار به یک متغیر یا property استفاده کنید.
در جلسه بعدی ، همانطور که ذکر شد ، یاد می گیرید که چگونه با متغیرها کار کنید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: آناتومی محیط ویرایشگر ویژوال بیسیک
یکی از بخش های ویرایشگر ویژوال بیسیک ، که در پست قبلی توضیح داده شد ، پنجره Project Explorer است.
در تصویر فوق ، VBAProject دو پوشه را نشان می دهد: Microsoft Excel Objects و ماژول ها.
می توانید عناصر داخل پوشه اول (اشیاء مایکروسافت اکسل) را ببینید ، اما اجزای داخل پوشه دوم (ماژول ها) قابل مشاهده نیست.
برای گسترش پوشه ماژول ها و دیدن اجزای آن ، روی "+" کلیک کنید. پنجره Project Explorer تقریبا به شکل زیر نمایش داده می شود:
مواردی که در پوشه اشیاء مایکروسافت اکسل ظاهر می شوند آشنا هستند. اما...
ماژول چیست؟
ماژول جایی است که کد VBA در آن ذخیره می شود.
هنگام ضبط ماکروی Best_Excel_Tutorial ، موارد زیر در ویرایشگر ویژوال بیسیک رخ می دهد:
برای نمایش کد VBA، روی Module1 دوبار کلیک کنید.
ویرایشگر ویژوال بیسیک کدهای VBA را در پنجره کد ماژول نمایش می دهد.
اگر طبق مراحل مثال ضبط ماکرو با اکسل ، ماکروی Best_Excel_Tutorial را ایجاد کرده باشید کدهای شما تقریبا به صورت تصویر زیر خواهد بود.
آیا این کدها برای شما مفهومی دارد؟
ممکن است درک روشنی از دستورالعمل هایی که ایجاد کرده اید نداشته باشید.
طبیعی است!
اجازه دهید نگاهی دقیقتر به کدها داشته باشیم تا مفهوم آنها را نیز درک کنید.
آموزش بعدی:بررسی کدهای ماکروی ضبط شده
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: محل قرارگیری کدهای VBA ماکروی ایجاد شده
خبر خوب اول!
ممکن است متوجه شده باشید ، کد VBA (تاحدی) شبیه به زبان محاوره ای انگلیسی است. KeithDarlington (برنامه نویس با تجربه) در کتاب VBA for Excel Made Simple بیان می کند که این ویژگی VBA(شباهت آن با زبان محاوره ای انگلیسی) چگونه می تواند یک گام مفید در انتخاب دستورالعمل هایی باشد که ماکرو باید در VBA دنبال کند.
بنابراین ، احتمالا قادر به درک برخی از کلمات ، و شاید حتی برخی از دستورالعمل های ماکروی فوق باشید. به عنوان مثال ، ممکن است خطوط کد مشخص شده در تصویر زیر را در این ماکرو تشخیص دهید و مفهوم آنها را متوجه شوید:
Active cell سلولی است که در حال حاضر در یک برگه اکسل انتخاب شده است (سلول فعال). حتی اگر با اکسل و VBA آشنا نباشید ، حتما می دانید که معنی select چیست.
درست است ، احتمالا همان طور که متوجه شده اید ، این قطعه کد ، سلول فعال فعلی را انتخاب می کند.
این خط کد نیز با "انتخاب" شروع شده و پس از آن اشاره به "ستونها" و "تنظیم خودکار" می شود.
اگر به خاطر داشته باشید ، دومین موردی که در ضبط ماکروی Best_Excel_Tutorial باید انجام می شد تنظیم خودکار عرض ستون سلول فعال بود.
با توجه به موارد فوق ، حتما تصور می کنید که هدف از این قطعه کد 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 نیز دو عمل را انجام می دهند:
در جلسه سوم یاد گرفتید که چگونه به یک شیء ارجاع دهید (مرحله1). در این جلسه ، یاد می گیرید که چگونه شیء را دستکاری کنید(مرحله2).
به طور کلی یک شیء را به یکی از دو روش زیر می توانید دستکاری کنید:
properties (ویژگی ها)
Properties ویژگی هایی هست که یک شیء را توصیف می کند.
به عبارت دیگر ، اکثر اشیاء (از جمله مجموعه ها)ی مدل اکسل دارای یک سری ویژگی هستند. این ویژگی ها ، تعیین می کند که یک شیء , در میان اشیاء دیگر، چگونه:
به عنوان مثال ، شیء Worksheet را در نظر بگیرید. بعضی از ویژگی های آن عبارت است از:
methods (شیوه های عمل)
Methods اقداماتی هست که روی یک شیء انجام می دهید. به عبارت دیگر ، اکثر اشیاء (از جمله مجموعه ها)ی درون مدل شی اکسل شامل یک سری Method هست. این Method ها تعیین می کند که چه چیزی می توانید با شیء , یا روی آن انجام دهید.
به عنوان مثال ، شیء Worksheet را در نظر بگیرید. بعضی از Method های آن عبارت است از:
نحوه کار با properties
هنگام کار با properties ، می توانید موارد زیر را انجام دهید:
ویژگی هایی که می توان مقدار آن را هم خواند و هم نوشت ، به عنوان ویژگی های هم خواندنی و هم نوشتنی شناخته می شوند , بعضی از ویژگی ها فقط خواندنی (و نه نوشتنی) هستند. اینها به عنوان ویژگی فقط خواندنی شناخته می شوند.
نحوه کار با methods
هنگام کار با methods معمولا می توانید موارد زیر را انجام دهید:
parameters (مولفه ها)
برخی از properties (ویژگی ها) و methods (شیوه های عمل) , مولفه هایی دارند که می توانید از این مولفه ها در موارد زیر استفاده کنید:
مولفه ها ممکن است اجباری یا اختیاری باشند. اگر مولفه ای اختیاری است می توانید آن را حذف و از مقدار پیش فرض آن استفاده کنید.
ساختار دستوراتVBA (به روز رسانی)
درجلسه دوم ، مشاهده کردید که دو ساختار اساسی برای دستور ها وجود دارد:
همچنین یاد گرفتید که این ساختار زمانی تغییر می کند که :
ترکیب دستور بسته به اینکه , آیا با یک property یا یک Method کار می کنید متفاوت است.
ساختار دستورات VBA زمانی که با مولفه های method کار می کنید
ساختار اصلی دستور VBA زمانی که با مولفه های method کار می کنید به شکل زیر است:
Object.Method ParameterList
قوانین اصلی این ترکیب:
هر مولفه در ParameterList نام خود را دارد. هنگام تعیین ParameterList ، می توانید با مولفه های نامگذاری شده یا نامعلوم کار کنید. به عبارت دیگر ، با رعایت قواعد خاصی ، می توانید نام پارامتری را در ParameterList وارد و یا آن را حذف کنید.
به طور کلی استفاده از مولفه های نامگذاری شده به عنوان یک روش مناسب شناخته می شود. بنابراین ، در این آموزش این ساختار دستوری را یاد می گیرید.
هنگام کار با مولفه های نامگذاری شده ، از یک دو نقطه و علامت مساوی (=: ) برای جدا کردن نام مولفه از مقدار آن استفاده کنید. به عبارت دیگر ، ساختار یک دستور VBA که از چندین مولفه method استفاده می کند ، به شکل زیر است:
Object.Method Parameter1Name:=Parameter1Value, Parameter2Name:=Parameter2Value, ..., Parameter#Name:=Parameter#Value
پیش از این ، یاد گرفتید که می توانید از method ها برای ایجاد یک شی جدید یا باز گرداندن یک مقدار استفاده کنید. در این مورد ، لیست مولفه ها را درون پرانتز قرار دهید (به جای استفاده از یک فاصله برای جدا کردن method و لیست مولفه ها). این ساختار در ترکیب زیر نشان داده شده است:
Object.Method(Parameter1Name:=Parameter1Value, Parameter2Name:=Parameter2Value, ..., Parameter#Name:=Parameter#Value)
ساختار دستورات VBA زمانی که با مولفه های Property کار می کنید
ساختار اصلی دستور VBA زمانی که از مولفه های Property استفاده می کنید به شکل زیر است:
Object.Property (ParameterList)
قوانین اصلی این ترکیب:
ساختار دستور VBA که از چندین مولفه Property استفاده می کند ، به شکل زیر است:
Object.Property(Parameter1Value, Parameter2Value, ..., Parameter#Value)
ساختار دستور VBA زمانی که یک مقدار property جدید مشخص می کنید
ساختار اصلی دستور VBA زمانی که یک مقدار property جدید را مشخص می کنید به شکل زیر است:
Object.Property = NewPropertyValue
قوانین اصلی این ترکیب:
در جلسه بعدی ، یاد می گیرید که چگونه با منابع سلولی در VBA کار کنید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
در جلسه قبلی ، با 5 جزءاصلی VBA ، از جمله اشیاء آشنا شدید. این بخش نیز بر روی اشیا تمرکز دارد و یاد خواهید گرفت که:
سلسله مراتب اشیاء
اشیائی که برنامه اکسل را تشکیل می دهند ، در یک سلسله منطقی سازماندهی شده اند ، که به نام مدل اشیاء اکسل شناخته می شود. در این مدل:
این الگو به شکل مشابهی گسترش می یابد تا به اشیایی که شامل شیء دیگری نیستند برسد.
مجموعه ها و مدل اشیاء اکسل
اشیاء معمولا به مجموعه ای از اشیاء مرتبط دسته بندی می شوند. هنگام کار با مدل اشیاء اکسل ، می توانید مجموعه های زیر را در نظر بگیرید:
مجموعه ها برای دسترسی به اشیاء ضروری هستند. دلایل اصلی این ضرورت , دو مورد زیر است:
نحوه ارجاع به یک شی
معمولا ارجاع به شیء را در دو مرحله می توانید انجام دهید:
حرکت در مدل اشیاء اکسل
برای حرکت در مسیر مدل اشیاء اکسل (مرحله 1) , سه قاعده اساسی زیر را دنبال کنید:
به عنوان مثال ، ارجاع به یک شیء Worksheet ، را در نظر بگیرید. از دید کلی ، تقریبا می توانید به صورت زیر عمل کنید:
در ادامه نحوه این شناسایی را یاد می گیرید.
نحوه شناسایی و مشخص کردن یک شیء خاص از یک مجموعه
معمولا یک شیء از یک مجموعه را به دو روش زیر مشخص می کنند:
ملاحظات خاصی وجود دارد که به هر دو روش اعمال می شود. با این حال ، در سطح پایه ، معمولا می توانید قوانین زیر را اعمال کنید:
موارد زیر نمونه هایی از نحوه اعمال این قوانین را نشان می دهد:
Application.Workbooks (1)
Application.Workbooks (1) .Worksheets (1)
Application.Workbooks ("Book1.xlsx")
Application.Workbooks("Book1.xlsx").Worksheets("Sheet1")
نکته
سلسله مراتب ارجاع به اشیاء که در بند قبلی ارائه شد به عنوان آدرس کامل شناخته می شوند.
آدرس کامل علی رغم دقتی که دارد ، معمولا خواندن و درک آن دشوار است. می توانید این نوع ارجاع به اشیاء را ساده تر کنید. برای نیل به این هدف ، بایستی برخی مفروضات را در نظر بگیرید. با توجه به این فرض ها ، هنگام ایجاد یک آدرس شیء ، هر شییء از سلسله مراتب اشیاء را وارد نکنید.
مفروضات اصلی VBA و پیامدهای آن به شرح زیر است:
o هنگام کار با فایل اکسل فعال ، شیء Workbook را حذف کنید ؛ و
o هنگام کار با برگه فعال ، شیء Worksheet را حذف کنید.
هنگام ارجاع به اشیاء ، شیء Application معمولا حذف می شود. با این حال ، حذف شیء Workbook و Worksheet , کار آسانی نیست. هر دو شیء مزیت و معایب بالقوه ای دارند. بنابراین ، برخی از کاربران VBA توصیه می کنند که در ارجاع به شیء از آدرس کامل استفاده شود در حالی که ، برخی دیگر توصیه می کنند که آدرس ارجاع را تا آنجا که ممکن است باید ساده کرد.
در جلسه بعدی ، یاد می گیرید که چگونه با استفاده از property و method ، اشیاء را دستکاری کنید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
آموزش قبلی: مبانی کد های 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…) واردکنید.
برای باز کردن پنجره کد یک شیء ، روی آن دوبار کلیک کنید.
وقتی که پنجره کد باز شد ، می توانید داخل آن کدی را بنویسید و یا کدهای آماده را کپی کنید.
آموزش بعدی: ذخیره فایل اکسل حاوی ماکرو
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
زبان VBA نیز ، مانند هر زبان محاورهای (مانند زبان انگلیسی) دارای مجموعهای از قوانین خاص است که نحوه ایجاد دستورالعملها را تعیین میکند. در این جلسه ، اساسیترین قواعدی که برای اهداف:
نیاز است ، یاد خواهید گرفت.
اجزاء اصلی زبان VBA
در این جلسه ، 5 جزء اصلی VBA را یاد خواهید گرفت:
1. Objects (اشیاء)
2. Collections (مجموعهها)
3. Properties (ویژگیها)
4. Methods (شیوههای عمل)
5. Parameters (مولفهها)
اشیاء و مجموعهها
در VBA از اشیاء برای ارجاع و دسترسی به چیزی استفاده میکنیم. برخی از نمونههای رایج اشیاء در VBA عبارتند از:
در بعضی موارد نیاز است که همزمان به چند شیء مشابه ارجاع دهید. مثلا:
ساختار VBA که امکان این کار را به شما میدهد به عنوان collection (مجموعه) شناخته شده است. به عبارت دیگر ، اشیاء معمولا به مجموعهای از اشیاء مرتبط دستهبندی میشود. مثلا:
براحتی میتوانید شی را از مجموعه تشخیص دهید ، در انتهای عنوان مجموعهها "s" وجود دارد (استثنائاتی نیز وجود دارد). مثلا:
مجموعه خود نیز یک شیء است.
ویژگیها (Properties )
properties خصوصیات یک شی را توصیف میکند. در زیر برخی از ویژگیهای VBA لیست شده است:
شیوههای عمل(methods)
method عمل اکسل است که روی یک شیء انجام میشود. موارد زیر از شیوههای عمل VBA است:
parameter به شما اجازه میدهد تا توضیح دهید که چگونه:
برای مثال ، پنجره محاورهای Paste Special شامل گزینههای متعددی است که این امکان را میدهد تا مشخص کنید اکسل چگونه عمل Paste را انجام دهد.
در VBA با استفاده از مولفههای شیوهعمل Range.PasteSpecial مشخص میکنید که کدام یک از این گزینهها اعمال شود:
اکسل از دید یک کاربر VBA
کاربران اکسل معمولا این نرم افزار را به عنوان یک ساختار یکپارچه در نظر میگیرند.
در این بخش ، درباره اشیاء یاد گرفتید. اشیاء (به عنوان مثال ، workbook و worksheet) صرفا بخشی از ساختار VBA است. در VBA میتوانید از اشیاء به عنوان عناصر منفرد استفاده کنید.
به عبارت دیگر، یک کاربر VBA برنامه اکسل را به اشیاء مختلف تقسیم میکند. هر شیء:
خود را دارد.
بنابراین میتوانید اشیا را با دو روش اصلی زیر دستکاری کنید:
با ویرایش یک property ؛ یا
با فراخوانی یک method
این منطق در ساختار اصلی یک دستور VBA نیز منعکس شده است.
ساختار اصلی یک دستور VBA
میتوانید دستورهای VBA را با ترکیب سه جزء زیر شروع کنید:
بنابراین ، دو ساختار پایه برای دستورها دارید:
این ساختار زمانی تغییر میکند که:
در جلسات آینده یاد میگیرید که چگونه مقادیر property را تنظیم و با مولفهها کار کنید.
در جلسه بعدی درباره اشیاء بیشتر یاد میگیرید ، از جمله نحوه مشخص کردن شیی که میخواهید با آن کار کنید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
با کلیک روی تابع مورد نظر , می توانید اطلاعات تکمیلی را همراه با مثال مشاهده کنید.
Lookup and reference (توابع جستجو و مرجع)
ADDRESS:با دریافت شماره سطر و ستون , یک آدرس سلول ایجاد می کند.
AREAS:تعداد سلول ها یا محدوده های مشخص شده را باز می گرداند.
CHOOSE:مقداری را از یک لیست , با مشخص کردن موقعیت آن باز می گرداند.
COLUMN:شماره ستون آدرس و شماره اولین ستون محدوده مشخص شده را باز می گرداند.
COLUMNS:تعداد ستون های یک آرایه یا محدوده را باز می گرداند.
FORMULATEXT:فرمول سلول مشخص شده را به صورت متن نمایش می دهد.
GETPIVOTDATA:مقداری را از جدول محوری مشخص شده در فرمول باز می گرداند.
HLOOKUP:با جستجوی عبارتی در سطر اول جدول , مقدار مربوطه را از تقاطع ستون آن و سطر مشخص شده باز می گرداند.
HYPERLINK: ایجاد یک لینک قابل کلیک به سلول , فایل , محدوده سلولی و یا یک صفحه وب
INDEX:مقداری را از یک لیست یا جدول براساس شماره سطر و ستون مشخص شده باز می گرداند.
INDIRECT:از متن یک آدرس ایجاد می کند و محتوای سلول ایجاد شده را نشان می دهد.
LOOKUP:عبارتی را در یک محدوده مشخص شده سطری یا ستونی جستجو می کند و مقدار مربوط به آن را باز می گرداند.
MATCH:موقعیت یک آیتم را در یک آرایه باز می گرداند.
OFFSET:از آدرس مشخص شده به اندازه تعداد سطر و ستون مورد نظر پیمایش کرده و مقدار سلول مقصد را باز می گرداند.
ROW:شماره سطر آدرس مشخص شده را باز می گرداند.
ROWS:تعداد سطرهای یک آرایه یا محدوده مشخص شده را باز می گرداند.
TRANSPOSE:یک محدوده افقی را به یک محدوده عمودی و بلعکس منتقل می کند.
VLOOKUP:با جستجوی عبارتی در ستون اول جدول , مقدار مربوطه را از تقاطع سطر آن و ستون مشخص شده باز می گرداند.
آموزش قبلی: کد های آماده VBA را کجا قرار دهیم
قبل از نسخه 2007 فرمت فایل های اکسل ، xls. بود. اما از نسخه 2007 به بعد ، xlsx. به عنوان فرمت فایل استاندارد اکسل معرفی شد. فایل هایی که به عنوان xlsx. ذخیره می شوند نمی توانند ماکرو را در خود ذخیره کنند. بنابراین اگر فایلی با فرمت xlsx. داشته باشید و ماکرویی در آن ایجاد کنید اگر بخواهید آن را ذخیره کنید ، پنجره محاوره ای زیر نشان داده خواهد شد.
اگر Yes را انتخابکنید اکسل به طور خودکار ، تمام کد را از فایل حذف خواهد کرد و آن را با فرمت xlsx. ذخیره می کند. اما اگر No را کلیک کنید ، پنجره محاوره ای زیر ظاهر خواهد شد و بایستی آنرا در فرمت xlsm. ذخیره کنید (گزینه Macro – Enabled Workbook Excel را انتخاب کنید) تا این ماکرو را حفظ کنید. پس اگر فایل اکسلی حاوی ماکرو را برای بار نخست بخواهید ذخیره کنید ، باید آن را در فرمت xlsm ذخیره کرد. در غیر اینصورت کد ماکرو را از دست خواهید داد.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
تابع VLOOKUP با جستجوی عبارتی در ستون اول جدول , مقدار مربوطه را از تقاطع سطر آن و ستون مشخص شده باز می گرداند.
VLOOKUP به معنای جستجوی عمودی است و برای یافتن آیتم ، ستون اول محدوده داده ها را به صورت عمودی جستجو می کند. لذا محدوده داده ها ( table_array ) ، باید بر این اساس سازماندهی شود.
نکته
برای جستجوی داده ها به صورت افقی از تابع HLOOKUP استفاده کنید .
فرمول سلول C3
=VLOOKUP(B3,B6:E18,4,FALSE)
تابع VLOOKUP مقدار lookup_value سلول B3 را در ستون سمت چپ جدول(محدوده B6:E18 )جستجو می کند. مقدار مورد نظر در سطر 16 یافت می شود. پارامتر سوم شماره ستونی است که می خواهید مقدار مربوطه را از آن استخراج کنید. در این مثال ، ستون 4 وارد شده و مقدار 30.00 در سلول C3 بازگردانده شده است. پارامتر چهارم و آخر ، FALSE به معنای بازگرداندن مقدار دقیق مورد جستجو است.
ترکیب تابع
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
پارامتر های تابع
Lookup_value: اجباری - مقداری را که می خواهیم از ستون اول جدول پیدا کنیم در این پارامتر وارد می کنیم. این مقدار می تواند یک عدد ، متن یا یک مقدار منطقی سلولی باشد.
table_array: اجباری - محدوده ی جدولی که می خواهید جستجو انجام شود ، به یاد داشته باشید که تابع VLOOKUP همیشه در ستون سمت چپ محدوده مشخص شده ظاهر می شود.
col_index_num : اجباری - شماره ستونی را که می خواهیم جواب از آن ستون باشد.
[range_lookup] : اختیاری - در این قسمت تعیین می کنید که اگر تابع مقدار مورد نظر را پیدا نکرد چه کند , آیا نزدیکترین مقدار را به ترتیب نزولی نتیجه دهد یا اینکه نه دقیقا همان مورد را جستجو کند. برای نزدیکترین مقدار , True و برای مقدار دقیق , False را وارد کنید. مقدار پیش فرض برای این پارامتر (اگر آن را خالی بگذارید) Trueمی باشد.
توجه
ممکن است نماد های جداکننده سیستم شما با توجه به تنظیمات regional settings متفاوت باشد.
تابع TRANSPOSE می تواند یک محدوده عمودی را به یک محدوده افقی و بلعکس , منتقل کند.
محدوده عمودی محدوده ای با مقادیر ی در یک ستون است ، محدوده افقی هم مقادیر ی در یک سطر می باشد. همچنین می توانید موقعیت محدوده ای با بیش از یک ستون و یک سطر را تعویض کنید.
فرمول آرایه ای در محدوده سلولی D2:H2
=TRANSPOSE(B2:B6)
محدوده B2: B6 دارای 1 ستون و 5 سطر می باشد و یک محدوده عمودی است. از تابع TRANSPOSE برای تبدیل آن به محدوده ی افقی استفاده شده است.
ترکیب تابع
TRANSPOSE(array)
پارامتر های تابع
Array: اجباری - محدوده ای که می خواهید موقعیت آن را تغییر دهید.
فرمول TRANSPOSE(B2:B6)= بصورت یک فرمول آرایه در محدوده D2:H2 وارد شده است.
چگونه فرمول را بصورت آرایه وارد کنیم
اگر این کار را انجام دهید ، فرمول بین براکت قرار می گیرد. نوار فرمول را در تصویر فوق مشاهده کنید.
توجه
ممکن است نماد های جداکننده سیستم شما با توجه به تنظیمات regional settings متفاوت باشد.
مبانی ماکرونویسی یک دوره آموزشی است که ساختار اصلی زبان VBA معرفی خواهد شد.
ماکرو
ماکرو یک برنامه کوچک کامپیوتری است. براساس اهداف این دوره ، برنامه کامپیوتری:
مجموعهای است از دستورالعملها که کامپیوتر با یک زبان برنامهنویسی ارتباط برقرار می کند.
VBA زبان برنامهنویسی است که این دستورالعملها را با آن خواهید نوشت.
اهداف این دوره:
فرآیند (procedure)
فرآیند به مجموعهای از دستورالعملها اشاره دارد که:
به عبارت دیگر ، فرآیند دستورالعملهایی است که از طریق VBA با اکسل ارتباط برقرار میکنید.
توجه کنید که شباهتی بین تعاریف "ماکرو" و "فرآیند" وجود دارد. از دید برنامهنویسی میتوانید تصور کنید که فرآیند به یک ماکرو اشاره دارد.
دو نوع فرآیندی که میتوانید در VBA ایجاد کنید
با VBA میتوانید دو نوع فرآیند ایجاد کنید:
تفاوت اصلی فرآیند Sub و Function در آنچه که انجام میدهند است:
فرآیند Sub به طور کلی:
و فرآیند Function:
ادامه این جلسه بر فرآیند Sub تمرکز دارد. فرآیند Function در جلسات بعدی بحث خواهد شد.
ساختار / ترکیب یک فرآیند
بلوک دستوراتی که یک فرآیند را ایجاد میکند بین دو دستور محصور شده است:
بنابراین ، در سطح پایه یک فرآیند از 3 جز اصلی تشکیل شده است:
ساختار / ترکیب یک فرآیند Sub
فرآیند Sub نیز از سه جز اصلی که در بالا توضیح داده شد تشکیل شده است:
بنابراین ، ترکیب اصلی یک فرآیند Sub به شرح زیر است:
Sub ProcedureName ()
دستورالعمل (ها)
End Sub
در این ترکیب:
ProcedureName نام فرآيند Sub است.
"دستورالعملها" ، فرمانهایی است که وقتی فرآيند Sub را فراخوانی میکنید اجرا میشود.
فرآیند همیشه بایستی عنوانی داشته باشد (ProcedureName در ترکیب فوق).
در نامگذاری فرآیند بایستی قوانینی را رعایت کنید. علاوه بر این ، اصولی نیز وجود دارد که کاربران حرفهای VBA هنگام انتخاب اسامی استفاده میکنند.
بنابراین موضوع نامگذاری فرآیند میتواند لیستی طولانی از قوانین و مقررات را شامل شود. برای مثال با توجه به الزامات مایکروسافت ، نام فرآیند:
برخی از این مفاهیم (مانند "دامنه" و "کاراکترهای اعلان ") ممکن است در حال حاضر نا آشنا باشد. در جلسات بعدی با آنها آشنا خواهید شد.
با توجه به پیچیدگی بالقوه این قوانین و شیوههای مختلف نامگذاری ، پیشنهاد میکنم از 3 قانون زیر برای نامگذاری فرآیندها استفاده کنید:
نویسه Underline (_) معمولا برای جدا کردن کلمات در نام فرآیند استفاده میشود.
فرآیندها چگونه اجرا میشود؟
همانطور که یاد گرفتید ، فرآیند مجموعهای از دستورالعملها است.
به عنوان یک قاعده ، دستورات اجرایی یک فرآیند باعث اجرای آن میشود:
به عبارت دیگر ، دستورالعملها در یک فرآیند به شرح زیر اجرا میشود:
استثناهایی نیز در این قاعده وجود دارد ، مانند استفاده از دستور IF در ماکرو.
در جلسه بعدی با اجزای اصلی یک دستور VBA آشنا میشوید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*
اگر به یک وب سایت یا فروشگاه رایگان با فضای نامحدود و امکانات فراوان نیاز دارید بی درنگ دکمه زیر را کلیک نمایید.
ایجاد وب سایت یا