[[20030927184842]] 『チェックボックスのカウント方法』(トトちゃん) ページの最後に飛ぶ

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

 

『チェックボックスのカウント方法』(トトちゃん)

コントロールツールボックスでチェックボックスを作りましたが、チェックされた数の集計をしたいのですが?
いきずまっています。教えてください。
チェックボックスをセルにリンクさせる方法と、TRUEの数を数える為の、関数?を教えてください。よろしくお願いします。


 >チェックボックスをセルにリンクさせる方法
 何をリンクしたいのか、よく分かりませんが、
   Range("A1").Value = CheckBox1.Value 
 とすれば、A1に True / False が表示されます。

 >TRUEの数を数える為の
 チェックボックスの数に応じて、i の値を変更して下さい。 

 Sub Sample()
 Dim i As Long
 Dim cnt As Long

 For i = 1 To 3
    If OLEObjects("CheckBox" & i).Object.Value = True Then
        cnt = cnt + 1
    End If
 Next i

 MsgBox cnt

 End Sub

 (INA)


ありがとうございます。教えていただいた方法は、どこの部分へ打ち込めばよいのでしょうか?

もう少し詳しく書かせていただきます。

例えば、A1・B1・C1・D1の上にチェックボックスを作り、そのチェックされた数をE1に、カウントしたいわけです。
こんな説明で理解して頂けるでしょうか?


 VBEの標準モジュールにでもコピペして下さい。

 Sub Sample()
 Dim i As Long
 Dim cnt As Long

 For i = 1 To 4 '←チェックボックスの数
    If OLEObjects("CheckBox" & i).Object.Value = True Then
        cnt = cnt + 1
    End If
 Next i

 Range("E1").Value = cnt 'E1セルに出力されます。 

 End Sub

 マクロについては、以下のサイトが参考になると思います。
http://www.sanynet.ne.jp/~awa/excelvba/kouza.html

   (INA)

 質問とずれるかもしれませんが、「フォーム」の「チェックボックス」を使うのは
 いかがでしょう?
 作り方:
 表示→ツールバー→フォームにチェックを入れる
 出てきたツールを使ってチェックボックスを作る。
 作ったチェックボックスを右クリックして、コントロールの書式設定で、
 リンクするセル(例えば$A$1)を指定する。
 (チェックの有無によって、このセルに「TRUE」または「FALSE」が入ります)
 後は、これらのリンクさせたセル(例えばA1〜D1)の中の「TRUE」の数を
 =COUNTIF(A1:D1,TRUE)
 で数えます。この方法ではマクロを使わずにできます。
 (ちゅうねん)


 [INA]さんのアイデアを参考に、Functionにしてみました。
 VBEの世界で標準モジュールに下のコードを貼り付けてから、
 ワークシートに=CheckCount()でチェックされた数が表示できます。
 あとでチェックを変更した場合、↓のように再計算が必要です。
 シートをクリックしてから
 [CTRL]キーを押したまま[ALT]キーを押したまま[F9]キーを押す。
 (kazu)

 Function CheckCount()
 Dim ccnt As Integer, sp As Object
     ccnt = 0
     For Each sp In ActiveSheet.Shapes
         If Mid(sp.Name, 1, 8) = "CheckBox" Then
             If ActiveSheet.OLEObjects(sp.Name).Object.Value = True Then
                 ccnt = ccnt + 1
             End If
         End If
     Next
     CheckCount = ccnt
 End Function

 For Each を使うとすべてのShapesオブジェクトを参照するので、
 他にたくさんコントロールを配置していると遅くなるかもしれません。
  (INA)

コメント返信:

[ 一覧(最新更新順) ]


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