1. Home »
  2. エクセル練習問題:目次 »
  3. 条件の判定(VBA)

エクセル練習問題:条件の判定(VBA)


スポンサードリンク
(追記) (追記ここまで)

問題 topへ

解答例 topへ

問題1の解答例 topへ


B C D E
2 名前 性別 得点 判定
3 相沢一郎 男 52 ×ばつ
4 井上浩二 男 74 しろまる
5 上野有紀 女 84 しろまる
6 内野武 男 77 しろまる
7 上田祥子 女 68 ×ばつ
8 江田早苗 女 59 ×ばつ
9 榎本高貴 男 77 しろまる
10 小田和樹 男 47 ×ばつ
(追記) (追記ここまで)

問題2の解答例 topへ


B C D E
2 名前 性別 得点 判定
3 相沢一郎 男 52 可
4 井上浩二 男 74 良
5 上野有紀 女 84 優
6 内野武 男 77 良
7 上田祥子 女 68 可
8 江田早苗 女 59 可
9 榎本高貴 男 77 良
10 小田和樹 男 47 不
  1. Select Case ステートメント で条件分けした例です。
    Sub test11()
    Dim c As Range
    Dim mark As String
    For Each c In Range("D3:D10")
    Select Case c.Value
    Case Is >= 80
    mark = "優"
    Case Is >= 70
    mark = "良"
    Case Is >= 50
    mark = "可"
    Case Else
    mark = "不"
    End Select
    c.Offset(0, 1).Value = mark
    Next c
    End Sub
  2. If〜Then〜Else ステートメント で条件分けした例です。
    Sub test11a()
    Dim c As Range
    Dim mark As String
    For Each c In Range("D3:D10")
    If c.Value >= 80 Then
    mark = "優"
    ElseIf c.Value >= 70 Then
    mark = "良"
    ElseIf c.Value >= 50 Then
    mark = "可"
    Else
    mark = "不"
    End If

    c.Offset(0, 1).Value = mark
    Next c
    End Sub
(追記) (追記ここまで)

問題3の解答例 topへ


B C D
2 試験日 得点 判定
3 2011年7月1日 66
4 2011年7月2日 71 合格
5 2011年8月4日 78
6 2011年8月5日 69
7 2011年8月6日 84 合格
8 2011年8月7日 79
9 2011年9月1日 72 合格
10 2011年9月2日 68
  1. Select Case ステートメント で条件分けした例です。
    • このコードはほかの年のデータは無いものとしています。
      複数年のデータでは異なる条件を作ります。→複数年のケース
    Sub test12()
    Dim c As Range
    Dim mark As String
    For Each c In Range("B3:B10")
    Select Case Month(c.Value)
    Case 7, 9
    If c.Offset(0, 1).Value >= 70 Then
    mark = "合格"
    Else
    mark = ""
    End If
    Case 8
    If c.Offset(0, 1).Value >= 80 Then
    mark = "合格"
    Else
    mark = ""
    End If
    Case Else
    mark = ""
    End Select
    c.Offset(0, 2).Value = mark
    Next c
    End Sub
  2. 上記と同じ処理ですが、以下のように記述することもできます。
    Sub test13()
    Dim c As Range
    Dim mark As String
    For Each c In Range("B3:B10")
    mark = ""
    Select Case Month(c.Value)
    Case 7, 9
    If c.Offset(0, 1).Value >= 70 Then mark = "合格"
    Case 8
    If c.Offset(0, 1).Value >= 80 Then mark = "合格"
    Case Else
    End Select
    c.Offset(0, 2).Value = mark
    Next c
    End Sub
  3. 複数年のケースです。
    Sub test14()
    Dim c As Range
    Dim mark As String
    Dim jyouken

    For Each c In Range("B3:B10")
    jyouken = Year(c.Value) & "_" & Month(c.Value)
    mark = ""
    If (jyouken = "2011_7" Or jyouken = "2011_9") And c.Offset(0, 1).Value >= 70 Then
    mark = "合格"
    ElseIf jyouken = "2011_8" And c.Offset(0, 1).Value >= 80 Then
    mark = "合格"
    End If
    c.Offset(0, 2).Value = mark
    Next c
    End Sub

スポンサードリンク
(追記) (追記ここまで)


(追記) (追記ここまで)
Home|エクセル練習問題:目次|条件の判定(VBA)

PageViewCounter
Counter
Since2006/2/27

AltStyle によって変換されたページ (->オリジナル) /