سبد خرید
0

هیچ محصولی در سبد خرید نیست.

تمام دسته ها
  • تمام دسته ها
  • Power BI
  • Power Pivot
  • Power Query
  • ابزارها
  • افزونه ها
  • اکسل مدیا
  • توابع اکسل
  • دسته‌بندی نشده
  • دیده بان
  • گوگل شیت
  • مسائل کاربردی
  • معرفی کتاب
  • نمودار ها
  • وی بی - ماکرو

تابع InputBox ابزاری برای تعامل با کاربر

تابع InputBox
نظر شما در مورد این آموزش

تابع InputBox در وی بی (VBA)

یکی از اهداف استفاده از VBA در اکسل تعامل مدیریت شده با کاربران است. راه های مختلفی برای برای تعامل با کاربر در وی بی تعریف شده که یکی از این راه ها استفاده از تابع InputBox در وی بی هست. با اجرا شدن تابع InputBox یک پنجره نمایش داده میشه که امکان دریافت اطلاعات در قالب نوشتن در این پنجره فراهم میشه. در این پنجره دو دکمه OK و جهت تأیید اطلاعات نوشته شده و Cancel جهت انصراف از ورود اطلاعات وجود داره. زمانیکه دکمه OK فشرده شود خروجی تابع InputBox، متنی هست که کاربر نوشته و در صورتیکه Cancel انتخاب شود یک عبارت خالی به عنوان خروجی ارسال میشه.

ساختار تابع InputBox به شکل زیر است:

InputBox( Prompt[Title][Default][XPos][YPos][HelpFile][Context] )

اجزای آرگومان این تابع به این صورت هست:

متنی که به عنوان توضیحات در پنجره نمایش داده میشه Prompt
متن اختیاری که در بالای پنجره به عنوان موضوع نمایش داده میشه [Title]
متن اختیاری که به عنوان مقدار پیشفرض وارد شده توسط کاربر قرار داده میشه [Default]
عددی اختیاری جهت تعیین فاصله افقی  از سمت چپ پنجره نمایش داده شده تا لبه صفحه نمایش [XPos]
عددی اختیاری جهت تعیین فاصله عمودی  از بالای پنجره نمایش داده شده تا لبه صفحه نمایش [YPos]
متن اختیاری جهت مشخص کردن فایل راهنمای مربوط به این پنجره هست.

توجه کنید که اگه این قسمت مقداردهی شده باشه، مقدار آرگومان [Context] هم باید مقداردهی شده باشه

[HelpFile]
یک عدد اختیاری جهت تعیین عنوان مورد نظر در فایل راهنمای مشخص شده در بخش [HelpFile] هست [Context]

چند مثال از این تابع

مثال اول: دریاف اطلاعات در ساده ترین حالت

بعد از اجرای دستور بالا پنجره ای که در شکل ۱ مشاهده میکنید جهت دریافت نام کاربری نمایش داده میشه.

دریافت نام کاربری با استفاده از تابع InputBox در اکسل

شکل ۱- دریافت نام کاربری

زمانیکه پنجره نمایش داده میشه، اجرای کدهای وی بی برای دریافت عبارت درخواستی از کاربر متوقف میشه. بعد از ورود اطلاعات و فشردن هر یک از دکمه ها نتیجه به کدها برگردونده میشه

نکته:
در پنجره InputBox اگر دکمه OK فشرده بشه، متن وارد شده در پنجره برگردونده میشه و اگر دکمه Cancel فشرده بشه، خروجی تابع InputBox یک متن با محتوای خالی هست.

 

در کد بالا یک متغیر با نام UserName تعریف شده که هدف از تعریف آن ذخیره خروجی تابع InputBox هست که در کدهای بعدی ازش استفاده بشه.

مثال دوم: دریافت اطلاعات از کاربر با تنظیمات بیشتر

کدی که در مثال یک زدیم رو تکمیل کردم که پنجره مفهوم تری به کاربر نمایش داده بشه و با استفاده از دستوری Environ نام کاربری ویندوز رو هم به صورت مقدار پیشفرض برای این پنجره قرار دادم که کاربر راحت تر باشه. نتیجه اجرای این کد در شکل ۲ نمایش داده شده.

دریافت اطلاعات از کاربر با جزئیات بیشتری از تابع InputBox

شکل ۲- دریافت اطلاعات از کاربر با جزئیات بیشتر

تو این آموزش سعی کردم که کار با تابع InputBox در وی بی رو آموزش بدم. شما هم میتونید مقادیر مختلفی برای آرگومان های این تابع قرار بدید و تا جائیکه لازم هست این پنجره رو برای استفاده از کاربران فایلتون راحت تر کنید.

تابع InputBox یک ابزار اولیه برای دریافت اطلاعات از کاربر هست و در آینده سایر ابزارهای تعامل با کاربر (نمایش پیغام دلخواه به کاربر) رو آموزش میدیم.

133

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • S.M.J ۳ خرداد ۱۴۰۲ / ۰:۱۰ ق٫ظ

    با درود و احترام-سپاسگزار آموزشهای بسیار مفید ، روان و کامل شما بوده و بهروزی و توفیق روزافزونتان را از پروردگار آرزومندم

  • mm ۱۱ اردیبهشت ۱۴۰۲ / ۱۱:۰۹ ب٫ظ

    سلام
    چگونه می توان مخلوطی از msgbox و inputbox را داشت
    یعنی پیغام نمایش داده بشه و ما از بین ۳ یا ۴ گزینه یکی را باید انتخاب کنیم یا اینکه ۳ یا ۴ دکمه جهت انتخاب بگذاره

    • آواتار
      حسنا خاکزاد ۱۲ اردیبهشت ۱۴۰۲ / ۹:۵۳ ق٫ظ

      درود
      inputbox یک ورودی داره
      برا یاینکه بتونید چند وروردی داشته باشید، یک یوزرفرم نیاز دارید با فرم کنترل هایی مثل checkbox, option button و …

    • سامان چراغی ۱۲ اردیبهشت ۱۴۰۲ / ۱۰:۰۲ ق٫ظ

      سلام
      بهترین کار ساخت یوزرفرم اختصاصی متناسب با نیازتون هست.

  • علی مهدی ۲۴ اسفند ۱۴۰۱ / ۱۲:۳۵ ب٫ظ

    با سلام ، سوال من درباره inputbox هس ممنون میشم پاسخ رو ایمیل کنید: زمانی که ما بصورت پیش فرض عدد ۱ رو برای کاربر کدنویسی میکنیم یعنی اگر کاربر عددی وارد نکرد خود به خود یک ثبت بشه حالا زمانی که کاربر کلاً منصرف میشه و دکمه cancel رو میزنه چرا ارور میده مگه پیش فرض نباید پنجره inputbox بسته بشه ؟ من از if استفاده کردم و گفتم اگه کنسل انتخاب شد sheet3 انتخاب بشه ولی ارور داد به این صورت: :run- tim error 1004
    Method ‘printout’ of object ‘sheets’ failed

    • سامان چراغی ۷ اردیبهشت ۱۴۰۲ / ۸:۵۰ ب٫ظ

      درود
      برای حل این مشکل قبل از Inputbox عبارت On Error Resume Next بذارید که به کاربر خطا نمایش داده نشود و بعد از InputBox باید یک شرط گذاشته بشه و Err.Number بررسی بشه. اگه خروجی آن بیشتر از یک بود یعنی کاربر Cancel رو انتخاب کرده و شما باید متناسب با اون کد لازم رو اجرا کنید و اگر خروجی صفر باشد یعنی خطایی رخ نداده و کاربر مقدار را وارد کرده است.

  • علی ۲۹ مرداد ۱۳۹۹ / ۹:۴۰ ق٫ظ

    سلام. ممنون از اطلاعات خوبتون
    فرق INPUTBOX , MSGBOX هردوشون یک کار رو انجام میدن یا بهتر بگم INPUTBOX اون یکی رو میپوشونه. درسته؟

    • سامان چراغی ۳۱ مرداد ۱۳۹۹ / ۱۰:۳۴ ق٫ظ

      سلام
      فرق InputBox اینه که این ابزار جهت دریافت اطلاعات استفاده میشه و Msgbox صرفا برای نمایش اطلاعات هست.

  • رضا ۱۴ فروردین ۱۳۹۹ / ۴:۳۸ ب٫ظ

    سلام به مهندسین عزیز
    لطفا پاسخ دهید:
    یک سایت وجود داره که یک سری داده رو میگیره روی اون محاسباتی انجام میده و در خروجی حاصل رو نمایش میده.
    آیا راهی وجود داره که در سلول هایی در اکسل داده ها وارد شود و لینک شود به سایت مذکور و خروجی سایت لینک شود به سلولی در اکسل و نمایش داده شود بدون اینکه نیاز باشد سایت را باز کنیم؟؟؟؟
    باتشکر

    • آواتار
      حسنا خاکزاد ۱۴ فروردین ۱۳۹۹ / ۷:۰۰ ب٫ظ

      درود
      بستگی به ساختار سایت داره که این امکان رو گذاشته باشه یا نه
      اگر امکانش برای سایت باشه، از data/ from web اسم سایت رو میدید و بقیه مراحل رو طی میکنید

  • مهدی خسروی ۱۴ مهر ۱۳۹۷ / ۷:۳۱ ب٫ظ

    سلام
    استاد ارجمندیک سوال داشتم
    چگونه میتوان یک فرم در اکسل ایجاد کرد که رابطه کاربری ان ساده و زیبا باشد

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان