- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロでチェックボックスを作成する方法)
エクセルマクロでチェックボックス作成方法
このQ&Aのポイント
- エクセルマクロを使用してE1〜E50にチェックボックスを作成する方法を知りたいです。
- チェックボックスにチェックが入った場合、対応する行のA〜Dの色を変更する方法を知りたいです。
- チェックボックスのクリックイベントを50個作成することなく、行の色を変更するアイデアを教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
方法1: Sub Macro1() Dim cbx As CheckBox Set cbx = ActiveSheet.CheckBoxes.Add( _ Top:=Range("E1").Top, _ Left:=Range("E1").Left, _ Width:=Range("E1").Width, _ Height:=Range("E1").Height) cbx.Text = "" cbx.Display3DShading = True cbx.OnAction = "チェック1_Click" Range("E1:E50").FillDown End Sub Sub チェック1_Click() With ActiveSheet.Shapes(Application.Caller) .TopLeftCell.Offset(0, -4).Resize(1, 4).Interior.ColorIndex = _ IIf(.ControlFormat.Value = 1, 4, xlNone) End With End Sub とかなんとか。 方法2: >F列にはチェックの結果を表示させています これを拾って反応する条件付き書式をA:D列に施しておくのでも。
お礼
keithin様 回答ありがとうございます。 いつもはVBを使用しており、Excelマクロは今回初めてなので サンプルも記載して頂きありがとうございます。 "OnAction"でチェックボックスにチェックされた時の イベントを追加するのですね。 なんとかやりたかった事が出来そうです。 有難う御座いました。 また不明な点があればご教授願いたいと思います。
補足
下記 "チェック1_Click" にて確認があります。 Sub チェック1_Click() With ActiveSheet.Shapes(Application.Caller) .TopLeftCell.Offset(0, -4).Resize(1, 4).Interior.ColorIndex = _ IIf(.ControlFormat.Value = 1, 4, xlNone) End With End Sub それぞれ細かい意味は把握できていませんが、 やっていることはチェックされたら1~4列目を緑に変更、 チェックなしは塗りつぶしなしに変更でよろしいでしょうか? またそれぞれの細かい意味も参考までにご教授願いします。 お手数ですがよろしくお願いします。