Excel

VBAで◯や×のカウント(丸の数を数える)を行う方法(空白がある場合も)【Excelマクロ】

当サイトでは記事内に広告を含みます

この記事ではVBAマクロでExcelのA列の2行目以降に記載された「○(○)」や「×」の個数をカウントする方法について解説していきます。

ポイントとしては`For Next`ループと`If Then Else`ステートメントを使用することです。

下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切なもの(英語表記でしっくりくるものが一般的)に変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロでの丸(◯)やバツのカウント方法【For Next, If Then Else】

それではまず、丸やバツのカウント方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub marubatsuCount()
    ' 初期化
    maruCount = 0
    batsuCount = 0

    ' a列の2行目から最終行までループ
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        ' セルの値を取得
        hensuu = Cells(i, 1).Value

        ' 丸のカウント
        If hensuu = "○" Then
            maruCount = maruCount + 1
        ' バツのカウント
        ElseIf hensuu = "×" Then
            batsuCount = batsuCount + 1
        End If
    Next i

    ' 結果をb列とc列に出力
    Cells(2, 2).Value = "○の数: " & maruCount
    Cells(2, 3).Value = "×の数: " & batsuCount
End Sub

コードのAlt+F8を押し、マクロ選択画面で`marubatsuCount`関数を実行します。

このマクロは、A列の2行目からデータがなくなるまでの各行をループし、それぞれの行に「○」や「×」が含まれるかを確認します。含まれている場合、それぞれのカウンターを1増やします。最後に、B列とC列の2行目にそれぞれのカウントを出力します。

空白行が途中にある場合のVBAマクロで丸やバツの個数を数える方法【Cells, If Then Else】

続いては、空白行が途中にある場合の丸やバツの個数を数える方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub marubatsuCountWithBlankRows()
    ' 初期化
    maruCount = 0
    batsuCount = 0

    ' a列の2行目から最終行までループ
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        ' セルの値を取得
        hensuu = Cells(i, 1).Value

        ' 丸のカウント
        If hensuu = "○" Then
            maruCount = maruCount + 1
        ' バツのカウント
        ElseIf hensuu = "×" Then
            batsuCount = batsuCount + 1
        End If
    Next i

    ' 結果をb列とc列に出力
    Cells(2, 2).Value = "○の数(空白行あり): " & maruCount
    Cells(2, 3).Value = "×の数(空白行あり): " & batsuCount
End Sub

コードのAlt+F8を押し、マクロ選択画面で`marubatsuCountWithBlankRows`関数を実行します。

このマクロは空白行が存在する場合でも、「○」や「×」のカウントを正確に行うことが可能です。A列の2行目から最後の行までをループし、それぞれの行でセルの値をチェックし、「○」や「×」を見つけたら、それぞれのカウンターを増やします。最後に、B列とC列の2行目にそれぞれのカウントを出力します。

まとめ

これで、VBAを使用してExcel内の「○」や「×」をカウントする方法を学びました。`For Next`ループと`If Then Else`ステートメントを使用して、簡単かつ効率的にデータを処理することができます。

実務や学習での活用を目指し、ぜひともこの知識を利用してください。そして、さまざまな場面でのデータ処理を効率化する助けとしてください。

初心者から上級者まで、多くの方々がVBAマクロの力を理解し利用できるよう、今回