کامبوباکس در یوزرفرم اکسل
با نام و یاد خداوند بخشنده و مهربان در این مقاله آموزشی قصد داریم پیرامون کامبوباکس در یوزفرم اکسل و کاربرد آن اطلاعات مفیدی را خدمت شما عزیزان و دنبال کنندگان محترم سایت آموزشی اکسل لرن، ارائه کنیم. لذا خواهشمندیم ما را تا پایان این مقاله آموزشی همانند همیشه ما را همراهی و با نظرات گرم خود دلگرم کنید.
کاربرد کامبوباکس(Combobox) در یوزفرم اکسل چیست؟
در قدم اول می بایست با کاربرد کامبوباکس(Combobox) در یوزفرم اکسل آشنا شوید. به منظور درک بهتر ابزار کامبوباکس، اجازه دهید معادل فارسی آن را به شما معرفی کنیم. لیست کشویی در اکسل معادل فارسی ابزار کامبوباکس(Combobox) در یوزفرم اکسل محسوب می شود.
ایجاد لیست کشویی در اکسل
به منظور ایجاد لیست کشویی در اکسل می توانید از ابزار Data Validation کمک بگیرید. بدین منظور تنها کافی است محدوده ای را همانند تصویر زیر در صفحه گسترده اکسل خود، در حالت انتخاب قرار دهید:

سپس از سربرگ Data برروی ابزار Data Validation کلیک کنید:

در ادامه مقدار Allow را برروی List تنظیم کنید و سپس مقادیر لیست خود را با کاما , از یکدیگر تفکیک کنید:

حال با کلیک کردن برروی OK، لیست ایجاد شده برروی سلول های محدوده انتخابی بصورت زیر خواهد بود:

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

در پایان نیز با کلیک کردن برروی OK، لیستی از اسامی داخل سلول های اکسل خواهید داشت.
ایجاد لیست کشویی به هم وابسته در اکسل
خیلی از کاربران نرم افزار اکسل به دنبال ایجاد لیست کشویی به هم وابسته هستند به گونه ای که با تغییر یک مقدار از لیست اول، مقادیر موجود در لیست کشویی دوم نیز اتوماتیک تغییر کنند. برای این کار ابتدا نیاز است تا محدوده داده های خود را همانند تصویر زیر به جدول تبدیل کنید:

سپس لیست کشویی اولیه را از عناوین موجود همانند تصویر زیر ایجاد نمایید:

نتیجه تا این لحظه با کلیک کردن برروی OK بصورت زیر خواهد بود (لیستی از عناوین محصولات):

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

حال مجدد از مسیر Data > Data Validation را انتخاب و فرمول زیر را در قسمت List درج نمایید:

نتیجه فرمول نویسی شما بصورت زیر خواهد بود:

حال با کلیک کردن برروی OK لیست کشویی شما بصورت زیر خواهد بود:

که با تغییر مقدار لیست کشویی اولیه، لیست کشویی دوم به عنوان وابسته نیز تغییر خواهد کرد:

ایجاد کامبوباکس(Combobox) در یوزرفرم اکسل
تا به اینجای کار آموختیم که کامبوباکس در یوزفرم همان لیست کشویی در اکسل خواهد بود. به منظور ایجاد کامبوباکس ابتدا می بایست با فشردن کلیدهای ترکیبی ALT + F11 وارد محیط ویرایشگر VBE شد:

سپس همانند تصویر زیر اقدام به ایجاد یک Userform در محیط VBE نمایید:

خروجی شما با ایجاد یوزفرم بصورت زیر خواهد بود:

در ادامه با کلیک کردن برروی ابزار کامبوباکس از نوار Toolbox، اقدام به ایجاد کامبوباکس برروی یوزفرم خود نمایید:

سپس با راست کلیک کردن برروی Userform1 و انتخاب گزینه View Code همانند تصویر زیر، وارد محیط کدنویسی یوزفرم شوید:

در ادامه محیط کدنویسی یوزفرم را مشاهده می کنید:

ابتدا می بایست مقادیر اولیه کامبوباکس شماره 1 خود را تعریف نماییم. بدین منظور از بخش Userform، اقدام به فراخوانی بخش می کنیم:

حال همانند تصویر زیر اقدام به اضافه کردن مقادیر اولیه به کامبوباکس شماره 1 خواهیم نمود:

دقت نمایید، در وی بی ای اکسل برای مقداردهی به کامبوباکس ها از دستور AddItem استفاده می گردد.
حال با نمایش یوزفرم (کلید F5 جهت نمایش فرم) خروجی کامبوباکس شماره 1 شما بصورت زیر خواهد بود:

همانطور که در تصویر فوق نیز مشاهده می کنید، مقادیر تعریف شده بصورت لیست کشویی در یوزفرم اکسل به واسطه ابزار کامبوباکس ایجاد گردیدند.
حال از آنجایی که قرار است مقادیر کامبوباکس شماره 2، با توجه به مقادیر کامبوباکس شماره 1 تعیین شوند. لذا می بایست مقادیر کامبوباکس شماره 2 را در محیط کدنویسی کامبوباکس شماره 1 تعریف نماییم تا با تغییر هر مقدار از کامبوباکس شماره 1، مقادیر کامبوباکس شماره 2 نیز تغییر و بروزرسانی شوند.
بدین منظور همانند تصویر زیر برروی کامبوباکس شماره 1 دابل کلیک(Double Click) نمایید:

با دابل کلیک کردن برروی کامبوباکس شماره 1، همانند تصویر زیر وارد محیط کدنویسی کامبوباکس مذکور خواهید شد:

حال همانند لیست کشویی تعریف شده در صفحه گسترده اکسل، در محیط یوزفرم نیز نیاز به تعریف شرط خواهیم داشت. شرط را همانند تصویر به وسیله دستور شرطی Select Case برای گزینه Fruit تعریف خواهیم نمود:

همانطور که در تصویر فوق نیز مشاهده می کنید، در صورتی که کاربر مقدار Fruit را از لیست کشویی اول انتخاب کند، مقادیر تعیین شده در لیست کشویی دوم (کامبوباکس شماره 2) نمایش داده خواهد شد.
در ادامه سایر شروط را نیز به صورت فوق تعریف خواهیم نمود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Private Sub ComboBox1_Change() Select Case ComboBox1 Case "Fruit" With ComboBox2 .AddItem "Grapes" .AddItem "Apples" .AddItem "Lemons" .AddItem "Strawberries" .AddItem "Oranges" .AddItem "Bananas" .AddItem "Cherries" .AddItem "Mangos" End With Case "Vegetables" With ComboBox2 .AddItem "Beets" .AddItem "Cabbage" .AddItem "Carrots" .AddItem "Celery" .AddItem "Lettuce" .AddItem "Onions" End With Case "Other Stuff" With ComboBox2 .AddItem "Oatmeal" .AddItem "Bread" .AddItem "Chocolate" .AddItem "Popcisles" .AddItem "Meat" .AddItem "Yogurt" .AddItem "Popcord" End With End Select End Sub |
پس از تعریف شروط فوق و اجرای مجدد یوزفرم خروجی شما بصورت زیر خواهد بود:

بخش Vegetables را نیز مشاهده نمایید:

همانطور که در تصویر فوق نیز مشاهده می کنید، مقادیر Fruit در کامبوباکس دوم با تغییر کامبوباکس اول باقی همچنان خواهند ماند. لذا می بایست همزمان با تغییر کامبوباکس شماره یک، مقادیر موجود در کامبوباکس دوم ابتدا حذف و سپس مقادیر جدید جایگزین شود. بدین منظور تنها کافی است قبل از مقدار با یک خط کد مقادیر فعلی کامبوباکس دوم را حذف نماییم:

بسیار عالی حال دیگر مشکل سابق را نخواهیم داشت زیرا با تغییر هر مقدار کامبوباکس شماره 1، ابتدا مقادیر موجود در کامبوباکس شماره 2 حذف و سپس مقادیر جدید با توجه به شروط تعریف شده جایگزین خواهد شد:

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