Code Snippet
Public cmbArea() As New clsCtrlArr
Sub InsertMyComboBox()
Dim MyRange As String
MyRange = ActiveCell.Address(0, 0) 'Cells(3, 3).Address(0, 0)
Set MyComboBox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Left:=Range(MyRange).Left, Top:=Range(MyRange).Top, _
Width:=Range(MyRange).Width + 2, Height:=Range(MyRange).Height + 2).Object
ActiveSheet.Shapes("ComboBox1").Name = "cmb" & MyRange
Range(MyRange).Offset(2).Activate
Application.OnTime Now + TimeValue("00:00:1"), "AreaShape"
End Sub
Private Sub AreaShape()
Dim sh As Shape, i As Long
i = 0
For Each sh In ActiveSheet.Shapes
If Left(sh.Name, 3) = "cmb" Then
ReDim Preserve cmbArea(i)
Set cmbArea(i).ctl = sh.OLEFormat.Object.Object
i = i + 1
End If
Next
cmbFill
End Sub
Private Sub cmbFill()
For Each sp In cmbArea()
With sp.ctl
.Clear
.FontSize = 8
.AddItem "First"
.AddItem "Second"
.AddItem "Third"
End With
Next
End Sub