• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロでチェックボックスを作成する方法)

エクセルマクロでチェックボックス作成方法

このQ&Aのポイント
  • エクセルマクロを使用してE1〜E50にチェックボックスを作成する方法を知りたいです。
  • チェックボックスにチェックが入った場合、対応する行のA〜Dの色を変更する方法を知りたいです。
  • チェックボックスのクリックイベントを50個作成することなく、行の色を変更するアイデアを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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列に施しておくのでも。

mitsu_mi
質問者

お礼

keithin様 回答ありがとうございます。 いつもはVBを使用しており、Excelマクロは今回初めてなので サンプルも記載して頂きありがとうございます。 "OnAction"でチェックボックスにチェックされた時の イベントを追加するのですね。 なんとかやりたかった事が出来そうです。 有難う御座いました。 また不明な点があればご教授願いたいと思います。

mitsu_mi
質問者

補足

下記 "チェック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列目を緑に変更、 チェックなしは塗りつぶしなしに変更でよろしいでしょうか? またそれぞれの細かい意味も参考までにご教授願いします。 お手数ですがよろしくお願いします。

関連するQ&A

専門家に質問してみよう