در بخش ویرایشگر کد VBA آشنا شدیم هدف اصلی از وجود پنجره آنی یا Immediate Window اشکال یابی و امتحان کدهای VBA می باشد. در این بخش از آموزش های رایگان وی بی ای قصد داریم با این پنجره و نحوه کار با آن در VBA آشنا خواهیم شد.
پنجره آنی ( Immediate ) برای اشکال یابی، محاسبه عبارت ها، اجرای دستورات و چاپ مقدار متغیرها کاربرد دارد. پنجره آنی عبارت ها را از طریق ایجاد پروژه فعلی و استفاده از آن محاسبه می نماید.
موارد کاربرد پنجره آنی (Immediate)
۱- اجرای کد از طریق نوشتن کد داخل پنجره آنی:
اجرای کد در پنجره آنی (Immediate) بسیار آسان می باشد. برای این منظور مراحل زیر را دنبال نمایید:
- یک خط کد را در پنجره آنی بنویسید.
- کلید ENTER را فشار دهید تا کد اجرا گردد.
مثال
پنجره آنی را در اکسس یا اکسل سیستم خود باز نمایید و کد زیر را درون آن تایپ نمایید.
myName = "صادق"
اشاره گر را به انتهای کد ببرید و سپس کلید Enter را فشار دهید تا کد اجرا شود. با اجرای کد VBA فضای نامی myName را بعنوان یک متغیر با مقدار صادق
خواهد شناخت. حالا خط زیر را تایپ نمایید.
Msgbox "نام من " & myName & " است."
مکان نما را به انتهای کد ببرید و کلید Enter را فشار دهید تا نتیجه را مشاهده نمایید.
۲- نمایش یا تغییر مقدار یک متغیر در حین اجرای برنامه:
الف – نمایش مقدار متغیر:
در صورتی که بخواهیم مقدار یک متغیر را در هنگام اجرای برنامه بدانیم می توانیم از پنجره آنی (Immediate) استفاده نماییم. برای این کار باید علامت سوال و سپس نام متغیر را در پنجره آنی تایپ نماییم و کلید Enter را فشار دهیم.
مثال
فرض نمایید می خواهیم مقدار متغیر myVariable را استعلام نماییم، در این صورت کد زیر را در پنجره آنی وارد می نماییم.
? myVariable
VBA مقدار متغیر myVariable را در خط بعدی نمایش خواهد داد.
ب – تغییر مقدار متغیر:
برای تغییر مقدار یک متغیر در پنجره آنی (Immediate) کافیست با استفاده از عملگر =
مقدار جدید را به متغیر اختصاص دهید.
مثال
فرض کنید می خواهیم مقدار متغیر num
را از طریق پنجره آنی ( Immediate ) تغییر دهیم، به این منظور کد زیر را در پنجره آنی تایپ نمایید.
num = 12
حالا کلید Enter را فشار دهید تا VBA مقدار متغیر num
را به مقدار جدید یعنی 12
تغییر دهد.
۳- فراخوان یک روال:
برای فراخوان یک روال در پنجره آنی (Immediate) ابتدا باید نام ماژولی که روال درون آن ذخیره شده است را تایپ نمایید.
بعد از نام ماژول کاراکتر .
(نقطه) را تایپ نمایید. بعد از تایپ کاراکتر نقطه VBA بصورت اتوماتیک لیستی از روال ها و مشخصات مرتبط با ماژول را بصورت یک منو نمایش خواهد داد.
حالا می توانید با انتخاب روال از منو و یا تایپ نام روال و فشردن کلید Enter روال را اجرا نمایید.
مثال
ویرایشگر VBE را (ترجیجا از Excel استفاده نمایید) باز نمایید (می توانید از این آموزش استفاده نمایید) و از طریق منوی Insert گزینه Module را انتخاب نمایید.
اکسل بصورت اتوماتیک یک ماژول با نام Module1 را ایجاد می نماید. اگر به پنجره پروژه اکسل توجه نمایید متوجه خواهید شد که اکسل یک پوشه به نام Modules ایجاد نموده است و Module1 را داخل آن در حالت انتخاب قرار داده است.
همانطور که 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
تغییرات را ذخیره نمایید.
حالا می خواهیم با استفاده از پنجره آنی (Immediate) روال MsgMe
را احضار نماییم و نتیجه را مشاهده نماییم. برای این منظور نام ماژولی را که ایجاد کردیم (test)
را در پنجره آنی تایپ نمایید و بلافاصله پس از آن کاراکتر نقطه .
را تایپ نمایید. VBA منوی را به شکل زیر ایجاد خواهد نمود.
با استفاده از ماوس و یا کلید جهت پایین MsgMe
را انتخاب نمایید و کلید Enter را فشار دهید.
نتیجه اجرای روال MsgMe
بصورت پنجره پیغام به شکل زیر نمایش داده خواهد شد.
۴- نمایش خروجی اشکال زدایی به هنگام اجرای برنامه:
یکی از پرکاربردترین موارد استفاده پنجره آنی (Immediate) نمایش خروجی اشکال زدایی می باشد. در این روش می توانید مقدار یک متغیر یا عبارت را به منظور اشکال یابی کد در پنجره آنی چاپ نمایید. در این روش دستور Debug.Print varible/expression
درون روال برای چاپ مقدار متغیر یا عبارت استفاده می شود.
مثال
روال iAmTest
مثال قبلی را به شکل زیر اصلاح نمایید.
Public Function iAmTest()
i = 10
j = 25
Debug.Print i + j
End Function
با استفاده از پنجره آنی روال iAmTest
را احضار نمایید. برای اینکار کد زیر را در پنجره آنی تایپ نمایید و کلید Enter را فشار دهید.
test.iAmTest
نتیجه در پنجره آنی به شکل زیر نمایش داده خواهد شد.
همانطور که در تصویر بالا مشاهده می نمایید VBA حاصل عبارت i + j
را در سطر دوم نمایش داده است.
بیشتر بخوانید
توابع توکار VBA | لیست کامل توابع داخلی در ویژوال بیسیک
عملگرهای VBA | انجام عملیات روی داده ها و ایجاد عبارت ها
حلقه در VBA | ایجاد حلقه برای تکرار دستورات در ویژوال بیسیک
کدهای VBA | آشنایی با کدها و دستور زبان برنامه نویسی VBA
دستور IF | اجرای مشروط کد با استفاده از عبارت های شرطی و منطقی
آرایه در VBA | آرایه ها و کاربرد آن ها در برنامه نویسی
میدان دید متغیر در VBA | نحوه دسترسی به متغیرها در قسمت های مختلف پروژه