در بخش ویرایشگر کد VBA با محیط برنامهنویسی ویژوال بیسیک برای اپلیکیشنها (VBA) آشنا شدیم. در این آموزش قصد داریم با یکی از ابزارهای کلیدی این محیط، یعنی پنجره آنی (Immediate Window) آشنا شویم — ابزاری مفید برای اجرای سریع کدها، تست دستورات و اشکالزدایی پروژههای VBA در نرمافزارهای اکسل، اکسس و سایر محصولات آفیس.
نکته: اگر پنجره Immediate را مشاهده نمیکنید، کلیدهای ترکیبی
Ctrl + Gرا فشار دهید یا از منوی View → Immediate Window استفاده نمایید.
پنجره Immediate برای اشکالیابی، محاسبهی عبارتها، اجرای مستقیم دستورات و مشاهده یا تغییر مقادیر متغیرها استفاده میشود. در واقع این پنجره همانند یک کنسول زنده در اختیار شماست تا بدون اجرای کامل ماکرو، کد را سریع تست کنید.
📑 فهرست مطالب
- کاربردهای پنجره آنی (Immediate)
- جمعبندی و نکات کاربردی
- سؤالات متداول درباره پنجره Immediate در VBA
- پنجره Immediate در VBA چیست و چه کاربردی دارد؟
- چگونه پنجره Immediate را در VBE باز کنیم؟
- تفاوت بین Debug.Print و دستور ? در پنجره Immediate چیست؟
- آیا میتوان از پنجره Immediate برای تغییر مقدار متغیرها استفاده کرد؟
- آیا میتوان روالها (Sub) و توابع را مستقیماً از پنجره Immediate اجرا کرد؟
- چه تفاوتی بین Immediate Window و Watch Window وجود دارد؟
کاربردهای پنجره آنی (Immediate)
۱. اجرای مستقیم دستورات
در پنجره Immediate میتوانید هر خط از کد VBA را بهصورت مستقیم اجرا کنید. برای این کار کافیست خط کد را نوشته و کلید Enter را فشار دهید.
- پنجره Immediate را باز کنید.
- یک دستور یا کد VBA بنویسید.
- کلید Enter را بزنید تا کد بلافاصله اجرا شود.
مثال:
کد زیر را در پنجره Immediate وارد کنید:
topic = "VBA"
سپس کد زیر را اجرا کنید تا پیام زیر نمایش داده شود:
MsgBox topic & " makes Office come alive."

نکته: این روش برای آزمایش سریع کدها و بررسی نحوهی عملکرد آنها بسیار مفید است.
۲. نمایش یا تغییر مقدار متغیرها
الف. مشاهده مقدار متغیر
برای مشاهده مقدار متغیر کافیست علامت ? را پیش از نام متغیر قرار دهید:
? myVariable
اگر متغیر مقداردهی نشده باشد، نتیجه یک خط خالی خواهد بود.
ب. تغییر مقدار متغیر
برای تغییر مقدار یک متغیر از عملگر = استفاده کنید:
num = 12
با فشردن Enter مقدار متغیر num تغییر میکند.
۳. فراخوانی روالها (Sub یا Function)
در پنجره Immediate میتوانید روالهای موجود در ماژولها را فراخوانی کنید. کافیست نام ماژول را بنویسید، سپس کاراکتر . را تایپ کنید تا فهرست اعضای آن ماژول نمایش داده شود (IntelliSense).
نکته:
استفاده از نام ماژول پیش از فراخوانی روال، صرفاً برای بهرهمندی از قابلیت IntelliSense در ویرایشگر VBE است؛ در غیر این صورت، فراخوانی روالهای عمومی (Public) از تمام ماژولهای استاندارد، بدون ذکر نام ماژول نیز امکانپذیر است.
با انتخاب یا تایپ نام روال و فشردن Enter، روال اجرا میشود.
test.MsgMe


۴. نمایش خروجی اشکالزدایی و مقدار بازگشتی توابع
یکی از کاربردهای اصلی پنجره Immediate، مشاهده خروجیهای اشکالزدایی است. میتوانید در کد خود از دستور Debug.Print استفاده کنید تا مقدار متغیر یا عبارت در پنجره Immediate نمایش داده شود.
Debug.Print variable
همچنین برای بررسی مقدار بازگشتی توابع، کافیست پیش از فراخوانی تابع علامت ? را قرار دهید:
? test.iAmTest(10, 20)

در تصویر بالا، VBA ابتدا مقادیر دو آرگومان را با Debug.Print چاپ کرده و سپس مقدار بازگشتی تابع را نمایش میدهد.
جمعبندی و نکات کاربردی
پنجره آنی (Immediate) یکی از ابزارهای مهم اشکالزدایی در VBA است که به شما امکان میدهد بدون اجرای کامل برنامه، بخشهای مختلف کد را تست و تحلیل کنید. با استفاده از این پنجره میتوانید در زمان توسعه کد، سرعت و دقت بیشتری داشته باشید.
- ✅ اجرای سریع دستورات با فشردن Enter
- 🔍 مشاهده مقادیر متغیرها با علامت
? - ✏️ تغییر مقدار متغیرها هنگام اجرای برنامه
- ⚙️ فراخوانی روالها و توابع از طریق نام ماژول
- 🧠 چاپ نتایج اشکالزدایی با
Debug.Print
سؤالات متداول درباره پنجره Immediate در VBA
پنجره Immediate در VBA چیست و چه کاربردی دارد؟
پنجره Immediate ابزاری در محیط ویرایشگر ویژوال بیسیک (VBE) است که به شما اجازه میدهد دستورات را بهصورت مستقیم اجرا کرده، مقدار متغیرها را بررسی کنید و پیامهای اشکالزدایی را نمایش دهید. این پنجره برای تست سریع کدها و خطیابی در هنگام توسعه ماکروها بسیار مفید است.
چگونه پنجره Immediate را در VBE باز کنیم؟
برای باز کردن پنجره Immediate کافیست کلیدهای ترکیبی Ctrl + G را فشار دهید یا از منوی View → Immediate Window استفاده کنید. این پنجره معمولاً در پایین ویرایشگر VBE نمایش داده میشود.
تفاوت بین Debug.Print و دستور ? در پنجره Immediate چیست؟
هر دو دستور برای نمایش خروجی در پنجره Immediate استفاده میشوند. Debug.Print در داخل کدها برای چاپ خروجی هنگام اجرای ماکرو بهکار میرود، در حالیکه علامت ? فقط در خود پنجره Immediate استفاده میشود تا مقدار یک متغیر یا عبارت را سریع مشاهده کنید.
آیا میتوان از پنجره Immediate برای تغییر مقدار متغیرها استفاده کرد؟
بله. میتوانید با نوشتن دستور انتساب مانند num = 12 مقدار متغیر را تغییر دهید. این روش مخصوصاً در هنگام توقف اجرای برنامه (Break Mode) برای تست سریع رفتار کدها بسیار کاربردی است.
آیا میتوان روالها (Sub) و توابع را مستقیماً از پنجره Immediate اجرا کرد؟
بله. اگر روال در سطح عمومی (Public) تعریف شده باشد، میتوانید آن را با نوشتن نام کاملش اجرا کنید. برای بهرهمندی از قابلیت IntelliSense بهتر است نام ماژول را قبل از آن بنویسید، مانند Module1.MySub. البته اجرای روالهای عمومی بدون نام ماژول نیز ممکن است.
چه تفاوتی بین Immediate Window و Watch Window وجود دارد؟
در پنجره Immediate شما میتوانید دستورات را اجرا یا مقدار متغیرها را مشاهده و تغییر دهید. اما پنجره Watch فقط برای مشاهده خودکار مقادیر متغیرها در زمان اجرای کد طراحی شده است و امکان اجرای دستور ندارد.
بیشتر بخوانید
Me در VBA | کاربرد کلمه کلیدی Me در VBA و برنامه نویسی شیءگرا
روال Property Get در VBA | کاربرد روال Property Get در شیءگرایی
روال Property Set در VBA | کاربرد روال Property Set در شیءگرایی
روال Property Let در VBA | شیءگرایی و کپسوله سازی داده ها در VBA
خواص کلاس در VBA | ایجاد خواص کلاس با استفاده از اعلان متغیر در VBA
کلاس و شیء در VBA | مراحل ایجاد کلاس و شیء در VBA
برنامه نویسی شیءگرا (OOP) | مقدمه ای بر روش برنامه نویسی شیءگرا