時間を数字に直すには?
12:30-11:00=1:30 となりますね。
1時間900円のアルバイト代は掛けられませんね
掛けるには時間を数字に直す必要があります。
=(D7-B7)*24 そう24を掛けるのです。
0:00と書式が時間になっている場合はセルの書式設定で標準に設定してください。
1.5となります。設定のわからない方は最後に画像で表示します。
それではアルバイト勤務表のレッスンです。


同様に井上・杉山を作るには「森山」シートを右にコピーします。
Ctrlキー(コントロールキー)を押しながら「森山」シートを右にドラッグすればコピーできます。
下記のようにシート名他、データを編集します。

7月第1週シートに3つの合計を集計します。
串刺し計算で勤務人数、支給額計を表示します。

Shiftキーはクリックしたシートからクリックしたシートまでの全てを選択できます。
飛び飛びのシートを選択したい場合はCtrlキーを使います。
退勤から出勤を引いて勤務時間を出した場合1:30と時間表示になります。
数字にする場合24を×のですが、一度、書式を時間表示にすると数字には戻りません。
その場合、クリアーで書式を削除するか、セルを右クリックして書式の設定を標準の戻します。
それではこのシートをVBAで操作出来るようにプログラムを書いてみましょう。
森山・井上・杉島シートにコピーします。
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next nrow = Target.Row ncol = Target.Column If ncol = 3 Then Exit Sub If nrow < 7 Or nrow > 13 Then Exit Sub kei = 0: n = 0 Application.EnableEvents = False For i = 7 To 13 Cells(i, 5) = (Cells(i, 4) - Cells(i, 2)) * 24 If Cells(i, 2) = "" Or Cells(i, 4) = "" Then Cells(i, 5) = 0 Cells(i, 6) = Cells(i, 5) * Cells(6, 9) kei = kei + Cells(i, 6) If Cells(i, 5) <> 0 Then n = n + 1 End If Next i Cells(14, 6) = kei Cells(7, 9) = n Application.EnableEvents = True End Sub
では次に合計シートの集計をシートを開いた時に発生するイベントプロシージャ
Worksheet_Activate()に書き込みます。
Private Sub Worksheet_Activate() Dim WB As Workbook Dim WS1 As Worksheet Set WB = ActiveWorkbook Row = 7 col = 6 wsRow = 4 wsCol = 3 For i = 1 To 7 gokei = 0 countN = 0 For j = 1 To 3 Set WS1 = WB.Worksheets(j) kei = WS1.Cells(Row, col) If kei <> 0 Then countN = countN + 1 gokei = gokei + kei Next j Row = Row + 1 Cells(wsRow, wsCol) = gokei Cells(wsRow, 2) = countN wsRow = wsRow + 1 Next i gokei = 0: kei = 0: countN = 0 For i = 4 To wsRow - 1 kei = Cells(i, wsCol) countN = countN + Cells(i, 2) gokei = gokei + kei Next i Cells(wsRow + 1, wsCol) = gokei Cells(wsRow + 1, 2) = countN End Sub

