اگر نیاز به دریافت ورودی از یک کاربر تحت کنترل ماکرو دارید، یکی از روش هایی که می توانید استفاده کنید استفاده از تابع InputBox است. این تابع یک کادر محاوره ای نمایش می دهد و به کاربر اجازه می دهد تا یک پاسخ را تایپ کند. نتیجه یک رشته است که به ماکرو شما بازگردانده می شود، سپس می توانید آن را پردازش و استفاده کنید.
سینتکس تابع InputBox به شرح زیر است:
sResponse = InputBox(sPrompt, sTitle, sDefault)
سه پارامتر وجود دارد که می توانید با InputBox استفاده کنید (هر کدام از آنها رشته هایی هستند)، اگرچه فقط اولین مورد کاملاً ضروری است. در این نحو، sPrompt متنی است که می خواهید به عنوان فرمان کاربر نمایش داده شود، sTitle متنی است که در نوار عنوان کادر محاوره ای نمایش داده می شود و sDefault رشته متنی پیش فرض است که در کادر محاوره ای به کاربر ارائه می شود. کاربر می تواند رشته پیش فرض را به دلخواه ویرایش یا بپذیرد.
به عنوان مثال، از خطوط کد زیر می توان برای نمایش یک کادر محاوره ای استفاده کرد و از کاربر نام خود را پرسید:
Dim sUserName as String
Dim sPrompt as String
Dim sTitle as String
Dim sDefault as String
sPrompt = "Please check your name and make any corrections"
sTitle = "Name Entry"
sDefault = "John Doe"
sUserName = InputBox(sPrompt, sTitle, sDefault)
وقتی این کد تکمیل شد، متغیر sUserName شامل هر چیزی است که کاربر وارد کرده است. سپس می توانید در ماکرو خود از آن ورودی به هر شکل دیگری که مناسب می دانید استفاده کنید.
تابع InputBox برای گرفتن یک تکه داده در یک زمان عالی است، زیرا با استفاده از آن فقط می توانید یک "سوال" پست کنید. اگر برای استفاده در ماکرو خود نیاز به دریافت دسته ای از ورودی های کاربر دارید، باید به یک UserForm تکیه کنید یا ورودی را مستقیماً از یک کاربرگ بگیرید. (هر دو رویکرد در دیگر ExcelTips مورد بحث قرار گرفته اند .)