|
>ComboBox等のオブジェクト
別に、ActiveXコントロールに、限定してるわけでは無いですね ?
それならフォームのComboBoxで、Indexが使えますよ。
書き方としては・・
ActiveSheet.ComboBoxes.Add Left, Top, Width, Height
ですが、これをTopの値を大きくしながら、何回かループして複数配置してみて下さい。
MsgBox ActiveSheet.ComboBoxes(2).Name
で、2回目に追加されたComboBoxの名前が、表示できると思います。
なお、フォームを使っている場合だけ、Callerプロパティで各コントロールの固有名
を取得できますので、OnActionで全て同じマクロを登録し・・
Dim x As Variant
x = Application.Caller
If VarType(x) <> 8 Then Exit Sub
Select Case x
Case "COMBOBOX 1"
Case "COMBOBOX 2"
などとすることで、クリックされたボックスを条件分岐して、別のコードを
走らせることが出来ます。これにより、1つずつの Clickイベントマクロを書く
手間が省けます。Excel5.0の時代からあるやり方ですが、ActiveXより動作が
安定しているようなので、Excel2000でもこちらを使っていますが・・。
|
|