Page 520 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼チェックボックスの一括リセットについて ラッキー 03/1/9(木) 12:03 ┗Re:チェックボックスの一括リセットについて BOTTA 03/1/9(木) 14:56 ┗Re:チェックボックスの一括リセットについ... ポンタ 03/1/9(木) 15:06 ┣Re:チェックボックスの一括リセットについ... ラッキー 03/1/9(木) 17:51 ┗Re:チェックボックスの一括リセットについ... BOTTA 03/1/9(木) 17:52 ┗Re:チェックボックスの一括リセットについ... ポンタ 03/1/9(木) 18:50 ─────────────────────────────────────── ■題名 : チェックボックスの一括リセットについて ■名前 : ラッキー ■日付 : 03/1/9(木) 12:03 -------------------------------------------------------------------------
VBA初心者です。 チェックボックスの一括リセットについてアドバイスお願いします シートにフォームで貼り付けた チェックボックスが5個あります (5個のチェックボックスはグループ化してあります) このようなシートがシート1からシート30まで30枚あります これらを一括してリセットさせたいと思います つまり セットされてるものはリセット リセットされてるものはそのまま マクロの記録では記録されませんでした どうすればよいでしょうか。 よろしくお願いします。 |
ラッキー さん、こんにちは。 >シートにフォームで貼り付けた 「フォーム」ツールバーで貼り付けたコントロールはVBAでは制御できないんじゃ 無かったでしょうか?(ごめんなさい。回答欄、久しぶり。しかも、記憶が曖昧。) >チェックボックスが5個あります 代替えとして「コントロールツールボックス」ツールバーでCheckBoxを貼り付けた として、 Sub aaa() For i = 1 To Worksheets("Sheet1").CheckBoxes.Count Worksheets("Sheet1").OLEObjects("CheckBox" & i).Object.Value = False Next End Sub とりあえず、Sheet1のみチェックをはずしてみました。 |
標準モジュールに以下のコードを貼り付けて お試しください。 Sub test() Dim Ws As Worksheet Dim Sh As Shape For Each Ws In Worksheets For Each Sh In Ws.Shapes If Sh.FormControlType = xlCheckBox Then Sh.ControlFormat = -4146 End If Next Next End Sub |
>Sub test() > Dim Ws As Worksheet > Dim Sh As Shape > For Each Ws In Worksheets > For Each Sh In Ws.Shapes > If Sh.FormControlType = xlCheckBox Then > Sh.ControlFormat = -4146 > End If > Next > Next >End Sub BOTTAさん、ポンタさんアドバイスありがとうございます。 参考にさせて頂きます。 あれからいろいろ試した結果 フォームで貼り付けたチェックボックスの リンク先の値をTRUEからFALSEに書き換えると チェックボックスのチェックがはずれるようですので リンク先AO14からAO18の値を moji = "FALSE" 'チェックボックスのリセット For i = 1 To 5 Range("AO14").Offset(i - 1, 0).Select ActiveCell.FormulaR1C1 = moji Next i でリセットできました。 そして上記を各シートで行う 以上で一応できましたが これって邪道でしょうか スタイルもあまりよくないです..... |
をぉ!なるほど。 さすがです。ポンタさん 先ほど、私が試したときは、シート上に「コントロールツールボックス」の CheckBoxを貼り付けたままで実行したので、エラーが発生してしまいました。 ということは、何か余分なコントロールがあるとエラーになるかもしれないので 念のため、 Sub test02() Dim Ws As Worksheet Dim Sh As Shape For Each Ws In Worksheets For Each Sh In Ws.Shapes If Sh.Type = msoFormControl Then If Sh.FormControlType = xlCheckBox Then Sh.ControlFormat = -4146 End If End If Next Next End Sub と、した方がいいかも。 |
BOTTAさん、フォローありがとございます。 書いたつもりで忘れてました。(^_^;) |