こんばんは。
>VBAのコントロールではなく、
という意味が、いまひとつ分かりません。
フォーム(ツール)のことをさすなら以下のとおりです。
ただし、これは、かなり古い方法です。隠しオブジェクトを使う方法は、Ver.5 だからです。
'チェックボックス
Sub AddFormToolObject()
Dim oLeft As Double
Dim oTop As Double
Dim oWidth As Double
Dim oHight As Double
With ActiveCell
oLeft = .Left
oTop = .Top
oWidth = 2 'ダミー
oHight = 2 'ダミー
End With
With ActiveSheet.CheckBoxes.Add(oLeft, oTop, oWidth, oHight)
.Caption = ""
.Visible = True
End With
End Sub
'ドロップダウンリスト
Sub AddFormToolObject2()
Dim oLeft As Double
Dim oTop As Double
Dim oWidth As Double
Dim oHight As Double
With ActiveCell
oLeft = .Left
oTop = .Top
oWidth = .Width
oHight = .Height
End With
With ActiveSheet.DropDowns.Add(oLeft, oTop, oWidth, oHight)
.Visible = True
End With
End Sub
--------------------------------------
なお、Excel2003の場合は、以下のように、なるべく、コントロールツールのほうがよいです。
Sub AddControl()
Dim oLeft As Double
Dim oTop As Double
With ActiveCell
oLeft = .Left
otopt = .Top
End With
With ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1")
.Left = oLeft
.Top = oTop
End With
End Sub
なお、こちらは、名前を消す方法は、一括して消すか、再び、オブジェクトを取得して、Name ="" としないと、そのままでは、消えません。
お礼
ありがとうございます。 まさにこれです!入力規則で設定出来るんですね!! 見た事はあったのですが、方法が分からず実現出来ませんでいました・・・。