[[20190207140123]] 『大量のチェックボックス 複数チェックできるよう』(ポム) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『大量のチェックボックス 複数チェックできるようにしたい(すべて一括ではない)』(ポム)

お世話になっております。

大量のチェックボックス(1000個以上)があります。

一箇所チェックすると複数同時にチェックできる方法が知りたいです。

マクロでそのようなことは可能でしょうか。

Shiftを押して始点を決めて複数選択・・・という方法が理想的です。

超初心者です。自分なりに調べてみたのですが全て一括しかわかりませんでした。

ご教示いただけますようどうぞ宜しくお願いいたします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


そのチェックボックスは、
ユーザーフォーム上のチェックボックスか、
シート上のチェックボックスか、どちらでしょう。
シート上の場合は、フォームコントロールかActiveXコントロールかどちらでしょう。

自分なりに調べてみたのですが全て一括しかわかりませんでした。

その全て一括のコードを提示してください。
(hatena) 2019/02/07(木) 14:44


チェックボックスは、フォームコントロールのものとActiveXのものがあり、どちらを貼っているかで全然違ってくるのですよ。全て一括変更できたコードを見せてもらうと、話が早いのですが。

ちなみに、手作業でもフォームコントロールの方ならば、「ホーム」−「検索と選択」−「オブジェクトの選択」を選んだ後(選ぶと、アイコンに枠が付きます。もう一度選択すると消えます)、マウスで範囲選択すると、複数オブジェクトを選択状態にできます。 更に、Shiftを押しながらクリックすると、飛び飛びの指定もできます。(Excel2010のメニュー例なので、2016だと少し違うかも知れません)

選択状態にした後、マクロの編集画面(ALT+F11)のイミディエイトウィンドウ上(無ければCTRL+G)で、「selection.value=true」とかfalseとか入力すると、一気にプロパティを変えられますよ。

ActiveXの場合は、複数選択は難しいと思います。 マクロのデザインモードならオブジェクトを指定できるのですが、実行モードでは触れないんですね。

どちらの場合でも、自由選択は諦めて、決まったオブジェクトを切り替えるなら、マクロで実現できるでしょう。
(???) 2019/02/07(木) 14:50


hatena様、???様、ご返答ありがとうございます!

チェックボックスはVisual Basicの標準モジュールで下記のように作成しました。
Sub チェックボックス生成()

    Dim i       As Long
    Dim bufA    As String
    Dim bufB    As String
    Dim bufC    As Long
    Dim bufD    As Long

    bufA = Application.InputBox("チェックボックスを表示する列 (例)A", "入力1 / 4", Type:=2)
    bufB = Application.InputBox("リンクするセル (例)B", "入力2 / 4", Type:=2)
    bufC = Application.InputBox("入力を開始する行番号 (例)1", "入力3 / 4", Type:=1)
    bufD = Application.InputBox("入力を終了する行番号 (例)10", "入力3 / 4", Type:=1)

    For i = bufC To bufD

        ActiveSheet.CheckBoxes.Add(442, 162, 27.5, 19).Select
        With Selection
            .Caption = ""
            .Value = xlOn
            .LinkedCell = CStr(bufB) & i
            .Display3DShading = False
            .Top = ActiveSheet.Range(CStr(bufA) & i).Top
            .Left = ActiveSheet.Range(CStr(bufA) & i).Left
        End With

    Next

End Sub

hatena様
一括のコードはコマンドボタンを使用して、チェックを外す場合のみ取り入れております(>_<)

Private Sub CommandButton1_Click()

  ActiveSheet.CheckBoxes.Value = False
End Sub

すみません。本当に勉強不足で。。。

???様、フォームコントロールでまたチェックボックスを作成しなおして複数選択の方法を試してみます(^^)

(ポム) 2019/02/07(木) 15:10


 横から失礼しますが、リンクさせるセルがあるなら、そのセルを書き換えちゃったほうが早いような?
     |[A]   |[B]  
 [1] |□A-1 |FALSE
 [2] |□A-2 |FALSE
 [3] |□A-3 |FALSE
 [4] |□A-4 |FALSE
 [5] |□A-5 |FALSE
 [6] |□A-6 |FALSE
 [7] |□A-7 |FALSE
 [8] |□A-8 |FALSE
 [9] |□A-9 |FALSE
 [10]|□A-10|FALSE
 て感じで、A4-A7をチェックしたければ
 B4:B7を選択して、TRUEと入力して、Ctrl+Enterで確定させれば行けるかと。

(稲葉) 2019/02/07(木) 15:19


 >一箇所チェックすると複数同時にチェックできる方法が知りたいです。 

 なんかすげえ無駄なことをやっている様な気がします。
 何のためのチェックボックス?
 単純なループで澄まない???

 >大量のチェックボックス(1000個以上)があります。

 大体、1000個も内容を確認する人っているのでしょうか?

 と、言うのが感想。
(BJ) 2019/02/07(木) 15:28

稲葉様、ご返答ありがとうございます!

リンクさせるセルがあるので、教えて頂いた方法を試したら出来ました!
チェックをすることばかりにとらわれていたので、、、ありがとうございます!(*^^*)

(ポム) 2019/02/07(木) 15:31


BJ様、

10数個の区分をひとまとめにすると、多いときは1000個超えてしまうようです。
必要で、頼まれて作成しているのと私も初めてのチェックボックスだったりモクロで手探りの状態です(>_<)
(ポム) 2019/02/07(木) 15:42


CheckBoxesオブジェクトならば、フォームコントロールのチェックボックスなので、私が書いた方法が使える…、のですが、皆さん書いたとおり、セルにリンクしていたので、これを操作することで解決ですね。

ちなみに、チェックボックス1000個並べるというのもなぁ…、という感想を私も持ちました。 行に対応して何かするなら、ただのセルで良くて、空欄かそれ以外でいいじゃん!、という感じです。
(???) 2019/02/07(木) 15:47


???様、

1000個も並べて、そこからチェックされた分を別シートに飛ばしての作業なので重いですよね。。。
もう少しいろいろ考えてみます(>_<)

ご返答頂けた皆様、ありがとうございました(*^^*)

(ポム) 2019/02/07(木) 16:04


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.