- ベストアンサー
選択したセル範囲に入っているチェックボックスを全てOFFにしたい
Excel97,Windows98SEを使用しています。 マクロでセル範囲を選択(C26:R48)して、 その選択範囲内にある全てのチェックボックスのチェックを外したいのですが、 どうしたら良いのか見当がつきません…。 チェックボックスはコントロールツールではなく、 フォームで作成しています。 ご存知の方、どうぞよろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じで如何でしょうか。 セル範囲を選択し、このマクロを実行すると、範囲内にあるチェックボックスの チェックを外します。 Sub HaniChkOff() Dim N As Integer Dim HaniUp As Single Dim HaniDown As Single Dim HaniLeft As Single Dim HaniRight As Single With Selection HaniUp = .Top HaniDown = .Offset(.Rows.Count).Top HaniLeft = .Left HaniRight = .Offset(, .Columns.Count).Left End With With ActiveSheet For N = 1 To .CheckBoxes.Count With .CheckBoxes(N) If .Top >= HaniUp And .Top < HaniDown And _ .Left >= HaniLeft And .Left < HaniRight Then .Value = False End If End With Next N End With End Sub
その他の回答 (3)
- papayuka
- ベストアンサー率45% (1388/3066)
#3です。 > マクロでセル範囲を選択(C26:R48)して この部分を読んでなかったです。 範囲固定ならこんな感じで良いかと思います。 Sub CheckOff2() Dim cb As CheckBox With ActiveSheet For Each cb In .CheckBoxes If Not Application.Intersect(cb.TopLeftCell, _ .Range("C26:R48")) Is Nothing Then cb.Value = False Next cb End With End Sub
お礼
ご回答どうもありがとうございます。 教えていただきましたマクロで上手く動きました! 範囲固定のものまで書いていただきまして、とても勉強になりました。どこから手をつけたら良いのか全くわからなかったものですから…。 またわからないことがありましたらよろしくお願いいたします。
- papayuka
- ベストアンサー率45% (1388/3066)
これで良いと思います。 Sub CheckOff() Dim cb As CheckBox If TypeName(Selection) <> "Range" Then Exit Sub For Each cb In ActiveSheet.CheckBoxes If Not Application.Intersect(cb.TopLeftCell, _ Selection) Is Nothing Then cb.Value = False Next cb End Sub
- comv
- ベストアンサー率52% (322/612)
リンク先セルの TRUE を FALSEもしくは空白 にすれば? (それぞれのリンク先をチェックボックスの配置してるセル位置にしてる場合)
お礼
早速のご回答ありがとうございます。 説明が足りなかったようですみません…。 チェックボックスはリンク先セルを設定していません。 そのチェックボックスは、チェックを入れると、同じ行にある複数のセルに○印を入れ、 チェックを消したら○印も消える、というマクロを作ってあります。 今作成していますのは、コマンドボタンをクリックすると、チェックボックスを含んだ行を増やす(既存の行をコピーして下の行に貼り付ける)マクロなのですが、 もしコピー元の行にチェック済みのチェックボックスがあった場合、貼りつけた先のチェックボックスにもチェックが入っているのでそれを全て自動で外したいということなのです(コピー元のチェックは外さないようにしたいです)。 何か良い方法がありましたら教えていただけませんでしょうか? よろしくお願いします。
お礼
ご回答どうもありがとうございます。 教えていただきましたマクロで上手くいきました! 丸ごと書いてもらってしまい、どうもすみません…でもとても勉強になりました。 またわからないことがありましたらよろしくお願いいたします。