dポイントプレゼントキャンペーン実施中!

指定したセルで一つでも不合格があれば指定したセルに不合格と表示するプログラムを作りたいのですが教えていただけませんか

セルA1からA5 合格 セルB1からB5 B2だけ不合格 セルC1からC5 合格
セルF 判定 不合格
セルA1からA5 合格 セルB1からB5 合格 セルC1からC5 合格
セルF 判定 合格

質問者からの補足コメント

  • セルFはF1です

      補足日時:2017/06/09 16:03

A 回答 (2件)

こんにちは!



=IF(COUNTIF(A1:C5,"合格")=15,"合格","不合格")
または
=IF(COUNTIF(A1:C5,"不合格"),"不合格","合格")

という関数で簡単に対処できますが、どうしてもVBAでないとダメなのですか?

VBAでやってもそのままワークシート関数が使えますので

Sub Sample1()
If WorksheetFunction.CountIf(Range("A1:C5"), "不合格") > 0 Then
Range("F1") = "不合格"
Else
Range("F1") = "合格"
End If
End Sub

といった感じで大丈夫だと思います。
いかにもVBAらしくだと

Sub Sample2()
Dim c As Range
Set c = Range("A1:C5").Find(what:="不合格", LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
Range("F1") = "合格"
Else
Range("F1") = "不合格"
End If
End Sub

という方法もあります。

※ 私的見解として・・・
この程度であればせっかくExcelで使える機能があるので、Excelで出来ることは
Excelにやらせる方が手っ取り早く簡単だと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます
関数でやってみます

お礼日時:2017/06/09 16:26

> 指定したセルで一つでも不合格があれば



例えば、COUNTIF関数で「不合格」の数を数えるとか。
=COUNTIF(A1:C5,"不合格")

> 指定したセルに不合格と表示する

数えた結果が0ならば"合格"と表示、そうでなければ"不合格"と表示とか。
=IF(0=COUNTIF(A1:C5,"不合格"), "合格", "不合格")
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!