کمبو باکس در اکسل – نحوه ایجاد و استفاده + مثال
کمبو باکس در اکسل مانند لیستهای کشویی است که گزینههای مختلفی را برای انتخاب در اختیار کاربر قرار میدهد. به کمک آنها میتوانید تجربه کاربری بهتری بسازید و از آنها به عنوان ابزاری مناسب برای تعامل کمک بگیرید. البته باید توجه داشت که کمبو باکس با لیست کشویی تفاوتهایی نیز دارد و ویژگیها و قابلیتهای بهتر و بیشتری ارائه میکند که در این مقاله از مجله فرادرس به توضیح آنها میپردازیم. اما در ابتدا خواهیم دید که روش ساخت این ابزار و استفاده از آن چگونه است.
کمبو باکس در اکسل چیست؟
سادهترین پاسخ به سوال اینکه کمبو باکس در اکسل چیست را میتوانید به صورت بصری در تصویر زیر مشاهده کنید.
میتوانید این ابزار را مانند یک لیست کشویی در نظر بگیرید که ترکیبی از قابلیتهای دیگر را نیز ارائه میدهد. امکان ساخت آن در هر یک از سلولها وجود دارد و کاربران میتوانند برای مشاهده گزینهها روی علامت فلش در سمت راست آن کلیک کنند. برای انتخاب یک مورد یا گزینه نیز کافی است روی گزینه موردنظر خود بزنند.
کمبو باکس ابزاری مناسب برای استفاده در پرسشنامهها و فرم در اکسل است و به شما کمک میکند مقادیر ورودی سوالها را تنها به گزینههای انتخابی خود محدود کنید. شاید لیستهای کشویی مشابه این ابزار را دیده باشید اما باید بدانید که کمبو باکس کمی متفاوتتر است و قابلیتهای دیگری دارد که در ادامه میبینیم.
ساخت کمبو باکس در اکسل
دو روش برای ساخت کمبو باکس وجود دارد که به شرح زیر هستند:
- از طریق Form Control: این گزینه داخل اکسل قرار دارد و در این نوع کمبو باکس، کاربران امکان تغییر دادن ویژگیها را ندارند.
- از طریق ActiveX: این روش بسیار متنوعتر و راحتتر از روش قبلی است و کاربران میتوانند ویژگیهای آن را تغییر دهند.
در ادامه میبینید که تفاوت بین این دو کمبو باکس در محیط اکسل چگونه است.
قبل از هرچیز برای ساخت کمبو باکس در اکسل باید اقداماتی را انجام دهید.
اقدامات اولیه پیش از ساخت کمبو باکس در اکسل
برای انتخاب گزینه کمبو باکس و افزودن آن به سند اکسل، باید ابتدا زبانه «Developer» را فعال کرده باشید. به این منظور ابتدا گزینه «File» را در گوشه سمت چپ بالای نوار ابزار اکسل بزنید. سپس در صفحه جدید و در قسمت پایین، سمت چپ گزینه «Options» را انتخاب کنید. اگر این مورد را ندیدید، ابتدا گزینه «More» را بزنید.
صفحه جدیدی باز میشود که شامل گزینههای مختلف برای تغییر تنظیمات برنامه اکسل است. در این صفحه به بخش «Customize Ribbon» بروید، از لیست کشویی «Customize the Ribbon»، گزینه «Main Tabs» را برگزینید و سپس در این منو، تیک گزینه Developer را بزنید.
حالا میتوانید زبانه Developer را در پنجره اکسل خود ببینید.
ساخت کمبو باکس در اکسل به کمک Form Control
برای افزودن کمبو باکس با این روش، وارد زبانه Developer شوید، گزینه «Insert» را بزنید و سپس مطابق تصویر زیر، گزینه «Combo Box» را از بخش Form Controls انتخاب کنید.
حالا نشانگر ماوس شما به یک علامت «مثبت» (+) تبدیل میشود و میتوانید کمبو باکس خود را به کمک ماوس، در هر قسمتی از صفحه و روی هر سلولی، بکشید.
پس از رسم کامل ابزار نیز میتوانید اندازه و محل قرارگیری آن را به کمک دستههای چهارطرف، تنظیم کنید.
روش افزودن کمبو باکس به کمک ActiveX
اولین راه برای افزودن کمبو باکس در اکسل را دیدیم، در ادامه بررسی میکنیم که انجام این کار به کمک ActiveX چگونه انجام میشود. برای انجام این کار ابتدا باید فهرست خود را به یک محدوده دارای نام تغییر دهید. به این منظور وارد زبانه «Formulas» شوید و گزینه «Name Manager» را بزنید.
به این شکل پنجره جدیدی باز میشود. در این بخش دکمه «New» را بزنید.
سپس نام موردنظر برای لیست خود را در کادر Name وارد کنید. در این مثال نام «Microsoft» را انتخاب کردهایم. توجه داشته باشید که نباید بین حروف نام انتخابی، فاصلهای وجود داشته باشد. حالا داخل کادر «Refers to» کلیک کرده و کل گزینههای لیست را به کمک ماوس انتخاب کنید یا محدوده سلولی موردنظر را درون این کادر بنویسید.
در مرحله بعد دکمه «OK» را بزنید تا اکسل لیست شما را به یک محدوده دارای نام تبدیل کند. از این پس میتوانید از نام انتخابی مانند «Microsoft» برای اشاره به این محدوده در داخل کاربرگهای اکسل استفاده کنید.
حالا به زبانه Developer بروید و از منوی Insert، گزینه ActiveX Control و سپس CombpBox را انتخاب کنید.
سپس کمبو باکس خود را با اندازه دلخواه در محل موردنظر رسم کنید.
تفاوت کمبو باکس ActiveX و Form Control
شاید برایتان سوال باشد که این دو روش بسیار شبیه به هم هستند و چرا باید از ActiveX Control که مراحل بیشتری دارد کمک بگیریم؟ در ادامه تفاوتهای این دو نوع را میبینم.
- امکان تغییر دادن ظاهر کمبو باکس ActiveX وجود دارد (تغییر سبک و رنگ).
- شما حتی میتوانید فونت گزینهها را در کمبو باکس ActiveX تغییر دهید.
- در کمبو باکسهای ActiveX، کاربران نیز میتوانند گزینههای جدیدی به لیست اضافه کنند (اگر قبلا این گزینه وجود نداشته باشد).
توجه داشته باشید که این قابلیتها در کمبو باکس Form Control وجود ندارند.
نحوه کار با کمبو باکس Form Control
پس از افزودن کمبو باکس در اکسل باید گزینههای جدید برای آن تعریف کنید تا کاربران بتوانند از لیست استفاده کنند.
برای انجام این کار ابتدا روی کمبو باکس خود کلیک کرده و گزینه «Format Control» را انتخاب کنید.
حالا در صفحه جدید به زبانه Control بروید، داخل کادر Input Range کلیک کرده و سپس به کمک ماوس، محدوده سلولی گزینهها را انتخاب کنید. میتوانید به طور دستی نیز محدوده را درون این کادر بنویسید.
گزینه «Cell Link» را روی سلولی تنظیم کنید که میخواهید گزینه انتخابی در آن نشان داده شود. یعنی وقتی کاربر گزینه موردنظر را برگزیند، شماره مربوط به آن را در این سلول خواهد دید. به این شکل بعدا نیز میتوانید از گزینه انتخاب شده، در فرمولها و محاسبات استفاده کنید.
انتخاب گزینه از لیست کمبو باکس و تبدیل عدد متناظر به متن
حالا کافی است ابتدا در جای دیگری از سند خود کلیک کنید و بعد فلش سمت راست کمبو باکس را بزنید تا گزینهها نشان داده شوند. روی گزینه موردنظر کلیک کنید تا شماره مربوط به آن را در سلول انتخابی ببینید.
برای نمایش نام گزینه به جای عدد آن، میتوانید از تابع «Index» در اکسل کمک بگیرید. این تابع، محل قرارگیری گزینه را به عنوان ورودی گرفته و مقدار آن را در خروجی نمایش میدهد. در نمونه زیر میبینید که چگونه این کار را برای کمبو باکس «Microsoft» انجام دادهایم.
1=INDEX(A2:A8,D1)
روش افزودن گزینه به کمبو باکس ActiveX
روش کار با کمبو باکس ActiveX کمی با Form Control متفاوت است، به این دلیل که قابلیتهای متفاوتتری ارائه میدهد. برای انجام این کار ابتدا روی کمبو باکس راستکلیک کرده و سپس گزینه Properties را انتخاب کنید.
در صفحه جدید، گزینه «ListFillRange» را پیدا کرده، اسم محدوده دارای نام را در کادر جلوی آن بنویسید و سپس پنجره را ببندید.
حالا فایل اکسل خود را با پسوند .xlsm ذخیره کرده، ببندید و دوباره باز کنید.
پس از باز کردن مجدد کافی است روی فلش سمت راست کمبو باکس کلیک کنید تا گزینهها نشان داده شوند.
سایر ویژگیهای کمبو باکس خود را نیز میتوانید به همین شکل عوض کنید. به عنوان مثال در تصویر زیر، رنگ پس زمینه و فونت گزینهها را تغییر دادهایم.
گزینه Link Cell نیز در همین بخش قابل دسترس است و میتوانید سلولی را برگزینید تا نام گزینه انتخابی، در آن نمایش داده شود. از مزیتهای کمبو باکس ActiveX میشود این مورد را نیز در نظر گرفت که در اینجا، از ابتدا مقدار گزینه نمایش داده میشود و نیازی به تبدیل عدد متناظر نیست.
حذف کردن کمبو باکس ActiveX در اکسل
ممکن است متوجه شده باشید که پس از ذخیره فایل اکسل با قالب جدید و باز کردن مجدد آن، گزینههای کمبو باکس ActiveX نشان داده میشوند اما دیگر نمیشود کاری روی آن انجام داد. در این شرایط برای حذف کردن این کمبو باکس اول باید به زبانه Developer بروید و حالت «Design Mode» را روشن کنید.
حالا کمبو باکس موردنظر را با کمک ماوس انتخاب کرده و سپس دکمه «Delete» را روی کیبورد بزنید. از همین ترفند میتوانید برای انتخاب مجدد گزینه Properties و انجام تغییرات جدید نیز استفاده کنید.
افزودن گزینههای کمبو باکس به کمک کدنویسی VBA
محیط کدنویسی VBA یکی از قابلیتهای اکسل است که امکان انجام وظایف پیچیدهتر را فراهم میکند. در ادامه میبینیم که چطور میتوانید کمبو باکس خود را با کدنویسی در این محیط، پر کنید. در بیشتر مواقع، زمانی که «Workbook» یا پنجره اکسل باز میشود، وقتی است که کمبو باکس باید پر شود.
به همین خاطر، باید کدی برای پر کردن کمبو باکس در شیٔ Workbook با رویه «Open» داشته باشیم. هر بار که کاربر Workbook را باز کند، این رویه اجرا خواهد شد. در این بخش از مطلب مجله فرادرس کد به شکل زیر است:
1With Sheet1.ComboBox
2
3 .AddItem "OneDrive"
4 .AddItem "Excel"
5 .AddItem "Word"
6 .AddItem "Powerpoint"
7 .AddItem "Team"
8
9End With
حالا با کلیک روی منوی کشویی میتوانید پنج گزینه موجود را ببینید.
دریافت گزینه انتخابی کمبو باکس به کمک VBA
هدف استفاده از کمبو باکس در اکسل این است که پاسخ کاربر را دریافت کنیم. برای انجام این کار، کد زیر را به کار میبریم:
1Dim strSelectedItem As Variant
2
3strSelectedItem = Sheet1.ComboBox.Value
انتخاب کاربر در صفت «Value» از شیٔ Sheet1.ComboBox قرار دارد. این مقدار درون متغیر «strSelectedItem» ریخته شده است.
پاک کردن گزینههای داخل کمبو باکس
برای حذف کردن تمام گزینههای داخل لیست کمبو باکس میتوانید از «متد» (Method) «Clear» برای شیٔ «Sheet1.ComboBox» استفاده کنید. کد نهایی شبیه به نمونه زیر خواهد بود:
1Sheet1.ComboBox.Clear
توجه داشته باشید که متد Clear، صفت ListFillRange را حذف نمیکند و باید آن را از طریق صفحه Properties و به صورت مجزا پاک کنید. در نهایت کمبو باکس خالی شبیه به تصویر زیر میشود.
استفاده از کمبو باکس در Userform
همانطور که گفتیم، بیشترین استفاده از کمبو باکسها در فرمهایی است که در اختیار کاربر قرار میگیرند. برای استفاده از کمبو باکس در این نوع فرمها ابتدا باید یک «Userform» اضافه کنیم.
ابتدا دکمههای «Alt+F11» را روی کیبورد بزنید و سپس در صفحه مربوط به VBA، روی نام ماژول راستکلیک کرده و گزینه «Userform» را از منوی «Insert» انتخاب کنید.
در این قسمت برای نمایش کنترلها باید ابتدا «Toolbox» را فعال کرده باشید. برای انجام این کار کافی است روی نماد Toolbox در نوار ابزار کلیک کنید. حالا در بین ابزارها، گزینه ComboBox را بزنید تا به صفحه اضافه شود.
نام این کمبو باکس را «ComboBox» میگذاریم. حالا برای پر کردن گزینههای آن باید کد زیر را داخل متد «Initialize» از شیٔ «UserForm» بنویسیم.
1Private Sub UserForm_Initialize()
2
3 With UserForm.ComboBox
4
5 .AddItem "OneDrive"
6 .AddItem "Excel"
7 .AddItem "Word"
8 .AddItem "PowerPoint"
9 .AddItem "Team"
10
11 End With
12
13End Sub
انتخاب گزینههای این کمبو باکس نیز درست مانند انتخاب گزینههای کمبو باکس به روش قبلی است.
سخن پایانی
در این مقاله از مجله فرادرس تمام روشهای افزودن و استفاده از کمبو باکس در اکسل را بررسی کردیم. ابتدا دیدیم که چگونه میشود به کمک Form Control این کار را انجام داد، سپس به بررسی شیوه استفاده از ActiveX برای انجام این کار پرداختیم. در ادامه روش افزودن گزینههای مختلف، ویرایش و کار با هریک از این کمبو باکسها را نیز دیدیم.
در انتها با استفاده از کدنویسی VBA نیز گزینههای مختلفی به کمبو باکس اضافه کردیم. همچنین دیدیم که خالی کردن و پاک کردن گزینههای لیست به کمک VBA چگونه انجام میشود و روش دریافت جواب کاربر را نیز بررسی کردیم.
با سلام و خسته نباشید. امکانش هست دامنه گزینه ها تابع شرطی باشه!؟ و در هر شرایطی، گزینه های خاص خودش رو داشته باشه!؟
میشه توضیح بدید؟!