|
そーいう処理は、ボタンの種類を「フォームツールバー」
のものにしておくに限ります。もし現在のボタンがコントロールツールバーの
ものなら
Sub Del_BT()
Dim Obj As OLEObject
For Each Obj In ActiveSheet.OLEObjects
If Obj.ProgId = "Forms.CommandButton.1" Then
Obj.Delete
End If
Next
End Sub
を1回実行して削除して下さい。そして以下のマクロを1回実行すれば、フォームの
ボタンを配置 & マクロ登録を自動的に行います。
Sub Add_BT()
Dim i As Integer
Dim Tp As Single, Wp As Single, Hp As Single
With Range("A1")
Wp = .Width: Hp = .Height
End With
With ActiveSheet
For i = 1 To 30
Tp = .Cells(i, 1).Top
.Buttons.Add 0, Tp, Wp, Hp
Next i
.Buttons.OnAction = "MyButton_Info"
End With
End Sub
以下のマクロは削除しないで下さい。
Sub MyButton_Info()
Dim x As Variant
x = Application.Caller
If VarType(x) <> 8 Then Exit Sub
With ActiveSheet.Buttons(x)
MsgBox "インデックス = " & .Index & vbLf & _
"名前 = " & .Name & vbLf & "配置した行 = " & _
.TopLeftCell.Row
End With
End Sub
任意のボタンを押すと、そのボタンの情報をメッセージします。
|
|