اجرا کردن userform در اکسل و روش های بستن آن

افرادی که شروع به طراحی یوزرفرم(userform) و کدنویسی در محیط VBA اکسل می کنند، اولین سوالی براشون پیش میاد این هست که نحوه اجرا کردن userform در اکسل چگونه هست و در پی اون هم چگونه باید userform رو ببنده.اگر یادتون باشه ما در بحث فرم ورود اطلاعات با نحوه ایجاد انواع فرم ورود اطلاعات از جمله یوزرفرم در اکسل آشنا شدیم.اکنون با ما باشید تا نحوه ران کردن userform و بستن یوزرفرم را یاد بگیریم.

نحوه اجرا کردن userform در اکسل

برای اجرا کردن userform در اکسل کافیست بعد از نوشتن نام یوزرفرم، عبارت SHOW را بنویسید.برای مثال من دوتا یوزرفرم دارم که میخوام بواسطه فرم اول، فرم دوم را فراخوانی کنم. userform1 را انتخاب و روی دکمه “نمایش فرم” دبل کلیک کنید تا وارد محیط کدنویسی شوید یا روی دکمه راست کلیک و گزینه View Code را بزنید.اکنون در رویداد Click کد زیر را بنویسید ( شکل شماره 1) :

userform در اکسل
شکل شماره 1 – userform در اکسل

برای اجرا کردن userform اکنون دکمه F5 را بزنید تا userform1 اجرا شود.اکنون اگر روی دکمه “نمایش فرم” کلیک کنید فرم شماره 2 برای شما نمایش داده می شود.برای نمایش یوزرفرم می توانید از عبارت Me هم استفاده کنید.درواقع کد Me اشاره به آبجکتی دارد که داریم برای اون کدنویسی می کنیم و هیچ وابستگی به نام آبجکت(مثلا userform) ندارد.

حتما بخوانید:   تابع IF در اکسل و فرمول نویسی بدهکار و بستانکار دفتر معین

تغییر دادن نام پیشفرض یوزرفرم ها برای اجرا کردن userform

برای ران کردن userform قرار نیست همیشه از نام پیشفرض فرم ها استفاده کنید.شما با انتخاب یوزرفرم موردنظر و رفتن به تنظیمات فرم می توانید از قسمت (NAME) نام فرم را تغییر دهید.مثلا من نام فرم های خودم رو به my_form1 و my_form2 تغییر میدم.مانند شکل شماره 2

تغییر نام userform در محیط VBA
شکل شماره 2 – تغییر نام userform در محیط VBA

نکته:

هنگام تغییر نام userform بجای خط فاصله باید حتما از ( _ ) استفاده کنید تا با خطا مواجه نشوید.

نحوه بستن userform در اکسل

برای بستن userform سه روش وجود دارد :

  • استفاده از دکمه ضربدر قرمز رنگ خود فرم (تکلیف این روشن است و کاری با این روش نداریم)
  • استفاده از کد Unload
  • استفاده از کد Hide

بستن یوزرفرم با کد Unload :

بستن فرم دراین روش اینگونه هست که ابتدا کد Unload را می نویسید و با زدن یک خط فاصله (space) نام فرمی که می خواهید بسته شود را می نویسید.برای مثال من my_form2 را اجرا کردم و حالا می خواهم آنرا ببندم که از دو کد زیر می توانم استفاده می کنم:

حتما بخوانید:   گزارش گیری بین دو تاریخ در اکسل و جمع بین دو بازه

بستن یوزرفرم با کد Hide:

برای بستن فرم می توان یکی از دو کد زیر را استفاده کرد:

تفاوت کدهای Unload و Hide در اجرا کردن userform

حتماً تا حالا این سوال براتون پیش اومده که اگر وظیفه هردو کد مخفی کردن یوزرفرم هست پس چه تفاوتی باهم دارند…!

اگر آبجکت های شما مثل textbox یا combobox دارای مقادیری باشند زمانی که شما از کد Hide برای بستن فرم استفاده میکنید اطلاعات را در خود نگه می دارد و دفعه بعد هنگام ران کردن userform آخرین اطلاعات ثبت شده را برای شما نشان می دهد.اما کد Unload عکس این کار را انجام می دهد.یعنی باعث می شود یوزرفرم هیچ اطلاعاتی در خود نگه ندارد.

مثلا در فرم زیر ما اطلاعاتی را داخل باکس ها نوشتیم.حال اگر ما از کد Unload برای بستن فرم استفاده کنیم، دفعه بعد که فرم را دوباره فراخوانی کردیم باکس ها خالی نشان داده خواهند شد.ولی اگر از کد Hide برای بستن فرم استفاده کنیم، دفعه بعد که دوباره این فرم رو ران کنیم همین اطلاعات داخل باکس ها خواهند بود.

اجرا کردن userform
شکل شماره 3 – نمایش و مخفی کردن یوزرفرم در اکسل

نتیجه گیری کلی

کد Hide با حفظ اطلاعات، فرم را می بندد ولی کد Unload با پاک کردن اطلاعات فرم را می بندد.

حتما بخوانید:   اجرای خودکار ماکرو در اکسل

خب تا اینجا کار با UserForm رو یادگرفتیم.حالا دوس داری بدونی چطور میشه کاری کرد که با اجرا کردن یوزرفرم، نرم افزار اکسل کلا مخفی بشه و فقط یوزرفرم نمایش داده بشه…؟ اگه جوابت آره هست پس پست مخفی کردن WorkBook و نمایش UserForm در اکسل رو بخون.



منبع:

stackoverflow.com

اشتراک گذاری:
مطالب زیر را حتما بخوانید

پاسخی بگذارید