ExcelVBAでVBAでIFを使わずに判定してみた
この動画のマクロはWindows11/Office2013で作成してます。

B2セルが50以上なら合格、それ未満なら不合格を出す

'IF関数を使う
=IF(B2>=50,"合格","不合格")

'CHOOSE関数を使う
=CHOOSE((B2>=50)+1,"不合格","合格")

2教科にして70以上でそれぞれ文言を変える

'IF関数を使う
=IF(AND(B2>=70,C2>=70),"両方合格",IF(AND(B2>=70,C2<70),"試験B再受験",IF(AND(B2<70,C2>=70),"試験A再受験","両方再受験")))

'CHOOSE関数を使う
=CHOOSE(($B2>=70)*2+($C2>=70)+1,"両方再受験","試験A再試験","試験B再試験","両方合格")

Sub Macro1()
'
' VBA100本ノック 8本目:点数の合否判定
' https://excel-ubara.com/vba100/VBA100_008.html

    合否テキスト = Array("", "合格")
    For y = 2 To 12
        x_and = 0
        x_or = 0
        For x = 2 To 6
            x_and = x_and + (Cells(y, x) >= 50)   '()の中身は真なら-1,偽なら0
            x_or = x_or + Cells(y, x)
        Next
        'x_andが-5なら5教科すべてが50点以上
        Debug.Print "x_and=-5 : " & (x_and = -5) * 1 & vbTab & "* 合計点>=350 : " & (x_or >= 350) * 1 & vbTab & " = " & (x_and = -5) * (x_or >= 350)
        Cells(y, 7).Value = 合否テキスト((x_and = -5) * (x_or >= 350))
    Next
End Sub
カテゴリー: VBA

0件のコメント

コメントを残す

アバタープレースホルダー

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.