پنجره Immediate | آشنایی با پنجره آنی ویژوال بیسیک

در بخش ویرایشگر کد VBA آشنا شدیم هدف اصلی از وجود پنجره آنی یا Immediate Window اشکال یابی و امتحان کدهای VBA می باشد. در این بخش از آموزش های رایگان وی بی ای قصد داریم با این پنجره و نحوه کار با آن در VBA آشنا خواهیم شد.

بیشتر بخوانید:
چگونه پنجره آنی را در ویرایشگر VBE باز نمایم؟

پنجره آنی ( Immediate ) برای اشکال یابی، محاسبه عبارت ها، اجرای دستورات و چاپ مقدار متغیرها کاربرد دارد. پنجره آنی عبارت ها را از طریق ایجاد پروژه فعلی و استفاده از آن محاسبه می نماید.

موارد کاربرد پنجره آنی (Immediate)

۱- اجرای کد از طریق نوشتن کد داخل پنجره آنی:

اجرای کد در پنجره آنی (Immediate) بسیار آسان می باشد. برای این منظور مراحل زیر را دنبال نمایید:

  1. یک خط کد را در پنجره آنی بنویسید.
  2. کلید ENTER را فشار دهید تا کد اجرا گردد.
مثال

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

myName = "صادق"

اشاره گر را به انتهای کد ببرید و سپس کلید Enter را فشار دهید تا کد اجرا شود. با اجرای کد VBA فضای نامی myName را بعنوان یک متغیر با مقدار صادق خواهد شناخت. حالا خط زیر را تایپ نمایید.


Msgbox "نام من " & myName & " است."

مکان نما را به انتهای کد ببرید و کلید Enter را فشار دهید تا نتیجه را مشاهده نمایید.

اجرای کد در پنجره آنی (Immediate Window )
نتیجه اجرای کد در پنجره پیغام نمایش داده خواهد شد.

۲- نمایش یا تغییر مقدار یک متغیر در حین اجرای برنامه:

الف – نمایش مقدار متغیر:

در صورتی که بخواهیم مقدار یک متغیر را در هنگام اجرای برنامه بدانیم می توانیم از پنجره آنی (Immediate) استفاده نماییم. برای این کار باید علامت سوال و سپس نام متغیر را در پنجره آنی تایپ نماییم و کلید Enter را فشار دهیم.

مثال

فرض نمایید می خواهیم مقدار متغیر myVariable را استعلام نماییم، در این صورت کد زیر را در پنجره آنی وارد می نماییم.


? myVariable 

VBA مقدار متغیر myVariable را در خط بعدی نمایش خواهد داد.

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

نکته:
وقتی که مقدار یک متغیر را از طریق پنجره آنی استعلام می نمایید باید میدان دید متغیر نیز به طور همزمان مورد توجه قرار گیرد. بعنوان مثال اگر شما یک متغیر محلی را از طریق پنجره آنی استعلام نمایید مقدار متغیر در صورتی در پنجره آنی نمایش داده خواهد شد که روالی که متغیر درون آن اعلان شده است همزمان در حال اجرا باشد؛ چرا که متغیرهای محلی بعد از اتمام روال از درون حافظه پاک می شوند.

ب – تغییر مقدار متغیر:

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

مثال

فرض کنید می خواهیم مقدار متغیر num را از طریق پنجره آنی ( Immediate ) تغییر دهیم، به این منظور کد زیر را در پنجره آنی تایپ نمایید.


num = 12

حالا کلید Enter را فشار دهید تا VBA مقدار متغیر num را به مقدار جدید یعنی 12 تغییر دهد.

۳- فراخوان یک روال:

برای فراخوان یک روال در پنجره آنی (Immediate) ابتدا باید نام ماژولی که روال درون آن ذخیره شده است را تایپ نمایید.

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

حالا می توانید با انتخاب روال از منو و یا تایپ نام روال و فشردن کلید Enter روال را اجرا نمایید.

مثال

ویرایشگر VBE را (ترجیجا از Excel استفاده نمایید) باز نمایید (می توانید از این آموزش استفاده نمایید) و از طریق منوی Insert گزینه Module را انتخاب نمایید.

اکسل بصورت اتوماتیک یک ماژول با نام Module1 را ایجاد می نماید. اگر به پنجره پروژه اکسل توجه نمایید متوجه خواهید شد که اکسل یک پوشه به نام Modules ایجاد نموده است و Module1 را داخل آن در حالت انتخاب قرار داده است.

نمای پنجره پروژه اکس پس از ایجاد Module از طریق منوی Insert
نمای پنجره پروژه اکس پس از ایجاد Module از طریق منوی Insert

همانطور که Module1 در حالت انتخاب قرار دارد از طریق پنجره خواص (Properties Window) نام ماژول را به test تغییر دهید و سپس کلید Enter را فشار دهید تا تغییرات اعمال گردد. در صورتی که پنجره خواص را مشاهده نمی کنید می توانید از طریق منوی View و انتخاب گزینه Properties Window و یا فشردن کلید F4 آن را نمایش دهید.

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


Dim i As Integer
Public j As Integer

Public Sub MsgMe()
	Msgbox "Programming is Awesome"
End Sub 

Public Function iAmTest()

End Function

با فشردن کلیدهای ترکیبی Ctrl+Sتغییرات را ذخیره نمایید.

نکته
بدلایل امنیتی مایکروسافت اجازه ذخیره کدهای VBA داخل یک فایل اکسل با پسوند xlsx را نمی دهد، به همین دلیل باید از پسوند(Excel Mocro-Enabled Workbook)xlsm استفاده نمایید.

حالا می خواهیم با استفاده از پنجره آنی (Immediate) روال MsgMe را احضار نماییم و نتیجه را مشاهده نماییم. برای این منظور نام ماژولی را که ایجاد کردیم (test)را در پنجره آنی تایپ نمایید و بلافاصله پس از آن کاراکتر نقطه . را تایپ نمایید. VBA منوی را به شکل زیر ایجاد خواهد نمود.

منوی خواص مرتبط با ماژول test
منوی خواص مرتبط با ماژول test

با استفاده از ماوس و یا کلید جهت پایین MsgMe را انتخاب نمایید و کلید Enter را فشار دهید.

نتیجه اجرای روال MsgMe بصورت پنجره پیغام به شکل زیر نمایش داده خواهد شد.

پنجره پیغام پس از اجرای روال MsgMe
پنجره پیغام پس از اجرای روال MsgMe

۴- نمایش خروجی اشکال زدایی به هنگام اجرای برنامه:

یکی از پرکاربردترین موارد استفاده پنجره آنی (Immediate) نمایش خروجی اشکال زدایی می باشد. در این روش می توانید مقدار یک متغیر یا عبارت را به منظور اشکال یابی کد در پنجره آنی چاپ نمایید. در این روش دستور Debug.Print varible/expression درون روال برای چاپ مقدار متغیر یا عبارت استفاده می شود.

مثال

روال iAmTest مثال قبلی را به شکل زیر اصلاح نمایید.


Public Function iAmTest()
    i = 10
    j = 25
    Debug.Print i + j
End Function

با استفاده از پنجره آنی روال iAmTest را احضار نمایید. برای اینکار کد زیر را در پنجره آنی تایپ نمایید و کلید Enter را فشار دهید.


test.iAmTest

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

نتیجه اجرای روال iAmTest در پنجره آنی
نتیجه اجرای روال iAmTest در پنجره آنی

همانطور که در تصویر بالا مشاهده می نمایید VBA حاصل عبارت i + j را در سطر دوم نمایش داده است.

دیدگاهتان را بنویسید