- ベストアンサー
コントロールツールのことで
ExcelのコントロールツールのコマンドボタンをA1からA30まで に一挙に貼り付けることは可能でしょうか? また、逆にA1からA30までに張り付いているコマンドボタンを 一挙に削除することは可能でしょうか? 可能でしたらやり方を教えて下さい。 お願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
(1)コピー法 1+1+2+4+8+16=32で5回コピー する。Shiftキーを押しながらクリックして 選択(複数選択の方法として他に良い方法があった ような気がするが) (2)セルのイベントを使う方法(VBA) コマンドボタンを貼りつけなくても、ワークシートの SelectionChangeイベントなどを使えば 同じ効果になるのでは。 本日の他の質問への回答例。Cells(r, c) = Dateのところを、やりたい処理のコードで置きかえれば良い。 C列をクリックすると、本日日付けをセットする。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 3 Then ' MsgBox Target.Address ' If Target.Address = "$C$4" Then r = Target.Row c = Target.Column Cells(r, c) = Date End If End Sub (3)VBA Sub test01() ActiveSheet.OLEObjects.Delete ' Exit Sub For i = 1 To 10 l = Cells(i, 1).Left t = Cells(i, 1).Top h = Cells(i, 1).Height w = Cells(i, 1).Width ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _ , DisplayAsIcon:=False, Left:=l + 5, Top:=t + 1, Width:=w - 2, Height _ :=h - 2).Select Next i End Sub 削除だけするなら、上記の' Exit Subの’を無くしてください。(非コメント行化) 但し上記コードでは、貼りつけたコントロール類全部が消えます(他のテキストボックスなどがあればそちらも)が。 上記は10個の例にしてあります。またサイズもセルの 大きさより少し小さくする細工をしています。 l、t、w、hより数を引いたり足したりしているのが それです。セル高を不揃いにすると、ボタンも大小になります。いやならhを固定値にすれば良いです。
お礼
ありがとうございます。