[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『チェックボックス(フォームコントロール)の一括解除』(tt21)
フォームコントロールのチェックボックスが複数個あり、一部はグループ化されています。
これらの「ON」状態を一括解除(OFF)したく以下のマクロをネットから拝借しました。
Sub CheckBox_Clear() Dim cb As CheckBox For Each cb In ActiveSheet.CheckBoxes If cb.Value = xlOn Then cb.Value = xlOff End If Next cb End Sub
しかし、これではグループ化されたチェックボックスは解除されません。
※あとで考え直して、これはこれで有用なのでそのまま運用中です
グループ化されたのも含めて全て一括解除するにはどうしたらいいでしょうか?
※あるいは、グループ化されたもののみ解除でも構いません
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
質問です。
リボンのデータタブからアウトラインで、グループ化、グループ解除で設定を
しているのでしょうか?
ActiveSheetに、チェックボックスを複数設置し、グループ化して
掲示されたマクロを試したら普通に外せましたが...
私のエクセル壊れてるのかな?^^;
(あみな) 2021/06/26(土) 15:04
あみなさん同じ結果でしたよ。 そうですよね。グループ化ってどうやっているか疑問ですよね。
試してみてください
Sub 解除() ActiveSheet.CheckBoxes.Value = False End Sub
(RT) 2021/06/26(土) 15:30
この機能は初めて知りましたが、例えばチェックボックスが縦一列に5個あるとして
上から2番目と4番目をグループ化するにはどうするのでしょうか?
私はチェックボックスを選択した後に、シートの上部に表示される「描画ツール」で
グループ化しています。
補足)
最初にグループ化されていないのを一括解除、次に全てを一括解除したくて質問アップしました。
(解除作業が2段階になるという意味です)
(tt21) 2021/06/26(土) 16:18
>例えばチェックボックスが縦一列に5個あるとして >上から2番目と4番目をグループ化するにはどうするのでしょうか?
例えばですか・・・。 もっと煮詰めてから、質問した方が良いのでは・・・。 この先コロコロ変わりそうなので。
単純には、上から2番目と4番目を選択してから、グループ化されればいいのではないでしょうか。 (面倒くさいです) 2021/06/26(土) 16:38
Sub test() Dim gcb As Shape, cb As Shape
For Each gcb In ActiveSheet.Shapes If gcb.Type = msoGroup Then For Each cb In gcb.GroupItems If cb.Type = msoFormControl Then If cb.FormControlType = xlCheckBox Then cb.ControlFormat.Value = xlOff End If End If Next cb End If Next gcb
End Sub
(マナ) 2021/06/26(土) 16:50
>単純には、上から2番目と4番目を選択してから、グループ化されればいい…
「データ」タブ→アウトラインからの方法では、「グループ化」項目が“グレー”表示になって
操作できないのですが…(何か私の勘違いでしょうか)
マナさんありがとうございます。
グループ化されたのを一括解除できました!
私のグループ化の仕方だと、このような段階を踏む必要があるんですね?
「Shape」が出てきて戸惑ってる私にはムズそうですが、使わせていただきます。
(最終的には、一つのマクロで2種類の一括解除を選択式にするつもりです)
これからもよろしくお願いします。
(tt21) 2021/06/26(土) 18:25
>(最終的には、一つのマクロで2種類の一括解除を選択式にするつもりです) Sub test() Dim gcb As Shape, cb As Shape For Each gcb In ActiveSheet.Shapes If gcb.Type = msoGroup Then For Each cb In gcb.GroupItems If cb.Type = msoFormControl Then If cb.FormControlType = xlCheckBox Then cb.ControlFormat.Value = xlOff End If End If Next cb End If Next gcb ActiveSheet.CheckBoxes.Value = False End Sub RTさんのコード追加で上記は満たされますよ。 検証済みです。 (you) 2021/06/26(土) 20:31
先ずグループ化されたのを解除後に、されてないのを一括解除、
結果、グループ化されたのも含めて全て一括解除できますね。
youさんありがとうございます。
(tt21) 2021/06/27(日) 09:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.