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

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

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

Captcha

آمار بازدید

  • بازدید امروز : 10
  • بازدید دیروز : 31
  • بازدید کل : 81497

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


متغیرها

وقتی در VBA کار می کنید ، داده ها معمولا در یکی از دو عنصر زیر ذخیره می شوند:

  • شیء: رایج ترین شیء که داده ها در آن ساکن است ، شی Range است که یک محدوده سلولی را نشان می دهد و معمولا زمانی که با اکسل کار می کنید و داده هایتان در سلول های برگه اکسل ذخیره می شود رخ می دهد.
  • متغیر: متغیر یک مکان ذخیره سازی در حافظه رایانه است.

VBA فضایی از حافظه را به متغیر اختصاص می دهد و محل ذخیره سازی برای داده تا زمانی که تعریف شده است ، رزرو می شود.

هنگامی که یک متغیر ایجاد می کنید ، می توانید با استفاده از نام (یا دستکاری) متغیر تعریف شده , داده های ذخیره شده را مشاهده کنید.

با اعلان متغیر:

می توانید نام متغیر و نوع داده ذخیره شده را مشخص کنید.

نحوه تعریف و اعلان متغیر

متغیرها را به دو روش می توان ایجاد کرد:

  • به صراحت: با استفاده از دستوری که در آن به طور صریح ، نام و نوع داده متغیر تعیین می شود.
  • به صورت خودکار: استفاده از نوع داده پیش فرض VBA بدون اعلان قبلی.

در عمل , تعریف صریح متغیر توصیه می شود.

نوع داده متغیر

نوع داده متغیر به نحوه ذخیره داده اشاره دارد.

هنگامی که در کد خود نوع داده را برای متغیر مشخص می کنید ، به VBA می گویید که چگونه این متغیر را ذخیره و چقدر فضا برای آن اختصاص دهد. به عنوان مثال ، اگر نیاز به استفاده از یک متغیر برای نگه داشتن شماره ماه دارید ، می توان از نوع داده BYTE که می تواند مقادیر0 تا 255 را در نظر بگیرد , استفاده کنید. از آنجایی که تعداد ماهها بیشتر از 12 نبوده و همیشه بصورت عدد صحیح می باشد ، این انتخاب درست بوده و فضای کمتری از حافظه را نیز استفاده می کند.

برعکس ، اگر نیاز به یک متغیر برای ذخیره تعداد سطرهای اکسل دارید ، باید از یک نوع داده استفاده کنید که می تواند عددی را تا 1048756 جای دهد. بنابراین بهتر است از نوع Long data استفاده کنید.

Variant نوع داده پیش فرض است. به عبارت دیگر ، اگر به صراحت نوع داده یک متغیر را اعلام نکنید، به صورت پیش فرض نوع داده آن Variant تعیین می شود.

متغیرهای Variant تقریبا هر نوع داده را می توانند نگه دارند.

در جداول زیر انواع دادههای موجود که می توانید در VBA استفاده کنید نشان داده شده است.

انواع داده های یک متغیر VBA

اعلان صریح یک متغیر (و نوع داده آن)

متغیر (و نوع داده آن) را با دستوری قبل از محل استفاده آن اعلام می کنید ,که در این دستور :

  • یک نام را به متغیر اختصاص می دهید؛ و
  • نوع داده متغیر را مشخص می کنید.

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

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

در این ساختار ، موارد زیر را در نظر بگیرید:

کلمات کلیدی اعلام متغیر Dim ، Private ، Public و Static است. هر کدام از این کلمات کلیدی تاثیر متفاوتی بر متغیر دارند. رایج ترین کلمه کلیدی استفاده شده Dim است.

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

اعلان صریح نوع داده متغیر اختیاری است. به عبارت دیگر، می توانید نوع داده را حذف کنید.

دامنه متغیر

متغیرها می توانند 3 دامنه مختلف داشته باشند:

  • دامنه سطح فرآیند (یا محلی). این دامنه پیش فرض است.
  • دامنه سطح ماژول (یا خصوصی)
  • دامنه عمومی

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

متغیرهای سطح فرآیند (یا محلی)

این محدود ترین دامنه متغیر است.

همانطور که از نام آن مشخص می شود، متغیرهای سطح فرایند (که به عنوان متغیرهای محلی نیز شناخته می شود) تنها می توانند درون فرآیندی که در آن تعریف می­ شوند استفاده شوند. این امر در مورد هر دو فرآیند Sub و Function صادق است.

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

متغیرهای سطح ماژول (یا خصوصی)

ایده های پشت مفهوم متغیرهای سطح ماژول به میزان مشخصی شبیه آنچه که در رابطه با متغیرهای سطح فرآیند دیده اید است.

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

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

متغیرهای VBA سطح ماژول Public (یا عمومی)

میزان دسترسی به متغیرهای عمومی VBA بیشتر از متغیرهای سطح ماژول است:

  • در سطح پایه ، متغیرهای عمومی برای هر فرآیند ذخیره شده در هر ماژول یک فایل اکسل در دسترس هستند.
  • در یک سطح پیچیده ­تر، می توانید متغیرهای عمومی را برای فرآیندها و ماژول­های موجود در فایل­های مختلف ذخیره کنید.

متغیرهایی که با دستور Public اعلام شده اند برای همه فرآیند­های تمام ماژول ها قابل دسترسی است , مگر اینکه ماژول خصوصی در حال اجرا باشد. اگر ماژول خصوصی فعال باشد ، متغیرها فقط درون پروژه ای که در آن تعریف شده­ اند در دسترس هستند.

دامنه پیش فرض و طول عمر یک متغیر

محدوده پیش فرض یک متغیر فرآیندی است که در آن اعلام شده است.

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

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

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

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

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


expressions (عبارات بیان بیان)

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

  • انجام محاسبات ؛ یا
  • دستکاری رشته های متنی

عملگرها

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

می توان عملگرهای VBA را در 5 دسته طبقه بندی کرد:

  • عملگرهای ریاضی
  • عملگرهای مقایسه
  • عملگرهای منطقی
  • عملگرهای اتصال
  • عملگرهای تخصیص

عملگرهای ریاضی

از این عملگرها برای انجام محاسبات ریاضی استفاده کنید. عملگرهای ریاضی VBA , در زیر لیست شده است:

  • ^ : عدد را به توان 2 می رساند.
  • + : دو عدد را جمع می کند.
  • - : تفریق را انجام می دهد.
  • * : دو عدد را ضرب می کند.
  • / : برای تقسیم دو عدد استفاده می شود.
  • (بک اسلش): تقسیم عدد صحیح را انجام می دهد.
  • Mod : باقیمانده یک تقسیم را باز می گرداند.

عملگرهای مقایسه ا ی

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

  • < : کمتر از.
  • <= : کمتر یا برابر از.
  • > : بیشتر از.
  • >= : بزرگتر یا مساوی از.
  • = : برابر با.
  • <> : برابر نیست.
  • Is : متغیرهای شیء را مقایسه می کند و به شما امکان می دهد تا تعیین کنید که آیا دو متغیر شیء همان شیء نامیده شده را نشان می دهند. در مورد متغیرهای شی در جلسه آینده یاد می گیرید.
  • Like : رشته ای را با یک الگو مقایسه می کند , اگر رشته مطابق با الگو باشد True , در غیر این صورت False را برمی گرداند.

عملگرهای منطقی

برای ساخت عبارات منطقی از عملگرهای منطقی استفاده کنید:

  • And : یک پیوند منطقی از 2 expression انجام می دهد.
  • Equv : یک معادله منطقی از 2 expression را انجام می دهد.
  • Imp : یک پیوند منطقی از 2 expression انجام می دهد.
  • Not : نفی منطقی یک expression را بازمی گرداند.
  • Or : یک اختلاط منطقی از 2 expression انجام می دهد.
  • Xor : خروج منطقی از 2 expression را اجرا می کند.

عملگرهای اتصال

از این عملگر ها جهت پیوند رشته ها , برای ایجاد یک رشته جدید استفاده کنید. عملگرهای پیوند VBA عبارتند از:

  • &
  • +

عملگر تخصیص

از عملگر تخصیص (=) برای اختصاص یک مقدار به یک متغیر یا property استفاده کنید.

  • در جلسه قبل یاد گرفتید که چگونه مقداری را به یک property اختصاص دهید.
  • نحوه کار با متغیرها را در جلسه بعدی یاد خواهید گرفت.

در جلسه بعدی ، همانطور که ذکر شد ، یاد می گیرید که چگونه با متغیرها کار کنید.

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

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

محل قرار گیری کد های VBA ماکروی ضبط شده


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

یکی از بخش ­های ویرایشگر ویژوال بیسیک ، که در پست قبلی توضیح داده شد ، پنجره Project Explorer است.

محل قرار گیری کد های VBA ماکروی ضبط شده

در تصویر فوق ، VBAProject دو پوشه را نشان می­ دهد: Microsoft Excel Objects و ماژول ­ها.

می­ توانید عناصر داخل پوشه اول (اشیاء مایکروسافت اکسل) را ببینید ، اما اجزای داخل پوشه دوم (ماژول ­ها) قابل مشاهده نیست.

برای گسترش پوشه ماژول­ ها و دیدن اجزای آن ، روی "+" کلیک کنید. پنجره Project Explorer تقریبا به شکل زیر نمایش داده می­ شود:

محل قرار گیری کد های VBA ماکروی ضبط شده

مواردی که در پوشه اشیاء مایکروسافت اکسل ظاهر می­ شوند آشنا هستند. اما...

ماژول چیست؟

ماژول جایی است که کد VBA در آن ذخیره می­ شود.

هنگام ضبط ماکروی Best_Excel_Tutorial ، موارد زیر در ویرایشگر ویژوال بیسیک رخ می ­دهد:

  • یک ماژول جدید به ­صورت خودکار ایجاد می­ شود.
  • یک ماکرو با نامی که مشخص کردید ثبت می­ شود (Best_Excel_Tutorial).
  • کد­ها در پنجره ­کد ماژول (دقیق­تر در پنجره ­کد Module1) درج و ذخیره می­ شود.

برای نمایش کد VBA، روی Module1 دوبار کلیک کنید.

ویرایشگر ویژوال بیسیک کد­های VBA را در پنجره کد ماژول نمایش می ­دهد.

اگر طبق مراحل مثال ضبط ماکرو با اکسل ، ماکروی Best_Excel_Tutorial را ایجاد کرده باشید کد­های شما تقریبا به صورت تصویر زیر خواهد بود.

محل قرار گیری کد های VBA ماکروی ضبط شده

آیا این کد­ها برای شما مفهومی دارد؟

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

طبیعی است!

اجازه دهید نگاهی دقیق­تر به کد­­ها داشته باشیم تا مفهوم آنها را نیز درک­ کنید.

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

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

 

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

محل قرار گیری کد های VBA ماکروی ضبط شده
انتشار : ۱۵ آبان ۱۳۹۸

برچسب های مهم

بررسی کد های ماکروی ضبط شده


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

خبر خوب اول!

ممکن است متوجه شده ­باشید ، کد VBA­ (تاحدی) شبیه به زبان محاوره ­ای­ انگلیسی است. KeithDarlington (برنامه­ نویس با تجربه) در کتاب VBA for Excel Made Simple بیان می­ کند که این ویژگی VBA(شباهت آن با زبان محاوره ­ای انگلیسی) چگونه می­ تواند یک گام مفید در انتخاب دستورالعمل­ هایی باشد که ماکرو باید در VBA دنبال کند.

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

بررسی کد¬های ماکروی ضبط شده

  • ActiveCell.Select

Active cell سلولی است که در حال حاضر در یک برگه اکسل انتخاب شده است (سلول فعال). حتی اگر با اکسل و VBA آشنا نباشید ، حتما می­ دانید که معنی select چیست.

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

  • Selection.Columns.Autofit

این خط کد نیز با "انتخاب" شروع شده و پس از آن اشاره به "ستون­ها" و "تنظیم خودکار" می­ شود.

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

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

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

آموزش بعدی: مبانی کد های VBAماکروی ضبط شده

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

 

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

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


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

برای درک هر یک از دستورالعمل­ های ماکرویی که ضبط کرده ­اید ، اجازه دهید کل کد را که برحسب مورد به صورت خطی و مجموعه ، اجرا می شود ، بررسی کنیم.

اگر مفهوم هر کدام از خطوط کد را درک نکردید نگران نباشید.

هدف این بند ، این است که ایده اولیه­ ای درباره نحوه عملکرد VBA و مهمتر از همه ، دستورالعمل­ هایی که اکسل برای تایپ This is the best Excel tutorial، تنظیم خودکار عرض ستون سلول فعال ، تغییر رنگ زمینه سلول فعال به قرمز و تغییر رنگ فونت سلول فعال به آبی ، اجرا می­ کند را به شما نشان دهد.

متوجه خواهید شد که (نه تنها در این مثال ، بلکه معمولا هنگام ضبط ماکرو) کد VBA ممکن است شامل برخی از اقداماتی باشد که شما انجام نداده­ اید جان والکنباخ ، در کتاب Excel 2013 Bible بیان می­ کند که این تنها نتیجه فرعی روشی است که اکسل برای ترجمه عملیات کد استفاده می­ کند.

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

پنجره­ کد ماکرویی که ایجاد کرده ­اید ، شامل خطوط کد زیر است:

  •  آیتم 1-() Sub Best_Excel_Tutorial

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

خوب ... این خط کد چه عملی انجام می ­دهد؟

به سادگی به اکسل می­ گوید که در حال نوشتن یک فرآیندSub هستید.

فرآیند­های Sub بایستی همیشه با موارد زیر شروع شوند:

  • عبارت Sub
  • نام فرآیند ؛ در این مورد Best_Excel_Tutorial
  • پرانتز

علاوه بر این ، فرآیند­های Sub همیشه باید با دستور End Sub پایان یابد ، همان­طور که می ­توانید در آخرین خط­ کد نشان داده شده در تصویر زیر (با شماره 8 مشخص شده است) ببینید.

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

  • آیتم 2- خطوط کد با فونت سبز رنگ که با () شروع شده­ اند.

این خطوط توضیحاتی است که فقط برای ارائه اطلاعاتی قرار داده شده است. این توضیحات دارای خصوصیات زیر است:

  • با یک آپستروف() شروع می­ شوند.
  • VBA ، اساسا خطوط­ کدی را که با آپستروف شروع می­ شود ، نادیده می­ گیرد. بنابراین اجرای یک ماکرو ، به این توضیحات وابسته نیست. اگر این خطوط کد را حذف کنید ، ماکرو همچنان به صورت صحیح اجرا می­ شود.
  • هدف اصلی توضیحات ، نمایش اطلاعات مربوط به ماکرو است و به درک آن کمک می­ کند. توضیحات ممکن است شامل مواردی مانند ، هدف ماکرو یا آخرین اصلاحات انجام شده در این ماکرو باشد.
  •  آیتم 3- ActiveCell.Select

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

  • ActiveCell اشاره به سلول فعال فعلی در برگه فعال اکسل دارد.
  • Select یک شیء را در برگه فعال اکسل انتخاب می­ کند ، شیء در این خط­ کد ، سلول فعال فعلی است که ActiveCell به آن ارجاع می ­دهد.
  •  آیتم 4- "ActiveCell.FormulaR1C1 = This is the best Excel tutorial

این خط به اکسل فرمان می­ دهد که متن This is the best Excel tutorial در سلول­ فعال وارد شود.

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

  • در آیتم قبلی یاد گرفتید که هدف ActiveCell چیست.
  • FormulaR1C1 به اکسل می­ گوید فرمول شیء را تعیین­ کند ، در این مورد شیء ، سلول فعال است که ActiveCell به آن اشاره دارد.

بخش آخر R1C1 ، اشاره به الگوی آدرس ­دهی R1C1 است .

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

  • " This is the best Excel tutorial"  فرمولی را که باید در شئ سلول فعال قرار گیرد بیان می کند (در این ماکرو فرمول یک متن است).
  •  آیتم 5- Selection.Columns.AutoFit

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

بخش­ های مختلف این دستور به شرح زیر است:

  • Selection: نشان دهنده انتخاب فعلی (در این مورد سلول فعال) است.
  • Columns: ستون­های شیء Selection را انتخاب می­ کند ، که در این مورد ستون­ سلول فعال است.
  • AutoFit: عرض ستون انتخاب شده (در این مثال) و یا ارتفاع سطرهای انتخاب شده را به بهترین شکل ممکن ، متناسب با طول متن وارد شده تنظیم می­ کند.
  •  آیتم 6- دستور With…End With اول

ماکروی شما در حال حاضر دو مورد از چهار مورد درخواستی را اجرا کرده است:

  • متن This is the best Excel tutorial را در سلول فعال درج کرده است.
  • عرض ستون سلول فعال را متناسب با طول متن وارد شده تنظیم کرده است.

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

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

هدف اصلی دستور With…End With ، ساده ­سازی ترکیب اجرای چند دستورالعمل است که همه آنها به یک شیء واحد اشاره می ­کنند بدون اینکه هر بار به آن شیء ارجاع شود.

در مورد این مثال این شیء سلول فعال است. همانطور که در تصویر زیر مشاهده می­ کنید ماکروی ضبط شده حاوی دو دستور With…End With می ­باشد.

دستور With…End With

ترکیب دستور With…End With به شرح زیر است:

 ابزار بیان شیء With
[دستورالعمل­ها]
End With

  • در ابتدا ، ترکیب با عبارت With و به ­دنبال آن ابزار­ بیان شیء شروع می­ شود.

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

  • این دستور می­ تواند یک یا چند خط کد داشته باشد ، که دستورالعمل­ هایی هستند که بر روی شیء مورد نظر انجام می ­شود.
  • پایان دستور ، با عبارت End With مشخص می­ شود.

در مورد اولین دستور With…End With ، هر یک از این موارد به شرح زیر است:

دستور With…End With

حال که یک درک اولیه از آنچه که دستور With…End With انجام می ­دهد دارید ، اجازه دهید نگاهی به خطوط کد این دستور داشته باشیم:

1. With Selection.Interior

این خط به اکسل می­ گوید که هنگام اجرای دستورالعمل­ ها که بخشی از دستور With…End With هستند باید همیشه به داخل سلول فعال ارجاع شود.

نحوه انجام کار چگونه است؟

  • With شروع دستور With…End With است و اکسل را مطلع می ­کند که دستورالعمل های بعدی روی شییء که در این خط ذکر شده است اجرا خواهد شد.
  • Selection.Interior ابزار بیان شیء است که در بند ساختار دستور With…End With توضیح داده شده است.

Selection نشان دهنده انتخاب فعلی است که در این مثال سلول فعال است. Interior به درون یک شی اشاره می ­کند ، که در این مورد داخل سلول فعال است.

2. Pattern = xlSolid

این کد اولین خط از دستور With…End With است که اشاره به داخل سلول فعال دارد و به اکسل می ­گوید رنگ الگوی درونی سلول فعال یک رنگ یکپارچه است. این کار به شرح زیر انجام می­ شود:

  • Pattern الگوی داخلی را تنظیم می­ کند.
  • xlSolid مشخص می­ کند که الگو باید یک رنگ یکپارچه باشد.

3. PatternColorIndex = xlAutomatic

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

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

  •  آیتم 7- دستور 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 است. بنابراین ، خطوط کد بعدی به فونت سلول فعال ارجاع نمی­ دهد.

  •  آیتم 8- End Sub

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

چند نکته در خصوص نحوه یادگیری برنامه ­نویسی در اکسل

  • قسمت­هایی از کد VBA را تغییر دهید تا چیزهای جدیدی تجربه کنید.

در خط کد "ActiveCell.FormulaR1C1 = "This is the best Excel tutorial از متن This is the best Excel tutorial استفاده شده است ، می­ توانید هر متن دیگری (مثلا نام خودتان) را نیز انتخاب کنید.

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

به صفحه اصلی اکسل برگردید و دوباره ماکرو را (با استفاده از میانبر صفحه کلید Ctrl+Shift+B که به آن اختصاص داده ­اید) اجرا و بررسی کنید چه اتفاقی می ­افتد.

  • برخی از دستورات را از کد حذف کنید تا ببینید که چگونه بر ماکرو تاثیر می­ گذارد.

به عنوان مثال ، اگر Selection.Columns.AutoFit را حذف کنید، چه اتفاقی رخ می­ دهد؟

آن­ را امتحان کنید.

به صفحه اصلی اکسل برگردید و دوباره ماکرو را با این تغییر اجرا کنید.

چه اتفاقی می­ افتد؟ آیا این تغییر چیزی بود که انتظار داشتید؟

  • یکی از بهترین روش­های یادگیری ماکروی اکسل این است که تمرینات موجود در این فصل را تکرار کنید بنابراین توصیه می­کنیم که این کار را انجام دهید.

در مراحل بعدی:

  1. چیزهای جدیدی امتحان کنید و ماکرو­های متفاوتی را ضبط کنید.
  2. ویرایشگر ویژوال بیسیک را باز کنید و کد VBA را خط به خط بررسی کنید.

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

آموزش بعدی: کد های آماده VBA را کجا قرار دهیم

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

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

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


در اکسل ، معمولا از سطر و ستون برای آدرس دهی یک سلول به شکل زیر استفاده می شود:

  • ستون ها با حرف مشخص شده و از A شروع می شود.
  • سطر ها با شماره مشخص شده و از 1 شروع می شوند.

این سبک آدرس دهی به عنوان سبک A1 شناخته می شود. سلول گوشه بالا سمت چپ صفحه اکسل , بصورت A1 آدرس دهی می شود.

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

  • ستون اول ستون 1 (یا C1) است. و
  • سطر اول سطر 1 (یا R1) است.

این سبک آدرس دهی به عنوان سبک R1C1 شناخته می شود ، سلول گوشه بالا سمت چپ صفحه اکسل , بصورت R1C1 آدرس دهی می شود.

چند دلیل برای یادگیری نحوه کار با سبک R1C1 وجود دارد. یکی از دلایل اصلی این واقعیت است که , هنگام کار با VBA ، سبک R1C1 انعطاف پذیر ، کارآمد و راحت تر است.

سلول با آدرس ثابت

به کمک دستور Range می­ توانید به یک سلول روی برگه ­ای که در آن اقدام به نوشتن کد کرده ­اید , دسترسی داشته باشید. قالب این دستور به شکل زیر است:

Range("آدرس سلول")

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

Range("B7")="Excel"

با نوشتن این خط کد , هرگاه کد اجرا شود , مقدار سلول B7 حاوی عبارت Excel می ­شود.

دو نکته در مورد مثال بالا مطرح است. اول اینکه در دستور , آدرس سلول مورد نظر حتما باید بین دو علامت (" ") قرار گیرد. مورد دیگر اینکه اگر با یک متن ثابت سر و کار داشته باشید , ( مانند Excel در این مثال) باید حتما آن را  بین دو علامت (" ") قرار دهید.

کار با سلول با آدرس متغیر

گاهی در هنگام کدنویسی نیاز پیدا می­ کنید که آدرس سلول­ ها را متغیر در نظر بگیرید. برای چنین مواقعی باید از دستور Cells با ترکیب زیر کمک بگیرید:

Cells(شماره ستون , شماره سطر)

ساختار سبکR1C1

هنگام ایجاد آدرس سلولی به سبک R1C1 ، اصول زیر بایستی در نظر گرفته شود:

  • حرف "R" به معنای "سطر" و حرف "C" به معنای "ستون" است.
  • حروف R و C به طور کلی با یک شماره ( #R#C ) دنبال می شود:

o شماره پس از حرف R نشان دهنده شماره سطر است؛ و

o شماره پس از حرف C نشان دهنده شماره ستون است.

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

نحوه ارجاع به سلول فعال ، با استفاده از سبک R1C1

اگر شماره های پس از حروف R یا C را حذف کنید ، به همان سطر یا ستون آدرس سلول اشاره می­ کنید. از این رو:

  • "RC" به سلول پایه اشاره می کند (همان سطر، همان ستون).
  • "RC#" (حذف عدد پس از حرفR ) آدرسی با همان سطر سلول پایه (همان سطر ، ستون متفاوت) است.
  • "R#C" (حذف عدد پس از حرفC) آدرسی با همان ستون سلول پایه (سطر متفاوت ، همان ستون) است.

نحوه ایجاد آدرس نسبی با سبک R1C1

  • اعدادی که پس از حروف R و C مشخص می کنید مقدار پیمایش از سلول پایه را مشخص می کنید. به عبارت دیگر ، این اعداد تعداد سطر یا ستونی را که از سلول پایه حرکت می کند را مشخص می کند. به طور خاص:

o هنگامی که مقدار پیمایش سطر را مشخص می کنید (شماره بعد از حرف R) :

  • اعداد مثبت به سمت پایین صفحه پیمایش می کند؛ و
  • اعداد منفی به سمت بالای صفحه پیمایش می کند.

o هنگامی که مقدار پیمایش ستون را مشخص می کنید (شماره بعد از حرفC ):

  • اعداد مثبت به سمت راست برگه حرکت می کند؛ و
  • اعداد منفی به سمت چپ برگه پیمایش می کند.
  • عدد پیمایش تعداد سطر و ستون را در داخل براکت قرار دهید ([#]).

بنابراين ، ساختار آدرس دهی نسبی در سبک R1C1 به شکل زیر می باشد:

"R[RowOffset#]C[ColumnOffset#]"

در جلسه بعدی ، یاد می گیرید که چگونه با operator (عملگر)ها در VBA کار کنید.

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

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

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


در جلسه دوم، درباره ساختار دستورالعمل های VBA یاد گرفتید:

  • Object.Property
  • Object.Method

اکثر دستورالعمل های VBA نیز دو عمل را انجام می دهند:

  1. ارجاع به یک شیء ؛ و
  2. دستکاری شیء

در جلسه سوم یاد گرفتید که چگونه به یک شیء ارجاع دهید (مرحله1). در این جلسه ، یاد می گیرید که چگونه شیء را دستکاری کنید(مرحله2).

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

  1.  properties (ویژگی های) شیء را تغییر دهید ؛ یا
  2. با فراخوانی یک method ، عملی را روی شیء انجام دهید.

properties (ویژگی ها)

Properties ویژگی هایی هست که یک شیء را توصیف می کند.

به عبارت دیگر ، اکثر اشیاء (از جمله مجموعه ها)ی مدل اکسل دارای یک سری ویژگی هستند. این ویژگی ها ، تعیین می کند که یک شیء , در میان اشیاء دیگر، چگونه:

  • به نظر می رسد ؛ و
  • رفتار می کند.

به عنوان مثال ، شیء Worksheet را در نظر بگیرید. بعضی از ویژگی های آن عبارت است از:

  • DisplayPageBreaks ، نشان دهنده این است که آیا ابعاد صفحه ها , نمایش داده شود یا خیر.
  • Name ، نام برگه را نشان می دهد.
  • Visible , نشانگر نمایش برگه است.

 methods (شیوه های عمل)

Methods اقداماتی هست که روی یک شیء انجام می دهید. به عبارت دیگر ، اکثر اشیاء (از جمله مجموعه ها)ی درون مدل شی اکسل شامل یک سری Method هست. این Method ها تعیین می کند که چه چیزی می توانید با شیء , یا روی آن انجام دهید.

به عنوان مثال ، شیء Worksheet را در نظر بگیرید. بعضی از Method های آن عبارت است از:

  • Activate ، برگه فعال را ایجاد می کند.
  • Copy ، برگه را کپی می کند.
  • Delete ، برگه را حذف می کند.
  • Move ، برگه را به مکان دیگری انتقال می دهد.

نحوه کار با properties

هنگام کار با properties ، می توانید موارد زیر را انجام دهید:

  1. ویرایش (نوشتن) مقدار properties
  2. استفاده از مقدار فعلی (خواندن) properties

ویژگی هایی که می توان مقدار آن را هم خواند و هم نوشت ، به عنوان ویژگی های هم خواندنی و هم نوشتنی شناخته می شوند , بعضی از ویژگی ها فقط خواندنی (و نه نوشتنی) هستند. اینها به عنوان ویژگی فقط خواندنی شناخته می شوند.

نحوه کار با methods

هنگام کار با methods معمولا می توانید موارد زیر را انجام دهید:

  1. اقدامی را انجام دهید که مربوط به عمل method است.
  2. شیء جدیدی ایجاد کنید , یا مقداری را بازگردانید.

parameters (مولفه ها)

برخی از properties (ویژگی ها) و methods (شیوه های عمل) , مولفه هایی دارند که می توانید از این مولفه ها در موارد زیر استفاده کنید:

  • مشخص کردن (نوشتن) مقدار جدید یک property ؛ یا
  • مشخص کردن رفتار یک property یا method

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

ساختار دستوراتVBA (به روز رسانی)

درجلسه دوم ، مشاهده کردید که دو ساختار اساسی برای دستور ها وجود دارد:

  • Object.Property
  • Object.Method

همچنین یاد گرفتید که این ساختار زمانی تغییر می کند که :

  • یک مقدار جدید برای یک property مشخص و تعیین کنید ؛ یا
  • با مولفه های Method کار کنید.

ترکیب دستور بسته به اینکه , آیا با یک property یا یک Method کار می کنید متفاوت است.

ساختار دستورات VBA زمانی که با مولفه های method کار می کنید

ساختار اصلی دستور VBA زمانی که با مولفه های  method کار می کنید به شکل زیر است:

Object.Method ParameterList

قوانین اصلی این ترکیب:

  • لیست مولفه ها (ParameterList) پس از  method قرار می گیرد و با یک کاراکتر فاصله (space) از آن جدا می شود.
  • مولفه های منفرد (داخل 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)

قوانین اصلی این ترکیب:

  • لیست مولفه ها (ParameterList) پس از Property و در داخل پرانتز قرار می گیرد.
  • مولفه های منفرد (داخل ParameterList)با یک کاما و یک فاصله (, ) از یکدیگر جدا می شوند.

ساختار دستور VBA که از چندین مولفه Property استفاده می کند ، به شکل زیر است:

Object.Property(Parameter1Value, Parameter2Value, ..., Parameter#Value)

ساختار دستور VBA زمانی که یک مقدار property جدید مشخص می کنید

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

Object.Property = NewPropertyValue

قوانین اصلی این ترکیب:

  • تنها یک مقدار را می توانید مشخص می کنید.
  • از اپراتور تخصیص (=) استفاده می کنید. این اپراتور پس از property قرار دارد و با کاراکتر فاصله در طرفین آن از property و مقدار property جدید جدا می شود.

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

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

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

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


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

  • چگونه اشیا سازماندهی می شوند ؛ و
  • چگونه آنها را شناسایی و به یک شیء خاص ارجاع دهید.

سلسله مراتب اشیاء

اشیائی که برنامه اکسل را تشکیل می دهند ، در یک سلسله منطقی سازماندهی شده اند ، که به نام مدل اشیاء اکسل شناخته می شود. در این مدل:

  • شیء برنامه (Application object) ، که کل برنامه Excel را نشان می دهد ، در بالای سلسله مراتب قرار دارد. شیء برنامه شامل اشیاء متعددی است ، به عنوان مثال ، شیء Workbook.
  • شیء Workbook نیز شامل اشیاء دیگری ، مانند شی Worksheet است.
  • شیء Worksheet شامل اشیاء دیگری مانند ، شیء Range و شیء PivotTable است.

مبانی ماکرونویسی در اکسل

این الگو به شکل مشابهی گسترش می یابد تا به اشیایی که شامل شیء دیگری نیستند برسد.

مجموعه ها و مدل اشیاء اکسل

اشیاء معمولا به مجموعه ای از اشیاء مرتبط دسته بندی می شوند. هنگام کار با مدل اشیاء اکسل ، می توانید مجموعه های زیر را در نظر بگیرید:

  • مجموعه Workbooks ، فایل های اکسلی که در حال حاضر باز است ؛ و
  • مجموعه Worksheets ، تمام برگه های موجود در یک فایل اکسل.

مجموعه ها برای دسترسی به اشیاء ضروری هستند. دلایل اصلی این ضرورت , دو مورد زیر است:

  • معمولا به اشیاء منفرد می توان از طریق مجموعه ای که به آن تعلق دارند دسترسی داشت. به عنوان مثال ، اگر می­ خواهید به یک شیء Worksheet مشخص مراجعه کنید ، معمولا به این شیء از طریق مجموعه Worksheets دسترسی خواهید داشت.
  • در برخی موارد ، مجموعه ها به شما اجازه می دهند تا همزمان با همۀ اعضای آن کار کنید. بنابراین ، به جای اینکه آدرس جداگانه ای برای هر شیء منفرد ایجاد کنید ، می توانید با تمام اشیا منفرد همزمان کار کنید. این کار را با یک دستور ساده انجام می دهید ، مثلا:
  • property (ویژگی) مجموعه را تغییر می دهید؛ یا
  • یک method (شیوه عمل) از مجموعه را فراخوانی می کنید.

نحوه ارجاع به یک شی

معمولا ارجاع به شیء را در دو مرحله می توانید انجام دهید:

  1. حرکت رو به پایین در مدل اشیاء اکسل , تا به مجموعه ای که حاوی شیء مورد نظر شما است برسید.
  2. شناسایی شیء در مجموعه ای که داخل آن قرار دارد.

حرکت در مدل اشیاء اکسل

برای حرکت در مسیر مدل اشیاء اکسل (مرحله 1) , سه قاعده اساسی زیر را دنبال کنید:

  1. با شیء برنامه در بالای مدل اشیاء اکسل شروع کنید و سلسله مراتب را تا موقعیت مورد نیاز ادامه دهید.
  2. به عنوان یک قاعده کلی ، از properties (ویژگی ها) برای ارجاع به اشیاء استفاده کنید. هنگامی که یک شیء شامل شیء دیگری است ، شیء درونی معمولا دارای یک ویژگی است که می توانید برای دسترسی به آن استفاده کنید.
  3. در مسیر مدل اشیا اکسل ، از نقطه (.) برای اتصال اشیاء با ویژگی های آن استفاده کنید.

به عنوان مثال ، ارجاع به یک شیء Worksheet ، را در نظر بگیرید. از دید کلی ، تقریبا می توانید به صورت زیر عمل کنید:

  1. به شیء برنامه اکسل (Application) ارجاع دهید.
  2. ویژگی Workbooks از شیء برنامه ، مجموعه Workbooks را باز می گرداند که نماینده تمام فایل های باز است. می وانید با اتصال شیء (Application) و ویژگی (Workbooks) با یک نقطه (Application.Workbooks) , به این مجموعه بروید(ساختار اصلی دستورات VBA , در جلسه دوم را مشاهده کنید).
  3. در مجموعه Workbooks بایستی شیء Workbook مناسب را انتخاب کنید (نحوه انجام آن را در بند زیر یاد می گیرید).
  4. ویژگی Worksheets از شیء Workbook , مجموعه Worksheets را باز می گرداند ، که نشان دهنده تمام برگه ­های موجود در فایل اکسل است.
  5. می­ توانید با اتصال شیء (Application.Workbooks) و ویژگی (Worksheets) با یک نقطه (Application.Workbooks.Worksheets) به این مجموعه بروید.
  6. در مجموعه Worksheets ، باید شیء Worksheet مناسب را مشخص کنید.

در ادامه نحوه این شناسایی را یاد می گیرید.

نحوه شناسایی و مشخص کردن یک شیء خاص از یک مجموعه

معمولا یک شیء از یک مجموعه را به دو روش زیر مشخص می کنند:

  1. با استفاده از شماره شاخص , که نشان دهنده موقعیت شیء در مجموعه است.
  2. با استفاده از نام شیء

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

  • شماره شاخص یا نام شیء پس از نام مجموعه قرار می گیرد.
  • شماره شاخص در داخل پرانتز قرار دارد (Collection(IndexNumber)).
  • نام شیء در داخل علامت نقل قول و پرانتز (Collection("ObjectName")) قرار می گیرد.

موارد زیر نمونه هایی از نحوه اعمال این قوانین را نشان می دهد:

  • اولین شیء Workbook در مجموعه Workbooks :

Application.Workbooks (1)

  • اولین شیء Worksheet در مجموعه Worksheets ( اولین شیء Workbook):

Application.Workbooks (1) .Worksheets (1)

  • فایل اکسل با نام"Book1.xlsx" :

Application.Workbooks ("Book1.xlsx")

  • برگه با نام "Sheet1" در فایلی با نام Book1.xlsx:

Application.Workbooks("Book1.xlsx").Worksheets("Sheet1")

نکته

سلسله مراتب ارجاع به اشیاء که در بند قبلی ارائه شد به عنوان آدرس کامل شناخته می شوند.

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

مفروضات اصلی VBA و پیامدهای آن به شرح زیر است:

  • VBA فرض می کند که با شیء برنامه (اکسل) کار می کنید. بنابراین ، می توانید شیء برنامه (Application object) را حذف کنید.
  • VBA عموما فرض می کند که  با شیء فعال (به عنوان مثال، فایل اکسل فعال، برگه فعال یا سلول فعال) کار می کنید. بنابراین ،  می توانید:

o هنگام کار با فایل اکسل فعال ، شیء Workbook را حذف کنید ؛ و

o هنگام کار با برگه فعال ، شیء Worksheet را حذف کنید.

هنگام ارجاع به اشیاء ، شیء Application معمولا حذف می شود. با این حال ، حذف شیء Workbook و Worksheet , کار آسانی نیست. هر دو شیء مزیت و معایب بالقوه ای دارند. بنابراین ، برخی از کاربران VBA توصیه می کنند که در ارجاع به شیء از آدرس کامل استفاده شود در حالی که ، برخی دیگر توصیه می کنند که آدرس ارجاع را تا آنجا که ممکن است باید ساده کرد.

در جلسه بعدی ، یاد می گیرید که چگونه با استفاده از property  و  method ، اشیاء را دستکاری کنید. 

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

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

کدهای آماده VBA را کجا قرار دهیم


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

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

  • پنجره­ کد یک ماژول
  • پنجره­ کد شیء؛ این شیء می تواند یک فایل اکسل ، یک برگه اکسل ، User Form و... باشد.

تفاوت پنجره­ کد ماژول و پنجره­ کد اشیاء

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

در این مورد رخداد شیء ، باز شدن فایل اکسل است.

به همین ترتیب ، اگر می­ خواهید از یک برگه اکسل محافظت کنید ، کد را بایستی در پنجره­ کد Worksheet وارد کنید.

این رخداد­ها به عنوان محرک­ هایی هستند که با روی دادن آنها ماکرو اجرا خواهد ­شد.

برعکس ، کد­های ذخیره شده در ماژول باید به صورت دستی (و یا از طریق کد­های دیگر) اجرا شود.

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

ایجاد ماژول و اضافه کردن کد به پنجره­ کد آن

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

روش1- چگونه یک ماژول VBA ایجاد کنیم

  1. در ابتدا وارد محیط ویرایشگر ویژوال بیسیک اکسل شوید.
  2. در پنجره Project Explorer پروژه ­ای را انتخاب کنید که می­ خواهید یک ماژول به آن اضافه کنید (اگر پنجره Project Explorer را نمی­ بینید از میانبر صفحه کلید Ctrl+R استفاده نمایید). به عنوان مثال در تصویر زیر ، یک ماژول به VBAProject (Book1.xlsm) افزوده می­ شود ، که تنها پروژه باز و موجود در این پنجره است. روی یکی از اشیاء فایل اکسل که در پنجره Project Explorer مشاهده می­ کنید راست کلیک­ کنید.
  3. در لیست باز شده مکان­ نما را روی گزینه Insert قرار دهید.
  4. در لیست باز شده روی Module کلیک کنید.

چگونه یک ماژول VBA ایجاد کنیم

روش2- چگونه یک ماژول VBA ایجاد کنیم

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

چگونه یک ماژول VBA ایجاد کنیم

با اجرای این مراحل ، بلافاصله پوشه Modules ایجاد و یک شیء با عنوان Module1 به آن اضافه می­ شود. اگر در سمت چپ محیط ویرایشگر ویژوال بیسیک قسمت Project Explorer را مشاهده کنید , خواهید دید که ماژولی با نام Module1 نمایش داده می ­شود.

اگر قبلا یک ماژول وارد کرده باشید ، مراحل فوق یک ماژول جدید ایجاد می­ کند.

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

حذف یک ماژول

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

توجه داشته باشید که ، همانطور که جان والکنباخ در کتاب Excel VBA Programming for Dummies بیان می­ کند ، تنها ماژول­ های VBA را می­ توانید حذف کنید:

راه دیگری برای حذف سایر ماژول­ های VBA وجود­ندارد ، آنهایی که برای اشیاء Sheet یا ThisWorkbook استفاده می شوند.

روش1- نحوه حذف ماژول VBA 

با استفاده از این روش ، می­ توانید ماژول VBA را با دنبال کردن دو مرحله ساده زیر حذف کنید.

  1. به پنجره پروژه بروید و ماژولی که می­ خواهید حذف شود را انتخاب کنید.

نحوه حذف ماژول VBA

  1. به زبانه File بروید و Remove module_name را انتخاب کنید.

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

نحوه حذف ماژول VBA روش2- نحوه حذف ماژول VBA

  1. به پنجره پروژه بروید و روی ماژولی که می­ خواهید حذف شود راست کلیک کنید.
  2. روی گزینه Remove module_name کلیک کنید.

نحوه حذف ماژول VBA

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

نحوه حذف ماژول VBA

در اغلب موارد ، دلیل حذف یک ماژول VBA این است که کدی داخل آن وجود ندارد. در این صورت ، روی No کلیک کنید.

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

نحوه  وارد کردن کد آماده به ماژول VBA

 اضافه ­کردن کد به پنجره ­کد شیء

برای باز کردن پنجره­ کد یک شیء ، روی آن دوبار کلیک کنید.

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

آموزش بعدی: ذخیره فایل اکسل حاوی ماکرو

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

 

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

کدهای آماده  VBA را کجا قرار دهیم
انتشار : ۲ آذر ۱۳۹۸

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


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

  • تعیین ساختار مناسب VBA برای دستیابی به یک هدف خاص ؛ و
  • ایجاد دستورات اولیه VBA

نیاز است ، یاد خواهید گرفت.

اجزاء اصلی زبان VBA

در این جلسه ، 5 جزء اصلی VBA را یاد خواهید گرفت:

1. Objects (اشیاء)

2. Collections (مجموعه‌ها)

3. Properties (ویژگی‌ها)

4. Methods (شیوه‌های عمل)

5. Parameters (مولفه‌ها)

اشیاء و مجموعه‎ها

در VBA از اشیاء برای ارجاع و دسترسی به چیزی استفاده می‌کنیم. برخی از نمونه‌های رایج اشیاء در VBA عبارتند از:

  • Workbook نشان دهنده شیء فایل اکسل است.
  • worksheet نشان دهنده شیء برگه اکسل است.

در بعضی موارد نیاز است که همزمان به چند شیء مشابه ارجاع دهید. مثلا:

  • همه فایل‌های اکسل باز ؛ یا
  • همه برگه‌های یک فایل اکسل

ساختار VBA که امکان این کار را به شما می‌دهد به عنوان collection (مجموعه) شناخته شده است. به عبارت دیگر ، اشیاء معمولا به مجموعه‌ای از اشیاء مرتبط دسته‌بندی می‌شود. مثلا:

  • مجموعه‌ای از تمام فایل‌های اکسل باز که با مجموعه Workbooks مشخص می‌شود.
  • مجموعه‌ای از تمام برگه‌های یک فایل اکسل که با مجموعه Worksheets مشخص می‌شود.

براحتی می‌توانید شی را از مجموعه تشخیص دهید ، در انتهای عنوان مجموعه‌ها "s" وجود دارد (استثنائاتی نیز وجود دارد). مثلا:

  • شیء Workbook در مقابل مجموعه Workbooks
  • شی Worksheet در مقابل مجموعه Worksheets

مجموعه‌ خود نیز یک شیء است.

ویژگی‌ها (Properties ) 

properties خصوصیات یک شی را توصیف می‌کند. در زیر برخی از ویژگی‌های VBA لیست شده است:

  • آدرس یک سلول (Range.Address)
  • فرمول درون یک سلول (Range.Formula)
  • ارتفاع یک سطر از سلول‌ها (Range.Height)
  • رنگ زمینه یک سلول (Interior.Color)
  • نام برگه اکسل (Worksheet.Name)

 شیوه‌های عمل(methods)

method عمل اکسل است که روی یک شیء انجام می‌شود. موارد زیر از شیوه‌های عمل VBA است:

  • Copy ، Cut و Paste
  • Delete (حذف)
  • Sort (مرتب سازی)
  • Find (یافتن)

مولفه‌ها (parameters )

parameter به شما اجازه می‌دهد تا توضیح دهید که چگونه:

  • یک method انجام می‌شود ؛ یا
  • یک property ویرایش می‌شود.

برای مثال ، پنجره محاوره‌ای Paste Special شامل گزینه‌های متعددی است که این امکان را می‌دهد تا مشخص کنید اکسل چگونه عمل Paste را انجام دهد.

مبانی VBA در اکسل

در VBA با استفاده از مولفه‌های شیوه‌عمل Range.PasteSpecial مشخص می‌کنید که کدام یک از این گزینه‌ها اعمال شود:

  •  Paste تعیین می‌کند بخشی از محدوده سلولی که عبارتی در آن درج شود.
  • Operation تعیین می‌کند عملیات محاسباتی انجام شود.
  • SkipBlanks تعیین می‌کند عبارتی در سلول‌های خالی درج شود یا خیر.
  • Transpose تعیین می‌کند سطر‌ها و ستون‌ها جابجا شود.

اکسل از دید یک کاربر VBA

کاربران اکسل معمولا این نرم افزار را به عنوان یک ساختار یکپارچه در نظر می‌گیرند.

 در این بخش ، درباره اشیاء یاد گرفتید. اشیاء (به عنوان مثال ، workbook و worksheet) صرفا بخشی از ساختار VBA است. در VBA می‌توانید از اشیاء به عنوان عناصر منفرد استفاده کنید. 

به عبارت دیگر، یک کاربر VBA برنامه اکسل را به اشیاء مختلف تقسیم می‌کند. هر شیء:

  • Properties (ویژگی‌ها) ؛ و
  • Methods (شیوه‌های عمل)

خود را دارد.

بنابراین می‌توانید اشیا را با دو روش اصلی زیر دستکاری کنید:

با ویرایش یک property ؛ یا

با فراخوانی یک method

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

ساختار اصلی یک دستور VBA

می‌توانید دستور‌های VBA را با ترکیب سه جزء زیر شروع کنید:

  • یک شیء
  • یک نقطه (.)
  • property ( ویژگی) یا method (شیوه عمل) شیی که با آن کار می‌کنید.

بنابراین ، دو ساختار پایه برای دستورها دارید:

  • Object.Property
  • Object.Method

این ساختار زمانی تغییر می‌کند که:

  • یک مقدار جدید برای property مشخص کنید ; یا
  • مولفه‌هایی برای مشخص کردن رفتار property  یا  method اضافه کنید.

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

تابع 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 متفاوت باشد.

تابع VLOOKUP
انتشار : ۳۰ اردیبهشت ۱۳۹۸

برچسب های مهم

تابع TRANSPOSE


تابع TRANSPOSE می تواند یک محدوده عمودی را به یک محدوده افقی  و بلعکس , منتقل کند.

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

  تابع TRANSPOSE در اکسل

فرمول آرایه ای در محدوده سلولی D2:H2

=TRANSPOSE(B2:B6)

 محدوده B2: B6 دارای 1 ستون و 5 سطر می باشد و یک محدوده عمودی است. از تابع TRANSPOSE برای تبدیل آن به محدوده ی افقی استفاده شده است.

ترکیب تابع

 TRANSPOSE(array)

 پارامتر های تابع

Array: اجباری - محدوده ای که می خواهید موقعیت آن را تغییر دهید.

فرمول TRANSPOSE(B2:B6)= بصورت یک فرمول آرایه در محدوده D2:H2  وارد شده است.

چگونه فرمول را بصورت آرایه وارد کنیم

  1. محدوده D2:H2 را انتخاب کنید.
  2. در نوار فرمول کلیک کنید.
  3. فرمول TRANSPOSE(B2:B6)= را در نوار فرمول تایپ کنید.
  4. Ctrl + Shift را فشار داده و نگه دارید.
  5. کلید Enter را فشار دهید.
  6. تمام کلید ها را آزاد کنید.

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

توجه

ممکن است نماد های جداکننده سیستم شما با توجه به تنظیمات regional settings متفاوت باشد.

تابع TRANSPOSE
انتشار : ۲۹ اردیبهشت ۱۳۹۸

برچسب های مهم

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


مبانی ماکرونویسی یک دوره آموزشی است که ساختار اصلی زبان VBA معرفی خواهد شد.

ماکرو 

ماکرو یک برنامه کوچک کامپیوتری است. براساس اهداف این دوره ، برنامه کامپیوتری:

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

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

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

اهداف این دوره:

  • با ساختار VBA آشنا شوید؛ و
  • بتوانید مجموعه دستورالعمل‌ها را به اکسل انتقال دهید.

فرآیند (procedure

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

  • در VBA می­‌نویسید; و
  • به عنوان یک واحد اجرا خواهد شد.

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

توجه کنید که شباهتی بین تعاریف "ماکرو" و "فرآیند" وجود دارد. از دید برنامه‌نویسی می‌توانید تصور کنید که فرآیند به یک ماکرو اشاره دارد.

دو نوع فرآیندی که می‌توانید در VBA ایجاد کنید

با VBA می‌توانید دو نوع فرآیند ایجاد کنید:

  • فرآیند­ Sub وآموزش رایگان ماکرونویسی در اکسل
  • فرآیند Function (تابع سفارشی)

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

تفاوت اصلی فرآیند Sub و Function در آنچه که انجام می‌دهند است:

فرآیند Sub به طور کلی:

  • دستورالعمل‌های مشخص شده را انجام می‌دهد ؛ اما
  • مقداری را باز نمی‌گرداند.

و فرآیند Function:

  • دستورالعمل‌های مشخص شده را انجام می‌دهد ؛ ولی
  • مقداری را باز می‌گرداند.

ادامه این جلسه بر فرآیند Sub تمرکز دارد. فرآیند Function در جلسات بعدی بحث خواهد شد.

ساختار / ترکیب یک فرآیند

بلوک دستوراتی که یک فرآیند را ایجاد می‌کند بین دو دستور محصور شده است:

  • دستور اعلان ؛ و
  • دستور پایان اعلان

بنابراین ، در سطح پایه یک فرآیند از 3 جز اصلی تشکیل شده است:

  1. دستور اعلان
  2. دستورالعمل‌هایی که به اکسل داده‌اید ؛ و
  3. دستور پایان اعلان

ساختار / ترکیب یک فرآیند Sub

فرآیند Sub نیز از سه جز اصلی که در بالا توضیح داده شد تشکیل شده است:

  1. دستور Sub به عنوان دستور اعلان
  2. دستورالعمل(ها)
  3. و دستور End Sub به عنوان دستور پایان اعلان

بنابراین ، ترکیب اصلی یک فرآیند Sub به شرح زیر است:

Sub ProcedureName ()

دستورالعمل (ها)

End Sub

در این ترکیب:

ProcedureName نام فرآيند Sub است.

"دستورالعمل‌ها" ، فرمان‌هایی است که وقتی فرآيند Sub را فراخوانی می­‌کنید اجرا می‌شود.

فرآیند همیشه بایستی عنوانی داشته باشد (ProcedureName در ترکیب فوق).

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

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

  1. باید با حروف الفبا شروع شود.
  2. بایستی در دامنه خود منحصر به فرد باشد.
  3. نمی تواند بیش از 255 نویسه داشته باشد.
  4. نمی‌تواند شامل نویسه‌های اعلان باشد.

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

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

  1. ترکیبی از حروف و اعداد را استفاده کنید.
  2. با توجه به قانون شماره 1 ، اطمینان حاصل کنید که نویسه اول یک حرف باشد.
  3. از فضای خالی (نویسه فاصله) استفاده نکنید ، به طور کلی از به کار بردن علائم خودداری کنید.

نویسه Underline (_) معمولا برای جدا کردن کلمات در نام فرآیند استفاده می‌شود.

فرآیند­ها چگونه اجرا می‌شود؟

همانطور که یاد گرفتید ، فرآیند مجموعه‌ای از دستورالعمل‌ها است.

به عنوان یک قاعده ، دستورات اجرایی یک فرآیند باعث اجرای آن می‌شود:

  • به عنوان یک واحد؛ و
  • به ترتیبی که نوشته می‌شود.

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

  • دستور اول در ابتدا اجرا می‌شود؛
  • سپس دستور دوم اجرا می‌شود؛ و
  • به همین ترتیب؛ تا انتها
  • آخرین دستور اجرا شده و فرآیند پایان می‌یابد.

استثناهایی نیز در این قاعده وجود دارد ، مانند استفاده از دستور IF در ماکرو.

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

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

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


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

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