シナリオに2種類のコントロールを挿入できます。一つは、フォームが制御やその他ののActiveXコントロールである
フォームコントロール
フォームコントロールを挿入するには、このコードの構文がある
Sheets("Sheet1").CheckBoxes.Add 52.5, 3, 42, 17.25
に使用する必要があります
CheckBoxes.Add Cell.Left, Cell.Top, Cell.Width, Cell.Height
ActiveXコントロール
ActiveXコントロールを挿入するには、あなたはこのコード
Sheets("Sheet1").OLEObjects.Add ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=54, Top:=1.5, Width:=39.75, Height:=11.25
を使用する必要がありますので、上記の制御のいずれかを追加するには、の座標を見つけるためにループを使用する必要があります該当する場所にチェックボックスを追加します。あなたのシナリオでは、上記のチェックボックスのいずれかがクリックされたときに実行されるコードを1つ持つことができるように、フォームコントロールを使用することをお勧めします。
今、我々は、すべてのチェックボックスが同じマクロを呼び出すことを確認する方法:)
ヒント:このコードは、チェックボックスを作成し、チェックボックスにマクロを割り当てます。
Sub Sample()
Dim Shp As Shape
'~~> Create a Checkbox
Set Shp = Sheets("Sheet1").CheckBoxes.Add(52.5, 3, 42, 17.25)
'~~> Assing a macro to it
Shp.OnAction = "'" & ActiveWorkbook.Name & "'!macro_name"
End Sub
[OK]をクリックします。マクロは、どのCheckBoxがそれを呼び出すのかをどのように知っていますか?
ヒント:チェック内容Application.Caller
;)チェックボックスにリンクされているマクロにコードを挿入します。
Sub macro_name()
MsgBox "This macro was called by " & Application.Caller
End Sub
HTHと正しい軌道に乗ってあなたを取得:)
シド
+1、ニース説明 –