Sub 月間勤務時間() Dim i As Long For i = 2 To 32 Select Case Cells(5, i).Value Case Is = "●" Cells(6, i).Value = 0 Case Is = "B" And Cells(3, i).Text = "月" Or "火" Or "木" Or "金" Cells(6, i).Value = 8 Case Is = "B" And Cells(3, i).Text = "水" Or "木" Cells(6, i).Value = 4 Case Is = "" And Cells(3, i).Text = "月" Or "火" Or "木" Or "金" Cells(6, i).Value = 9 Case Is = "" And Cells(3, i).Text = "水" Or "木" Cells(6, i).Value = 5 End Select Next i End Sub
Case Is = "B" And Cells(3, i).Text = "月" Or "火" Or "木" Or "金" の所でエラーメッセージがでます。
Sub SelectStatementTest()
Dim i As Long
For i = 2 To 32
Select Case Cells(5, i).Value
Case "●"
Cells(6, i) = 0
Case "B"
Select Case Cells(3, i).Value
Case "月", "火", "木", "金"
Cells(6, i) = 8
Case "水", "木"
Cells(6, i) = 4
End Select
Case ""
Select Case Cells(3, i)
Case "月", "火", "木", "金"
Cells(6, i) = 9
Case "水", "木"
Cells(6, i) = 5
End Select
End Select
Next i
End Sub
また、VBAでIf文を使うと例えば
Sub Macro1()
For i = 2 To 32
R2 = Cells(2, i).Value
R5 = Cells(5, i).Value
If R5 = "●" Then
Cells(6, i) = 0
ElseIf R5 = "B" And (R2 = "月" Or R2 = "火" Or R2 = "木" Or R2 = "金") Then
Cells(6, i) = 8
ElseIf R5 = "B" And (R2 = "水" Or R2 = "土") Then
Cells(6, i) = 5
ElseIf R5 = "" And (R2 = "月" Or R2 = "火" Or R2 = "木" Or R2 = "金") Then
Cells(6, i) = 9
ElseIf R5 = "" And (R2 = "水" Or R2 = "土") Then
Cells(6, i) = 4
End If
Next i
End Sub
Sub Macro2()
For i = 2 To 32
R2 = Cells(3, i).Value
R5 = Cells(5, i).Value
If R5 = "●" Then
Cells(6, i) = 0
ElseIf R5 = "B" Then
If R2 = "月" Or R2 = "火" Or R2 = "木" Or R2 = "金" Then
Cells(6, i) = 8
ElseIf R2 = "水" Or R2 = "土" Then
Cells(6, i) = 5
End If
ElseIf R5 = "" Then
If R2 = "月" Or R2 = "火" Or R2 = "木" Or R2 = "金" Then
Cells(6, i) = 9
ElseIf R2 = "水" Or R2 = "土" Then
Cells(6, i) = 4
End If
End If
Next i
End Sub