電子書籍の厳選無料作品が豊富!

Excelで給与計算表を制作しています。
VBAで勤務時間をストップウォッチの機能を利用して入力する
ボタンをつくったのですが、その時間をもとに給与を計算する関数、もしくはVBAが
分かりません。

給与は15分切り捨てで加算されるようにしたいです。
回答よろしくお願い致します。

「エクセル 給与計算表」の質問画像

A 回答 (1件)

こんにちは!



画像を拝見して、こちらの憶測ですが、
コマンドボタン1(出勤時間)のボタンをクリックすると
A1セルにその時点の日時が入るようになっているのですね。
画像のC1セルの「33」が何を意味しているのか分からないのですが、
それは無視してやってみました。

コマンドボタン2(退勤/勤務時間)をクリックすれば画像の配置のB列に
労働時間(15分単位で切り捨て)×日給(C5セル) を表示するようにしてみました。

↓のコードをコマンドボタン2に登録してみてください。

Private Sub CommandButton2_Click()
 Dim lastRow As Long, c As Range, myRng As Range
 Dim myTm As Long, myMt As Long
  myTm = Hour(Now() - Range("A1"))
  myMt = WorksheetFunction.Floor(Minute(Now() - Range("A1")), 15)
  lastRow = Cells(Rows.Count, "A").End(xlUp).Row
   If lastRow > 10 Then
    Set myRng = Range(Cells(11, "A"), Cells(lastRow, "A"))
    Set c = myRng.Find(what:=Format(Date, "yyyy/m/d"), LookIn:=xlValues, lookat:=xlWhole) '//★//
     If Not c Is Nothing Then
      c.Offset(, 1) = (myTm + myMt / 60) * Range("C5")
     Else
      MsgBox "今日の日付がありません。"
     End If
   End If
End Sub

※ コード内の「★」の行の表示形式は
お手元のA列日付列の表示形式に合わせてください。

※ 「CommandButton2」は実際のオブジェクト名にしてください。

休憩時間などの兼ね合いがあるのが普通だとおもいますが、
それは考慮していません。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
無知で申し訳ないのですが、★の部分に入力する表示形式の意味が
分からず、毎回「今日の日付がありません」と出てしまいます。
具体的に教えていただけたら嬉しいです。

お礼日時:2018/07/09 18:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!