エクセルで採点表を作る

ぐぐったら、exact関数を使用して作るという記事が出てきたが、めんどくさいので、vbaで書いた。

C列の値とD列の値を比較し、E列に結果をだす。

f:id:object_kun:20181228215731j:plain

コード

Option Explicit

Dim start_row As Integer, end_row As Integer
Sub init()
    start_row = 2
    end_row = 21
End Sub
Sub rating()
    Call init
    Dim i As Integer
    For i = start_row To end_row
        If StrConv(Sheet1.Cells(i, 3).Value, vbKatakana) = Sheet1.Cells(i, 4).Value Then
            Sheet1.Cells(i, 5).Value = "〇"
        Else
            Sheet1.Cells(i, 5).Value = "×"
        End If
    Next
    
End Sub

Sub clear_rating()
    Call init
    Dim i As Integer
    For i = start_row To end_row
        Sheet1.Cells(i, 3).Value = ""
        Sheet1.Cells(i, 5).Value = ""
    Next
End Sub

回答する場合はD列を非表示にして、行うようにする。

' 採点の最終行 回答数が増えた場合はここをあわせる
end_row = 21

変数の初期化がめんどくさくて、一括で行いたかったのでできて良かった。
間違えた回数を記録する列を作ったら、周回するときに便利だろうな。