This blog post shows you how to manipulate List Boxes (form controls) manually and with vba code.
The list box shows you a number of values with a scroll bar (if needed). Selected value is Asia and it is the fourth (4) value in list F1:F6. It links the relative position of selected value (4) in a list, here it is linked to cell D2.
Form controls are not as flexible as ActiveX controls but are compatible with earlier versions of Excel. You can find the controls on the developer tab.
How to enable developer tab: Excel 2007, Excel 2010 and Excel 2013
You can build a List Box with vba code, here is how:
'Worksheets("Sheet1").ListBoxes.Add(Left, Top, Width, Height)
Worksheets("Sheet1").ListBoxes.Add(100, 50, 96.75, 32.25).Name = "List box 100"
Assign macro to List Box
Right click with mouse on list box.
Click "Assign macro...".
Select a macro in the list.
You can assign macro to a List Box by using vba code.
Worksheets("Sheet1").Shapes("List box 100").OnAction = "Macro2"
Add values to a List Box
You can add values to a List box with these steps:
Right click on List Box
Click "Format Control..."
Go to tab "Control"
Select an Input range.
The following vba macro adds E1:E3 to the List Box input range.
Worksheets("Sheet1").Shapes("List Box 100").ControlFormat.ListFillRange = _
The vba macro below adds the values in cell range E1:E3 to "List Box 100" without manipulating the input range. I recommend using the macro above, if values change in cell range E1:E3 they are instantly changed in List Box also. On the other hand, you can´t delete specific values using a vba macro.
Worksheets("Sheet1").Shapes("List Box 100").ControlFormat.List = _