
下記マクロでチェックボックスの右隣のセルにtrue、falseを表示させています
With ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1)
.Value = Not .Value
End With
また別のマクロ(マクロボタンを作っている)で、チェックボックスのレ点を消しています
Dim chkBox As CheckBox
For Each chkBox In ActiveSheet.CheckBoxes
chkBox.Value = False
Next chkBox
2番目のマクロを実行すると、
レ点は消えるのでが、右隣はtrueのままでfalseになりません
жチェックボックスにレ点をいれると、falseになり、外すとtrueになります
チェックボックスのレ点を一括で消して、trueからfalseになるようにするにはどのようにすればよろしいでしょうか?
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
fujillinさんのおっしゃる通りなんですけど別の視点から
お話させてください。
vbaで大切なのは自分で確認することなんです。
何が起きているのかを自分の目でチェックする事で
より理解は確かなものになります。
例えば
With ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1)
.Value = Not .Value
End With
この
.Value = Not .Value
の行にブレークポイントをセットしたことはございますか?
これをやってみるととにかくチェック可能なことが沢山あります。
例えばブレークポイントをセットしてチェックボックスを叩くと
その行で停止しますから、イミディエイトウィンドウに
? Application.Caller
? ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
? ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1).Address
? ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1).Value
これらが何を表示しているかの意味はご理解いただけるでしょうか?
それを表示されるものと、目に見えているセルの状態から
構造を頭の中で整理する作業が大切なんです。
No.1
- 回答日時:
こんばんは
ご質問の「チェックボックス」は、シート上に直接フォームコントロールのチェックボックスを設定しているものと仮定しての回答です。
(ActiveXのチェックボックスの場合は、少し話が変わりますので)
>チェックボックスのレ点を一括で消して、trueからfalseになるように
>するにはどのようにすればよろしいでしょうか?
一番簡単なのは、各チェックボックスのリンクセルとして、それぞれの左側のセルを設定して、1番目のマクロを削除することでしょう。
これによって、2番目のマクロでチェックボックスの値を変更した際に、自動的にセルの値にも反映されるようになります。
「そんなことは聞いてねぇ!」とおっしゃるのであれば・・
2番目のマクロでチェックボックスをクリアした際に、同時にセルの値もクリアに設定するようにしておけば済む話のように思います。
ちなみに、1番目のマクロは、チェックボックスの値に関係なくセルの値を反転(=トグル)表示するものになっていることは理解していますか?
例えば、チェックボックスを非選択、セル値をTRUEの状態から始めると、ずっと表示とチェック状態は逆転したままになります。
チェックボックスの値を反映してセル値を決める様にしておいた方が宜しいかも知れませんね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) 2つのマクロでチェックボックスが連動しません 2 2024/04/27 14:44
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/04/03 17:56
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) VBAに関して 2 2023/11/09 20:57
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
クリックすると文章が表示され...
-
Excel2007 色のカウント (VBA)
-
Excelで、図形内の文字をセルに...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
エクセルにて、クリックした場...
-
エクセルマクロ リストのデー...
-
ハイパーリンクのイベント挙動...
-
Excel:セルの値(文字列)を数...
-
EXCELのセルや文字色の反映
-
セルがクリックされた回数をカ...
-
現在のセルの位置を返す関数は...
-
エクセルでセルをダブルクリッ...
-
EXCELでハイパーリンクの解除を...
-
太字に設定されているセルの個...
-
シート保護とグループ化機能を...
-
EXCELで自動的にデータレコード...
-
エクセル 未入力セルがあると...
-
エクセル シート保護された共...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
クリックすると文章が表示され...
-
Excelで、図形内の文字をセルに...
-
Excel ハイパーリンクのURLを別...
-
Excelでセルをクリックす...
-
太字に設定されているセルの個...
-
マクロを実行すると画像がズレ...
-
現在のセルの位置を返す関数は...
-
Excel:セルの値(文字列)を数...
-
Excel2007 色のカウント (VBA)
-
セルの内容をテキストボックス...
-
セルがクリックされた回数をカ...
-
エクセル 未入力セルがあると...
-
エクセルマクロ 赤色の文字を検...
-
選択したセル範囲に入っている...
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
エクセルでセルをダブルクリッ...
おすすめ情報