|
>入力値が50、85だったら、50行目から85目を非表示
ということなら以下のマクロを入れて、テスト用の空白シートを開いて
Test_CkBを実行してみて下さい。全行を表示してチェックボックスが
非表示になっているか確認する場合は、手作業でやって下さい。
Del_CkBは、非表示のものも含めてアクティブシート上のチェックボックスを
一括して削除します。
Sub Test_CkB()
Dim Srw As Long, Erw As Long, Tgr As Long
Dim Lp As Single, Tp As Single, Hp As Single
Dim C As Range
Dim CkB As CheckBox
With Range("B1")
Lp = .Left: Hp = .Height
End With
For Each C In Range("B1:B20")
ActiveSheet.CheckBoxes.Add Lp, C.Top, Hp, Hp
Next
With Application
Srw = .InputBox("非表示にする開始行を 1〜20 の数値で" & _
"入力して下さい", Type:=1)
Erw = .InputBox("非表示にする最終行を 1〜20 の数値で" & _
"入力して下さい", Type:=1)
End With
Select Case True
Case Srw = False: Exit Sub
Case Erw = False: Exit Sub
Case Srw > Erw: Exit Sub
Case Srw > 20: Exit Sub
Case Erw > 20: Exit Sub
End Select
For Each CkB In ActiveSheet.CheckBoxes
Tgr = CkB.TopLeftCell.Row
If Tgr >= Srw And Tgr <= Erw Then
CkB.Visible = False
Rows(Tgr).Hidden = True
End If
Next
End Sub
Sub Del_CkB()
With ActiveSheet.CheckBoxes
MsgBox .Count & " 個を削除します"
.Delete
End With
End Sub
以上をヒントにすれば、目的どうりのマクロが組めると思いますが。
|
|