کادر دریافت اطلاعات یا تابع InputBox در ویژوال بیسیک

برنامه نویسان ویژوال بیسیک در کدهای خود میتوانند به چند طریق با کاربران ارتباط برقرار کنند. در ماکرو نویسی اکسل، برای نشان دادن اطلاعات به کاربر و یا پرسیدن یک سوال از کاربر میتوانیم از تابع MsgBox و یا کادر پیام در ماکرو نویسی در اکسل استفاده نماییم، قبلاً با تابع MsgBox مفصلاً آشنا شدیم، در برخی مواقع برنامه نویس احتیاج دارد عددی را به عنوان ورودی از کاربر دریافت نماید، برای دریافت اطلاعات از کاربر میتوان از کادر دریافت اطلاعات یا تابع InputBox در ویژوال بیسیک استفاده نمود.

کادر دریافت اطلاعات در ماکرو نویسی در اکسل

کاربرد کادر دریافت اطلاعات

کادر دریافت اطلاعات در ماکرو نویسی در اکسل در واقع یک Dialog Box است که به کاربر امکان تایپ اطلاعات مورد درخواست برنامه نویس را میدهد. مقدار تابع InputBox را میتوان برابر با یک متغیر نوع رشته ای (به صورت پیشفرض خروجی تابع دریافت اطلاعات یک متغیر رشته ای میباشد) قرار داد، در واقع خروجی تابع InputBox یک متغیر رشته ای است برابر با عبارتی که کاربر در کادر دریافت اطلاعات تایپ کرده است.

تابع InputBox در ویژوال بیسیک کاربردهای بسیاری دارد، از کادر دریافت اطلاعات میتوان برای رمز گزاری برنامه ها استفاده کرد، از کاربر بخواهید رمز عبور را وارد نماید و در صورت درست بودن رمز ادامه ی برنامه اجرا شود، و یا از کاربر بخواهید که نام خود را وارد نماید و به دنبال آن داده ی مورد نیاز را از بانک اطلاعاتی دریافت نماید. در تمام کدهایی که به نحوی با محاسبات سر و کار دارند معمولاً داده هایی وجود دارند که در طول اجرای برنامه باید توسط کاربر وارد شوند، برای دریافت اینگونه اطلاعات میتوان از کادر دریافت اطلاعات در ویژوال بیسیک استفاده کرد.

کادر دریافت اطلاعات

داده هایی که توسط کاربر وارد میشوند میتوانند انواع مختلف باشد (رشته، عدد، تاریخ و …)، ویژوال بیسیک نوع متغیری که برابر با تابع InputBox قرار داده شده است را در نظر میگیرد و در صورت مغایرت داده ی وارد شده با آن، اجرای برنامه را متوقف مینماید، لذا در انتخاب نوع متغیرها دقت نمایید.

کادر دریافت اطلاعات در ماکرو نویسی در اکسل

برای آشنایی با انوع متغیرها مقاله ی” انواع متغیر در ویژال بیسیک” را مطالعه نمایید

ساختار کادر دریافت اطلاعات در ماکرو نویسی در اکسل

نمونه ای از کادر دریافت اطلاعات و قسمت های مختلف آن در شکل زیر نشان داده شده است:

تابع InputBox در ویژوال بیسیک

اگر مقاله ی کادر پیام در ویژوال بیسیک را خوانده باشید در میابید که کار کردن با تابع InputBox تا چه حد ساده است، قسمت های مختلف کادر دریافت اطلاعات کمتر از کادر پیام میباشد و در کل ساختار ساده تری دارد، Syntax تابع کادر دریافت اطلاعات در ویژوال بیسیک به صورت زیر است:

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

آرگومان های تابع کادر دریافت اطلاعات

شکل زیر آرگومان های تابع InputBox را نشان میدهد:

آرگومان های کادر دریافت اطلاعات

متن و عنوان کادر دریافت اطلاعات

همانطور که گفته شد، آرگومان اول مربوط به پیام نمایش داده شده برای کاربر میباشد مثلاً “لطفاً نام خود را وارد نمایید:” و در واقع یک متغیر رشته ای است، آرگومان های دیگر اختیاری میباشند، آرگومان دوم Title میباشد که همانند آرگومان اول یک متغیر رشته ای است که عنوان کادر دریافت اطلاعات را مشخص مینماید.

تعداد کاراکترهای مورد قبول برای ارگومان اول (متن کادر)  ۱۰۲۴ میباشد.

پیام نمایش داده شده برای کاربر میتواند در یک یا چند خط باشد، نوشتن پیام در چند خط را در آینده یاد میگیریم.

کادر دریافت اطلاعات در ماکرو نویسی در اکسل

مقدار پیشفرض کادر دریافت اطلاعات

آرگومان سوم مقدار پیشفرض (Default) کادر دریافت اطلاعات را مشخص میکند، در برخی موارد برنامه نویسان تمایل دارند که کادر دریافت اطلاعات مقدار پیشفرض داشته باشد که هم به نوعی کاربر را راهنمایی نماید و هم اینکه در صورت سهل انگاری کاربر در ورود اطلاعات روند اجرای برنامه با مشکل مواجه نشود. نوع این آرگومان را برنامه نویس مشخص میکند.

موقعیت کادر دریافت اطلاعات در صفحه نمایش

آرگومان های چهارم و پنجم اعدادی هستند که موقعیت افقی و عمودی کادر در صفحه نمایش کاربر را مشخص میکنند، Xpos فاصله ی لبه ی سمت چپ کادر InputBox را از لبه ی سمت چپ صفحه ی نمایش تعیین میکند و Ypos فاصله ی لبه ی بالایی کادر دریافت اطلاعات از لبه ی بالای صفحه نمایش را مشخص میکند.

به صورت پیشفرض کادر دریافت اطلاعات در وسط صفحه نمایش نشان داده میشود.

آرگومان های آخر مربوط به قرار دادن فایل Help برای کادر دریافت اطلاعات و Context (که آدرس مطلب مورد نظر در فایل Help میباشد) هستند که معمولاً مورد استفاده قرار نمیگیرند. در اینصورت کاربر میتواند با فشردن کلید F1 به Help مورد نظر دسترسی داشته باشد.

کادر دریافت اطلاعات در ماکرو نویسی در اکسل

مثال های استفاده از کادر دریافت اطلاعات

همواره سعی کنید در برنامه ی خود تمام رفتارهای کاربر با کادر دریافت اطلاعات را پیش بینی نموده و برای آن برنامه ریزی کنید، در اینصورت میتوانید از Run-Time Errors جلوگیری نمایید.

نکته ای که باید به خاطر داشته باشید اینست که در صورت فشردن دکمه ی Cancel بر روی کادر پیام، مقدار تابع InputBox برابر با رشته ای با طول صفر ( یعنی برابر با “”) خواهد بود، حتی اگر در کادر پیام مقدار پیشفرض قرار داده باشید، حال اگر خروجی کادر پیام را برابر با یک متغیر عددی قرار داده باشید در اینصورت برنامه با خطا مواجه میشود.

کدهای زیر را به عنوان تمرین اجرا کنید:

اشتراک گذاری در شبکه های اجتماعی: share on facebook share on google plus share on linkedin

۴ نظر

  1. دانیال

    با سلام مرسی از مقاله.من یه مشکل دارم.
    Dim i, j As Integer
    Dim a(0 To TextBox1.Text) As Double
    Dim t
    For i = 1 To TextBox1.Text
    a(i) = InputBox(a”(&”i&”)”)
    ListBox1.Items.Add(a(i))
    اشتباه این کد چیه؟
    زیر (a”(&”i&”)”) خط آبی میکشه

    1. حامد قدیمی

      سلام، اولاً که در Dim خط دوم، خروجی عبارت TextBox1.Text برابر یک رشته متنی است در حالی که در اینجا باید یک عدد قرار بگیرد و نه یک رشته متنی، قبل از نوشتن این کد TextBox1.Text را تبدیل به یک عدد کنید، در یک متغیر عددی ذخیره کنید و سپس استفاده نمایید. ثانیاa(i) = InputBox(a”(&”i&”)”) کاملاً بی معنی است و نیاز به باز نگری دارد، معنی عبارت نوشته شده در Inputbox چیست؟ چه چیزی میخواهید آنجا نوشته شود! کلاً تابع Inputbox برای دریافت میباشد و دلیلی ندارد در آن چیزی نوشته شود.موفق باشید.

دیدگاهتان را بنویسید؟