درس دوازدهم
تابع InputBox()
همانطور که در مقاله قبل توضیح داده شد از تابع MsgBox برای اطلاع رسانی به کاربر استفاده می شود. تابع دیگری به نام InputBox وجود دارد که با استفاده از می توان علاوه بر اطلاع رسانی به کاربر پاسخ مورد نیاز برنامه را هم دریافت نمود. برای مثال فرض کنید شما برنامه ای طراحی کرده اید که با گرفتن نام هر فرد برای وی یک فرم استخدام چاپ می کند. برای این کار کافی است شما به وسیله تابع InputBox به کاربر اطلاع دهید که برنامه به نام وی نیاز دارد و پس از وارد کردن نام فرم استخدام برای وی چاپ خواهد شد.
شکل کلی تابع InputBox بصورت زیر است :
strResult = InputBox(strPrompt[,strTitle][,strDefult][,intX][,intY])
تابع InputBox مقداری را از نوع Variant بر می گرداند و این بدان معنی است که شما برای گرفتن پاسخ هیچ محدودیتی از نظر رشته ای، عددی و ... نخواهید.
در مثال بالا strResult مقداری است که کاربر در کادر InputBox وارد کرده است. یا به عبارتی مقدار برگشتی تابع می باشد.
همچنین این تابع دارای یک آرگومان اجباری و چهار آرگومان اختیاری می باشد. اولین آرگومان مربوط به پیامی است که قصد دارید به کاربر اعلام کنید. آرگومان دوم عنوان، آرگومان سوم متنی را به عنوان پاسخ پیش فرض در کادر قرار می دهد و آرگومانهای پنجم و ششم محل نمایش پنجره InputBox را مشخص می کنند.
حال با حل تمرینی قصد داریم نحوه استفاده از این تابع برای شما روشنتر شود.
تمرین :
برنامه ای بنویسید که از طریق InputBox یک بار نام و یک بار سن کاربر را دریافت کرده سپس متن مناسبی را در یک Label برای نام و سن او نمایش دهد.
مثلا : "آقای نوبخت شما در حال حاضر 21 ساله می باشید"
حل تمرین :
این برنامه نیاز به یک Command و یک Lable دارد. بعد از افزودن آنها به فرم تغییرات زیر را در آنها اعمال کنید.
نام Command را به cmdShow و Caption آن را به Show تغییر دهید.
نام Lable را نیز به lblShow تغییر داده و Caption آن را خالی کنید.
نام فرم را به frmMain و Caption آن را به InputBox تغییر دهید.
حال کد زیر را برای رویداد کلیک cmdShow بنویسید.
Private Sub cmdShow_Click()
Dim name As String
Dim age As Integer
name = InputBox("نام را وارد کنید")
age = Val(InputBox("سن را وارد کنيد"))
lblShow.Caption = "آقاي " & name & " شمار در حال حاضر " & age & " ساله هستيد "
End Sub