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

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

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

Captcha

آمار بازدید

  • بازدید امروز : 52
  • بازدید دیروز : 22
  • بازدید کل : 80736

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


مبانی ماکرونویسی جلسه (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 کار کنید.

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

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

  انتشار : ۳۱ خرداد ۱۳۹۸               تعداد بازدید : 368

برچسب های مهم

دیدگاه های کاربران (0)

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

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