回答編集履歴
5
バグ修正
answer
CHANGED
@@ -18,55 +18,42 @@
|
|
18
18
|
|
19
19
|
Dim CurRow As Integer '現在の行番号
|
20
20
|
Dim CurColumn As Integer '現在の列番号
|
21
|
-
|
22
|
-
|
21
|
+
|
23
|
-
|
24
22
|
MaxRows = Range("A1").CurrentRegion.Rows.Count '最大行数取得
|
25
23
|
MaxColumns = Range("A1").CurrentRegion.Columns.Count '最大列数取得
|
26
24
|
|
27
25
|
For CurRow = 2 To MaxRows '2行目から最終行まで順番に処理(1行目は見出しだけなので処理しない)
|
28
|
-
flg = False '"1"書き込み中フラグをオフにする
|
29
|
-
|
30
|
-
For CurColumn = 3 To MaxColumns '
|
26
|
+
For CurColumn = 3 To MaxColumns '3列目から最終列まで順番に処理
|
31
27
|
If CurColumn = 3 Then
|
32
|
-
'現在列が
|
28
|
+
'現在列が3列目の場合は開始時刻を取得
|
33
29
|
StartHour = Hour(Cells(CurRow, CurColumn).Value)
|
34
30
|
StartMinute = Minute(Cells(CurRow, CurColumn).Value)
|
35
31
|
ElseIf CurColumn = 4 Then
|
36
|
-
'現在列が
|
32
|
+
'現在列が4列目の場合は終了時刻を取得
|
37
33
|
EndHour = Hour(Cells(CurRow, CurColumn).Value)
|
38
34
|
EndMinute = Minute(Cells(CurRow, CurColumn).Value)
|
39
35
|
Else
|
40
|
-
'E列以降
|
41
|
-
If flg = False Then
|
42
|
-
|
36
|
+
'自列1行目に記載されている時刻を取得
|
43
|
-
|
37
|
+
CurHour = Hour(Cells(1, CurColumn).Value)
|
44
|
-
|
38
|
+
CurMinute = Minute(Cells(1, CurColumn).Value)
|
45
39
|
|
40
|
+
'次の列の1行目に記載されている時刻を取得
|
41
|
+
NextHour = Hour(Cells(1, CurColumn + 1).Value)
|
42
|
+
NextMinute = Minute(Cells(1, CurColumn + 1).Value)
|
43
|
+
|
46
|
-
|
44
|
+
If StartHour < CurHour Or (StartHour = CurHour And StartMinute - CurMinute <= 4) Then
|
45
|
+
'開始「時」が1行目の「時」未満、もしくは
|
47
|
-
|
46
|
+
'開始「時」が1行目の「時」と同じかつ、開始「分」マイナス1行目の「分」が4分以下の場合
|
48
|
-
'「分」が4分以下の場合
|
49
|
-
flg = True '"1"書き込み中フラグをオンにする
|
50
|
-
|
51
|
-
Cells(CurRow, CurColumn).Value = "1" '現在セルに"1"を書き込む
|
52
|
-
End If
|
53
|
-
Else
|
54
|
-
|
47
|
+
'現在セルに"1"を書き込む
|
55
|
-
|
48
|
+
Cells(CurRow, CurColumn).Value = "1"
|
56
|
-
|
57
|
-
'次の列の1行目に記載されている時刻を取得
|
58
|
-
NextHour = Hour(Cells(1, CurColumn + 1).Value)
|
59
|
-
NextMinute = Minute(Cells(1, CurColumn + 1).Value)
|
60
|
-
|
61
|
-
If EndHour < NextHour Then
|
62
|
-
'終了「時」が次列の「時」未満の場合、内側のループを抜けて次の行の処理に移る
|
63
|
-
Exit For
|
64
|
-
ElseIf EndHour = NextHour And EndMinute < NextMinute Then
|
65
|
-
'終了「時」が次列の「時」と同じ場合、終了「分」が次列の「分」未満なら
|
66
|
-
'内側のループを抜けて次の行の処理に移る
|
67
|
-
Exit For
|
68
|
-
End If
|
69
49
|
End If
|
50
|
+
|
51
|
+
If EndHour < NextHour Or (EndHour = NextHour And EndMinute < NextMinute) Then
|
52
|
+
'終了「時」が次列の「時」未満の場合、もしくは
|
53
|
+
'終了「時」が次列の「時」と同じかつ、終了「分」が次列の「分」未満の場合
|
54
|
+
'内側のループを抜けて次の行の処理に移る
|
55
|
+
Exit For
|
56
|
+
End If
|
70
57
|
End If
|
71
58
|
Next
|
72
59
|
Next
|
4
誤字・・・
answer
CHANGED
@@ -62,7 +62,7 @@
|
|
62
62
|
'終了「時」が次列の「時」未満の場合、内側のループを抜けて次の行の処理に移る
|
63
63
|
Exit For
|
64
64
|
ElseIf EndHour = NextHour And EndMinute < NextMinute Then
|
65
|
-
'終了「時」が次列の「時」と同じ
|
65
|
+
'終了「時」が次列の「時」と同じ場合、終了「分」が次列の「分」未満なら
|
66
66
|
'内側のループを抜けて次の行の処理に移る
|
67
67
|
Exit For
|
68
68
|
End If
|
3
記載漏れ
answer
CHANGED
@@ -55,8 +55,8 @@
|
|
55
55
|
Cells(CurRow, CurColumn).Value = "1"
|
56
56
|
|
57
57
|
'次の列の1行目に記載されている時刻を取得
|
58
|
-
NextHour = Hour(Cells(1, CurColumn + 1))
|
58
|
+
NextHour = Hour(Cells(1, CurColumn + 1).Value)
|
59
|
-
NextMinute = Minute(Cells(1, CurColumn + 1))
|
59
|
+
NextMinute = Minute(Cells(1, CurColumn + 1).Value)
|
60
60
|
|
61
61
|
If EndHour < NextHour Then
|
62
62
|
'終了「時」が次列の「時」未満の場合、内側のループを抜けて次の行の処理に移る
|
2
ロジック誤り
answer
CHANGED
@@ -43,8 +43,9 @@
|
|
43
43
|
CurHour = Hour(Cells(1, CurColumn).Value)
|
44
44
|
CurMinute = Minute(Cells(1, CurColumn).Value)
|
45
45
|
|
46
|
-
If
|
46
|
+
If StartHour = CurHour And StartMinute - CurMinute <= 4 Then
|
47
|
-
'1行目の「時」
|
47
|
+
'開始「時」が1行目の「時」と同じかつ、開始「分」マイナス1行目の
|
48
|
+
'「分」が4分以下の場合
|
48
49
|
flg = True '"1"書き込み中フラグをオンにする
|
49
50
|
|
50
51
|
Cells(CurRow, CurColumn).Value = "1" '現在セルに"1"を書き込む
|
1
誤記修正
answer
CHANGED
@@ -40,8 +40,8 @@
|
|
40
40
|
'E列以降
|
41
41
|
If flg = False Then
|
42
42
|
'"1"書き込み中フラグがオフの場合、1行目に記載されている時刻を取得
|
43
|
-
CurHour = Hour(Cells(1, CurColumn))
|
43
|
+
CurHour = Hour(Cells(1, CurColumn).Value)
|
44
|
-
CurMinute = Minute(Cells(1, CurColumn))
|
44
|
+
CurMinute = Minute(Cells(1, CurColumn).Value)
|
45
45
|
|
46
46
|
If CurHour = StartHour And CurMinute >= StartMinute Then
|
47
47
|
'1行目の「時」が開始「時」と同じかつ、1行目の「分」が開始「分」以上の場合
|