回答編集履歴

1

説明追記

2021/09/28 05:25

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -65,3 +65,41 @@
65
65
 
66
66
 
67
67
  ですので、この2つの For ... Next文は不要です。
68
+
69
+ ---
70
+
71
+ さらに、余計なお節介をすれば、
72
+
73
+ 年月日を3セルに、時刻を2セルに分けて入力していますが、
74
+
75
+ 今後、このデータを利用して集計などを行うと思いますが、
76
+
77
+ そのとき、面倒なことになります。
78
+
79
+
80
+
81
+ 下記のように年月日、時刻、ぞれぞれ1セルに代入するようにした方がいいでしょう。
82
+
83
+ ```vba
84
+
85
+ With ActiveSheet
86
+
87
+ .Cells(tgtRow, 1).Value = DateSerial(Me.cb1.Value, Me.cb2.Value, Me.cb3.Value)
88
+
89
+ .Cells(tgtRow, 2).Value = TimeSerial(Me.TextBox1.Value, Me.TextBox2.Value, 0)'出勤時刻
90
+
91
+ .Cells(tgtRow, 3).Value = TimeSerial(Me.TextBox3.Value, Me.TextBox4.Value, 0)'退勤時刻
92
+
93
+ .Cells(tgtRow, 4).Value = TimeSerial(Me.TextBox5.Value, Me.TextBox6.Value, 0)'休憩開始時刻
94
+
95
+ .Cells(tgtRow, 5).Value = TimeSerial(Me.TextBox7.Value, Me.TextBox8.Value, 0)'休憩終了時刻
96
+
97
+ End With
98
+
99
+ ```
100
+
101
+ そうすれば下記のように簡単な式で勤務時間を計算できますし、見やすいと思います。
102
+
103
+
104
+
105
+ ![イメージ説明](7e763070638d1fc7efec31f051850cf5.png)