Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

エクセルですが・・・。

チェックボックスについてです。 Private Sub CheckBox1_Click() If CheckBox1 Then Range("F1:F6").Interior.ColorIndex = 3 Else Range("F1:F6").Interior.ColorIndex = xlNone End If End Sub 以前、上記のように教えていただいたのですが、 これですと、1行しか設定していませんよね? これを、例えば100行くらい自動で設定できませんか? 宜しくお願いします。

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

  • ベストアンサー
  • error123
  • ベストアンサー率21% (54/247)
回答No.2

もし、F列で、データの入力のあるところまで自動で色をつけたいのなら Private Sub CheckBox1_Click() R = Range("F65536").End(xlUp).Row If CheckBox1 Then Range("F1:F" & R).Interior.ColorIndex = 3 Else Range("F1:F" & R).Interior.ColorIndex = xlNone End If End Sub

screams
質問者

補足

Private Sub CheckBox1_Click() If CheckBox1 Then Range("B5:F5").Interior.ColorIndex = 3 Else Range("B5:F5").Interior.ColorIndex = xlNone End If End Sub すみません。説明不足でした。 上記のようにしたとき、Aの列にチェックボックスをセットし、A5 A6 A7・・・・と連続に設定したいのです。当然A6にチェックボックスを設定したときは、その行が色を着けるようにしたいのです。宜しくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

No1&No3です。 若干変えてみました。試してみてください。 Sub First01()とSub Check()の両方を標準モジュールにコピペして、Sub First01()を実行してみてください。 Sub First01() Sheets.Add With ActiveSheet Cells.RowHeight = 16 Set chk = .CheckBoxes.Add(10, 0#, 10, 10) With chk .Value = xlOff .LinkedCell = "" .Display3DShading = True .OnAction = "Check" .Name = "Check_" End With Range("A1").AutoFill Destination:=Range("A1:A100"), Type:=xlFillDefault x = 1 For Each chk In .Shapes If chk.Name = "Check_" Then chk.Name = "Check_" & x chk.TextFrame.Characters.Text = "" x = x + 1 End If Next End With End Sub Sub Check() x = Mid(Application.Caller, 7) If ActiveSheet.CheckBoxes("Check_" & x).Value = xlOn Then Range("B" & x & ":F" & x).Interior.ColorIndex = 3 Else Range("B" & x & ":F" & x).Interior.ColorIndex = xlNone End If End Sub

すると、全ての回答が全文表示されます。
回答No.3

No1です。 No2さんへの補足を見ました。 それでしたら、現在のシートモジュールではなく、標準モジュールに以下の2つのマクロをコピペして、Sub Firstを実行してみてください。 Sub First() Sheets.Add Cells.Select Selection.RowHeight = 20 ActiveSheet.CheckBoxes.Add(3.75, 2.25, 46.5, 16.5).Select Selection.ShapeRange.ScaleWidth 0.95, msoFalse, msoScaleFromTopLeft Selection.OnAction = "TEST" Range("A1").Select Selection.AutoFill Destination:=Range("A1:A100"), Type:=xlFillDefault End Sub Sub TEST() x = Mid(Application.Caller, 6) If ActiveSheet.CheckBoxes("チェック " & x).Value = xlOn Then Range("B" & x & ":F" & x).Interior.ColorIndex = 3 Else Range("B" & x & ":F" & x).Interior.ColorIndex = xlNone End If End Sub

すると、全ての回答が全文表示されます。
回答No.1

> これですと、1行しか設定していませんよね? > これを、例えば100行くらい自動で設定できませんか? Fの1列を1~6行目まで指定していると思います。 100行というと具体的にどこを指定したいのですか?

すると、全ての回答が全文表示されます。

関連するQ&A