複数ファイルも可!Excelでチェックボックスを集計する方法

複数ファイルも可!Excelでチェックボックスを集計する方法

当サイトはアフィリエイト広告を利用しています。

今回は、Excelでチェックボックスを集計する方法をご紹介します。

チェックボックスが大量にある場合、目視で集計すると時間がかかってしまいますが、この方法なら一瞬で集計できます。

複数ファイルを集計する方法もご紹介しますので、アンケートの集計などを行いたい方もぜひ参考にしてみてくださいね。

Excelでチェックボックスを集計する方法

Excelでチェックボックスを集計するには、チェックボックスをセルとリンクさせたうえでCOUNTIF関数を使います。

COUNTIF関数(カウントイフ関数)とは、単一の条件に一致するセルの個数を求める関数です。

COUNTIF関数の構文

COUNTIF(範囲, 検索条件

範囲(必須)
検索する範囲を指定する。
検索条件(必須)
検索する条件を指定する。

(例)A2~A13にあるチェックボックスのレ点の個数を集計してE2に表示する。

まずA2のチェックボックスを選択して右クリックし、「コントロールの書式設定」を選択します。

Excel

「コントロールの書式設定」が表示されたら、「コントロール」タブ⇒「リンクするセル」の入力ボックスにカーソルを置く⇒レ点の有無を表示したいセルをクリック⇒「OK」をクリックします。

Excel

すると、チェックボックスにレ点が付いていたらリンクしたセルに「TRUE」と、付いていなければ「FALSE」と表示されます。

Excel

チェックボックスの数だけこの作業を繰り返します。

Excel
MEMO

一度でもチェックボックスにレ点を付けると、レ点が付いていないときに「FALSE」と表示されるようになります。

Excel

E2に=COUNTIF(C2:C13,TRUE)と入力すると、レ点の個数が表示されます。

Excel

チェックボックスの全体数を表示する方法

チェックボックスの全体数を集計するには、COUNTA関数を使います。

COUNTA関数(カウントエー関数)は、空白ではないセルの個数を求める関数です。

COUNTA関数の構文

COUNTA(値1, [値2], …)

値1(必須)
検索する範囲を指定する。
値2(省略可)
検索する追加の範囲を指定する。

なお、「値」は最大255個まで指定できます。

(例)B2~B13の項目の個数を集計してF2に表示する。

F2に=COUNTA(B2:B13)と入力すると、項目の個数が表示されます。

Excel

チェックボックスの全体数とレ点の個数が一致していない場合にセルに色を付ける方法

チェックボックスの全体数とレ点の個数が一致していない場合にセルに色を付けるには、条件付き書式を使います。

(例)E2の値がF2の値と一致していなければF2のセルに色を付ける。

E2を選択して「ホーム」タブ⇒「条件付き書式」⇒「新しいルール」を選択します。

Excel

「新しい書式ルール」が表示されたら「数式を使用して、書式設定するセルを決定」⇒=E2<F2と入力して「書式」をクリックします。

Excel

「セルの書式設定」が表示されたら「塗りつぶし」タブを開き、セルの色を選択して「OK」をクリックします。

Excel

「新しい書式ルール」に戻ったら「OK」を押して完了です。これでE2の値がF2の値未満の場合、E2のセルに色が付きます。

Excel

Excelで複数ファイルのチェックボックスを集計する方法

Excelで複数ファイルのチェックボックスを集計するには、チェックボックスをセルとリンクさせたうえでマクロを使います。

マクロの使い方がわからない方は、先に以下の記事をご覧ください。

ご紹介するマクロは、以下の条件をすべて満たす場合に使えます。

  • 集計したいファイルがすべて同じ様式である
  • 集計したいシートがすべて1番目のシートである
  • 集計したいファイルがすべて同じフォルダに入っている

まず集計したいファイルを同じフォルダに入れます。集計結果を表示するファイルは別の場所に作成します。

Excel

今回の例では集計したいファイルはすべて以下のような様式になります。前述の方法でチェックボックスとセルをリンクさせておく必要があります。

Excel

集計結果を表示するファイルでVBEを起動し、標準モジュールに以下のコードを貼り付けます。

Excel
Sub フォルダ指定()
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        ActiveSheet.Range("B1").Value = .SelectedItems(1) ' B1にフォルダのパスを表示
    End With
 
End Sub
Sub アンケート集計()

    Dim folderPath As String
    Dim bookName As String
    Dim i As Long
    Dim r As Long
    
    folderPath = ActiveSheet.Range("B1").Value ' フォルダのパス
    bookName = Dir(folderPath & "\*.xls*") ' ブック名
    
    Application.ScreenUpdating = False
    
    ActiveSheet.Range("B6:B8") = 0 ' 集計結果を表示するB6:B8の値をリセット
    
    Do Until bookName = "" ' ブックがなくなるまで繰り返す
        Workbooks.Open (folderPath & "\" & bookName)
        r = 6 ' 集計結果を表示する最初のセルの行番号
        For i = 2 To 4 ' 集計したいファイルの2行目から4行目までをチェック
            If Worksheets(1).Cells(i, 3) = True Then ' 1番目のシートにチェックが付いていたら
                ThisWorkbook.ActiveSheet.Cells(r, 2) = ThisWorkbook.ActiveSheet.Cells(r, 2) + 1
            End If
            r = r + 1
        Next
        Workbooks(bookName).Close
        bookName = Dir
    Loop
    
    Application.ScreenUpdating = True
    
    MsgBox "集計が完了しました。"

End Sub

「フォルダ指定」マクロは、集計ファイルが入ったフォルダのパスを取得するためのマクロです。「アンケート集計」マクロを実行すると、「フォルダ指定」マクロで取得したパスにあるすべてのファイルを対象とした集計が行われます。

コードを貼り付けたらExcelの画面に戻り、以下のように「参照」ボタンと「集計」ボタンを作成します。「参照」ボタンには「フォルダ指定」マクロを、「集計」ボタンには「アンケート集計」マクロをそれぞれ登録します。

Excel

これで作業は完了です。あとは「参照」ボタンから集計したいファイルが入ったフォルダを選択⇒「集計」を押すと、B6~B8に集計結果が表示されます。

Excel

Excelでチェックボックスとセルのリンクを一括で設定する方法

チェックボックスとセルをリンクさせる作業は、チェックボックスが大量にある場合、手作業だと膨大な時間がかかってしまいます。マクロを使って一括で設定しましょう。

2番目以降のシートのリンクを一括で設定する方法

2番目以降のシートのリンクを一括で設定するには、標準モジュールに以下のコードを貼り付けます。

Excel
Sub チェックボックスとセルをリンク()

    Dim cnt As Long
    Dim i As Long
    Dim cb As CheckBox
    
    cnt = Worksheets.Count ' シートの数
    
    For i = 2 To cnt ' 2番目以降のシートで繰り返す
        For Each cb In Worksheets(i).CheckBoxes
            cb.LinkedCell = cb.TopLeftCell.Offset(0, 1).Address 'チェックボックスから1つ右に移動した先のセルとリンク
        Next
    Next

    MsgBox "リンクの設定が完了しました。"

End Sub

コードを貼り付けたら作業完了です。Excelの画面に戻り、「チェックボックスとセルをリンク」マクロを実行すると、2番目以降のシートを対象に、チェックボックスとそこから1つ右に移動した先にあるセルがリンクされます

複数ファイルのリンクを一括で設定する方法

ご紹介するマクロは、以下の条件をすべて満たす場合に使えます。

  • 対象のチェックボックスがすべて1番目のシートにある
  • 対象のファイルがすべて同じフォルダに入っている

新規ブックでVBEを起動し、標準モジュールに以下のコードを貼り付けます。

Excel
Sub フォルダ指定()
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        ActiveSheet.Range("A1").Value = .SelectedItems(1) ' A1にフォルダのパスを表示
    End With
 
End Sub
Sub チェックボックスとセルをリンク()

    Dim folderPath As String
    Dim bookName As String
    Dim cb As CheckBox
    
    folderPath = ThisWorkbook.ActiveSheet.Range("A1").Value ' フォルダのパス
    bookName = Dir(folderPath & "\*.xls*") ' ブック名
    
    Application.ScreenUpdating = False
    
    Do Until bookName = "" ' ブックがなくなるまで繰り返す
        Workbooks.Open (folderPath & "\" & bookName)
        For Each cb In Worksheets(1).CheckBoxes ' 1番目のシートで繰り返す
            cb.LinkedCell = cb.TopLeftCell.Offset(0, 2).Address 'チェックボックスから2つ右に移動した先のセルとリンク
        Next
        Workbooks(bookName).Close SaveChanges:=True
        bookName = Dir
    Loop
    
    Application.ScreenUpdating = True
    
    MsgBox "リンクの設定が完了しました。"

End Sub

コードを貼り付けたら作業完了です。Excelの画面に戻り、「フォルダ指定」マクロ⇒「チェックボックスとセルをリンク」マクロの順に実行すると、指定したフォルダ内のファイルの1番目のシートにあるチェックボックスと、そこから右に2つ移動した先にあるセルがリンクされます。

まとめ

今回は、Excelでチェックボックスを集計する方法をご紹介しました。

チェックボックスにレ点が付いた項目の個数を集計するには、チェックボックスとセルをリンクさせたうえで、COUNTIF関数やマクロを使います。

同じファイル集計したいファイルの場合はCOUNTIF関数を使う方法が、アンケートの集計など集計したいファイルが大量にある場合はマクロを使う方法がおすすめです。

ご紹介したマクロで希望の動作にならない場合、マクロの作成を依頼できるサービスを利用するのがおすすめです。以下の記事でマクロの作成を依頼できるサービスをご紹介していますので、興味のある方はぜひあわせてご覧ください。