dポイントプレゼントキャンペーン実施中!

1.2.のように2つマクロを作成し、それぞれチェックボックスのオン、オフが一括でできるようになったのですが、1つにまとめることはできますでしょうか?
1回クリックすると、一括オン、もう一度クリックすると一括オフを繰り返すようにしたいです。

1.チェックオフ
Dim myobj As OLEObject
For Each myobj In ActiveSheet.OLEObjects
If TypeName(myobj.Object) = "CheckBox" Then _
myobj.Object.Value = False
Next

2.チェックオン
Dim myobj As OLEObject
For Each myobj In ActiveSheet.OLEObjects
If TypeName(myobj.Object) = "CheckBox" Then _
myobj.Object.Value = True
Next

A 回答 (2件)

Public変数か、何処かの適当なセルに一括変更状態(True/False)を入れておき、次回の一括変更はその逆を設定します。



Dim myobj As OLEObject
Dim ck As Boolean

ck = Not Range("Z1")

For Each myobj In ActiveSheet.OLEObjects
  If TypeName(myobj.Object) = "CheckBox" Then myobj.Object.Value = ck
Next
Range("Z1") = ck
    • good
    • 1

チェックトグル


Dim myobj As OLEObject
For Each myobj In ActiveSheet.OLEObjects
If TypeName(myobj.Object) = "CheckBox" Then _
myobj.Object.Value = not myobj.Object.Value
Next
かな。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!