برای کسانی که مدت زیادی در برنامه های صفحه گسترده بوده اند، ممکن است دستور قدیمی {?}~ را که در Lotus 1-2-3 موجود بود به خاطر بیاورید. این دستور به شما اجازه می دهد تا زمانی که کاربر داده ها را در صفحه گسترده وارد می کند، ماکرو را متوقف کنید.
اکسل چنین قابلیتی را ندارد، اما راه هایی دارد که می توانید از کاربر برای ورودی درخواست کنید. دو روش اصلی عبارتند از:
- تابع MsgBox. این تابع یک کادر محاوره ای و مجموعه ای از دکمه ها را نمایش می دهد. هنگامی که کاربر روی یک دکمه کلیک می کند، یک عدد صحیح برمی گردد که نشان می دهد دکمه کلیک شده است. سپس برنامه شما می تواند بر اساس مقدار بازگشتی اقدام کند. (برای اطلاعات بیشتر در مورد عملکرد MsgBox، به این نکته مراجعه کنید.)
- تابع InputBox این تابع یک کادر محاوره ای نمایش می دهد و به کاربر اجازه می دهد تا یک پاسخ را تایپ کند. هر آنچه کاربر تایپ کند به عنوان یک رشته به ماکرو برگردانده می شود. (برای اطلاعات بیشتر در مورد عملکرد InputBox، به این نکته مراجعه کنید.)
هر دوی این عملکردها در شماره های دیگر ExcelTips مورد بحث قرار گرفته اند ، همانطور که در پیوندهای بالا ذکر شده است. بر اساس ورودی کاربران، میتوانید کاری که ماکرو انجام میدهد را به هر شکلی که میخواهید تغییر دهید. تنها اشکال توابع این است که آنها فقط یک داده مجزا و مجزا را برمی گرداند. به عبارت دیگر، آنها طوری طراحی نشده اند که به کاربر اجازه دهند محدوده ای از سلول ها را وارد کرده و سپس پردازش را ادامه دهد. به عنوان مثال، اگر میخواهید از کاربر بخواهید که پنج مقدار برای پنج سلول ارائه کند، باید پنج بار یک InputBox ارائه دهید و پاسخهای کاربران را یکی پس از دیگری در سلولهای مورد نظر قرار دهید.